如何使用以太坊RPC API交换代币?

问题描述 投票:0回答:1

我正在尝试使用以太坊 API 编写一个通过 BSC 链交换代币的客户端(我真的不想使用 web3 库)。所以从以太坊 RPC API 文档中学到了一些东西,但我无法真正理解发送原始签名交易的步骤是什么。这是我的示例有效负载:

data = {"jsonrpc": "2.0",
            "method": "eth_sendTransaction",
            "params": [
                {
                    'from': address,
                    'to': self.router_address,
                    'gas': hex(gas),
                    'gasPrice':  hex(gasPrice),
                    'value': hex(ETH_amount),
                    'data': query,
                    "nonce": await self.getTransactionCount(address)
                }],
            "id": _id}

当然还有必要的标题

{"Content-Type": "application/json"}

数据字段(查询变量)基本上取自this交易。如果向下滚动,您可以看到原始有效负载,它当然已成功处理,因为该操作是使用 PancakeSwap 创建的。但是当我发送相同的内容(即使修改了截止日期参数)时,我得到了这个:

{'jsonrpc': '2.0', 'id': 1, 'error': {'code': -32000, 'message': 'unknown account'}}

显然某个地方应该完成签名功能,但我只是不知道如何制作它。有人可以帮助我吗?如何处理数据并发出请求以使交换成功? (例如,从 BNB 到 BUSD - 无需批准步骤)。

ethereum web3js json-rpc binance-smart-chain
1个回答
0
投票

尝试使用 web3.toChecksumAddress("address") 作为您的地址和路由器地址

© www.soinside.com 2019 - 2024. All rights reserved.