如何测试松露中多个账户/地址的合约?

时间:2018-09-02 07:00:20

标签: testing solidity truffle

我想用多个msg.sender地址测试我的松露合约。就像“第一个用户出售令牌,第二个用户购买此令牌”。对于一个地址,我只需编写类似contract.buy.value(10 wei)();的内容。但是我可以在哪里获得另一个地址以及如何向他汇款?

我写的是关于稳定性的测试,而不是基于javascript的测试。

1 个答案:

答案 0 :(得分:1)

Truffle docs中可以看到,您可以指定两个不同的帐户来与已部署的智能合约进行交互,如下所示(以元硬币为例):

var account_one = "0x1234..."; // an address
var account_two = "0xabcd..."; // another address

var meta;
MetaCoin.deployed().then(function(instance) {
meta = instance;
    return meta.sendCoin(account_two, 10, {from: account_one});
    }).then(function(result) {
    // If this callback is called, the transaction was successfully processed.
    alert("Transaction successful!")
}).catch(function(e) {
    // There was an error! Handle it.
})

这是关于如何使用自己创建的令牌的方法。

如果要在账户之间转移以太币,可以在松露执行文件(JavaScript文件)中指定账户。这些帐户可能来自您配置的本地区块链(Ganache,如果您正在使用Truffle Suite测试智能合约,它将为您提供多个帐户,您可以自己配置这些帐户。)

此外,您可能需要JavaScript API来指定发送方和接收方:web3.eth.sendTransaction

第一次回答问题,希望这会有所帮助。