Testing什麼是
什麼是signer.sendTransaction(...)
及其在 Hardhat 主網分叉文件中的用途?
出於單元測試的目的,我想模擬 DAI 合約將一些 DAI 轉移到我本地區塊鏈環境中的本地錢包地址。我已按照 Hardhat 的主網分叉指南中的說明進行操作,但我不確定以下內容是做什麼的:
const signer = await ethers.provider.getSigner("0x364d6D0333432C3Ac016Ca832fb8594A8cE43Ca6") signer.sendTransaction(...) // what does this do?
中的參數
signer.sendTransaction()
是什麼,是否僅用於將乙太幣從一個合約發送到另一個地址?我可以讓模擬的 DAI 合約批准並將 ETH 從 DAI 合約轉移到本地錢包嗎?這樣做的目的是讓本地簽名者能夠花費 DAI 購買由我正在部署的 ERC1155 合約鑄造的特殊代幣。唯一的貨幣是 DAI,必須增加簽名者的餘額才能讓 DAI 購買該代幣。
signer.sendTransaction() 中的參數是什麼
Signer
是 ethers.js 的概念。檢查它的文件以了解它是如何使用的,但一個簡單的例子是這樣的:await signer.sendTransaction({ to: someAddress, value: ethers.utils.parseEther("1") // 1 ether })
我可以讓模擬的 DAI 合約批准並將 ETH 從 DAI 合約轉移到本地錢包嗎?
是的你可以。你不能做的是冒充 DAI 合約以某種方式修改某個地址的 DAI 餘額。如果你想獲得 DAI,你需要冒充一個賬戶,裡面有很多,或者只使用解鎖賬戶中的 ETH(Hardhat 初始化一些賬戶預設每個 1000 ETH),然後按照你的方式獲取 DAI在主網中,例如使用交易所或打開 Maker 保險庫。