Transactions

如何在伺服器端簽署交易?

  • July 15, 2021

我有一個伺服器端 Node.js 應用程序,它向乙太坊智能合約發送交易,如下所示:

const transaction = await contract.methods
   .method_name([params]).send({
     from: [wallet_address]
   });

我的私鑰儲存在伺服器上,但我不知道在哪裡引用它以及如何簽署交易。

任何幫助是極大的讚賞。

是的,你絕對可以!您必須向我們提供 NPM 的 EthereumJS-tx 包,您可以在此處獲取更多資訊:https ://github.com/ethereumjs/ethereumjs-tx 。它很簡單:

const EthereumTx = require('ethereumjs-tx').Transaction
const privateKey = Buffer.from(
 'e331b6d69882b4cb4ea581d88e0b604039a3de5967688d3dcffdd2270c0fd109',
 'hex',
)

const txParams = {
 nonce: '0x00',
 gasPrice: '0x09184e72a000',
 gasLimit: '0x2710',
 to: '0x0000000000000000000000000000000000000000',
 value: '0x00',
 data: '0x7f7465737432000000000000000000000000000000000000000000000000000000600057',
}

// The second parameter is not necessary if these values are used
const tx = new EthereumTx(txParams, { chain: 'mainnet', hardfork: 'petersburg' })
tx.sign(privateKey)
const serializedTx = tx.serialize()

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