Я развернул контракт следующим образом и определил его баланс равным 5000 вэй ( 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);
});
Я развернул этот контракт на Tobalaba
блокчейне ( его github здесь. )
Баланс адреса, по которому я разработал этот контракт, выглядит 20000000000000000000 wei
следующим образом:
> 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
Однако, когда я получаю баланс контракта, это выглядит 0
следующим образом:
> 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
А вот информация о развертывании этого контракта:
https://tobalaba.etherscan.com/address/0xd227398f81bad20882b46ccdffc71058025df341
В соответствии с которым адрес контракта0xD227398f81bAD20882B46ccdFfC71058025df341
Что-то не так?
ВАЖНОЕ ПРИМЕЧАНИЕ: Я разработал этот контракт: https://programtheblockchain.com/posts/2018/02/23/writing-a-simple-payment-channel/
Между тем, когда я получаю адрес контракта, он возвращает null !
> thisContract.options.address
null
Принимая во внимание, что в отношении этой информации ( https://tobalaba.etherscan.com/tx/0xb9834bd2ebbbb930208dbb17462169441c6b63542a01a43e3992ecf803cb0734 ) она должна быть развернута, не так ли? (Пожалуйста, смотрите снимок экрана ниже)
balance = await web3.eth.getBalance(contract_address);
пользователь19510
пользователь19510
thisContract.options.address
,null
это потому, что вы никогда не назначали адрес. Вы можете использоватьthisContract.options.address = newContractInstance.options.address
этот обратный вызов, если хотите.Спрашивающий
enode://63c8ce2905100932230c1760fb29d36d08646979d1fd7abfa8393f5e7feaade3c9a078fd85b194ca040c8a0b2c541537f96deb76a7412c87e36cec16fe543e9f@192.168.136.128:30303
пользователь19510
Спрашивающий
5000 wei
здесь: tobalaba.etherscan.com/address/… Очевидно, из-за синхронизации. СпасибоСпрашивающий