我想通过web3或json-rpc调用获取链上的所有糖果机ID
我尝试过使用getProgramAccounts json-rpc,但响应达到了最大响应大小
这是我尝试过的代码。
curl http://api.mainnet-beta.solana.com -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getProgramAccounts",
"params": [
"cndy3Z4yapfJBmL3ShUp5exZKqR3z33thTzeNMm2gRZ",
{
"encoding": "jsonParsed",
"filters": [
]
}
]
}
如何设置过滤器以使糖果机仅在特定日期后推出
或者如何只获取CandyMachines的Publickey作为响应。
如果使用Typescript SDK会更容易。
您可以使用此功能https://project-serum.github.io/anchor/ts/modules/utils.rpc.html#getMultipleAccounts或https://project-serum.github.io/anchor/ts/modules/utils.rpc.html#all获取多个帐户。默认情况下,它将收集公钥拥有的所有帐户。
然后,您可以在要寻址的结构中添加一个匹配特定字节数的筛选器。就是一个例子
let ownerBytes: GetProgramAccountsFilter[] = [{
memcmp: {bytes: owner.toBase58(), offset: 8}
}];
let response = await program.account.userAccounts.all(ownerBytes);
```