从地址(钱包)获取 Elrond 的 esdt 代币(和余额)列表
Getting list with the Elrond's esdt tokens (and balances) from an address (a wallet)
我想从地址(钱包)中获取包含 Elrond 的 esdt 代币(和余额)的列表。我没有任何例子,我试过这样的事情:
const { address, account } = useGetAccountInfo();
const objAddress = new Address(address);
// const data1 = getAccount(address);
const { network } = useGetNetworkConfig();
const proxy = new ProxyProvider(network.apiAddress);
proxy
.getAddressEsdtList(objAddress)
.then(({ returnData }) => {
console.log(returnData);
})
.catch((err) => {
console.error('Unable to call VM query', err);
});
但在控制台中我得到“未定义”。
非常感谢!
在最新的 erdjs
版本中,我没有提供程序的任何 getAddressEsdtList
功能;可行的方法是 extend the network providers.
所以我们知道我们可以用其他功能扩展可用的网络提供者,我们现在需要用一个地址发出请求并接收该地址持有的所有令牌。 api.elrond.com
有一个 endpoint 在 accounts/{address}/tokens
执行此操作。
由于我们有一个端点可以向其发出请求,因此我们现在可以扩展 ApiNetworkProvider
,利用 doGetGeneric
.
// CustomNetworkProvider.js
import { ApiNetworkProvider } from "@elrondnetwork/erdjs-network-providers";
export class CustomNetworkProvider extends ApiNetworkProvider {
async getTokens(address) {
return await this.doGetGeneric(`accounts/${address}/tokens`);
}
}
// index.js
import {CustomNetworkProvider} from "./CustomNetworkProvider.js";
const getProvider = () => {
return new CustomNetworkProvider('https://api.elrond.com', { timeout: 5000 });
}
const provider = getProvider();
const address = 'erd1rf4hv70arudgzus0ymnnsnc4pml0jkywg2xjvzslg0mz4nn2tg7q7k0t6p';
const tokens = await provider.getTokens(address);
console.log(tokens);
我想从地址(钱包)中获取包含 Elrond 的 esdt 代币(和余额)的列表。我没有任何例子,我试过这样的事情:
const { address, account } = useGetAccountInfo();
const objAddress = new Address(address);
// const data1 = getAccount(address);
const { network } = useGetNetworkConfig();
const proxy = new ProxyProvider(network.apiAddress);
proxy
.getAddressEsdtList(objAddress)
.then(({ returnData }) => {
console.log(returnData);
})
.catch((err) => {
console.error('Unable to call VM query', err);
});
但在控制台中我得到“未定义”。
非常感谢!
在最新的 erdjs
版本中,我没有提供程序的任何 getAddressEsdtList
功能;可行的方法是 extend the network providers.
所以我们知道我们可以用其他功能扩展可用的网络提供者,我们现在需要用一个地址发出请求并接收该地址持有的所有令牌。 api.elrond.com
有一个 endpoint 在 accounts/{address}/tokens
执行此操作。
由于我们有一个端点可以向其发出请求,因此我们现在可以扩展 ApiNetworkProvider
,利用 doGetGeneric
.
// CustomNetworkProvider.js
import { ApiNetworkProvider } from "@elrondnetwork/erdjs-network-providers";
export class CustomNetworkProvider extends ApiNetworkProvider {
async getTokens(address) {
return await this.doGetGeneric(`accounts/${address}/tokens`);
}
}
// index.js
import {CustomNetworkProvider} from "./CustomNetworkProvider.js";
const getProvider = () => {
return new CustomNetworkProvider('https://api.elrond.com', { timeout: 5000 });
}
const provider = getProvider();
const address = 'erd1rf4hv70arudgzus0ymnnsnc4pml0jkywg2xjvzslg0mz4nn2tg7q7k0t6p';
const tokens = await provider.getTokens(address);
console.log(tokens);