Nodejs
如何為 Ethers Signer 設置私鑰
我想使用Ethers library呼叫智能合約函式。由於我有自己的節點,我正在使用RPC 連接進行連接,現在我想呼叫一個
transfer
函式(ERC20 合約的),根據文件要求我使用簽名者:const provider = new ethers.providers.JsonRpcProvider(NODE_URL) const signer = provider.getSigner() // Read-Write; By connecting to a Signer, allows: // - Everything from Read-Only (except as Signer, not anonymous) // - Sending transactions for non-constant functions const erc20_rw = new ethers.Contract(erc20ContractAddress, abi, signer) const tx = await erc20_rw.transfer(targetAddress, amount)
我的問題是:我應該在哪裡提供我的私鑰?我的意思是 -提供者要求我只提供一個節點 url,並且簽名者由提供者提供。我正在呼叫轉移,這顯然需要我在某個時候提供私鑰。我錯過了什麼?
您可以簡單地替換上面程式碼中的第二行,而是按如下方式定義簽名者:
const signer = new ethers.Wallet(your_private_key_string, provider);
您還可以從助記符而不是私鑰定義簽名者,如下所示:
const account = utils.HDNode.fromMnemonic(your_mnemonic_string).derivePath(`m/44'/60'/0'/0/${your_selected_account}`); const signer = new Wallet(account, provider);
要使用的帳戶索引在哪裡
your_selected_account
,從 0 開始。注意:確保為您使用正確的派生路徑(Ledger、MEW、Metamask、..etc)。