我正在考虑在 Azure 上为我的 erc-20 令牌开发 Tron 和以太坊链之间的桥梁,并将我的私钥存储在 Azure 密钥保管库中。对于以太坊,我找到了一个很好的库:https: //github.com/tmarkovski/ethereumjs-tx-keyvault,但是同样的方法可以在 tronweb 中使用吗?tronweb 使用 elliptic.js 进行签名:
export function ECKeySign(hashBytes, priKeyBytes) {
const ec = new EC("secp256k1");
const key = ec.keyFromPrivate(priKeyBytes, "bytes");
const signature = key.sign(hashBytes);
const r = signature.r;
const s = signature.s;
const id = signature.recoveryParam;
let rHex = r.toString("hex");
while (rHex.length < 64) {
rHex = `0${rHex}`;
}
let sHex = s.toString("hex");
while (sHex.length < 64) {
sHex = `0${sHex}`;
}
const idHex = byte2hexStr(id);
const signHex = …Run Code Online (Sandbox Code Playgroud) 我正在 tron 上创建一个 dapp 并使用 tronweb npm 包。我使用它的 watch() 来监听事件,但有时它会错过该事件。有人面临同样的问题吗?有什么替代方案吗?
我想建立一个用于 usdt 支付的网关,为此,我使用 Tronweb tronWeb.utils.accounts.generateAccount()方法,我生成了一个地址,将 1 usdt 转入其中,现在我想将资金转入另一个地址。发送交易时出现错误:
error: 'CONTRACT_VALIDATE_ERROR',
message: 'contract validate error : account does not exist'
This is my code:
const TronWeb = require('tronweb');
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider("https://api.trongrid.io");
const solidityNode = new HttpProvider("https://api.trongrid.io");
const eventServer = new HttpProvider("https://api.trongrid.io");
const privateKey = "c83f36ae2e8661170e798ca73181693b76d75af016666e6f6baad92f69cfa1e2";
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privateKey);
const trc20ContractAddress = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";//contract address
const addressTo = "TYcDSZor5ZgTsVMCZe1czfPEu8kzn6qe7L";
async function transfer() {
try {
const ownerAddress = tronWeb.address.fromPrivateKey(privateKey);
const contractAddressHex …Run Code Online (Sandbox Code Playgroud) 我正在尝试调用一个简单的合同方法,它只返回一串数据。我的代码基于可以在文档中找到的示例 => https://developers.tron.network/reference#methodcall
tronWeb.trx.getContract("TFWbGYFVjUMKrHALdU4MnFWNYY9Uc5W9SZ").then(async contract => {
console.log(contract);
let abi = contract.abi;
console.log(abi);
let c = await tronWeb.contract({
abi
});
let result = await c.getBadgeOwner('something is up').call();
console.log(result);
});
Run Code Online (Sandbox Code Playgroud)
与文档中可以找到的不同之处在于,我正在从加载的合同中加载 abi,而不是像示例中那样对其进行硬编码。
我得到的错误index.js:105 Uncaught (in promise) TypeError: e.forEach is not a function似乎以某种方式引用了 abi:
我正在使用 tron web 查询地址的交易,但它不会返回发送到该地址的交易,该地址传输的令牌为 TRC20。
这不起作用。我想获取某个地址上的交易并获取 TRX、trc10 和 trc20 交易。
我做错了什么或怎么做?
这是我的代码块:
tronWeb.setDefaultBlock("latest");
var result = await tronGrid.account.getTransactions(address, {
only_confirmed: true,
only_to: true,
limit: 10
});
console.log(JSON.stringify(result));
})();
Run Code Online (Sandbox Code Playgroud) 我正在尝试访问当前登录的 tronlink 帐户,以便使用 tronlink 为我的 dapp 进行身份验证。使用metamask和web3我可以使用以下方法获取MetaMask上当前的活动帐户:
const userPublicAddress = web3.eth.coinbase
Run Code Online (Sandbox Code Playgroud)
tronweb 和 tronlink 的类似方法是什么?我在文档中没有发现这一点。
如何在node js中使用tronweb无限制地获取tron网络中合约的所有事件日志?或者是否需要任何中间件存储,例如redis等?在加载 dapp 主页之前需要一次性获取所有数据。dApp 是用 React js 制作的。Trongrid api 有单个请求 200 条记录的限制。