He implementado un contrato de la siguiente manera y determinado su saldo en 5000 wei ( value: 5000
):
const thisContract = new web3.eth.Contract(abi);
thisContract.deploy({
data: bytecode,
arguments: [ "0x84f0c8fC2F6bc8394EB77BaAAe89cB6e12C048C2", 86400]
}).send({
from: "0x3455D7167A2EE2d660EE85F8e90C6b3B1cCB7163",
gas: 5000000 ,
gasPrice: '3000000000',
value: 5000 // here I have determined the balance.
}, function(error, transactionHash) {
console.log(error);
console.log(transactionHash);
console.log('function exec');
}).then(function(newContractInstance) {
console.log('Contract Instance:' + newContractInstance.options.address);
});
He implementado este contrato en Tobalaba
blockchain ( su github está aquí ) .
El balance de la dirección por la cual desarrollo este contrato es 20000000000000000000 wei
el siguiente:
> web3.eth.getBalance('0x3455D7167A2EE2d660EE85F8e90C6b3B1cCB7163').then(console.log)
Promise {
<pending>,
domain:
Domain {
domain: null,
_events:
{ removeListener: [Function: updateExceptionCapture],
newListener: [Function: updateExceptionCapture],
error: [Function: debugDomainError] },
_eventsCount: 3,
_maxListeners: undefined,
members: [] } }
> 20000000000000000000
Sin embargo, cuando obtengo el saldo del contrato, es 0
el siguiente:
> web3.eth.getBalance('0xd227398f81bad20882b46ccdffc71058025df341').then(console.log)
Promise {
<pending>,
domain:
Domain {
domain: null,
_events:
{ removeListener: [Function: updateExceptionCapture],
newListener: [Function: updateExceptionCapture],
error: [Function: debugDomainError] },
_eventsCount: 3,
_maxListeners: undefined,
members: [] } }
> 0
Y aquí está la información de despliegue de este contrato:
https://tobalaba.etherscan.com/address/0xd227398f81bad20882b46ccdffc71058025df341
Según el cual la dirección del contrato es0xD227398f81bAD20882B46ccdFfC71058025df341
¿Hay algo mal?
NOTA IMPORTANTE: he desarrollado este contrato: https://programtheblockchain.com/posts/2018/02/23/writing-a-simple-payment-channel/
Mientras tanto, cuando obtengo la dirección del contrato, ¡devuelve nulo !
> thisContract.options.address
null
Considerando que, con respecto a esta información ( https://tobalaba.etherscan.com/tx/0xb9834bd2ebbbb930208dbb17462169441c6b63542a01a43e3992ecf803cb0734 ) debe implementarse, ¿no? (Por favor, vea la captura de pantalla a continuación)
balance = await web3.eth.getBalance(contract_address);
usuario19510
usuario19510
thisContract.options.address
esnull
, es porque nunca asignó una dirección. Podría usarthisContract.options.address = newContractInstance.options.address
en esa devolución de llamada si lo desea.Preguntador
enode://63c8ce2905100932230c1760fb29d36d08646979d1fd7abfa8393f5e7feaade3c9a078fd85b194ca040c8a0b2c541537f96deb76a7412c87e36cec16fe543e9f@192.168.136.128:30303
usuario19510
Preguntador
5000 wei
aquí: tobalaba.etherscan.com/address/… Aparentemente fue debido a la sincronización. GraciasPreguntador