首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是web3Py在web3JS中的“web3Py”的“web3JS”?

什么是web3Py在web3JS中的“web3Py”的“web3JS”?
EN

Ethereum用户
提问于 2020-07-11 17:02:52
回答 1查看 2K关注 0票数 2

我正在使用Node与我的智能合同进行交互。我知道我需要先签一下我的交易,然后再寄出去。

在其中一个StackExchange答案中,我看到可以使用buildTransaction方法来完成。

如何在web3JS中执行相同的实现?

EN

回答 1

Ethereum用户

发布于 2020-07-11 17:54:28

抓到你了!

代码语言:javascript
复制
//library
var Web3 = require('web3')
var Contract = require('web3-eth-contract');
var Tx = require('ethereumjs-tx');
    
//infura config
const rpcURL = "infura url"
var web3 = new Web3(rpcURL);

const contractCall = () => {
    const account = <address>
    const privateKey = <privateKey>
    const contractAddress = <contractAddress>
    const contractABI = <abi>

    //init contract
    var contract = new Contract(contractABI,contractAddress);

    //vote2 function ABI
    const myData = contract.methods.<define your method here>.encodeABI();
    console.log(myData)

    // transaction count
    const transactionCount = await web3.eth.getTransactionCount(account);
    console.log(transactionCount);

    // Transaction Object
    const txObject = {
        nonce:    web3.utils.toHex(transactionCount),
        to:       contractAddress,
        value:    web3.utils.toHex(web3.utils.toWei('0', 'ether')),
        gasLimit: web3.utils.toHex(2100000),
        gasPrice: web3.utils.toHex(web3.utils.toWei('6', 'gwei')),
        data: myData  
    }

    // sign
    const tx = new Tx.Transaction(txObject, {chain:'goerli', hardfork: 'petersburg'});
    tx.sign(privateKey);

    const serializedTx = tx.serialize();
    const raw = '0x' + serializedTx.toString('hex');

    // Broadcast the transaction
    const transaction = await web3.eth.sendSignedTransaction(raw);
    console.log(transaction);
}
contractCall();
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/84943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档