Solidity
如何在 Truffle 測試環境中訪問所有者的資金?
我正在嘗試通過將資金發送到第一個使用者的地址來在 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]
.