2016-04-12 32 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’ } 

JSON'u yukarıdaki gibi görünen x.send (1) uygulamasından bir işlem alıyorum. girişinin değerini, x için sağladığım hesabın adresiyle eşleşen bir “7fa543843e2f5766ad623b2155d639d736358244” olduğunu görebiliyorum. Solidity parçacığı şöyledir: Ancak, JSON'daki: attrib niteliği yanlıştır. Ortamım, Truffle'da TestRPC'ye karşı yürütülen testleri kullanıyor. Bunu herkes bilinen bir sorun olarak mı yoksa sorunumda bir problem olarak mı algılıyor?TestRPC raporları işlemlerde yanlış mı yazıyor?

benim test kodunun uygun parçasıdır:

.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

Sanırım bu, tx_id ile yapılan sözleşmeyle ilgili bir sorun değil, x.send() 'i yapmıştım. Send() 'nin işlem kimliğine ihtiyacım vardı. – Interition

+0

Eğer sorularınızın stackoverflow üzerinde yeterince dikkat çekmediğini düşünüyorsanız, yeni [ethereum stack exchange beta site] (http://ethereum.stackexchange.com/) üzerinde de eternuma özgü soruları sormayı deneyebilirsiniz. – default

cevap

0

davranış Ethereum nasıl çalıştığını ile aslında tutarlıydı. Test çağırıldığında, blok zincirine kaydedilen bir işleme neden olur. Hesaplardan [0] bir hesap ve Sözleşme'ye: Bir de hesap türü olan bir işlem. Testime geri dönen nesne bu işlemi temsil eder: yukarıdaki JSON olarak gösterilir.

Yanlışlıkla iade edilen nesnenin Sözleşme ile ikinci hesap arasındaki işlemi temsil ettiğini düşünmüştüm.

Test hedefime ulaşmak için, ikinci hesaptan bir işlemin varlığını kontrol etmem gerekiyor. Bunu çözdüğümde bunu güncelleyeceğim.