Transactions
如何在伺服器端簽署交易?
我有一個伺服器端 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()