Gnosis-Safe

為原生鏈代幣(MATIC/ETH)創建多發交易

  • April 23, 2022

我正在使用 ’ 建立一個多發送事務safe-core-sdk,然後將使用safe-service-clientproposeTransaction方法提出該事務。

我目前可以通過使用以下邏輯建構事務,然後使用核心 sdk 方法創建此事務,來為已部署的 ERC20 執行此操作createTransaction

const transferActions: MetaTransactionData[] = transfers.map(
     (transfer) => ({
       to: transfer.tokenAddress,
       value: '0',
       data: this.getTransferData(transfer.recipientAddress, transfer.tokenAmount),
       operation: 0
     })
   )

wherethis.getTransferData得到編碼的函式數據,如下所示:

 private getTransferData(address: string, amount: number) {
   const contractFunctionData = new ethers.Contract(this.tokenAddress, abi)
   return contractFunctionData.interface.encodeFunctionData('transfer', [
     address,
     parseUnits(amount.toString())
   ])
 }

我將如何為鏈上的原生代幣做類似的事情?就我而言,我正在嘗試建立一個多發送交易,它將 Polygon 網路上的 MATIC 發送到多個地址。我是否需要獲取原生 MATIC 令牌的 ABI 和地址,並遵循相同的步驟?

valueproperty 是本機令牌的值。所以對於原生代幣轉賬,你需要將to屬性指定為收件人的地址,並且value是你要發送的原生代幣的數量。

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