Contract-Development

Truffle 和帶有地址類型建構子參數的契約

  • April 17, 2017

當我使用帶有“地址”類型參數的松露添加新契約(testrpc)時,此屬性的讀取值似乎錯誤(始終為 0x0000000000000000000000000000000000000000),我找不到問題的原因

Demo.sol 合約:

pragma solidity ^0.4.2;

contract Demo
{
    address public test;
    function Demo(address test) payable
    {
       test = test;
    }
}

我用松露添加新契約

Demo.new("0x9e99b1aaa2114fdae97c9ab2f20863dfde4659bd", {
   from: account,
   value: web3.toWei(0.1, 'ether')
}).then(function (instance) {
   return instance.test.call({from: account});
}).then(function(test) {
   console.log(test);
});

預期結果是 0x9e…9bd,但輸出是 0x00…000。

如有需要,我將demo項目推送到Github上,謝謝大家的幫助

我自己回答……智能合約出現了一個愚蠢的錯誤……類變數和參數同名

此程式碼有效:

address public myaddress;
function Demo(address test) payable
{
   myaddress = test;
}

引用自:https://ethereum.stackexchange.com/questions/15246