我想用 getProgramAccounts 返回所有的 bonding curve账户, 已经加了所有限制,还是不能返回, 不知道gmgn等网站是怎么做到的?
const PUMP_BONDING_CURVE_SIGNATURE = Uint8Array.from([0x17, 0xb7, 0xf8, 0x37, 0x60, 0xd8, 0xac, 0x60]);
const accounts = await connection.getProgramAccounts(PUMP_PROGRAM_ID,
{
// 限制返回的账户数
filters: [
{ dataSize: 49 },
// 查找特定开头的数据
{ memcmp: { offset: 0, bytes: bs58.encode(PUMP_BONDING_CURVE_SIGNATURE) } },
],
// - **offset**: 从原始账户数据的第几个字节开始返回数据(跳过签名)
// - **length**: 返回多少字节的数据
dataSlice: { offset: 0, length: 0 },
// minContextSlot: await connection.getSlot() - 100 // 仅获取最近1000个区块的数据
}
);