Me he estado enseñando a mí mismo ethereum a través de la pila solidity/truffle/truffle-contract/testrpc/metamask
. Creé una pequeña dApp que se ejecuta en testrpc con pruebas unitarias adecuadas que funcionan muy bien. He escrito una función que truffle serve
carga mi contrato llamado VEX desde el archivo localf_deployed_contract
$.getJSON(f_deployed_contract, function(data) {
App.contracts.VEX = TruffleContract(data);
App.contracts.VEX.setProvider(App.web3Provider);
});
¡Todo funciona! Estaba emocionado, así que implementé el contrato del código de solidez funcional usando una combinación de Remix y Ether Wallet en la red principal. Fue minado y ahora vive aquí:
https://etherscan.io/tx/0xe5e6c5d463815e339a2aac2e92594de595e2029e6448997799871d8cb2a5728b
Ahora, ¿cómo ajusto mi TruffleContract
para poder usar mi dApp con metamask en la red principal?
Usando TruffleContract, puede simplemente especificar la dirección de su contrato cuando intente interactuar con él. De la documentación:
var MetaCoin = require("./path/to/MetaCoin.sol.js");
MetaCoin.at(contract_address).then(function(instance) {
//do promise things
}
Entonces, en lugar de usar Metacoin.deployed()
, que probablemente esté usando, podría usar .at(address)
.
Además, su contrato vive en 0x4f5a4501f96cb95eeda376f4caa0b24f4dbbd796, no en 0xe5e6c5d463815e339a2aac2e92594de595e2029e6448997799871d8cb2a5728b. El segundo es la transacción que creó su contrato, el primero es la dirección de su contrato.
Enganchado
.at(address)
para cada uno?Qkyrie