如何加快多个合约的代币平衡
How to speed up token balance on multiple contracts
我正在使用以太币在所有合约上调用 balanceOf 方法来检查用户那里是否有任何余额,如果没有,令牌将不会显示在他的仪表板中,但这需要很多时间,有没有实现相同目标的更巧妙方法?
我的代码:
for (let key in tokens) {
if (tokens.hasOwnProperty(key)) {
let contract_address_to_check = tokens[key].address;
if (contract_address_to_check != "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee") {
const Contract = new ethers.Contract(contract_address_to_check, Abi, provider);
let balance_wei = await Contract.balanceOf(address);
if (balance_wei > 0) {
let decimals = await Contract.decimals();
let balance = balance_wei / 10 ** decimals;
console.log(tokens[key].address);
console.log(tokens[key].decimals);
console.log(tokens[key].symbol);
console.log(balance);
}
}
}
您可以使用 Multicall contract for small wins. A proper solution is indexers like TheGraph 连续读取区块链并保持可用索引数据。
我正在使用以太币在所有合约上调用 balanceOf 方法来检查用户那里是否有任何余额,如果没有,令牌将不会显示在他的仪表板中,但这需要很多时间,有没有实现相同目标的更巧妙方法?
我的代码:
for (let key in tokens) {
if (tokens.hasOwnProperty(key)) {
let contract_address_to_check = tokens[key].address;
if (contract_address_to_check != "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee") {
const Contract = new ethers.Contract(contract_address_to_check, Abi, provider);
let balance_wei = await Contract.balanceOf(address);
if (balance_wei > 0) {
let decimals = await Contract.decimals();
let balance = balance_wei / 10 ** decimals;
console.log(tokens[key].address);
console.log(tokens[key].decimals);
console.log(tokens[key].symbol);
console.log(balance);
}
}
}
您可以使用 Multicall contract for small wins. A proper solution is indexers like TheGraph 连续读取区块链并保持可用索引数据。