2016-04-12 3 views
0
{ hash: '0xcc871efa64631ff57b6c4cdf9e9c52dce299956cc0bc2cdf6781dbd647a80926', 
    nonce: 34, 
    blockHash: '0xf4e21dabc0d6f99ae9a3fd128b9f25462110ed0e2811c0d5f91ffce9ac85594a', 
    blockNumber: 49, 
    transactionIndex: 0, 
    from: '0x9c3fe8bc6d259d44e80fb728e74727bfbe58e988', 
    to: '0xb22ab8533936d6d75c1ecf229c1ad68410ea8ee3', 
    value: { [String: '0'] s: 1, e: 0, c: [ 0 ] }, 
    gas: 3141592, 
    gasPrice: { [String: '1'] s: 1, e: 0, c: [ 1 ] }, 
    input: '0x1f5c1d9800000000000000000000000000000000000000000000000000000000000000400000000000000000000000007fa543843e2f5766ad623b2155d639d73635824400000000000000000000000000000000000000000000000000000000000000134f70656e20412042616e6b204163636f756e7400000000000000000000000000’ } 

Я получаю транзакцию от x.send (1), JSON которой выглядит выше. Я могу видеть в значении атрибут, что есть «7fa543843e2f5766ad623b2155d639d736358244», который соответствует адресу учетной записи, которую я предоставил для x. Фрагмент сплошности:Является ли сообщение TestRPC ошибочным по транзакциям?

function do(string _description, address x) { 
    if (msg.sender != owner) 
     throw; 
    description = _description; 

    x.send(1); 
} 

Однако атрибут to в JSON неверен. Моя среда использует тесты, выполняемые в трюфеле против TestRPC. Кто-нибудь признает это как известную проблему или проблему с моей стороны?

Соответствующая часть моего тестового кода:

.then(
    function (_bool0) { 
     assert.isTrue(_bool0,"whoops"); 
     return contract.do("a test", accounts[4], {from: accounts[0]}); 
    }).then(
    function (tx_id) { 
     var transaction = web3.eth.getTransaction(tx_id); 
     /* debugging my test */ 
     console.log(transaction); 

     assert.strictEqual(transaction.to,accounts[4],"transaction \"to:\" was not provided address"); 

     done(); 
    } 
).catch(done); 
+0

Я думаю, что это связано с тем, что tx_id связано с контрактом, а не с x.send(), который я сделал. Мне нужен идентификатор транзакции send(). – Interition

+0

, если вы чувствуете, что ваши вопросы не привлекают достаточного внимания к stackoverflow, вы также можете попробовать задать вопросы, связанные с ethereum, на новом бета-сайте обмена ethereum (http://ethereum.stackexchange.com/). – default

ответ

0

поведение было на самом деле согласуется с тем, как работает Ethereum. Когда тестовые вызовы:

contract.do("a test", accounts[4], {from: accounts[0]}); 

это вызывает транзакцию, записанную на блочной цепочке. Транзакция из учетной записи [0] и к Контракту: это также тип учетной записи. Объект, возвращенный моему тесту, представляет эту транзакцию: показан как JSON выше.

Я ошибочно считал, что возвращенный объект представляет собой транзакцию между Контрактом на второй счет.

Для достижения моей цели тестирования мне нужно проверить наличие транзакции со второй учетной записи. Я обновлю это, как только выясню это.

Смежные вопросы