Solidity

如何在 Truffle 測試環境中訪問所有者的資金?

  • September 11, 2018

我正在嘗試通過將資金發送到第一個使用者的地址來在 Truffle 測試環境中測試我的簡單基於硬幣的合約。我的理解是通過將合約遷移到區塊鏈來創建合約(從而呼叫建構子),然後創建 X 數量的代幣。然後這些令牌歸我所有,可以在 Solidity 程式碼中以“msg.sender”的形式訪問。我的問題是:我如何使用位於“我的”地址的資金?

truffle 測試環境在contract()塊內提供 Ganache 地址作為回調的參數,例如:

const YourContract = artifacts.require("YourContract.sol");

contract('Your contract test suite', function(accounts){
 const deployer = accounts[0];
 var yourCoin;

 before('Setup contract', async function(){
   yourCoin = await YourContract.deployed()
 }

 it('Your first test...', function(){
   let initialBalance = yourCoin.balanceOf(deployer);
   ...
 });
});

這裡的訣竅是 truffle 使用 Ganache 提供的第一個地址作為所有部署的預設地址。在您的測試中也是如此;如果你在沒有指定{from : ...}區塊的情況下呼叫合約,它會使用accounts[0].

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