@solana/rpc-graphql 5.1.1-canary-20251216194212 → 5.1.1-canary-20251217070026
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs.map +1 -1
- package/dist/types/loaders/coalescer.d.ts +1 -1
- package/dist/types/loaders/coalescer.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/loaders/loader.ts","../src/loaders/coalescer.ts","../src/loaders/account.ts","../src/loaders/block.ts","../src/loaders/program-accounts.ts","../src/loaders/transaction.ts","../src/context.ts","../src/schema/type-defs/account.ts","../src/schema/type-defs/block.ts","../src/schema/type-defs/instruction.ts","../src/schema/type-defs/root.ts","../src/schema/type-defs/transaction.ts","../src/schema/type-defs/types.ts","../src/schema/type-defs/index.ts","../src/resolvers/resolve-info/visitor.ts","../src/resolvers/resolve-info/account.ts","../src/resolvers/resolve-info/transaction.ts","../src/resolvers/resolve-info/block.ts","../src/resolvers/resolve-info/program-accounts.ts","../src/resolvers/account.ts","../src/schema/type-resolvers/account.ts","../src/schema/type-resolvers/block.ts","../src/schema/type-resolvers/instruction.ts","../src/resolvers/transaction.ts","../src/resolvers/block.ts","../src/resolvers/program-accounts.ts","../src/schema/type-resolvers/root.ts","../src/schema/type-resolvers/transaction.ts","../src/schema/type-resolvers/types.ts","../src/schema/type-resolvers/index.ts","../src/index.ts"],"names":["stringify","toFetch","args","promiseCallbacksForSignature","promiseCallbacksForAddress","getBase58Codec","getBase64Codec","ii","DataLoader","visit","onlyFieldsRequested","BREAK","info","isInterfaceType","findArgumentNodeByName","programName","programId","instructionType","jsonParsedConfigs","i","Kind","graphql","schema","makeExecutableSchema"],"mappings":"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AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACAtC,IAAM,aAAA;AAAA;AAAA,EAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACGpC,IAAM,mBAAA;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACH1C,IAAM,YAAA;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACAnC,IAAM,mBAAA;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACA1C,IAAM,YAAA;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA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","file":"index.browser.cjs","sourcesContent":["import type { Address } from '@solana/addresses';\nimport stringify from '@solana/fast-stable-stringify';\nimport type { Signature } from '@solana/keys';\nimport type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi } from '@solana/rpc';\nimport type {\n Commitment,\n GetProgramAccountsDatasizeFilter,\n GetProgramAccountsMemcmpFilter,\n Slot,\n} from '@solana/rpc-types';\n\nexport type BatchLoadPromiseCallback<T> = Readonly<{\n reject: (reason?: unknown) => void;\n resolve: (value: T) => void;\n}>;\n\n// Loader base types\nexport type LoadFn<TArgs, T> = (args: TArgs) => Promise<T>;\nexport type LoadManyFn<TArgs, T> = (args: TArgs[]) => Promise<(Error | T)[]>;\nexport type Loader<TArgs, T> = { load: LoadFn<TArgs, T>; loadMany: LoadManyFn<TArgs, T> };\n\nexport type AccountLoaderArgsBase = {\n /**\n * Fetch the details of the account as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default commitment\n * is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on the client, the\n * default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n dataSlice?: { length: number; offset: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions up to\n * this slot\n */\n minContextSlot?: Slot;\n};\nexport type AccountLoaderArgs = AccountLoaderArgsBase & { address: Address };\nexport type AccountLoaderValue = ReturnType<GetAccountInfoApi['getAccountInfo']>['value'] | null;\nexport type AccountLoader = Loader<AccountLoaderArgs, AccountLoaderValue>;\n\nexport type BlockLoaderArgsBase = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: 'legacy' | 0;\n rewards?: boolean;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\nexport type BlockLoaderArgs = BlockLoaderArgsBase & { slot: Slot };\nexport type BlockLoaderValue = ReturnType<GetBlockApi['getBlock']> | null;\nexport type BlockLoader = Loader<BlockLoaderArgs, BlockLoaderValue>;\n\nexport type MultipleAccountsLoaderArgs = AccountLoaderArgsBase & { addresses: Address[] };\nexport type MultipleAccountsLoaderValue = AccountLoaderValue[];\nexport type MultipleAccountsLoader = Loader<MultipleAccountsLoaderArgs, MultipleAccountsLoaderValue>;\n\nexport type ProgramAccountsLoaderArgsBase = {\n /**\n * Fetch the details of the accounts as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default commitment\n * is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on the client, the\n * default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n dataSlice?: { length: number; offset: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters?: (GetProgramAccountsDatasizeFilter | GetProgramAccountsMemcmpFilter)[];\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions up to\n * this slot\n */\n minContextSlot?: Slot;\n};\nexport type ProgramAccountsLoaderArgs = ProgramAccountsLoaderArgsBase & { programAddress: Address };\nexport type ProgramAccountsLoaderValue = ReturnType<GetProgramAccountsApi['getProgramAccounts']>;\nexport type ProgramAccountsLoader = Loader<ProgramAccountsLoaderArgs, ProgramAccountsLoaderValue>;\n\nexport type TransactionLoaderArgsBase = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n};\nexport type TransactionLoaderArgs = TransactionLoaderArgsBase & { signature: Signature };\nexport type TransactionLoaderValue = ReturnType<GetTransactionApi['getTransaction']> | null;\nexport type TransactionLoader = Loader<TransactionLoaderArgs, TransactionLoaderValue>;\n\nexport type RpcGraphQLLoaders = {\n account: AccountLoader;\n block: BlockLoader;\n programAccounts: ProgramAccountsLoader;\n transaction: TransactionLoader;\n};\n\nexport const cacheKeyFn = (obj: unknown) => stringify(obj) ?? '';\n","import { DataSlice } from '@solana/rpc-types';\n\nimport { BatchLoadPromiseCallback, cacheKeyFn } from './loader';\n\ntype Encoding = ('base58' | 'base64' | 'base64+zstd' | 'jsonParsed') | ('base58' | 'base64' | 'json' | 'jsonParsed');\n\nexport type Fetch<TArgs extends { encoding?: Encoding }, TValue> = Readonly<{\n args: TArgs;\n promiseCallback: BatchLoadPromiseCallback<TValue>;\n}>;\nexport type ToFetchMap<TArgs extends { encoding?: Encoding }, TValue> = {\n [key: string]: Fetch<TArgs, TValue>[];\n};\nexport type FetchesByArgsHash<TArgs extends { encoding?: Encoding }, TValue> = {\n [argsHash: string]: {\n args: TArgs;\n fetches: {\n [key: string]: {\n callbacks: BatchLoadPromiseCallback<TValue>[];\n };\n };\n };\n};\nexport type FetchesByArgsHashWithDataSlice<TArgs extends { dataSlice?: DataSlice; encoding?: Encoding }, TValue> = {\n [argsHash: string]: {\n args: TArgs;\n fetches: {\n [key: string]: {\n callbacks: {\n callback: BatchLoadPromiseCallback<TValue>;\n dataSlice?: DataSlice | null;\n }[];\n };\n };\n };\n};\n\nconst hashOmit = <TArgs extends object>(args: TArgs, omit: (keyof TArgs)[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const argsObj: any = {};\n for (const [key, value] of Object.entries(args)) {\n if (!omit.includes(key as keyof TArgs)) {\n argsObj[key] = value;\n }\n }\n return cacheKeyFn(argsObj);\n};\n\nexport function buildCoalescedFetchesByArgsHash<TArgs extends { encoding?: Encoding }, TValue>(\n toFetchMap: ToFetchMap<TArgs, TValue>,\n orphanConfig: {\n criteria: (args: TArgs) => boolean;\n defaults: (args: TArgs) => TArgs;\n hashOmit: (keyof TArgs)[];\n },\n): FetchesByArgsHash<TArgs, TValue> {\n const fetchesByArgsHash: FetchesByArgsHash<TArgs, TValue> = {};\n\n // Keep track of any fetches that don't specify an encoding, to be\n // wrapped into another fetch that does.\n const orphanedFetches: typeof toFetchMap = {};\n\n Object.entries(toFetchMap).forEach(([signature, toFetch]) => {\n toFetch.forEach(({ args, promiseCallback }) => {\n if (orphanConfig.criteria(args)) {\n const toFetch = (orphanedFetches[signature] ||= []);\n toFetch.push({ args, promiseCallback });\n return;\n }\n\n const argsHash = hashOmit(args, []);\n const transactionFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForSignature } = (transactionFetches.fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(promiseCallback);\n });\n });\n\n // Place the orphans\n Object.entries(orphanedFetches).forEach(([signature, toFetch]) => {\n toFetch.forEach(({ args: orphanArgs, promiseCallback: orphanPromiseCallback }) => {\n if (Object.keys(fetchesByArgsHash).length !== 0) {\n for (const { fetches, args } of Object.values(fetchesByArgsHash)) {\n // Check if the two arg sets are a match without `encoding`\n if (hashOmit(orphanArgs, orphanConfig.hashOmit) === hashOmit(args, orphanConfig.hashOmit)) {\n const { callbacks: promiseCallbacksForSignature } = (fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(orphanPromiseCallback);\n return;\n }\n }\n }\n // Create a new fetch.\n const args = orphanConfig.defaults(orphanArgs);\n const argsHash = hashOmit(args, []);\n const transactionFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForSignature } = (transactionFetches.fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(orphanPromiseCallback);\n });\n });\n\n return fetchesByArgsHash;\n}\n\nexport function buildCoalescedFetchesByArgsHashWithDataSlice<\n TArgs extends { dataSlice?: DataSlice; encoding?: Encoding },\n TValue,\n>(toFetchMap: ToFetchMap<TArgs, TValue>, maxDataSliceByteRange: number): FetchesByArgsHashWithDataSlice<TArgs, TValue> {\n const fetchesByArgsHash: FetchesByArgsHashWithDataSlice<TArgs, TValue> = {};\n\n // Keep track of any fetches that don't specify an encoding, to be\n // wrapped into another fetch that does.\n const orphanedFetches: typeof toFetchMap = {};\n\n Object.entries(toFetchMap).forEach(([address, toFetch]) => {\n toFetch.forEach(({ args, promiseCallback }) => {\n // As per the schema, `encoding` can only be provided if a\n // `data` field is present, and the argument is required.\n // So we can assume if no encoding is provided, this\n // particular fetch is not concerned with data. We can\n // combine it with some other fetch.\n if (!args.encoding) {\n const toFetch = (orphanedFetches[address] ||= []);\n toFetch.push({ args, promiseCallback });\n return;\n }\n // As per the schema, `dataSlice` cannot be provided without\n // encoding.\n // Don't try to combine fetches with `base64+zstd` encoding.\n if (args.encoding != 'base64+zstd' && args.dataSlice) {\n // If the fetch arg set has `dataSlice` provided, try\n // to combine it with another request.\n const r = args.dataSlice;\n for (const { fetches: fetchAddresses, args: fetchArgs } of Object.values(fetchesByArgsHash)) {\n /**\n * Add a callback to the list of callbacks for the current address,\n * possibly updating the `dataSlice` argument used for the entire\n * fetch.\n */\n const addCallbackWithDataSlice = (updateDataSlice?: DataSlice) => {\n const { callbacks: promiseCallbacksForAddress } = (fetchAddresses[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({\n callback: promiseCallback,\n dataSlice: args.dataSlice ?? null,\n });\n if (fetchArgs.dataSlice && updateDataSlice) {\n fetchArgs.dataSlice = updateDataSlice;\n }\n };\n\n // Check if the two arg sets are a match without the `dataSlice`\n // argument.\n if (hashOmit(args, ['dataSlice']) === hashOmit(fetchArgs, ['dataSlice'])) {\n if (fetchArgs.dataSlice) {\n // The arg sets match, and the fetch arg set has a `dataSlice`\n // argument. Try to merge the two account fetches.\n const g = fetchArgs.dataSlice;\n if (r.offset <= g.offset && g.offset - r.offset + r.length <= maxDataSliceByteRange) {\n const length = Math.max(r.length, g.offset + g.length - r.offset);\n const offset = r.offset;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n if (r.offset >= g.offset && r.offset - g.offset + g.length <= maxDataSliceByteRange) {\n const length = Math.max(g.length, r.offset + r.length - g.offset);\n const offset = g.offset;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n } else {\n // The arg sets match, and the fetch arg set has no `dataSlice`\n // argument. Merge the two account fetches.\n const { length, offset } = r;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n }\n }\n }\n // Either the fetch arg set has no `dataSlice` argument, or\n // it couldn't be combined with another fetch, likely due to\n // the wasted byte limitation.\n // Add the fetch to the list as a new fetch.\n const argsHash = hashOmit(args, []);\n const accountFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForAddress } = (accountFetches.fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: promiseCallback, dataSlice: args.dataSlice ?? null });\n });\n });\n\n // Place the orphans\n Object.entries(orphanedFetches).forEach(([address, toFetch]) => {\n toFetch.forEach(({ args: orphanedArgs, promiseCallback: orphanPromiseCallback }) => {\n if (Object.keys(fetchesByArgsHash).length !== 0) {\n for (const { fetches, args } of Object.values(fetchesByArgsHash)) {\n // Check if the two arg sets are a match without\n // `encoding` and `dataSlice` arguments.\n if (\n hashOmit(orphanedArgs, ['encoding', 'dataSlice']) === hashOmit(args, ['encoding', 'dataSlice'])\n ) {\n const { callbacks: promiseCallbacksForAddress } = (fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: orphanPromiseCallback });\n return;\n }\n }\n }\n // Create a new fetch. Prefer `base64` encoding.\n const args: TArgs = { ...orphanedArgs, encoding: 'base64' };\n const argsHash = hashOmit(args, []);\n const accountFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForAddress } = (accountFetches.fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: orphanPromiseCallback });\n });\n });\n\n return fetchesByArgsHash;\n}\n","import { Address } from '@solana/addresses';\nimport { getBase58Codec, getBase64Codec } from '@solana/codecs-strings';\nimport type { GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHashWithDataSlice, ToFetchMap } from './coalescer';\nimport {\n AccountLoader,\n AccountLoaderArgs,\n AccountLoaderArgsBase,\n AccountLoaderValue,\n cacheKeyFn,\n MultipleAccountsLoaderArgs,\n} from './loader';\n\ntype Config = {\n maxDataSliceByteRange: number;\n maxMultipleAccountsBatchSize: number;\n};\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nfunction getCodec(encoding: Encoding) {\n switch (encoding) {\n case 'base58':\n return getBase58Codec();\n default:\n return getBase64Codec();\n }\n}\n\nexport function sliceData(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n account: any,\n dataSlice?: DataSlice | null,\n masterDataSlice?: DataSlice,\n) {\n if (dataSlice) {\n const masterOffset = masterDataSlice ? masterDataSlice.offset : 0;\n\n const slicedData = (data: string, encoding: Encoding): string => {\n if (encoding === 'base64+zstd') {\n // Don't slice `base64+zstd` encoding.\n return data;\n }\n const { offset, length } = dataSlice;\n const trueOffset = offset - masterOffset;\n const codec = getCodec(encoding);\n return codec.decode(codec.encode(data).slice(trueOffset, trueOffset + length));\n };\n\n if (Array.isArray(account.data)) {\n const [data, encoding] = account.data;\n return {\n ...account,\n data: [slicedData(data, encoding), encoding],\n };\n } else if (typeof account.data === 'string') {\n const data = account.data;\n return {\n ...account,\n data: slicedData(data, 'base58'),\n };\n }\n }\n return account;\n}\n\n/**\n * Load an account using the RPC's `getAccountInfo` method.\n */\nasync function loadAccount(rpc: Rpc<GetAccountInfoApi>, { address, ...config }: AccountLoaderArgs) {\n return await rpc\n .getAccountInfo(address, config)\n .send()\n .then(res => res.value);\n}\n\n/**\n * Load multiple accounts using the RPC's `getMultipleAccounts` method.\n */\nasync function loadMultipleAccounts(\n rpc: Rpc<GetMultipleAccountsApi>,\n { addresses, ...config }: MultipleAccountsLoaderArgs,\n) {\n return await rpc\n .getMultipleAccounts(addresses, config)\n .send()\n .then(res => res.value);\n}\n\nfunction createAccountBatchLoadFn(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, config: Config) {\n const resolveAccountUsingRpc = loadAccount.bind(null, rpc);\n const resolveMultipleAccountsUsingRpc = loadMultipleAccounts.bind(null, rpc);\n return (accountQueryArgs: readonly AccountLoaderArgs[]): ReturnType<AccountLoader['loadMany']> => {\n /**\n * Gather all the accounts that need to be fetched, grouped by address.\n */\n const accountsToFetch: ToFetchMap<AccountLoaderArgsBase, AccountLoaderValue> = {};\n try {\n return Promise.all(\n accountQueryArgs.map(\n ({ address, ...args }) =>\n new Promise((resolve, reject) => {\n const accountRecords = (accountsToFetch[address] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n accountRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<AccountLoader['loadMany']>;\n } finally {\n const { maxDataSliceByteRange, maxMultipleAccountsBatchSize } = config;\n\n /**\n * Group together accounts that are fetched with identical args.\n */\n const accountFetchesByArgsHash = buildCoalescedFetchesByArgsHashWithDataSlice(\n accountsToFetch,\n maxDataSliceByteRange,\n );\n\n /**\n * For each set of accounts related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(accountFetchesByArgsHash).map(({ args, fetches: addressCallbacks }) => {\n const addresses = Object.keys(addressCallbacks) as Address[];\n if (addresses.length === 1) {\n const address = addresses[0];\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveAccountUsingRpc({ address, ...args });\n addressCallbacks[address].callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n } catch (e) {\n addressCallbacks[address].callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n }\n });\n } else {\n return Array.from(\n { length: Math.ceil(addresses.length / maxMultipleAccountsBatchSize) },\n async (_, ii) => {\n const startIndex = ii * maxMultipleAccountsBatchSize;\n const endIndex = startIndex + maxMultipleAccountsBatchSize;\n const chunk = addresses.slice(startIndex, endIndex);\n try {\n const results = await resolveMultipleAccountsUsingRpc({\n addresses: chunk,\n ...args,\n });\n chunk.forEach((address, ii) => {\n const result = results[ii];\n addressCallbacks[address].callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n });\n } catch (e) {\n chunk.forEach(address => {\n addressCallbacks[address].callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n });\n }\n },\n );\n }\n });\n }\n };\n}\n\nexport function createAccountLoader(\n rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>,\n config: Config,\n): AccountLoader {\n const loader = new DataLoader(createAccountBatchLoadFn(rpc, config), { cacheKeyFn });\n return {\n load: args => loader.load(args),\n loadMany: args => loader.loadMany(args),\n };\n}\n","import type { GetBlockApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHash, ToFetchMap } from './coalescer';\nimport { BlockLoader, BlockLoaderArgs, BlockLoaderArgsBase, BlockLoaderValue, cacheKeyFn } from './loader';\n\nasync function loadBlock(rpc: Rpc<GetBlockApi>, { slot, ...config }: BlockLoaderArgs): Promise<BlockLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getBlock(\n slot,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createBlockBatchLoadFn(rpc: Rpc<GetBlockApi>) {\n const resolveBlockUsingRpc = loadBlock.bind(null, rpc);\n return (blockQueryArgs: readonly BlockLoaderArgs[]): ReturnType<BlockLoader['loadMany']> => {\n /**\n * Gather all the blocks that need to be fetched, grouped by slot.\n */\n const blocksToFetch: ToFetchMap<BlockLoaderArgsBase, BlockLoaderValue> = {};\n try {\n return Promise.all(\n blockQueryArgs.map(\n ({ slot, ...args }) =>\n new Promise((resolve, reject) => {\n const blockRecords = (blocksToFetch[slot.toString()] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n blockRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<BlockLoader['loadMany']>;\n } finally {\n /**\n * Group together blocks that are fetched with identical args.\n */\n const blockFetchesByArgsHash = buildCoalescedFetchesByArgsHash(blocksToFetch, {\n criteria: (args: BlockLoaderArgsBase) =>\n args.encoding === undefined && args.transactionDetails !== 'signatures',\n defaults: (args: BlockLoaderArgsBase) => ({\n ...args,\n transactionDetails: 'none' as BlockLoaderArgsBase['transactionDetails'],\n }),\n hashOmit: ['encoding', 'transactionDetails'],\n });\n\n /**\n * For each set of blocks related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(blockFetchesByArgsHash).map(({ args, fetches: blockCallbacks }) => {\n return Object.entries(blockCallbacks).map(([slot, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveBlockUsingRpc({\n slot: BigInt(slot),\n ...args,\n });\n callbacks.forEach(c => c.resolve(result));\n } catch (e) {\n callbacks.forEach(c => c.reject(e));\n }\n });\n });\n });\n }\n };\n}\n\nexport function createBlockLoader(rpc: Rpc<GetBlockApi>): BlockLoader {\n const loader = new DataLoader(createBlockBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: args => loader.load({ ...args, maxSupportedTransactionVersion: 0 }),\n loadMany: args => loader.loadMany(args.map(a => ({ ...a, maxSupportedTransactionVersion: 0 }))),\n };\n}\n","import type { GetProgramAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { sliceData } from './account';\nimport { buildCoalescedFetchesByArgsHashWithDataSlice, ToFetchMap } from './coalescer';\nimport {\n cacheKeyFn,\n ProgramAccountsLoader,\n ProgramAccountsLoaderArgs,\n ProgramAccountsLoaderArgsBase,\n ProgramAccountsLoaderValue,\n} from './loader';\n\ntype Config = {\n maxDataSliceByteRange: number;\n};\n\nasync function loadProgramAccounts(\n rpc: Rpc<GetProgramAccountsApi>,\n { programAddress, ...config }: ProgramAccountsLoaderArgs,\n): Promise<ProgramAccountsLoaderValue> {\n return await rpc.getProgramAccounts(programAddress, config).send();\n}\n\nfunction createProgramAccountsBatchLoadFn(rpc: Rpc<GetProgramAccountsApi>, config: Config) {\n const resolveProgramAccountsUsingRpc = loadProgramAccounts.bind(null, rpc);\n return (accountQueryArgs: readonly ProgramAccountsLoaderArgs[]): ReturnType<ProgramAccountsLoader['loadMany']> => {\n /**\n * Gather all the program-accounts that need to be fetched, grouped by\n * program address.\n */\n const programAccountsToFetch: ToFetchMap<ProgramAccountsLoaderArgsBase, ProgramAccountsLoaderValue> = {};\n try {\n return Promise.all(\n accountQueryArgs.map(\n ({ programAddress, ...args }) =>\n new Promise((resolve, reject) => {\n const accountRecords = (programAccountsToFetch[programAddress] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n accountRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<ProgramAccountsLoader['loadMany']>;\n } finally {\n const { maxDataSliceByteRange } = config;\n\n /**\n * Group together program-accounts that are fetched with identical args.\n */\n const programAccountsFetchesByArgsHash = buildCoalescedFetchesByArgsHashWithDataSlice(\n programAccountsToFetch,\n maxDataSliceByteRange,\n );\n\n /**\n * For each set of program-accounts related to some common args, fetch them in the fewest\n * number of network requests.\n */\n Object.values(programAccountsFetchesByArgsHash).map(({ args, fetches: programAddressCallbacks }) => {\n return Object.entries(programAddressCallbacks).map(([programAddress, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveProgramAccountsUsingRpc({\n programAddress,\n ...args,\n } as ProgramAccountsLoaderArgs);\n callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n } catch (e) {\n callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n }\n });\n });\n });\n }\n };\n}\n\nexport function createProgramAccountsLoader(rpc: Rpc<GetProgramAccountsApi>, config: Config): ProgramAccountsLoader {\n const loader = new DataLoader(createProgramAccountsBatchLoadFn(rpc, config), { cacheKeyFn });\n return {\n load: args => loader.load(args),\n loadMany: args => loader.loadMany(args),\n };\n}\n","import type { GetTransactionApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHash, ToFetchMap } from './coalescer';\nimport {\n cacheKeyFn,\n TransactionLoader,\n TransactionLoaderArgs,\n TransactionLoaderArgsBase,\n TransactionLoaderValue,\n} from './loader';\n\nasync function loadTransaction(\n rpc: Rpc<GetTransactionApi>,\n { signature, ...config }: TransactionLoaderArgs,\n): Promise<TransactionLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getTransaction(\n signature,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createTransactionBatchLoadFn(rpc: Rpc<GetTransactionApi>) {\n const resolveTransactionUsingRpc = loadTransaction.bind(null, rpc);\n return (transactionQueryArgs: readonly TransactionLoaderArgs[]): ReturnType<TransactionLoader['loadMany']> => {\n /**\n * Gather all the transactions that need to be fetched, grouped by signature.\n */\n const transactionsToFetch: ToFetchMap<TransactionLoaderArgsBase, TransactionLoaderValue> = {};\n try {\n return Promise.all(\n transactionQueryArgs.map(\n ({ signature, ...args }) =>\n new Promise((resolve, reject) => {\n const transactionRecords = (transactionsToFetch[signature] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n transactionRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<TransactionLoader['loadMany']>;\n } finally {\n /**\n * Group together transactions that are fetched with identical args.\n */\n const transactionFetchesByArgsHash = buildCoalescedFetchesByArgsHash(transactionsToFetch, {\n criteria: (args: TransactionLoaderArgsBase) => args.encoding === undefined,\n defaults: (args: TransactionLoaderArgsBase) => ({ ...args, encoding: 'base64' }),\n hashOmit: ['encoding'],\n });\n\n /**\n * For each set of transactions related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(transactionFetchesByArgsHash).map(({ args, fetches: transactionCallbacks }) => {\n return Object.entries(transactionCallbacks).map(([signature, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveTransactionUsingRpc({\n signature,\n ...args,\n } as TransactionLoaderArgs);\n callbacks.forEach(c => c.resolve(result));\n } catch (e) {\n callbacks.forEach(c => c.reject(e));\n }\n });\n });\n });\n }\n };\n}\n\nexport function createTransactionLoader(rpc: Rpc<GetTransactionApi>): TransactionLoader {\n const loader = new DataLoader(createTransactionBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: args => loader.load(args),\n loadMany: args => loader.loadMany(args),\n };\n}\n","import type {\n GetAccountInfoApi,\n GetBlockApi,\n GetMultipleAccountsApi,\n GetProgramAccountsApi,\n GetTransactionApi,\n Rpc,\n} from '@solana/rpc';\n\nimport {\n createAccountLoader,\n createBlockLoader,\n createProgramAccountsLoader,\n createTransactionLoader,\n RpcGraphQLLoaders,\n} from './loaders';\n\ntype Config = {\n /**\n * Maximum number of acceptable bytes to waste before splitting two\n * `dataSlice` requests into two requests.\n */\n maxDataSliceByteRange: number;\n /**\n * Maximum number of accounts to fetch in a single batch.\n * See https://docs.solana.com/api/http#getmultipleaccounts.\n */\n maxMultipleAccountsBatchSize: number;\n};\n\nexport interface RpcGraphQLContext {\n loaders: RpcGraphQLLoaders;\n}\n\nexport function createSolanaGraphQLContext(\n rpc: Rpc<GetAccountInfoApi & GetBlockApi & GetMultipleAccountsApi & GetProgramAccountsApi & GetTransactionApi>,\n config: Config,\n): RpcGraphQLContext {\n return {\n loaders: {\n account: createAccountLoader(rpc, config),\n block: createBlockLoader(rpc),\n programAccounts: createProgramAccountsLoader(rpc, config),\n transaction: createTransactionLoader(rpc),\n },\n };\n}\n","export const accountTypeDefs = /* GraphQL */ `\n \"\"\"\n Token-2022 Extensions (Account State)\n \"\"\"\n interface SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: Confidential Transfer Fee Config\n \"\"\"\n type SplTokenExtensionConfidentialTransferFeeConfig implements SplTokenExtension {\n extension: String\n authority: Account\n harvestToMintEnabled: Boolean\n withdrawWithheldAuthorityElgamalPubkey: Address\n withheldAmount: String\n }\n\n \"\"\"\n Token-2022 Extension: Confidential Transfer Mint\n \"\"\"\n type SplTokenExtensionConfidentialTransferMint implements SplTokenExtension {\n extension: String\n auditorElgamalPubkey: Address\n authority: Account\n autoApproveNewAccounts: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: Default Account State\n \"\"\"\n type SplTokenExtensionDefaultAccountState implements SplTokenExtension {\n extension: String\n accountState: SplTokenDefaultAccountState\n }\n\n \"\"\"\n Token-2022 Extension: Group Pointer\n \"\"\"\n type SplTokenExtensionGroupPointer implements SplTokenExtension {\n extension: String\n authority: Account\n groupAddress: Account\n }\n\n \"\"\"\n Token-2022 Extension: Group Member Pointer\n \"\"\"\n type SplTokenExtensionGroupMemberPointer implements SplTokenExtension {\n extension: String\n authority: Account\n memberAddress: Account\n }\n\n \"\"\"\n Token-2022 Extension: Interest-Bearing Config\n \"\"\"\n type SplTokenExtensionInterestBearingConfig implements SplTokenExtension {\n extension: String\n currentRate: Int\n initializationTimestamp: BigInt\n lastUpdateTimestamp: BigInt\n preUpdateAverageRate: Int\n rateAuthority: Account\n }\n\n \"\"\"\n Token-2022 Extension: Metadata Pointer\n \"\"\"\n type SplTokenExtensionMetadataPointer implements SplTokenExtension {\n extension: String\n authority: Account\n metadataAddress: Account\n }\n\n \"\"\"\n Token-2022 Extension: Mint Close Authority\n \"\"\"\n type SplTokenExtensionMintCloseAuthority implements SplTokenExtension {\n extension: String\n closeAuthority: Account\n }\n\n \"\"\"\n Token-2022 Extension: Non-Transferable\n \"\"\"\n type SplTokenExtensionNonTransferable implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: Permanent Delegate\n \"\"\"\n type SplTokenExtensionPermanentDelegate implements SplTokenExtension {\n extension: String\n delegate: Account\n }\n\n \"\"\"\n Token-2022 Extension: Token Group\n \"\"\"\n type SplTokenExtensionTokenGroup implements SplTokenExtension {\n extension: String\n maxSize: BigInt\n mint: Account\n size: BigInt\n updateAuthority: Account\n }\n\n \"\"\"\n Token-2022 Extension: Token Group Member\n \"\"\"\n type SplTokenExtensionTokenGroupMember implements SplTokenExtension {\n extension: String\n group: Account\n memberNumber: BigInt\n mint: Account\n }\n\n type SplTokenMetadataAdditionalMetadata {\n key: String\n value: String\n }\n \"\"\"\n Token-2022 Extension: Token Metadata\n \"\"\"\n type SplTokenExtensionTokenMetadata implements SplTokenExtension {\n extension: String\n additionalMetadata: [SplTokenMetadataAdditionalMetadata]\n mint: Account\n name: String\n symbol: String\n updateAuthority: Account\n uri: String\n }\n\n type SplTokenTransferFeeConfig {\n epoch: Epoch\n maximumFee: BigInt\n transferFeeBasisPoints: Int\n }\n \"\"\"\n Token-2022 Extension: Transfer Fee Config\n \"\"\"\n type SplTokenExtensionTransferFeeConfig implements SplTokenExtension {\n extension: String\n newerTransferFee: SplTokenTransferFeeConfig\n olderTransferFee: SplTokenTransferFeeConfig\n transferFeeConfigAuthority: Account\n withdrawWithheldAuthority: Account\n withheldAmount: BigInt\n }\n\n \"\"\"\n Token-2022 Extension: Transfer Hook\n \"\"\"\n type SplTokenExtensionTransferHook implements SplTokenExtension {\n extension: String\n authority: Account\n hookProgramId: Account\n }\n\n \"\"\"\n Token-2022 Extension: Transfer Fee Amount\n \"\"\"\n type SplTokenExtensionTransferFeeAmount implements SplTokenExtension {\n extension: String\n withheldAmount: BigInt\n }\n\n \"\"\"\n Token-2022 Extension: Transfer Hook Account\n \"\"\"\n type SplTokenExtensionTransferHookAccount implements SplTokenExtension {\n extension: String\n transferring: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: Confidential Transfer Fee Amount\n \"\"\"\n type SplTokenExtensionConfidentialTransferFeeAmount implements SplTokenExtension {\n extension: String\n withheldAmount: String\n }\n\n \"\"\"\n Token-2022 Extension: NonTransferableAccount\n \"\"\"\n type SplTokenExtensionNonTransferableAccount implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: ImmutableOwner\n \"\"\"\n type SplTokenExtensionImmutableOwner implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: MemoTransfer\n \"\"\"\n type SplTokenExtensionMemoTransfer implements SplTokenExtension {\n extension: String\n requireIncomingTransferMemos: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: CpiGuard\n \"\"\"\n type SplTokenExtensionCpiGuard implements SplTokenExtension {\n extension: String\n lockCpi: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: Unparseable\n \"\"\"\n type SplTokenExtensionUnparseable implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: ConfidentialTransferAccount\n \"\"\"\n type SplTokenExtensionConfidentialTransferAccount implements SplTokenExtension {\n extension: String\n actualPendingBalanceCreditCounter: Int\n allowConfidentialCredits: Boolean\n allowNonConfidentialCredits: Boolean\n approved: Boolean\n availableBalance: String\n decryptableAvailableBalance: String\n elgamalPubkey: String\n expectedPendingBalanceCreditCounter: Int\n maximumPendingBalanceCreditCounter: Int\n pendingBalanceCreditCounter: Int\n pendingBalanceHi: String\n pendingBalanceLo: String\n }\n\n \"\"\"\n Account interface\n \"\"\"\n interface Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n }\n\n \"\"\"\n Generic base account type\n \"\"\"\n type GenericAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n }\n\n type NonceAccountFeeCalculator {\n lamportsPerSignature: Lamports\n }\n \"\"\"\n A nonce account\n \"\"\"\n type NonceAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n authority: Account\n blockhash: Hash\n feeCalculator: NonceAccountFeeCalculator\n }\n\n \"\"\"\n A lookup table account\n \"\"\"\n type LookupTableAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n addresses: [Address]\n authority: Account\n deactivationSlot: Slot\n lastExtendedSlot: Slot\n lastExtendedSlotStartIndex: Int\n }\n\n \"\"\"\n A mint account\n \"\"\"\n type MintAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n decimals: Int\n extensions: [SplTokenExtension]\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: BigInt\n }\n\n \"\"\"\n A token account\n \"\"\"\n type TokenAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n extensions: [SplTokenExtension]\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n\n type StakeAccountDataMetaAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeAccountDataMetaLockup {\n custodian: Account\n epoch: Epoch\n unixTimestamp: BigInt\n }\n type StakeAccountDataMeta {\n authorized: StakeAccountDataMetaAuthorized\n lockup: StakeAccountDataMetaLockup\n rentExemptReserve: Lamports\n }\n type StakeAccountDataStakeDelegation {\n activationEpoch: Epoch\n deactivationEpoch: Epoch\n stake: Lamports\n voter: Account\n warmupCooldownRate: Int\n }\n type StakeAccountDataStake {\n creditsObserved: BigInt\n delegation: StakeAccountDataStakeDelegation\n }\n \"\"\"\n A stake account\n \"\"\"\n type StakeAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\n }\n\n type VoteAccountDataAuthorizedVoter {\n authorizedVoter: Account\n epoch: Epoch\n }\n type VoteAccountDataEpochCredit {\n credits: BigInt\n epoch: Epoch\n previousCredits: BigInt\n }\n type VoteAccountDataLastTimestamp {\n slot: Slot\n timestamp: BigInt\n }\n type VoteAccountDataVote {\n confirmationCount: Int\n slot: Slot\n }\n \"\"\"\n A vote account\n \"\"\"\n type VoteAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [Address]\n rootSlot: Slot\n votes: [VoteAccountDataVote]\n }\n\n \"\"\"\n Sysvar Clock\n \"\"\"\n type SysvarClockAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n epoch: Epoch\n epochStartTimestamp: BigInt\n leaderScheduleEpoch: Epoch\n slot: Slot\n unixTimestamp: BigInt\n }\n\n \"\"\"\n Sysvar Epoch Rewards\n \"\"\"\n type SysvarEpochRewardsAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n distributedRewards: Lamports\n distributionCompleteBlockHeight: BigInt\n totalRewards: Lamports\n }\n\n \"\"\"\n Sysvar Epoch Schedule\n \"\"\"\n type SysvarEpochScheduleAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n firstNormalEpoch: Epoch\n firstNormalSlot: Slot\n leaderScheduleSlotOffset: BigInt\n slotsPerEpoch: BigInt\n warmup: Boolean\n }\n\n type FeeCalculator {\n lamportsPerSignature: Lamports\n }\n\n \"\"\"\n Sysvar Last Restart Slot\n \"\"\"\n type SysvarLastRestartSlotAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n lastRestartSlot: Slot\n }\n\n type SysvarRecentBlockhashesEntry {\n blockhash: Hash\n feeCalculator: FeeCalculator\n }\n \"\"\"\n Sysvar Recent Blockhashes\n \"\"\"\n type SysvarRecentBlockhashesAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n entries: [SysvarRecentBlockhashesEntry]\n }\n\n \"\"\"\n Sysvar Rent\n \"\"\"\n type SysvarRentAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n burnPercent: Int\n exemptionThreshold: Int\n lamportsPerByteYear: Lamports\n }\n\n type SlotHashEntry {\n hash: Hash\n slot: Slot\n }\n\n \"\"\"\n Sysvar Slot Hashes\n \"\"\"\n type SysvarSlotHashesAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n entries: [SlotHashEntry]\n }\n\n \"\"\"\n Sysvar Slot History\n \"\"\"\n type SysvarSlotHistoryAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n bits: String\n nextSlot: Slot\n }\n\n type StakeHistoryEntry {\n activating: Lamports\n deactivating: Lamports\n effective: Lamports\n }\n\n \"\"\"\n Sysvar Stake History\n \"\"\"\n type SysvarStakeHistoryAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n entries: [StakeHistoryEntry]\n }\n`;\n","export const blockTypeDefs = /* GraphQL */ `\n \"\"\"\n A Solana block\n \"\"\"\n type Block {\n blockhash: Hash\n blockHeight: BigInt\n blockTime: BigInt\n parentSlot: Slot\n previousBlockhash: Hash\n rewards: [Reward]\n signatures: [Signature]\n transactions: [Transaction]\n }\n`;\n","// *Note: Any integer value inside a transaction instruction must be `BigInt`\n// until the following issue is resolved:\n// <https://github.com/solana-labs/solana-web3.js/issues/1828>\nexport const instructionTypeDefs = /* GraphQL */ `\n \"\"\"\n Transaction instruction interface\n \"\"\"\n interface TransactionInstruction {\n programId: Address\n }\n\n \"\"\"\n Generic transaction instruction\n \"\"\"\n type GenericInstruction implements TransactionInstruction {\n accounts: [Address]\n data: Base64EncodedBytes\n programId: Address\n }\n\n \"\"\"\n AddressLookupTable: CreateLookupTable instruction\n \"\"\"\n type CreateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: Slot\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: ExtendLookupTable instruction\n \"\"\"\n type ExtendLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: FreezeLookupTable instruction\n \"\"\"\n type FreezeLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: DeactivateLookupTable instruction\n \"\"\"\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: CloseLookupTable instruction\n \"\"\"\n type CloseLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n\n \"\"\"\n BpfLoader: Write instruction\n \"\"\"\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfLoader: Finalize instruction\n \"\"\"\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: InitializeBuffer instruction\n \"\"\"\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Write instruction\n \"\"\"\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfUpgradeableLoader: DeployWithMaxDataLen instruction\n \"\"\"\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Account\n maxDataLen: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Upgrade instruction\n \"\"\"\n type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Account\n spillAccount: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthority instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthorityChecked instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Close instruction\n \"\"\"\n type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n programAccount: Account\n recipient: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: ExtendProgram instruction\n \"\"\"\n type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {\n programId: Address\n additionalBytes: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: Create instruction\n \"\"\"\n type SplAssociatedTokenCreateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: CreateIdempotent instruction\n \"\"\"\n type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: RecoverNested instruction\n \"\"\"\n type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n nestedMint: Account\n nestedOwner: Account\n nestedSource: Account\n ownerMint: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplMemo instruction\n \"\"\"\n type SplMemoInstruction implements TransactionInstruction {\n programId: Address\n memo: String\n }\n\n \"\"\"\n SplToken: InitializeMint instruction\n \"\"\"\n type SplTokenInitializeMintInstruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeMint2 instruction\n \"\"\"\n type SplTokenInitializeMint2Instruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount instruction\n \"\"\"\n type SplTokenInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount2 instruction\n \"\"\"\n type SplTokenInitializeAccount2Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount3 instruction\n \"\"\"\n type SplTokenInitializeAccount3Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: InitializeMultisig instruction\n \"\"\"\n type SplTokenInitializeMultisigInstruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n rentSysvar: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: InitializeMultisig2 instruction\n \"\"\"\n type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: Transfer instruction\n \"\"\"\n type SplTokenTransferInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n authority: Account\n destination: Account\n multisigAuthority: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Approve instruction\n \"\"\"\n type SplTokenApproveInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n delegate: Account\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Revoke instruction\n \"\"\"\n type SplTokenRevokeInstruction implements TransactionInstruction {\n programId: Address\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: SetAuthority instruction\n \"\"\"\n type SplTokenSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n multisigAuthority: Account\n newAuthority: Account\n }\n\n \"\"\"\n SplToken: MintTo instruction\n \"\"\"\n type SplTokenMintToInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: BigInt\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n }\n\n \"\"\"\n SplToken: Burn instruction\n \"\"\"\n type SplTokenBurnInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: BigInt\n authority: Account\n mint: Account\n multisigAuthority: Account\n }\n\n \"\"\"\n SplToken: CloseAccount instruction\n \"\"\"\n type SplTokenCloseAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n destination: Account\n multisigOwner: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: FreezeAccount instruction\n \"\"\"\n type SplTokenFreezeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: ThawAccount instruction\n \"\"\"\n type SplTokenThawAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: TransferChecked instruction\n \"\"\"\n type SplTokenTransferCheckedInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n authority: Account\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigAuthority: Account\n source: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: ApproveChecked instruction\n \"\"\"\n type SplTokenApproveCheckedInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n source: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: MintToChecked instruction\n \"\"\"\n type SplTokenMintToCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: BurnChecked instruction\n \"\"\"\n type SplTokenBurnCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n multisigAuthority: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: SyncNative instruction\n \"\"\"\n type SplTokenSyncNativeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: GetAccountDataSize instruction\n \"\"\"\n type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {\n programId: Address\n extensionTypes: [String]\n mint: Account\n }\n\n \"\"\"\n SplToken: InitializeImmutableOwner instruction\n \"\"\"\n type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: AmountToUiAmount instruction\n \"\"\"\n type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n mint: Account\n }\n\n \"\"\"\n SplToken: UiAmountToAmount instruction\n \"\"\"\n type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n uiAmount: String\n }\n\n \"\"\"\n SplToken-2022: InitializeDefaultAccountState instruction\n \"\"\"\n type SplTokenInitializeDefaultAccountStateInstruction implements TransactionInstruction {\n programId: Address\n accountState: SplTokenDefaultAccountState\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateDefaultAccountState instruction\n \"\"\"\n type SplTokenUpdateDefaultAccountStateInstruction implements TransactionInstruction {\n programId: Address\n accountState: SplTokenDefaultAccountState\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeMintCloseAuthority instruction\n \"\"\"\n type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n newAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: InitializePermanentDelegate instruction\n \"\"\"\n type SplTokenInitializePermanentDelegateInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: InitializeGroupPointer instruction\n \"\"\"\n type SplTokenInitializeGroupPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n groupAddress: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateGroupPointer instruction\n \"\"\"\n type SplTokenUpdateGroupPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n groupAddress: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeGroupMemberPointer instruction\n \"\"\"\n type SplTokenInitializeGroupMemberPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n memberAddress: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateGroupMemberPointer instruction\n \"\"\"\n type SplTokenUpdateGroupMemberPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n memberAddress: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeMetadataPointer instruction\n \"\"\"\n type SplTokenInitializeMetadataPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n metadataAddress: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateMetadataPointer instruction\n \"\"\"\n type SplTokenUpdateMetadataPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n metadataAddress: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeTransferFeeConfig instruction\n \"\"\"\n type SplTokenInitializeTransferFeeConfig implements TransactionInstruction {\n programId: Address\n mint: Account\n transferFeeBasisPoints: BigInt #*FIXME:*\n transferFeeConfigAuthority: Account\n withdrawWithheldAuthority: Account\n maximumFee: BigInt #*FIXME:*\n }\n\n \"\"\"\n SplToken-2022: InitializeTransferHook instruction\n \"\"\"\n type SplTokenInitializeTransferHookInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n hookProgramId: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateTransferHook instruction\n \"\"\"\n type SplTokenUpdateTransferHookInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n hookProgramId: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableCpiGuard instruction\n \"\"\"\n type SplTokenEnableCpiGuardInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableCpiGuard instruction\n \"\"\"\n type SplTokenDisableCpiGuardInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: HarvestWithheldTokensToMint instruction\n \"\"\"\n type SplTokenHarvestWithheldTokensToMint implements TransactionInstruction {\n programId: Address\n mint: Account\n sourceAccounts: [Address]\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldTokensFromAccounts instruction\n \"\"\"\n type SplTokenWithdrawWithheldTokensFromAccounts implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n mint: Account\n multisigWithdrawWithheldAuthority: Account\n signers: [Address]\n sourceAccounts: [Address]\n withdrawWithheldAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldTokensFromMint instruction\n \"\"\"\n type SplTokenWithdrawWithheldTokensFromMint implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n mint: Account\n withdrawWithheldAuthority: Account\n multisigWithdrawWithheldAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: TransferCheckedWithFee instruction\n \"\"\"\n type SplTokenTransferCheckedWithFee implements TransactionInstruction {\n programId: Address\n authority: Account\n destination: Account\n feeAmount: TokenAmount\n mint: Account\n source: Account\n tokenAmount: TokenAmount\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableRequiredMemoTransfers instruction\n \"\"\"\n type SplTokenEnableRequiredMemoTransfers implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n multisigOwner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableRequiredMemoTransfers instruction\n \"\"\"\n type SplTokenDisableRequiredMemoTransfers implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n multisigOwner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeConfidentialTransferMint instruction\n \"\"\"\n type SplTokenInitializeConfidentialTransferMint implements TransactionInstruction {\n programId: Address\n auditorElgamalPubkey: Address\n authority: Account\n autoApproveNewAccounts: Boolean\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: InitializeInterestBearingConfig instruction\n \"\"\"\n type SplTokenInitializeInterestBearingConfig implements TransactionInstruction {\n programId: Address\n mint: Account\n rate: BigInt #*FIXME:*\n rateAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateInterestBearingConfigRate instruction\n \"\"\"\n type SplTokenUpdateInterestBearingConfigRate implements TransactionInstruction {\n programId: Address\n mint: Account\n multisigRateAuthority: Account\n newRate: BigInt #*FIXME:*\n rateAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: ApproveConfidentialTransferAccount instruction\n \"\"\"\n type SplTokenApproveConfidentialTransferAccount implements TransactionInstruction {\n programId: Address\n account: Account\n confidentialTransferAuditorAuthority: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: EmptyConfidentialTransferAccount instruction\n \"\"\"\n type SplTokenEmptyConfidentialTransferAccount implements TransactionInstruction {\n programId: Address\n account: Account\n instructionsSysvar: Account\n multisigOwner: Account\n owner: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: ConfigureConfidentialTransferAccount instruction\n \"\"\"\n type SplTokenConfigureConfidentialTransferAccount implements TransactionInstruction {\n programId: Address\n account: Account\n decryptableZeroBalance: String\n maximumPendingBalanceCreditCounter: BigInt\n mint: Account\n multisigOwner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: ApplyPendingConfidentialTransferBalance instruction\n \"\"\"\n type SplTokenApplyPendingConfidentialTransferBalance implements TransactionInstruction {\n programId: Address\n account: Account\n expectedPendingBalanceCreditCounter: BigInt\n multisigOwner: Account\n newDecryptableAvailableBalance: String\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableConfidentialTransferConfidentialCredits instruction\n \"\"\"\n type SplTokenEnableConfidentialTransferConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableConfidentialTransferConfidentialCredits instruction\n \"\"\"\n type SplTokenDisableConfidentialTransferConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableConfidentialTransferNonConfidentialCredits instruction\n \"\"\"\n type SplTokenEnableConfidentialTransferNonConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableConfidentialTransferNonConfidentialCredits instruction\n \"\"\"\n type SplTokenDisableConfidentialTransferNonConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DepositConfidentialTransfer instruction\n \"\"\"\n type SplTokenDepositConfidentialTransfer implements TransactionInstruction {\n programId: Address\n amount: BigInt\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n source: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawConfidentialTransfer instruction\n \"\"\"\n type SplTokenWithdrawConfidentialTransfer implements TransactionInstruction {\n programId: Address\n amount: BigInt\n decimals: BigInt # FIXME:*\n destination: Account\n instructionsSysvar: Account\n newDecryptableAvailableBalance: String\n mint: Account\n multisigOwner: Account\n owner: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n source: Account\n }\n\n \"\"\"\n SplToken-2022: ConfidentialTransfer instruction\n \"\"\"\n type SplTokenConfidentialTransfer implements TransactionInstruction {\n programId: Address\n destination: Account\n instructionsSysvar: Account\n mint: Account\n multisigOwner: Account\n newSourceDecryptableAvailableBalance: String\n owner: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n source: Account\n }\n\n \"\"\"\n SplToken-2022: ConfidentialTransferWithSplitProofs instruction\n \"\"\"\n type SplTokenConfidentialTransferWithSplitProofs implements TransactionInstruction {\n programId: Address\n batchedGroupedCiphertext2HandlesValidityContext: Account\n batchedRangeProofContext: Account\n ciphertextCommitmentEqualityContext: Account\n closeSplitContextStateOnExecution: Boolean\n contextStateOwner: Account\n destination: Account\n lamportDestination: Account\n mint: Account\n newSourceDecryptableAvailableBalance: String\n noOpOnUninitializedSplitContextState: Boolean\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateConfidentialTransferMint instruction\n \"\"\"\n type SplTokenUpdateConfidentialTransferMint implements TransactionInstruction {\n programId: Address\n auditorElgamalPubkey: Address\n authority: Account\n autoApproveNewAccounts: Boolean\n confidentialTransferMintAuthority: Account\n mint: Account\n newConfidentialTransferMintAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldConfidentialTransferTokensFromMint instruction\n \"\"\"\n type SplTokenWithdrawWithheldConfidentialTransferTokensFromMint implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n instructionsSysvar: Account\n mint: Account\n multisigWithdrawWithheldAuthority: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n withdrawWithheldAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldConfidentialTransferTokensFromAccounts instruction\n \"\"\"\n type SplTokenWithdrawWithheldConfidentialTransferTokensFromAccounts implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n instructionsSysvar: Account\n mint: Account\n multisigWithdrawWithheldAuthority: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n sourceAccounts: [Address]\n withdrawWithheldAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: HarvestWithheldConfidentialTransferTokensToMint instruction\n \"\"\"\n type SplTokenHarvestWithheldConfidentialTransferTokensToMint implements TransactionInstruction {\n programId: Address\n mint: Account\n sourceAccounts: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableConfidentialTransferFeeHarvestToMint instruction\n \"\"\"\n type SplTokenEnableConfidentialTransferFeeHarvestToMint implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n multisigOwner: Account\n signers: Address\n }\n\n \"\"\"\n SplToken-2022: DisableConfidentialTransferFeeHarvestToMint instruction\n \"\"\"\n type SplTokenDisableConfidentialTransferFeeHarvestToMint implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: Address\n }\n\n \"\"\"\n SplToken-2022: InitializeConfidentialTransferFeeConfig instruction\n \"\"\"\n type SplTokenInitializeConfidentialTransferFeeConfig implements TransactionInstruction {\n programId: Address\n authority: Account\n harvestToMintEnabled: Boolean\n mint: Account\n withdrawWithheldAuthorityElgamalPubkey: Address\n withheldAmount: String\n }\n\n \"\"\"\n SplToken-2022: Reallocate instruction\n \"\"\"\n type SplTokenReallocate implements TransactionInstruction {\n programId: Address\n account: Account\n extensionTypes: [SplTokenExtensionType]\n owner: Account\n multisigOwner: Account\n payer: Account\n signers: [Address]\n systemProgram: Account\n }\n\n \"\"\"\n Spl Token Group: InitializeGroup instruction\n \"\"\"\n type SplTokenGroupInitializeGroup implements TransactionInstruction {\n programId: Address\n group: Account\n maxSize: BigInt\n mint: Account\n mintAuthority: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Group: UpdateGroupMaxSize instruction\n \"\"\"\n type SplTokenGroupUpdateGroupMaxSize implements TransactionInstruction {\n programId: Address\n group: Account\n maxSize: BigInt\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Group: UpdateGroupAuthority instruction\n \"\"\"\n type SplTokenGroupUpdateGroupAuthority implements TransactionInstruction {\n programId: Address\n group: Account\n newAuthority: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Group: InitializeMember instruction\n \"\"\"\n type SplTokenGroupInitializeMember implements TransactionInstruction {\n programId: Address\n group: Account\n groupUpdateAuthority: Account\n member: Account\n memberMint: Account\n memberMintAuthority: Account\n }\n\n \"\"\"\n Spl Token Metadata: InitializeMetadata instruction\n \"\"\"\n type SplTokenMetadataInitialize implements TransactionInstruction {\n programId: Address\n metadata: Account\n mint: Account\n mintAuthority: Account\n name: String\n symbol: String\n updateAuthority: Account\n uri: String\n }\n\n \"\"\"\n Spl Token Metadata: UpdateField instruction\n \"\"\"\n type SplTokenMetadataUpdateField implements TransactionInstruction {\n programId: Address\n field: String\n metadata: Account\n updateAuthority: Account\n value: String\n }\n\n \"\"\"\n Spl Token Metadata: RemoveKey instruction\n \"\"\"\n type SplTokenMetadataRemoveKey implements TransactionInstruction {\n programId: Address\n idempotent: Boolean\n key: String\n metadata: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Metadata: UpdateAuthority instruction\n \"\"\"\n type SplTokenMetadataUpdateAuthority implements TransactionInstruction {\n programId: Address\n metadata: Account\n newAuthority: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Metadata: Emit instruction\n \"\"\"\n type SplTokenMetadataEmit implements TransactionInstruction {\n programId: Address\n metadata: Account\n end: BigInt\n start: BigInt\n }\n\n type Lockup {\n custodian: Account\n epoch: Epoch\n unixTimestamp: BigInt\n }\n\n \"\"\"\n Stake: Initialize instruction\n \"\"\"\n type StakeInitializeInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Authorize instruction\n \"\"\"\n type StakeAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DelegateStake instruction\n \"\"\"\n type StakeDelegateStakeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n stakeHistorySysvar: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Split instruction\n \"\"\"\n type StakeSplitInstruction implements TransactionInstruction {\n programId: Address\n lamports: Lamports\n newSplitAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: Withdraw instruction\n \"\"\"\n type StakeWithdrawInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n destination: Account\n lamports: Lamports\n stakeAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Stake: Deactivate instruction\n \"\"\"\n type StakeDeactivateInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: SetLockup instruction\n \"\"\"\n type StakeSetLockupInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Merge instruction\n \"\"\"\n type StakeMergeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n destination: Account\n source: Account\n stakeAuthority: Account\n stakeHistorySysvar: Account\n }\n\n \"\"\"\n Stake: AuthorizeWithSeed instruction\n \"\"\"\n type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: InitializeChecked instruction\n \"\"\"\n type StakeInitializeCheckedInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeCheckedInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeChecked instruction\n \"\"\"\n type StakeAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: SetLockupChecked instruction\n \"\"\"\n type StakeSetLockupCheckedInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DeactivateDelinquent instruction\n \"\"\"\n type StakeDeactivateDelinquentInstruction implements TransactionInstruction {\n programId: Address\n referenceVoteAccount: Account\n stakeAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Redelegate instruction\n \"\"\"\n type StakeRedelegateInstruction implements TransactionInstruction {\n programId: Address\n newStakeAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n System: CreateAccount instruction\n \"\"\"\n type CreateAccountInstruction implements TransactionInstruction {\n programId: Address\n lamports: Lamports\n newAccount: Account\n owner: Account\n source: Account\n space: BigInt\n }\n\n \"\"\"\n System: Assign instruction\n \"\"\"\n type AssignInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n }\n\n \"\"\"\n System: Transfer instruction\n \"\"\"\n type TransferInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n source: Account\n }\n\n \"\"\"\n System: CreateAccountWithSeed instruction\n \"\"\"\n type CreateAccountWithSeedInstruction implements TransactionInstruction {\n programId: Address\n base: Account\n lamports: Lamports\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AdvanceNonceAccount instruction\n \"\"\"\n type AdvanceNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n }\n\n \"\"\"\n System: WithdrawNonceAccount instruction\n \"\"\"\n type WithdrawNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n rentSysvar: Account\n }\n\n \"\"\"\n System: InitializeNonceAccount instruction\n \"\"\"\n type InitializeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n rentSysvar: Account\n }\n\n \"\"\"\n System: AuthorizeNonceAccount instruction\n \"\"\"\n type AuthorizeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n newAuthorized: Account\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: UpgradeNonceAccount instruction\n \"\"\"\n type UpgradeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: Allocate instruction\n \"\"\"\n type AllocateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n space: BigInt\n }\n\n \"\"\"\n System: AllocateWithSeed instruction\n \"\"\"\n type AllocateWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AssignWithSeed instruction\n \"\"\"\n type AssignWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n }\n\n \"\"\"\n System: TransferWithSeed instruction\n \"\"\"\n type TransferWithSeedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n source: Account\n sourceBase: Address\n sourceOwner: Account\n sourceSeed: String\n }\n\n \"\"\"\n Vote: InitializeAccount instruction\n \"\"\"\n type VoteInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n authorizedVoter: Account\n authorizedWithdrawer: Account\n clockSysvar: Account\n commission: BigInt # FIXME:*\n node: Account\n rentSysvar: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: Authorize instruction\n \"\"\"\n type VoteAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeWithSeed instruction\n \"\"\"\n type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n type Vote {\n hash: Hash\n slots: [Slot]\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: Vote instruction\n \"\"\"\n type VoteVoteInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n slotHashesSysvar: Account\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n type VoteStateUpdateLockout {\n confirmationCount: BigInt # FIXME:*\n slot: Slot\n }\n type VoteStateUpdate {\n hash: Hash\n lockouts: [VoteStateUpdateLockout]\n root: Slot\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: UpdateVoteState instruction\n \"\"\"\n type VoteUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: UpdateVoteStateSwitch instruction\n \"\"\"\n type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteState instruction\n \"\"\"\n type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteStateSwitch instruction\n \"\"\"\n type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: Withdraw instruction\n \"\"\"\n type VoteWithdrawInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateValidatorIdentity instruction\n \"\"\"\n type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {\n programId: Address\n newValidatorIdentity: Account\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateCommission instruction\n \"\"\"\n type VoteUpdateCommissionInstruction implements TransactionInstruction {\n programId: Address\n commission: BigInt # FIXME:*\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: VoteSwitch instruction\n \"\"\"\n type VoteVoteSwitchInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n hash: Hash\n slotHashesSysvar: Account\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n \"\"\"\n Vote: AuthorizeChecked instruction\n \"\"\"\n type VoteAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n`;\n","export const rootTypeDefs = /* GraphQL */ `\n type Query {\n account(address: Address!, commitment: Commitment, minContextSlot: Slot): Account\n block(slot: Slot!, commitment: CommitmentWithoutProcessed): Block\n programAccounts(\n programAddress: Address!\n commitment: Commitment\n dataSizeFilters: [ProgramAccountsDataSizeFilter]\n memcmpFilters: [ProgramAccountsMemcmpFilter]\n minContextSlot: Slot\n ): [Account]\n transaction(signature: Signature!, commitment: CommitmentWithoutProcessed): Transaction\n }\n\n schema {\n query: Query\n }\n`;\n","export const transactionTypeDefs = /* GraphQL */ `\n type TransactionStatusOk {\n Ok: String\n }\n type TransactionStatusErr {\n Err: String\n }\n union TransactionStatus = TransactionStatusOk | TransactionStatusErr\n\n type TransactionLoadedAddresses {\n readonly: [Address]\n writable: [Address]\n }\n\n type TransactionInnerInstruction {\n index: Int\n instructions: [TransactionInstruction]\n }\n\n type TransactionMeta {\n computeUnitsConsumed: BigInt\n err: String\n fee: Lamports\n innerInstructions: [TransactionInnerInstruction]\n loadedAddresses: TransactionLoadedAddresses\n logMessages: [String]\n postBalances: [Lamports]\n postTokenBalances: [TokenBalance]\n preBalances: [Lamports]\n preTokenBalances: [TokenBalance]\n returnData: ReturnData\n rewards: [Reward]\n status: TransactionStatus\n }\n\n type TransactionMessageAccountKey {\n pubkey: Address\n signer: Boolean\n source: String\n writable: Boolean\n }\n\n type TransactionMessageAddressTableLookup {\n accountKey: Address\n readonlyIndexes: [Int]\n writableIndexes: [Int]\n }\n\n type TransactionMessageHeader {\n numReadonlySignedAccounts: Int\n numReadonlyUnsignedAccounts: Int\n numRequiredSignatures: Int\n }\n\n type TransactionMessage {\n accountKeys: [TransactionMessageAccountKey]\n addressTableLookups: [TransactionMessageAddressTableLookup]\n header: TransactionMessageHeader\n instructions: [TransactionInstruction]\n recentBlockhash: Hash\n }\n\n \"\"\"\n A Solana transaction\n \"\"\"\n type Transaction {\n blockTime: BigInt\n data(encoding: TransactionEncoding!): String\n message: TransactionMessage\n meta: TransactionMeta\n signatures: [Signature]\n slot: Slot\n version: String\n }\n`;\n","export const typeTypeDefs = /* GraphQL */ `\n enum AccountEncoding {\n BASE_58\n BASE_64\n BASE_64_ZSTD\n }\n\n scalar Address\n\n scalar Base58EncodedBytes\n\n scalar Base64EncodedBytes\n\n scalar Base64ZstdEncodedBytes\n\n scalar BigInt\n\n enum Commitment {\n CONFIRMED\n FINALIZED\n PROCESSED\n }\n\n enum CommitmentWithoutProcessed {\n CONFIRMED\n FINALIZED\n }\n\n input DataSlice {\n offset: Int!\n length: Int!\n }\n\n scalar Epoch\n\n scalar Hash\n\n scalar Lamports\n\n input ProgramAccountsDataSizeFilter {\n dataSize: BigInt!\n }\n\n enum ProgramAccountsMemcmpFilterAccountEncoding {\n BASE_58\n BASE_64\n }\n\n input ProgramAccountsMemcmpFilter {\n bytes: String!\n encoding: ProgramAccountsMemcmpFilterAccountEncoding!\n offset: BigInt!\n }\n\n type ReturnData {\n data: Base64EncodedBytes\n programId: Address\n }\n\n type Reward {\n commission: Int\n lamports: Lamports\n postBalance: BigInt\n pubkey: Address\n rewardType: String\n }\n\n scalar Signature\n\n scalar Slot\n\n enum SplTokenDefaultAccountState {\n FROZEN\n INITIALIZED\n UNINITIALIZED\n }\n\n enum SplTokenExtensionType {\n UNINITIALIZED\n TRANSFER_FEE_CONFIG\n TRANSFER_FEE_AMOUNT\n MINT_CLOSE_AUTHORITY\n CONFIDENTIAL_TRANSFER_MINT\n CONFIDENTIAL_TRANSFER_ACCOUNT\n DEFAULT_ACCOUNT_STATE\n IMMUTABLE_OWNER\n MEMO_TRANSFER\n NON_TRANSFERABLE\n INTEREST_BEARING_CONFIG\n CPI_GUARD\n PERMANENT_DELEGATE\n NON_TRANSFERABLE_ACCOUNT\n CONFIDENTIAL_TRANSFER_FEE_CONFIG\n CONFIDENTIAL_TRANSFER_FEE_AMOUNT\n TRANSFER_HOOK\n TRANSFER_HOOK_ACCOUNT\n METADATA_POINTER\n TOKEN_METADATA\n GROUP_POINTER\n GROUP_MEMBER_POINTER\n TOKEN_GROUP\n TOKEN_GROUP_MEMBER\n UNPARSEABLE_EXTENSION\n }\n\n type TokenAmount {\n amount: BigInt\n decimals: Int\n uiAmount: BigInt\n uiAmountString: String\n }\n\n type TokenBalance {\n accountIndex: Int\n mint: Account\n owner: Account\n programId: Address\n uiTokenAmount: TokenAmount\n }\n\n enum TransactionEncoding {\n BASE_58\n BASE_64\n }\n`;\n","import { accountTypeDefs } from './account';\nimport { blockTypeDefs } from './block';\nimport { instructionTypeDefs } from './instruction';\nimport { rootTypeDefs } from './root';\nimport { transactionTypeDefs } from './transaction';\nimport { typeTypeDefs } from './types';\n\n/**\n * Creates the GraphQL type definitions for the Solana GraphQL schema.\n *\n * @returns Solana GraphQL type definitions.\n */\nexport function createSolanaGraphQLTypeDefs() {\n return [accountTypeDefs, blockTypeDefs, instructionTypeDefs, rootTypeDefs, typeTypeDefs, transactionTypeDefs];\n}\n","import {\n ASTNode,\n ASTVisitFn,\n BREAK,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n GraphQLResolveInfo,\n InlineFragmentNode,\n visit,\n} from 'graphql';\n\ntype InjectableVisitorOperations = {\n fieldNodeOperation: (info: GraphQLResolveInfo, ...args: Parameters<ASTVisitFn<FieldNode>>) => void;\n fragmentSpreadNodeOperation: (\n info: GraphQLResolveInfo,\n fragment: FragmentDefinitionNode,\n ...args: Parameters<ASTVisitFn<FragmentSpreadNode>>\n ) => void;\n inlineFragmentNodeOperation: (\n info: GraphQLResolveInfo,\n ...args: Parameters<ASTVisitFn<InlineFragmentNode>>\n ) => void;\n};\ntype RootNode = FieldNode | FragmentDefinitionNode | InlineFragmentNode;\n\n/**\n * An AST visitor that keys on the root field provided.\n * This visitor can be injected with custom logic for various types of nodes.\n */\nexport function injectableRootVisitor(\n info: GraphQLResolveInfo,\n rootNode: RootNode | null,\n operations: InjectableVisitorOperations,\n) {\n const { fieldNodes } = info;\n const root = rootNode ?? fieldNodes[0];\n const parentIsRoot = (ancestors: readonly (ASTNode | readonly ASTNode[])[]) =>\n (Array.isArray(ancestors) ? ancestors[0] : ancestors) === root;\n visit(root, {\n Field(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.fieldNodeOperation(info, node, key, parent, path, ancestors);\n },\n FragmentSpread(node, key, parent, path, ancestors) {\n const fragmentDefinition = info.fragments[node.name.value];\n return operations.fragmentSpreadNodeOperation(info, fragmentDefinition, node, key, parent, path, ancestors);\n },\n InlineFragment(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.inlineFragmentNodeOperation(info, node, key, parent, path, ancestors);\n },\n });\n}\n\n/**\n * Determine if the query only requests the provided field names\n */\nexport function onlyFieldsRequested(fieldNames: string[], info: GraphQLResolveInfo, rootNode?: RootNode): boolean {\n let onlyFieldsRequested = true;\n\n function checkFieldsWithVisitor(root: RootNode | null) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(_info, node) {\n // Ignore the GraphQL default fields.\n if (node.name.value === '__id' || node.name.value === '__typename') {\n return;\n }\n onlyFieldsRequested = fieldNames.includes(node.name.value);\n if (!onlyFieldsRequested) {\n return BREAK;\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n checkFieldsWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, node) {\n checkFieldsWithVisitor(node);\n },\n });\n }\n\n checkFieldsWithVisitor(rootNode ?? null);\n\n return onlyFieldsRequested;\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, DataSlice, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo, isInterfaceType } from 'graphql';\n\nimport { AccountLoaderArgs, ProgramAccountsLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor, onlyFieldsRequested } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseAccountEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): AccountLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n if (argumentNode.value.value === 'BASE_64_ZSTD') {\n return 'base64+zstd';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as AccountLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nfunction parseAccountDataSliceArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: { [variable: string]: unknown },\n): AccountLoaderArgs['dataSlice'] {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'dataSlice');\n if (argumentNode) {\n if (argumentNode.value.kind === 'ObjectValue') {\n const offsetArg = argumentNode.value.fields?.find(field => field.name.value === 'offset');\n const lengthArg = argumentNode.value.fields?.find(field => field.name.value === 'length');\n const length =\n lengthArg?.value.kind === 'IntValue'\n ? parseInt(lengthArg.value.value)\n : lengthArg?.value.kind === 'Variable'\n ? (variableValues[lengthArg.value.name.value] as number)\n : undefined;\n const offset =\n offsetArg?.value.kind === 'IntValue'\n ? parseInt(offsetArg.value.value)\n : offsetArg?.value.kind === 'Variable'\n ? (variableValues[offsetArg.value.name.value] as number)\n : undefined;\n return length !== undefined && length !== null && offset !== undefined && offset !== null\n ? { length, offset }\n : undefined;\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as DataSlice;\n }\n } else {\n return undefined;\n }\n}\n\nexport function buildAccountArgSetWithVisitor<TArgs extends AccountLoaderArgs | ProgramAccountsLoaderArgs>(\n args: TArgs,\n info: GraphQLResolveInfo,\n): TArgs[] {\n const argSet = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value !== 'data') {\n return;\n }\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding = parseAccountEncodingArgument(node.arguments, variableValues);\n const dataSlice = parseAccountDataSliceArgument(node.arguments, variableValues);\n argSet.push({ ...args, dataSlice, encoding });\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(info, node) {\n const { schema } = info;\n const accountInterface = schema.getType('Account');\n if (\n isInterfaceType(accountInterface) &&\n // Recursively check if the inline fragment requests any\n // fields outside of the `Account` interface.\n !onlyFieldsRequested(Object.keys(accountInterface.getFields()), info, node)\n ) {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n }\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildAccountLoaderArgSetFromResolveInfo(\n args: {\n address: Address;\n /**\n * Fetch the details of the account as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions\n * up to this slot\n */\n minContextSlot?: Slot;\n },\n info: GraphQLResolveInfo,\n): AccountLoaderArgs[] {\n return buildAccountArgSetWithVisitor(args, info);\n}\n","import { Signature } from '@solana/keys';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo } from 'graphql';\n\nimport { BlockLoaderArgs, TransactionLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseTransactionEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): TransactionLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as TransactionLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nexport function buildTransactionArgSetWithVisitor<TArgs extends BlockLoaderArgs | TransactionLoaderArgs>(\n args: TArgs,\n info: GraphQLResolveInfo,\n): TArgs[] {\n const argSet = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value === 'message' || node.name.value === 'meta') {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n } else if (node.name.value === 'data') {\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding: TransactionLoaderArgs['encoding'] = parseTransactionEncodingArgument(\n node.arguments,\n variableValues,\n );\n argSet.push({ ...args, encoding });\n }\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, _node) {\n // Transaction schema doesn't support inline fragments at the\n // root level.\n return;\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n\n/**\n * Build a set of transaction loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildTransactionLoaderArgSetFromResolveInfo(\n args: {\n /**\n * Fetch the transaction details as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Omit<Commitment, 'processed'>;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions\n * up to this slot\n */\n minContextSlot?: Slot;\n signature: Signature;\n },\n info: GraphQLResolveInfo,\n): TransactionLoaderArgs[] {\n return buildTransactionArgSetWithVisitor(args, info);\n}\n","import { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { BlockLoaderArgs } from '../../loaders';\nimport { buildTransactionArgSetWithVisitor } from './transaction';\nimport { injectableRootVisitor } from './visitor';\n\n/**\n * Build a set of block loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildBlockLoaderArgSetFromResolveInfo(\n args: {\n /**\n * Fetch blocks from slots that have reached at least this level of commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Omit<Commitment, 'processed'>;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed\n * transactions up to this slot\n */\n minContextSlot?: Slot;\n slot: Slot;\n },\n info: GraphQLResolveInfo,\n): BlockLoaderArgs[] {\n const argSet: BlockLoaderArgs[] = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value === 'signatures') {\n argSet.push({ ...args, transactionDetails: 'signatures' });\n } else if (node.name.value === 'transactions') {\n argSet.push(...buildTransactionArgSetWithVisitor({ ...args, transactionDetails: 'full' }, info));\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, _node) {\n // Block schema doesn't support inline fragments at the\n // root level.\n return;\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, GetProgramAccountsDatasizeFilter, GetProgramAccountsMemcmpFilter, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { ProgramAccountsLoaderArgs } from '../../loaders';\nimport { buildAccountArgSetWithVisitor } from './account';\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildProgramAccountsLoaderArgSetFromResolveInfo(\n args: {\n /**\n * Fetch the details of the accounts as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n filters?: (GetProgramAccountsDatasizeFilter | GetProgramAccountsMemcmpFilter)[];\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions\n * up to this slot\n */\n minContextSlot?: Slot;\n programAddress: Address;\n },\n info: GraphQLResolveInfo,\n): ProgramAccountsLoaderArgs[] {\n return buildAccountArgSetWithVisitor(args, info);\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { AccountLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildAccountLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nexport type EncodedAccountData = {\n [key: string]: string;\n};\n\nexport type AccountResult = Partial<Omit<AccountLoaderValue, 'data'>> & {\n address: Address;\n encodedData?: EncodedAccountData;\n jsonParsedConfigs?: {\n accountType: string;\n programId: Address;\n programName: string;\n };\n ownerProgram?: Address;\n};\n\nexport const resolveAccountData = () => {\n return (\n parent: AccountResult | null,\n args: {\n /**\n * Define which slice of the account's data you want the RPC to return.\n *\n * Use this to save network bandwidth and encoding time when you do not need the entire\n * buffer.\n */\n dataSlice?: DataSlice;\n encoding: Encoding;\n },\n ) => {\n return parent === null ? null : parent.encodedData ? parent.encodedData[cacheKeyFn(args)] : null;\n };\n};\n\nexport const resolveAccount = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Address },\n args: {\n address?: Address;\n /**\n * Fetch the details of the account as of the highest slot that has reached this level\n * of commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use.\n * For example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer\n * on the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed\n * transactions up to this slot\n */\n minContextSlot?: Slot;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult | null> => {\n const address = fieldName ? parent[fieldName] : args.address;\n\n if (address) {\n // Do not load any accounts if only the address is requested\n if (onlyFieldsRequested(['address'], info)) {\n return { address };\n }\n\n const argsSet = buildAccountLoaderArgSetFromResolveInfo({ ...args, address }, info);\n const loadedAccounts = await context.loaders.account.loadMany(argsSet);\n\n let result: AccountResult = {\n address,\n encodedData: {},\n };\n\n loadedAccounts.forEach((account, i) => {\n if (account instanceof Error) {\n console.error(account);\n return;\n }\n if (account === null) {\n return;\n }\n if (!result.ownerProgram) {\n result = {\n ...result,\n ...account,\n ownerProgram: account.owner,\n };\n }\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })\n ] = data[0];\n } else if (typeof data === 'string') {\n result.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })\n ] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n result.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n if (Array.isArray(parsedData)) {\n // If the `jsonParsed` data is an array, put it\n // into a field called `entries`.\n Object.assign(result, { entries: parsedData });\n } else {\n result = {\n ...result,\n ...(parsedData as object),\n };\n }\n }\n }\n });\n\n return result;\n }\n\n return null;\n };\n};\n","import { AccountResult, resolveAccount, resolveAccountData } from '../../resolvers/account';\n\ntype Token2022ExtensionResult = {\n extension: string;\n state: object;\n};\n\nconst resolveTokenExtensions = () => {\n return (parent: (AccountResult & { extensions?: Token2022ExtensionResult[] }) | null) => {\n if (parent != null && parent.extensions != undefined) {\n return parent.extensions.map(e => {\n const { extension, state } = e;\n return {\n extension,\n ...state,\n };\n });\n }\n return null;\n };\n};\n\nconst resolveAdditionalTokenMetadata = () => {\n return (parent: { additionalMetadata?: [string, string][] }) => {\n if (parent.additionalMetadata != undefined) {\n return parent.additionalMetadata.map(([key, value]) => {\n return {\n key,\n value,\n };\n });\n }\n return null;\n };\n};\n\nfunction resolveTokenExtensionType(extensionResult: Token2022ExtensionResult) {\n if (extensionResult.extension === 'confidentialTransferFeeConfig') {\n return 'SplTokenExtensionConfidentialTransferFeeConfig';\n }\n if (extensionResult.extension === 'confidentialTransferMint') {\n return 'SplTokenExtensionConfidentialTransferMint';\n }\n if (extensionResult.extension === 'defaultAccountState') {\n return 'SplTokenExtensionDefaultAccountState';\n }\n if (extensionResult.extension === 'groupPointer') {\n return 'SplTokenExtensionGroupPointer';\n }\n if (extensionResult.extension === 'groupMemberPointer') {\n return 'SplTokenExtensionGroupMemberPointer';\n }\n if (extensionResult.extension === 'interestBearingConfig') {\n return 'SplTokenExtensionInterestBearingConfig';\n }\n if (extensionResult.extension === 'metadataPointer') {\n return 'SplTokenExtensionMetadataPointer';\n }\n if (extensionResult.extension === 'mintCloseAuthority') {\n return 'SplTokenExtensionMintCloseAuthority';\n }\n if (extensionResult.extension === 'nonTransferable') {\n return 'SplTokenExtensionNonTransferable';\n }\n if (extensionResult.extension === 'permanentDelegate') {\n return 'SplTokenExtensionPermanentDelegate';\n }\n if (extensionResult.extension === 'tokenGroup') {\n return 'SplTokenExtensionTokenGroup';\n }\n if (extensionResult.extension === 'tokenGroupMember') {\n return 'SplTokenExtensionTokenGroupMember';\n }\n if (extensionResult.extension === 'tokenMetadata') {\n return 'SplTokenExtensionTokenMetadata';\n }\n if (extensionResult.extension === 'transferFeeConfig') {\n return 'SplTokenExtensionTransferFeeConfig';\n }\n if (extensionResult.extension === 'transferHook') {\n return 'SplTokenExtensionTransferHook';\n }\n if (extensionResult.extension === 'confidentialTransferAccount') {\n return 'SplTokenExtensionConfidentialTransferAccount';\n }\n if (extensionResult.extension === 'transferFeeAmount') {\n return 'SplTokenExtensionTransferFeeAmount';\n }\n if (extensionResult.extension === 'transferHookAccount') {\n return 'SplTokenExtensionTransferHookAccount';\n }\n if (extensionResult.extension === 'confidentialTransferFeeAmount') {\n return 'SplTokenExtensionConfidentialTransferFeeAmount';\n }\n if (extensionResult.extension === 'nonTransferableAccount') {\n return 'SplTokenExtensionNonTransferableAccount';\n }\n if (extensionResult.extension === 'immutableOwner') {\n return 'SplTokenExtensionImmutableOwner';\n }\n if (extensionResult.extension === 'memoTransfer') {\n return 'SplTokenExtensionMemoTransfer';\n }\n if (extensionResult.extension === 'cpiGuard') {\n return 'SplTokenExtensionCpiGuard';\n }\n if (extensionResult.extension === 'unparseableExtension') {\n return 'SplTokenExtensionUnparseable';\n }\n}\n\nexport const accountTypeResolvers = {\n Account: {\n __resolveType: (accountResult: AccountResult) => {\n const { jsonParsedConfigs } = accountResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'nonce') {\n return 'NonceAccount';\n }\n if (\n jsonParsedConfigs.programName === 'spl-token' ||\n jsonParsedConfigs.programName === 'spl-token-2022'\n ) {\n if (jsonParsedConfigs.accountType === 'mint') {\n return 'MintAccount';\n }\n if (jsonParsedConfigs.accountType === 'account') {\n return 'TokenAccount';\n }\n }\n if (jsonParsedConfigs.programName === 'stake') {\n return 'StakeAccount';\n }\n if (jsonParsedConfigs.accountType === 'vote' && jsonParsedConfigs.programName === 'vote') {\n return 'VoteAccount';\n }\n if (\n jsonParsedConfigs.accountType === 'lookupTable' &&\n jsonParsedConfigs.programName === 'address-lookup-table'\n ) {\n return 'LookupTableAccount';\n }\n if (jsonParsedConfigs.programName === 'sysvar') {\n if (jsonParsedConfigs.accountType === 'clock') {\n return 'SysvarClockAccount';\n }\n if (jsonParsedConfigs.accountType === 'epochRewards') {\n return 'SysvarEpochRewardsAccount';\n }\n if (jsonParsedConfigs.accountType === 'epochSchedule') {\n return 'SysvarEpochScheduleAccount';\n }\n if (jsonParsedConfigs.accountType === 'lastRestartSlot') {\n return 'SysvarLastRestartSlotAccount';\n }\n if (jsonParsedConfigs.accountType === 'recentBlockhashes') {\n return 'SysvarRecentBlockhashesAccount';\n }\n if (jsonParsedConfigs.accountType === 'rent') {\n return 'SysvarRentAccount';\n }\n if (jsonParsedConfigs.accountType === 'slotHashes') {\n return 'SysvarSlotHashesAccount';\n }\n if (jsonParsedConfigs.accountType === 'slotHistory') {\n return 'SysvarSlotHistoryAccount';\n }\n if (jsonParsedConfigs.accountType === 'stakeHistory') {\n return 'SysvarStakeHistoryAccount';\n }\n }\n }\n return 'GenericAccount';\n },\n },\n GenericAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n LookupTableAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n MintAccount: {\n data: resolveAccountData(),\n extensions: resolveTokenExtensions(),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n NonceAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SplTokenExtension: {\n __resolveType: resolveTokenExtensionType,\n },\n SplTokenExtensionConfidentialTransferFeeConfig: {\n authority: resolveAccount('authority'),\n },\n SplTokenExtensionConfidentialTransferMint: {\n authority: resolveAccount('authority'),\n },\n SplTokenExtensionGroupMemberPointer: {\n authority: resolveAccount('authority'),\n memberAddress: resolveAccount('memberAddress'),\n },\n SplTokenExtensionGroupPointer: {\n authority: resolveAccount('authority'),\n groupAddress: resolveAccount('groupAddress'),\n },\n SplTokenExtensionInterestBearingConfig: {\n rateAuthority: resolveAccount('rateAuthority'),\n },\n SplTokenExtensionMetadataPointer: {\n authority: resolveAccount('authority'),\n metadataAddress: resolveAccount('metadataAddress'),\n },\n SplTokenExtensionMintCloseAuthority: {\n closeAuthority: resolveAccount('closeAuthority'),\n },\n SplTokenExtensionPermanentDelegate: {\n delegate: resolveAccount('delegate'),\n },\n SplTokenExtensionTokenGroup: {\n mint: resolveAccount('mint'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenExtensionTokenGroupMember: {\n group: resolveAccount('group'),\n mint: resolveAccount('mint'),\n },\n SplTokenExtensionTokenMetadata: {\n additionalMetadata: resolveAdditionalTokenMetadata(),\n mint: resolveAccount('mint'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenExtensionTransferFeeConfig: {\n transferFeeConfigAuthority: resolveAccount('transferFeeConfigAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenExtensionTransferHook: {\n authority: resolveAccount('authority'),\n hookProgramId: resolveAccount('programId'),\n },\n StakeAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccountDataMetaAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAccountDataMetaLockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeAccountDataStakeDelegation: {\n voter: resolveAccount('voter'),\n },\n SysvarClockAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarEpochRewardsAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarEpochScheduleAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarLastRestartSlotAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarRecentBlockhashesAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarRentAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarSlotHashesAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarSlotHistoryAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarStakeHistoryAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n TokenAccount: {\n data: resolveAccountData(),\n extensions: resolveTokenExtensions(),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccount: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n data: resolveAccountData(),\n node: resolveAccount('nodePubkey'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n};\n","import { BlockResult } from '../../resolvers/block';\n\nexport const blockTypeResolvers = {\n Block: {\n transactions: (parent?: BlockResult) =>\n parent?.transactionResults ? Object.values(parent.transactionResults) : null,\n },\n};\n","import { resolveAccount } from '../../resolvers/account';\nimport { InstructionResult } from '../../resolvers/transaction';\n\nexport const instructionTypeResolvers = {\n AdvanceNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n },\n AllocateInstruction: {\n account: resolveAccount('account'),\n },\n AllocateWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AuthorizeNonceAccountInstruction: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n BpfLoaderFinalizeInstruction: {\n account: resolveAccount('account'),\n },\n BpfLoaderWriteInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderCloseInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n clockSysvar: resolveAccount('clockSysvar'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n BpfUpgradeableLoaderExtendProgramInstruction: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n BpfUpgradeableLoaderInitializeBufferInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderUpgradeInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n clockSysvar: resolveAccount('clockSysvar'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n BpfUpgradeableLoaderWriteInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n CloseLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n CreateAccountInstruction: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstruction: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n CreateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n DeactivateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n ExtendLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n InitializeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n Lockup: {\n custodian: resolveAccount('custodian'),\n },\n SplAssociatedTokenCreateIdempotentInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenCreateInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenRecoverNestedInstruction: {\n destination: resolveAccount('destination'),\n nestedMint: resolveAccount('nestedMint'),\n nestedOwner: resolveAccount('nestedOwner'),\n nestedSource: resolveAccount('nestedSource'),\n ownerMint: resolveAccount('ownerMint'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplTokenAmountToUiAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenApplyPendingConfidentialTransferBalance: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenApproveCheckedInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenApproveConfidentialTransferAccount: {\n account: resolveAccount('account'),\n confidentialTransferAuditorAuthority: resolveAccount('confidentialTransferAuditorAuthority'),\n mint: resolveAccount('mint'),\n },\n SplTokenApproveInstruction: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenBurnCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenBurnInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstruction: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenConfidentialTransfer: {\n destination: resolveAccount('destination'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenConfidentialTransferWithSplitProofs: {\n batchedGroupedCiphertext2HandlesValidityContext: resolveAccount(\n 'batchedGroupedCiphertext2HandlesValidityContext',\n ),\n batchedRangeProofContext: resolveAccount('batchedRangeProofContext'),\n ciphertextCommitmentEqualityContext: resolveAccount('ciphertextCommitmentEqualityContext'),\n contextStateOwner: resolveAccount('contextStateOwner'),\n destination: resolveAccount('destination'),\n lamportDestination: resolveAccount('lamportDestination'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenConfigureConfidentialTransferAccount: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n },\n SplTokenDepositConfidentialTransfer: {\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenDisableConfidentialTransferConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableConfidentialTransferFeeHarvestToMint: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableConfidentialTransferNonConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableCpiGuardInstruction: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableRequiredMemoTransfers: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEmptyConfidentialTransferAccount: {\n account: resolveAccount('account'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableConfidentialTransferConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableConfidentialTransferFeeHarvestToMint: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableConfidentialTransferNonConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableCpiGuardInstruction: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableRequiredMemoTransfers: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenGetAccountDataSizeInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenGroupInitializeGroup: {\n group: resolveAccount('group'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenGroupInitializeMember: {\n group: resolveAccount('group'),\n groupUpdateAuthority: resolveAccount('groupUpdateAuthority'),\n member: resolveAccount('member'),\n memberMint: resolveAccount('memberMint'),\n memberMintAuthority: resolveAccount('memberMintAuthority'),\n },\n SplTokenGroupUpdateGroupAuthority: {\n group: resolveAccount('group'),\n newAuthority: resolveAccount('newAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenGroupUpdateGroupMaxSize: {\n group: resolveAccount('group'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenHarvestWithheldConfidentialTransferTokensToMint: {\n mint: resolveAccount('mint'),\n },\n SplTokenHarvestWithheldTokensToMint: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeAccount2Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeAccount3Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccountInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeConfidentialTransferFeeConfig: {\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeConfidentialTransferMint: {\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeDefaultAccountStateInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeGroupMemberPointerInstruction: {\n authority: resolveAccount('authority'),\n memberAddress: resolveAccount('memberAddress'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeGroupPointerInstruction: {\n authority: resolveAccount('authority'),\n groupAddress: resolveAccount('groupAddress'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeInterestBearingConfig: {\n mint: resolveAccount('mint'),\n rateAuthority: resolveAccount('rateAuthority'),\n },\n SplTokenInitializeMetadataPointerInstruction: {\n authority: resolveAccount('authority'),\n metadataAddress: resolveAccount('metadataAddress'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeMint2Instruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMintCloseAuthorityInstruction: {\n mint: resolveAccount('mint'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenInitializeMintInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeMultisig2Instruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisigInstruction: {\n multisig: resolveAccount('multisig'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializePermanentDelegateInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeTransferFeeConfig: {\n mint: resolveAccount('mint'),\n transferFeeConfigAuthority: resolveAccount('transferFeeConfigAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenInitializeTransferHookInstruction: {\n authority: resolveAccount('authority'),\n hookProgramId: resolveAccount('programId'),\n mint: resolveAccount('mint'),\n },\n SplTokenMetadataEmit: {\n metadata: resolveAccount('metadata'),\n },\n SplTokenMetadataInitialize: {\n metadata: resolveAccount('metadata'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMetadataRemoveKey: {\n metadata: resolveAccount('metadata'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMetadataUpdateAuthority: {\n metadata: resolveAccount('metadata'),\n newAuthority: resolveAccount('newAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMetadataUpdateField: {\n metadata: resolveAccount('metadata'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMintToCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenMintToInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenReallocate: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n payer: resolveAccount('payer'),\n systemProgram: resolveAccount('systemProgram'),\n },\n SplTokenRevokeInstruction: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstruction: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenSyncNativeInstruction: {\n account: resolveAccount('account'),\n },\n SplTokenThawAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenTransferCheckedWithFee: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenTransferInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenUiAmountToAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenUpdateConfidentialTransferMint: {\n authority: resolveAccount('authority'),\n confidentialTransferMintAuthority: resolveAccount('confidentialTransferMintAuthority'),\n mint: resolveAccount('mint'),\n newConfidentialTransferMintAuthority: resolveAccount('newConfidentialTransferMintAuthority'),\n },\n SplTokenUpdateDefaultAccountStateInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenUpdateGroupMemberPointerInstruction: {\n authority: resolveAccount('authority'),\n memberAddress: resolveAccount('memberAddress'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenUpdateGroupPointerInstruction: {\n authority: resolveAccount('authority'),\n groupAddress: resolveAccount('groupAddress'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenUpdateInterestBearingConfigRate: {\n mint: resolveAccount('mint'),\n multisigRateAuthority: resolveAccount('multisigRateAuthority'),\n rateAuthority: resolveAccount('rateAuthority'),\n },\n SplTokenUpdateMetadataPointerInstruction: {\n authority: resolveAccount('authority'),\n metadataAddress: resolveAccount('metadataAddress'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenUpdateTransferHookInstruction: {\n authority: resolveAccount('authority'),\n hookProgramId: resolveAccount('programId'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenWithdrawConfidentialTransfer: {\n destination: resolveAccount('destination'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenWithdrawWithheldConfidentialTransferTokensFromAccounts: {\n feeRecipient: resolveAccount('feeRecipient'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenWithdrawWithheldConfidentialTransferTokensFromMint: {\n feeRecipient: resolveAccount('feeRecipient'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenWithdrawWithheldTokensFromAccounts: {\n feeRecipient: resolveAccount('feeRecipient'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenWithdrawWithheldTokensFromMint: {\n feeRecipient: resolveAccount('feeRecipient'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n StakeAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeCheckedWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDeactivateDelinquentInstruction: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeDeactivateInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeDelegateStakeInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n stakeHistorySysvar: resolveAccount('stakeHistorySysvar'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeInitializeCheckedInstruction: {\n rentSysvar: resolveAccount('rentSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeInitializeInstruction: {\n rentSysvar: resolveAccount('rentSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeMergeInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeHistorySysvar: resolveAccount('stakeHistorySysvar'),\n },\n StakeRedelegateInstruction: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSetLockupCheckedInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSplitInstruction: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n TransactionInstruction: {\n __resolveType(instructionResult: InstructionResult) {\n const { jsonParsedConfigs } = instructionResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'address-lookup-table') {\n if (jsonParsedConfigs.instructionType === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'bpf-loader') {\n if (jsonParsedConfigs.instructionType === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'bpf-upgradeable-loader') {\n if (jsonParsedConfigs.instructionType === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'spl-associated-token-account') {\n if (jsonParsedConfigs.instructionType === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (jsonParsedConfigs.programName === 'spl-token') {\n if (jsonParsedConfigs.instructionType === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializePermanentDelegate') {\n return 'SplTokenInitializePermanentDelegateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeGroupPointer') {\n return 'SplTokenInitializeGroupPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateGroupPointer') {\n return 'SplTokenUpdateGroupPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeGroupMemberPointer') {\n return 'SplTokenInitializeGroupMemberPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateGroupMemberPointer') {\n return 'SplTokenUpdateGroupMemberPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMetadataPointer') {\n return 'SplTokenInitializeMetadataPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateMetadataPointer') {\n return 'SplTokenUpdateMetadataPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTransferFeeConfig') {\n return 'SplTokenInitializeTransferFeeConfig';\n }\n if (jsonParsedConfigs.instructionType === 'transferCheckedWithFee') {\n return 'SplTokenTransferCheckedWithFee';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTransferHook') {\n return 'SplTokenInitializeTransferHookInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateTransferHook') {\n return 'SplTokenUpdateTransferHookInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeDefaultAccountState') {\n return 'SplTokenInitializeDefaultAccountStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateDefaultAccountState') {\n return 'SplTokenUpdateDefaultAccountStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'disableCpiGuard') {\n return 'SplTokenDisableCpiGuardInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'enableCpiGuard') {\n return 'SplTokenEnableCpiGuardInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'harvestWithheldTokensToMint') {\n return 'SplTokenHarvestWithheldTokensToMint';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawWithheldTokensFromAccounts') {\n return 'SplTokenWithdrawWithheldTokensFromAccounts';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawWithheldTokensFromMint') {\n return 'SplTokenWithdrawWithheldTokensFromMint';\n }\n if (jsonParsedConfigs.instructionType === 'enableRequiredMemoTransfers') {\n return 'SplTokenEnableRequiredMemoTransfers';\n }\n if (jsonParsedConfigs.instructionType === 'disableRequiredMemoTransfers') {\n return 'SplTokenDisableRequiredMemoTransfers';\n }\n if (jsonParsedConfigs.instructionType === 'initializeConfidentialTransferMint') {\n return 'SplTokenInitializeConfidentialTransferMint';\n }\n if (jsonParsedConfigs.instructionType === 'initializeInterestBearingConfig') {\n return 'SplTokenInitializeInterestBearingConfig';\n }\n if (jsonParsedConfigs.instructionType === 'updateInterestBearingConfigRate') {\n return 'SplTokenUpdateInterestBearingConfigRate';\n }\n if (jsonParsedConfigs.instructionType === 'approveConfidentialTransferAccount') {\n return 'SplTokenApproveConfidentialTransferAccount';\n }\n if (jsonParsedConfigs.instructionType === 'emptyConfidentialTransferAccount') {\n return 'SplTokenEmptyConfidentialTransferAccount';\n }\n if (jsonParsedConfigs.instructionType === 'configureConfidentialTransferAccount') {\n return 'SplTokenConfigureConfidentialTransferAccount';\n }\n if (jsonParsedConfigs.instructionType === 'applyPendingConfidentialTransferBalance') {\n return 'SplTokenApplyPendingConfidentialTransferBalance';\n }\n if (jsonParsedConfigs.instructionType === 'enableConfidentialTransferConfidentialCredits') {\n return 'SplTokenEnableConfidentialTransferConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'disableConfidentialTransferConfidentialCredits') {\n return 'SplTokenDisableConfidentialTransferConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'enableConfidentialTransferNonConfidentialCredits') {\n return 'SplTokenEnableConfidentialTransferNonConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'disableNonConfidentialTransferConfidentialCredits') {\n return 'SplTokenDisableConfidentialTransferNonConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'depositConfidentialTransfer') {\n return 'SplTokenDepositConfidentialTransfer';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawConfidentialTransfer') {\n return 'SplTokenWithdrawConfidentialTransfer';\n }\n if (jsonParsedConfigs.instructionType === 'confidentialTransfer') {\n return 'SplTokenConfidentialTransfer';\n }\n if (jsonParsedConfigs.instructionType === 'confidentialTransferWithSplitProofs') {\n return 'SplTokenConfidentialTransferWithSplitProofs';\n }\n if (jsonParsedConfigs.instructionType === 'updateConfidentialTransferMint') {\n return 'SplTokenUpdateConfidentialTransferMint';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawWithheldConfidentialTransferTokensFromMint') {\n return 'SplTokenWithdrawWithheldConfidentialTransferTokensFromMint';\n }\n if (\n jsonParsedConfigs.instructionType === 'withdrawWithheldConfidentialTransferTokensFromAccounts'\n ) {\n return 'SplTokenWithdrawWithheldConfidentialTransferTokensFromAccounts';\n }\n if (jsonParsedConfigs.instructionType === 'harvestWithheldConfidentialTransferTokensToMint') {\n return 'SplTokenHarvestWithheldConfidentialTransferTokensToMint';\n }\n if (jsonParsedConfigs.instructionType === 'enableConfidentialTransferFeeHarvestToMint') {\n return 'SplTokenEnableConfidentialTransferFeeHarvestToMint';\n }\n if (jsonParsedConfigs.instructionType === 'disableConfidentialTransferFeeHarvestToMint') {\n return 'SplTokenDisableConfidentialTransferFeeHarvestToMint';\n }\n if (jsonParsedConfigs.instructionType === 'initializeConfidentialTransferFeeConfig') {\n return 'SplTokenInitializeConfidentialTransferFeeConfig';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTokenGroup') {\n return 'SplTokenGroupInitializeGroup';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenGroupMaxSize') {\n return 'SplTokenGroupUpdateGroupMaxSize';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenGroupAuthority') {\n return 'SplTokenGroupUpdateGroupAuthority';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTokenGroupMember') {\n return 'SplTokenGroupInitializeMember';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTokenMetadata') {\n return 'SplTokenMetadataInitialize';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenMetadataField') {\n return 'SplTokenMetadataUpdateField';\n }\n if (jsonParsedConfigs.instructionType === 'removeTokenMetadataKey') {\n return 'SplTokenMetadataRemoveKey';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenMetadataAuthority') {\n return 'SplTokenMetadataUpdateAuthority';\n }\n if (jsonParsedConfigs.instructionType === 'emitTokenMetadata') {\n return 'SplTokenMetadataEmit';\n }\n if (jsonParsedConfigs?.instructionType === 'reallocate') {\n return 'SplTokenReallocate';\n }\n }\n if (jsonParsedConfigs.programName === 'stake') {\n if (jsonParsedConfigs.instructionType === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'split') {\n return 'StakeSplitInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'system') {\n if (jsonParsedConfigs.instructionType === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'assign') {\n return 'AssignInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transfer') {\n return 'TransferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'allocate') {\n return 'AllocateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'vote') {\n if (jsonParsedConfigs.instructionType === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n }\n return 'GenericInstruction';\n },\n },\n TransferInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n TransferWithSeedInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n UpgradeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n VoteAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteCompactUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteInitializeAccountInstruction: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n clockSysvar: resolveAccount('clockSysvar'),\n node: resolveAccount('node'),\n\n rentSysvar: resolveAccount('rentSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteUpdateCommissionInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateValidatorIdentityInstruction: {\n newValidatorIdentity: resolveAccount('newValidatorIdentity'),\n\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n slotHashesSysvar: resolveAccount('slotHashesSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteSwitchInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n slotHashesSysvar: resolveAccount('slotHashesSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n WithdrawNonceAccountInstruction: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n};\n","import { Address } from '@solana/addresses';\nimport { Signature } from '@solana/keys';\nimport { Commitment } from '@solana/rpc-types';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn, TransactionLoaderValue } from '../loaders';\nimport { buildTransactionLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\nexport type EncodedTransactionData = {\n [key: string]: string;\n};\n\nexport type InstructionResult = {\n [key: string]: unknown;\n} & {\n jsonParsedConfigs?: {\n instructionType: string;\n programId: Address;\n programName: string;\n };\n programId?: Address;\n};\n\nexport type TransactionResult = Partial<TransactionLoaderValue> & {\n encodedData?: EncodedTransactionData;\n signature?: Signature;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapJsonParsedInstructions(instructions: readonly any[]): InstructionResult[] {\n return instructions.map(instruction => {\n if ('parsed' in instruction) {\n // `jsonParsed`\n if (typeof instruction.parsed === 'string' && instruction.program === 'spl-memo') {\n const { parsed: memo, program: programName, programId } = instruction;\n const instructionType = 'memo';\n const jsonParsedConfigs = {\n instructionType,\n programId,\n programName,\n };\n return { jsonParsedConfigs, memo, programId };\n }\n const {\n parsed: { info: data, type: instructionType },\n program: programName,\n programId,\n } = instruction;\n const jsonParsedConfigs = {\n instructionType,\n programId,\n programName,\n };\n return { jsonParsedConfigs, ...data, programId };\n } else {\n // `json`\n return instruction;\n }\n });\n}\n\nexport function mapJsonParsedInnerInstructions(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n innerInstructions: readonly any[],\n): { index: number; instructions: InstructionResult[] }[] {\n return innerInstructions.map(({ index, instructions }) => ({\n index,\n instructions: mapJsonParsedInstructions(instructions),\n }));\n}\n\nexport const resolveTransactionData = () => {\n return (\n parent: TransactionResult | null,\n args: {\n encoding: 'base58' | 'base64';\n },\n ) => {\n return parent === null ? null : parent.encodedData ? parent.encodedData[cacheKeyFn(args)] : null;\n };\n};\n\nexport function resolveTransaction(fieldName?: string) {\n return async (\n parent: { [x: string]: Signature },\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n signature?: Signature;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<TransactionResult | null> => {\n const signature = fieldName ? parent[fieldName] : args.signature;\n\n if (signature) {\n if (onlyFieldsRequested(['signature'], info)) {\n return { signature };\n }\n\n const argsSet = buildTransactionLoaderArgSetFromResolveInfo({ ...args, signature }, info);\n const loadedTransactions = await context.loaders.transaction.loadMany(argsSet);\n\n let result: TransactionResult = {\n encodedData: {},\n signature,\n };\n\n loadedTransactions.forEach((loadedTransaction, i) => {\n if (loadedTransaction instanceof Error) {\n console.error(loadedTransaction);\n return;\n }\n if (loadedTransaction === null) {\n return;\n }\n if (!result.slot) {\n result = {\n ...result,\n ...loadedTransaction,\n };\n }\n\n const { transaction: data } = loadedTransaction;\n const { encoding } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[\n cacheKeyFn({\n encoding,\n })\n ] = data[0];\n } else if (typeof data === 'object') {\n const jsonParsedData = data;\n jsonParsedData.message.instructions = mapJsonParsedInstructions(\n jsonParsedData.message.instructions,\n ) as unknown as (typeof jsonParsedData)['message']['instructions'];\n\n const loadedInnerInstructions = loadedTransaction.meta?.innerInstructions;\n if (loadedInnerInstructions) {\n const innerInstructions = mapJsonParsedInnerInstructions(loadedInnerInstructions);\n const jsonParsedMeta = {\n ...loadedTransaction.meta,\n innerInstructions,\n };\n result = {\n ...result,\n ...jsonParsedData,\n meta: jsonParsedMeta as unknown as (typeof loadedTransaction)['meta'],\n };\n } else {\n result = {\n ...result,\n ...jsonParsedData,\n };\n }\n }\n }\n });\n return result;\n }\n return null;\n };\n}\n","import type { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { BlockLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildBlockLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\nimport { mapJsonParsedInnerInstructions, mapJsonParsedInstructions, TransactionResult } from './transaction';\n\nexport type BlockResult = Partial<BlockLoaderValue> & {\n slot: Slot;\n transactionResults?: { [i: number]: TransactionResult };\n};\n\nexport const resolveBlock = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Slot },\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n slot?: Slot;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ) => {\n const slot = fieldName ? parent[fieldName] : args.slot;\n\n if (slot) {\n if (onlyFieldsRequested(['slot'], info)) {\n return { slot };\n }\n\n const argsSet = buildBlockLoaderArgSetFromResolveInfo({ ...args, slot }, info);\n const loadedBlocks = await context.loaders.block.loadMany(argsSet);\n\n let result: BlockResult = {\n slot,\n };\n\n loadedBlocks.forEach((loadedBlock, i) => {\n if (loadedBlock instanceof Error) {\n console.error(loadedBlock);\n return;\n }\n if (loadedBlock === null) {\n return;\n }\n if (!result.blockhash) {\n result = {\n ...result,\n ...loadedBlock,\n };\n }\n // @ts-expect-error FIX ME: https://github.com/solana-labs/solana-web3.js/pull/2052\n if (!result.signatures && loadedBlock.signatures) {\n result = {\n ...result,\n // @ts-expect-error FIX ME: https://github.com/solana-labs/solana-web3.js/pull/2052\n signatures: loadedBlock.signatures,\n };\n }\n if (!result.transactionResults && loadedBlock.transactions) {\n result.transactionResults = Array.from({ length: loadedBlock.transactions.length }, (_, i) => ({\n [i]: { encodedData: {} },\n }));\n }\n\n const { transactions } = loadedBlock;\n const { encoding } = argsSet[i];\n\n if (encoding) {\n transactions.forEach((loadedTransaction, j) => {\n const { transaction: data } = loadedTransaction;\n\n if (result.transactionResults) {\n const thisTransactionResult = (result.transactionResults[j] ||= {\n encodedData: {},\n });\n\n if (Array.isArray(data)) {\n const thisEncodedData = (thisTransactionResult.encodedData ||= {});\n thisEncodedData[\n cacheKeyFn({\n encoding,\n })\n ] = data[0];\n } else if (typeof data === 'object') {\n const jsonParsedData: typeof data = {\n ...data,\n message: {\n ...data.message,\n instructions: mapJsonParsedInstructions(\n data.message.instructions,\n ) as unknown as (typeof jsonParsedData)['message']['instructions'],\n },\n };\n\n const loadedInnerInstructions = loadedTransaction.meta?.innerInstructions;\n if (loadedInnerInstructions) {\n const innerInstructions = mapJsonParsedInnerInstructions(loadedInnerInstructions);\n const jsonParsedMeta = {\n ...loadedTransaction.meta,\n innerInstructions,\n };\n result.transactionResults[j] = {\n ...thisTransactionResult,\n ...jsonParsedData,\n meta: jsonParsedMeta as unknown as TransactionResult['meta'],\n };\n } else {\n result.transactionResults[j] = {\n ...thisTransactionResult,\n ...jsonParsedData,\n };\n }\n }\n }\n });\n }\n });\n return result;\n }\n return null;\n };\n};\n","import { Address } from '@solana/addresses';\nimport { Commitment, GetProgramAccountsDatasizeFilter, GetProgramAccountsMemcmpFilter, Slot } from '@solana/rpc-types';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn } from '../loaders';\nimport { AccountResult } from './account';\nimport { buildProgramAccountsLoaderArgSetFromResolveInfo } from './resolve-info';\n\nexport function resolveProgramAccounts(fieldName?: string) {\n return async (\n parent: { [x: string]: Address },\n args: {\n /**\n * Fetch the details of the accounts as of the highest slot that has reached this level\n * of commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use.\n * For example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer\n * on the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n dataSizeFilters?: GetProgramAccountsDatasizeFilter[];\n memcmpFilters?: GetProgramAccountsMemcmpFilter['memcmp'][];\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed\n * transactions up to this slot\n */\n minContextSlot?: Slot;\n programAddress: Address;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult[] | null> => {\n const programAddress = fieldName ? parent[fieldName] : args.programAddress;\n let filters: (GetProgramAccountsDatasizeFilter | GetProgramAccountsMemcmpFilter)[] | undefined = [];\n if (args.memcmpFilters) {\n filters.concat(\n args.memcmpFilters.map(memcmpFilter => ({\n memcmp: memcmpFilter,\n })),\n );\n }\n if (args.dataSizeFilters) {\n filters = filters.concat(args.dataSizeFilters);\n }\n if (filters.length === 0) {\n filters = undefined;\n }\n\n if (programAddress) {\n const argsSet = buildProgramAccountsLoaderArgSetFromResolveInfo({ ...args, filters, programAddress }, info);\n const loadedProgramAccountsLists = await context.loaders.programAccounts.loadMany(argsSet);\n\n const result: {\n [address: string]: AccountResult;\n } = {};\n\n loadedProgramAccountsLists.forEach((programAccounts, i) => {\n if (programAccounts instanceof Error) {\n console.error(programAccounts);\n return;\n }\n programAccounts.forEach(programAccount => {\n const { account, pubkey: address } = programAccount;\n\n const thisResult = (result[address] ||= {\n ...account,\n address,\n encodedData: {},\n ownerProgram: account.owner,\n });\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && thisResult.encodedData) {\n if (Array.isArray(data)) {\n thisResult.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })\n ] = data[0];\n } else if (typeof data === 'string') {\n thisResult.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })\n ] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n thisResult.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n for (const key in parsedData as object) {\n thisResult[key as keyof typeof thisResult] = parsedData[key];\n }\n }\n }\n });\n });\n return Object.values(result);\n }\n return null;\n };\n}\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { resolveAccount } from '../../resolvers/account';\nimport { resolveBlock } from '../../resolvers/block';\nimport { resolveProgramAccounts } from '../../resolvers/program-accounts';\nimport { resolveTransaction } from '../../resolvers/transaction';\n\nexport const rootTypeResolvers: Parameters<typeof makeExecutableSchema>[0]['resolvers'] = {\n Query: {\n account: resolveAccount(),\n block: resolveBlock(),\n programAccounts: resolveProgramAccounts(),\n transaction: resolveTransaction(),\n },\n};\n","import { resolveTransactionData } from '../../resolvers/transaction';\n\nexport const transactionTypeResolvers = {\n Transaction: {\n data: resolveTransactionData(),\n },\n};\n","import { Kind } from 'graphql';\n\nimport { resolveAccount } from '../../resolvers/account';\n\nconst stringScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: bigint | boolean | number | string }): string | null {\n if (ast.kind === Kind.STRING) {\n return ast.value.toString();\n }\n return null;\n },\n __parseValue(value: string): string {\n return value;\n },\n __serialize(value: string): string {\n return value;\n },\n};\n\nconst bigIntScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: bigint | boolean | number | string }): bigint | null {\n if (ast.kind === Kind.STRING || ast.kind === Kind.INT || ast.kind === Kind.FLOAT) {\n return BigInt(ast.value);\n }\n return null;\n },\n __parseValue(value: string): bigint {\n return BigInt(value);\n },\n __serialize(value: string): bigint {\n return BigInt(value);\n },\n};\n\nexport const typeTypeResolvers = {\n AccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n BASE_64_ZSTD: 'base64+zstd',\n },\n Address: stringScalarAlias,\n Base58EncodedBytes: stringScalarAlias,\n Base64EncodedBytes: stringScalarAlias,\n Base64ZstdEncodedBytes: stringScalarAlias,\n BigInt: bigIntScalarAlias,\n Commitment: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n PROCESSED: 'processed',\n },\n CommitmentWithoutProcessed: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n },\n Epoch: bigIntScalarAlias,\n Hash: stringScalarAlias,\n Lamports: bigIntScalarAlias,\n ProgramAccountsMemcmpFilterAccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n },\n Signature: stringScalarAlias,\n Slot: bigIntScalarAlias,\n SplTokenDefaultAccountState: {\n FROZEN: 'frozen',\n INITIALIZED: 'initialized',\n UNINITIALIZED: 'uninitialized',\n },\n SplTokenExtensionType: {\n CONFIDENTIAL_TRANSFER_ACCOUNT: 'confidentialTransferAccount',\n CONFIDENTIAL_TRANSFER_FEE_AMOUNT: 'confidentialTransferFeeAmount',\n CONFIDENTIAL_TRANSFER_FEE_CONFIG: 'confidentialTransferFeeConfig',\n CONFIDENTIAL_TRANSFER_MINT: 'confidentialTransferMint',\n CPI_GUARD: 'cpiGuard',\n DEFAULT_ACCOUNT_STATE: 'defaultAccountState',\n GROUP_MEMBER_POINTER: 'groupMemberPointer',\n GROUP_POINTER: 'groupPointer',\n IMMUTABLE_OWNER: 'immutableOwner',\n INTEREST_BEARING_CONFIG: 'interestBearingConfig',\n MEMO_TRANSFER: 'memoTransfer',\n METADATA_POINTER: 'metadataPointer',\n MINT_CLOSE_AUTHORITY: 'mintCloseAuthority',\n NON_TRANSFERABLE: 'nonTransferable',\n NON_TRANSFERABLE_ACCOUNT: 'nonTransferableAccount',\n PERMANENT_DELEGATE: 'permanentDelegate',\n TOKEN_GROUP: 'tokenGroup',\n TOKEN_GROUP_MEMBER: 'tokenGroupMember',\n TOKEN_METADATA: 'tokenMetadata',\n TRANSFER_FEE_AMOUNT: 'transferFeeAmount',\n TRANSFER_FEE_CONFIG: 'transferFeeConfig',\n TRANSFER_HOOK: 'transferHook',\n TRANSFER_HOOK_ACCOUNT: 'transferHookAccount',\n UNINITIALIZED: 'uninitialized',\n UNPARSEABLE_EXTENSION: 'unparseableExtension',\n },\n TokenBalance: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n TransactionEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n },\n};\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { accountTypeResolvers } from './account';\nimport { blockTypeResolvers } from './block';\nimport { instructionTypeResolvers } from './instruction';\nimport { rootTypeResolvers } from './root';\nimport { transactionTypeResolvers } from './transaction';\nimport { typeTypeResolvers } from './types';\n\n/**\n * Create the GraphQL type resolvers for the Solana GraphQL schema.\n *\n * @returns Solana GraphQL type resolvers.\n */\nexport function createSolanaGraphQLTypeResolvers(): Parameters<typeof makeExecutableSchema>[0]['resolvers'] {\n return {\n ...accountTypeResolvers,\n ...blockTypeResolvers,\n ...instructionTypeResolvers,\n ...rootTypeResolvers,\n ...transactionTypeResolvers,\n ...typeTypeResolvers,\n };\n}\n","import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { graphql } from 'graphql';\n\nimport { createSolanaGraphQLContext } from './context';\nimport { createSolanaGraphQLTypeDefs } from './schema/type-defs';\nimport { createSolanaGraphQLTypeResolvers } from './schema/type-resolvers';\n\nexport interface RpcGraphQL {\n query(\n source: Parameters<typeof graphql>[0]['source'],\n variableValues?: Parameters<typeof graphql>[0]['variableValues'],\n ): ReturnType<typeof graphql>;\n}\n\n/**\n * Create a GraphQL RPC client resolver.\n *\n * @param rpc Solana RPC client.\n * @param schema GraphQL schema.\n * @param config Optional GraphQL resolver configurations.\n * @returns GraphQL RPC client resolver.\n */\nexport function createRpcGraphQL(\n rpc: Parameters<typeof createSolanaGraphQLContext>[0],\n schema: ReturnType<typeof makeExecutableSchema>,\n config?: Partial<Parameters<typeof createSolanaGraphQLContext>[1]>,\n): RpcGraphQL {\n const rpcGraphQLConfig = {\n maxDataSliceByteRange: config?.maxDataSliceByteRange ?? 200,\n maxMultipleAccountsBatchSize: config?.maxMultipleAccountsBatchSize ?? 100,\n };\n return {\n async query(source, variableValues?) {\n const contextValue = createSolanaGraphQLContext(rpc, rpcGraphQLConfig);\n return await graphql({\n contextValue,\n schema,\n source,\n variableValues,\n });\n },\n };\n}\n\n/**\n * Create a Solana GraphQL RPC client resolver.\n *\n * Configures the client resolver to use the default Solana GraphQL schema.\n *\n * @param rpc Solana RPC client.\n * @param config Optional GraphQL resolver configurations.\n * @returns Solana GraphQL RPC client resolver.\n */\nexport function createSolanaRpcGraphQL(\n rpc: Parameters<typeof createSolanaGraphQLContext>[0],\n config?: Partial<Parameters<typeof createSolanaGraphQLContext>[1]>,\n): RpcGraphQL {\n const schema = makeExecutableSchema({\n resolvers: createSolanaGraphQLTypeResolvers(),\n typeDefs: createSolanaGraphQLTypeDefs(),\n });\n return createRpcGraphQL(rpc, schema, config);\n}\n\nexport { createSolanaGraphQLTypeDefs, createSolanaGraphQLTypeResolvers };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/loaders/loader.ts","../src/loaders/coalescer.ts","../src/loaders/account.ts","../src/loaders/block.ts","../src/loaders/program-accounts.ts","../src/loaders/transaction.ts","../src/context.ts","../src/schema/type-defs/account.ts","../src/schema/type-defs/block.ts","../src/schema/type-defs/instruction.ts","../src/schema/type-defs/root.ts","../src/schema/type-defs/transaction.ts","../src/schema/type-defs/types.ts","../src/schema/type-defs/index.ts","../src/resolvers/resolve-info/visitor.ts","../src/resolvers/resolve-info/account.ts","../src/resolvers/resolve-info/transaction.ts","../src/resolvers/resolve-info/block.ts","../src/resolvers/resolve-info/program-accounts.ts","../src/resolvers/account.ts","../src/schema/type-resolvers/account.ts","../src/schema/type-resolvers/block.ts","../src/schema/type-resolvers/instruction.ts","../src/resolvers/transaction.ts","../src/resolvers/block.ts","../src/resolvers/program-accounts.ts","../src/schema/type-resolvers/root.ts","../src/schema/type-resolvers/transaction.ts","../src/schema/type-resolvers/types.ts","../src/schema/type-resolvers/index.ts","../src/index.ts"],"names":["stringify","toFetch","args","promiseCallbacksForSignature","promiseCallbacksForAddress","getBase58Codec","getBase64Codec","ii","DataLoader","visit","onlyFieldsRequested","BREAK","info","isInterfaceType","findArgumentNodeByName","programName","programId","instructionType","jsonParsedConfigs","i","Kind","graphql","schema","makeExecutableSchema"],"mappings":"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AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACAtC,IAAM,aAAA;AAAA;AAAA,EAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACGpC,IAAM,mBAAA;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACH1C,IAAM,YAAA;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACAnC,IAAM,mBAAA;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;ACA1C,IAAM,YAAA;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA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","file":"index.browser.cjs","sourcesContent":["import type { Address } from '@solana/addresses';\nimport stringify from '@solana/fast-stable-stringify';\nimport type { Signature } from '@solana/keys';\nimport type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi } from '@solana/rpc';\nimport type {\n Commitment,\n GetProgramAccountsDatasizeFilter,\n GetProgramAccountsMemcmpFilter,\n Slot,\n} from '@solana/rpc-types';\n\nexport type BatchLoadPromiseCallback<T> = Readonly<{\n reject: (reason?: unknown) => void;\n resolve: (value: T) => void;\n}>;\n\n// Loader base types\nexport type LoadFn<TArgs, T> = (args: TArgs) => Promise<T>;\nexport type LoadManyFn<TArgs, T> = (args: TArgs[]) => Promise<(Error | T)[]>;\nexport type Loader<TArgs, T> = { load: LoadFn<TArgs, T>; loadMany: LoadManyFn<TArgs, T> };\n\nexport type AccountLoaderArgsBase = {\n /**\n * Fetch the details of the account as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default commitment\n * is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on the client, the\n * default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n dataSlice?: { length: number; offset: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions up to\n * this slot\n */\n minContextSlot?: Slot;\n};\nexport type AccountLoaderArgs = AccountLoaderArgsBase & { address: Address };\nexport type AccountLoaderValue = ReturnType<GetAccountInfoApi['getAccountInfo']>['value'] | null;\nexport type AccountLoader = Loader<AccountLoaderArgs, AccountLoaderValue>;\n\nexport type BlockLoaderArgsBase = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: 'legacy' | 0;\n rewards?: boolean;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\nexport type BlockLoaderArgs = BlockLoaderArgsBase & { slot: Slot };\nexport type BlockLoaderValue = ReturnType<GetBlockApi['getBlock']> | null;\nexport type BlockLoader = Loader<BlockLoaderArgs, BlockLoaderValue>;\n\nexport type MultipleAccountsLoaderArgs = AccountLoaderArgsBase & { addresses: Address[] };\nexport type MultipleAccountsLoaderValue = AccountLoaderValue[];\nexport type MultipleAccountsLoader = Loader<MultipleAccountsLoaderArgs, MultipleAccountsLoaderValue>;\n\nexport type ProgramAccountsLoaderArgsBase = {\n /**\n * Fetch the details of the accounts as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default commitment\n * is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on the client, the\n * default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n dataSlice?: { length: number; offset: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters?: (GetProgramAccountsDatasizeFilter | GetProgramAccountsMemcmpFilter)[];\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions up to\n * this slot\n */\n minContextSlot?: Slot;\n};\nexport type ProgramAccountsLoaderArgs = ProgramAccountsLoaderArgsBase & { programAddress: Address };\nexport type ProgramAccountsLoaderValue = ReturnType<GetProgramAccountsApi['getProgramAccounts']>;\nexport type ProgramAccountsLoader = Loader<ProgramAccountsLoaderArgs, ProgramAccountsLoaderValue>;\n\nexport type TransactionLoaderArgsBase = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n};\nexport type TransactionLoaderArgs = TransactionLoaderArgsBase & { signature: Signature };\nexport type TransactionLoaderValue = ReturnType<GetTransactionApi['getTransaction']> | null;\nexport type TransactionLoader = Loader<TransactionLoaderArgs, TransactionLoaderValue>;\n\nexport type RpcGraphQLLoaders = {\n account: AccountLoader;\n block: BlockLoader;\n programAccounts: ProgramAccountsLoader;\n transaction: TransactionLoader;\n};\n\nexport const cacheKeyFn = (obj: unknown) => stringify(obj) ?? '';\n","import { DataSlice } from '@solana/rpc-types';\n\nimport { BatchLoadPromiseCallback, cacheKeyFn } from './loader';\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd' | 'json' | 'jsonParsed';\n\nexport type Fetch<TArgs extends { encoding?: Encoding }, TValue> = Readonly<{\n args: TArgs;\n promiseCallback: BatchLoadPromiseCallback<TValue>;\n}>;\nexport type ToFetchMap<TArgs extends { encoding?: Encoding }, TValue> = {\n [key: string]: Fetch<TArgs, TValue>[];\n};\nexport type FetchesByArgsHash<TArgs extends { encoding?: Encoding }, TValue> = {\n [argsHash: string]: {\n args: TArgs;\n fetches: {\n [key: string]: {\n callbacks: BatchLoadPromiseCallback<TValue>[];\n };\n };\n };\n};\nexport type FetchesByArgsHashWithDataSlice<TArgs extends { dataSlice?: DataSlice; encoding?: Encoding }, TValue> = {\n [argsHash: string]: {\n args: TArgs;\n fetches: {\n [key: string]: {\n callbacks: {\n callback: BatchLoadPromiseCallback<TValue>;\n dataSlice?: DataSlice | null;\n }[];\n };\n };\n };\n};\n\nconst hashOmit = <TArgs extends object>(args: TArgs, omit: (keyof TArgs)[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const argsObj: any = {};\n for (const [key, value] of Object.entries(args)) {\n if (!omit.includes(key as keyof TArgs)) {\n argsObj[key] = value;\n }\n }\n return cacheKeyFn(argsObj);\n};\n\nexport function buildCoalescedFetchesByArgsHash<TArgs extends { encoding?: Encoding }, TValue>(\n toFetchMap: ToFetchMap<TArgs, TValue>,\n orphanConfig: {\n criteria: (args: TArgs) => boolean;\n defaults: (args: TArgs) => TArgs;\n hashOmit: (keyof TArgs)[];\n },\n): FetchesByArgsHash<TArgs, TValue> {\n const fetchesByArgsHash: FetchesByArgsHash<TArgs, TValue> = {};\n\n // Keep track of any fetches that don't specify an encoding, to be\n // wrapped into another fetch that does.\n const orphanedFetches: typeof toFetchMap = {};\n\n Object.entries(toFetchMap).forEach(([signature, toFetch]) => {\n toFetch.forEach(({ args, promiseCallback }) => {\n if (orphanConfig.criteria(args)) {\n const toFetch = (orphanedFetches[signature] ||= []);\n toFetch.push({ args, promiseCallback });\n return;\n }\n\n const argsHash = hashOmit(args, []);\n const transactionFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForSignature } = (transactionFetches.fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(promiseCallback);\n });\n });\n\n // Place the orphans\n Object.entries(orphanedFetches).forEach(([signature, toFetch]) => {\n toFetch.forEach(({ args: orphanArgs, promiseCallback: orphanPromiseCallback }) => {\n if (Object.keys(fetchesByArgsHash).length !== 0) {\n for (const { fetches, args } of Object.values(fetchesByArgsHash)) {\n // Check if the two arg sets are a match without `encoding`\n if (hashOmit(orphanArgs, orphanConfig.hashOmit) === hashOmit(args, orphanConfig.hashOmit)) {\n const { callbacks: promiseCallbacksForSignature } = (fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(orphanPromiseCallback);\n return;\n }\n }\n }\n // Create a new fetch.\n const args = orphanConfig.defaults(orphanArgs);\n const argsHash = hashOmit(args, []);\n const transactionFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForSignature } = (transactionFetches.fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(orphanPromiseCallback);\n });\n });\n\n return fetchesByArgsHash;\n}\n\nexport function buildCoalescedFetchesByArgsHashWithDataSlice<\n TArgs extends { dataSlice?: DataSlice; encoding?: Encoding },\n TValue,\n>(toFetchMap: ToFetchMap<TArgs, TValue>, maxDataSliceByteRange: number): FetchesByArgsHashWithDataSlice<TArgs, TValue> {\n const fetchesByArgsHash: FetchesByArgsHashWithDataSlice<TArgs, TValue> = {};\n\n // Keep track of any fetches that don't specify an encoding, to be\n // wrapped into another fetch that does.\n const orphanedFetches: typeof toFetchMap = {};\n\n Object.entries(toFetchMap).forEach(([address, toFetch]) => {\n toFetch.forEach(({ args, promiseCallback }) => {\n // As per the schema, `encoding` can only be provided if a\n // `data` field is present, and the argument is required.\n // So we can assume if no encoding is provided, this\n // particular fetch is not concerned with data. We can\n // combine it with some other fetch.\n if (!args.encoding) {\n const toFetch = (orphanedFetches[address] ||= []);\n toFetch.push({ args, promiseCallback });\n return;\n }\n // As per the schema, `dataSlice` cannot be provided without\n // encoding.\n // Don't try to combine fetches with `base64+zstd` encoding.\n if (args.encoding != 'base64+zstd' && args.dataSlice) {\n // If the fetch arg set has `dataSlice` provided, try\n // to combine it with another request.\n const r = args.dataSlice;\n for (const { fetches: fetchAddresses, args: fetchArgs } of Object.values(fetchesByArgsHash)) {\n /**\n * Add a callback to the list of callbacks for the current address,\n * possibly updating the `dataSlice` argument used for the entire\n * fetch.\n */\n const addCallbackWithDataSlice = (updateDataSlice?: DataSlice) => {\n const { callbacks: promiseCallbacksForAddress } = (fetchAddresses[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({\n callback: promiseCallback,\n dataSlice: args.dataSlice ?? null,\n });\n if (fetchArgs.dataSlice && updateDataSlice) {\n fetchArgs.dataSlice = updateDataSlice;\n }\n };\n\n // Check if the two arg sets are a match without the `dataSlice`\n // argument.\n if (hashOmit(args, ['dataSlice']) === hashOmit(fetchArgs, ['dataSlice'])) {\n if (fetchArgs.dataSlice) {\n // The arg sets match, and the fetch arg set has a `dataSlice`\n // argument. Try to merge the two account fetches.\n const g = fetchArgs.dataSlice;\n if (r.offset <= g.offset && g.offset - r.offset + r.length <= maxDataSliceByteRange) {\n const length = Math.max(r.length, g.offset + g.length - r.offset);\n const offset = r.offset;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n if (r.offset >= g.offset && r.offset - g.offset + g.length <= maxDataSliceByteRange) {\n const length = Math.max(g.length, r.offset + r.length - g.offset);\n const offset = g.offset;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n } else {\n // The arg sets match, and the fetch arg set has no `dataSlice`\n // argument. Merge the two account fetches.\n const { length, offset } = r;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n }\n }\n }\n // Either the fetch arg set has no `dataSlice` argument, or\n // it couldn't be combined with another fetch, likely due to\n // the wasted byte limitation.\n // Add the fetch to the list as a new fetch.\n const argsHash = hashOmit(args, []);\n const accountFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForAddress } = (accountFetches.fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: promiseCallback, dataSlice: args.dataSlice ?? null });\n });\n });\n\n // Place the orphans\n Object.entries(orphanedFetches).forEach(([address, toFetch]) => {\n toFetch.forEach(({ args: orphanedArgs, promiseCallback: orphanPromiseCallback }) => {\n if (Object.keys(fetchesByArgsHash).length !== 0) {\n for (const { fetches, args } of Object.values(fetchesByArgsHash)) {\n // Check if the two arg sets are a match without\n // `encoding` and `dataSlice` arguments.\n if (\n hashOmit(orphanedArgs, ['encoding', 'dataSlice']) === hashOmit(args, ['encoding', 'dataSlice'])\n ) {\n const { callbacks: promiseCallbacksForAddress } = (fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: orphanPromiseCallback });\n return;\n }\n }\n }\n // Create a new fetch. Prefer `base64` encoding.\n const args: TArgs = { ...orphanedArgs, encoding: 'base64' };\n const argsHash = hashOmit(args, []);\n const accountFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForAddress } = (accountFetches.fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: orphanPromiseCallback });\n });\n });\n\n return fetchesByArgsHash;\n}\n","import { Address } from '@solana/addresses';\nimport { getBase58Codec, getBase64Codec } from '@solana/codecs-strings';\nimport type { GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHashWithDataSlice, ToFetchMap } from './coalescer';\nimport {\n AccountLoader,\n AccountLoaderArgs,\n AccountLoaderArgsBase,\n AccountLoaderValue,\n cacheKeyFn,\n MultipleAccountsLoaderArgs,\n} from './loader';\n\ntype Config = {\n maxDataSliceByteRange: number;\n maxMultipleAccountsBatchSize: number;\n};\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nfunction getCodec(encoding: Encoding) {\n switch (encoding) {\n case 'base58':\n return getBase58Codec();\n default:\n return getBase64Codec();\n }\n}\n\nexport function sliceData(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n account: any,\n dataSlice?: DataSlice | null,\n masterDataSlice?: DataSlice,\n) {\n if (dataSlice) {\n const masterOffset = masterDataSlice ? masterDataSlice.offset : 0;\n\n const slicedData = (data: string, encoding: Encoding): string => {\n if (encoding === 'base64+zstd') {\n // Don't slice `base64+zstd` encoding.\n return data;\n }\n const { offset, length } = dataSlice;\n const trueOffset = offset - masterOffset;\n const codec = getCodec(encoding);\n return codec.decode(codec.encode(data).slice(trueOffset, trueOffset + length));\n };\n\n if (Array.isArray(account.data)) {\n const [data, encoding] = account.data;\n return {\n ...account,\n data: [slicedData(data, encoding), encoding],\n };\n } else if (typeof account.data === 'string') {\n const data = account.data;\n return {\n ...account,\n data: slicedData(data, 'base58'),\n };\n }\n }\n return account;\n}\n\n/**\n * Load an account using the RPC's `getAccountInfo` method.\n */\nasync function loadAccount(rpc: Rpc<GetAccountInfoApi>, { address, ...config }: AccountLoaderArgs) {\n return await rpc\n .getAccountInfo(address, config)\n .send()\n .then(res => res.value);\n}\n\n/**\n * Load multiple accounts using the RPC's `getMultipleAccounts` method.\n */\nasync function loadMultipleAccounts(\n rpc: Rpc<GetMultipleAccountsApi>,\n { addresses, ...config }: MultipleAccountsLoaderArgs,\n) {\n return await rpc\n .getMultipleAccounts(addresses, config)\n .send()\n .then(res => res.value);\n}\n\nfunction createAccountBatchLoadFn(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, config: Config) {\n const resolveAccountUsingRpc = loadAccount.bind(null, rpc);\n const resolveMultipleAccountsUsingRpc = loadMultipleAccounts.bind(null, rpc);\n return (accountQueryArgs: readonly AccountLoaderArgs[]): ReturnType<AccountLoader['loadMany']> => {\n /**\n * Gather all the accounts that need to be fetched, grouped by address.\n */\n const accountsToFetch: ToFetchMap<AccountLoaderArgsBase, AccountLoaderValue> = {};\n try {\n return Promise.all(\n accountQueryArgs.map(\n ({ address, ...args }) =>\n new Promise((resolve, reject) => {\n const accountRecords = (accountsToFetch[address] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n accountRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<AccountLoader['loadMany']>;\n } finally {\n const { maxDataSliceByteRange, maxMultipleAccountsBatchSize } = config;\n\n /**\n * Group together accounts that are fetched with identical args.\n */\n const accountFetchesByArgsHash = buildCoalescedFetchesByArgsHashWithDataSlice(\n accountsToFetch,\n maxDataSliceByteRange,\n );\n\n /**\n * For each set of accounts related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(accountFetchesByArgsHash).map(({ args, fetches: addressCallbacks }) => {\n const addresses = Object.keys(addressCallbacks) as Address[];\n if (addresses.length === 1) {\n const address = addresses[0];\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveAccountUsingRpc({ address, ...args });\n addressCallbacks[address].callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n } catch (e) {\n addressCallbacks[address].callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n }\n });\n } else {\n return Array.from(\n { length: Math.ceil(addresses.length / maxMultipleAccountsBatchSize) },\n async (_, ii) => {\n const startIndex = ii * maxMultipleAccountsBatchSize;\n const endIndex = startIndex + maxMultipleAccountsBatchSize;\n const chunk = addresses.slice(startIndex, endIndex);\n try {\n const results = await resolveMultipleAccountsUsingRpc({\n addresses: chunk,\n ...args,\n });\n chunk.forEach((address, ii) => {\n const result = results[ii];\n addressCallbacks[address].callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n });\n } catch (e) {\n chunk.forEach(address => {\n addressCallbacks[address].callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n });\n }\n },\n );\n }\n });\n }\n };\n}\n\nexport function createAccountLoader(\n rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>,\n config: Config,\n): AccountLoader {\n const loader = new DataLoader(createAccountBatchLoadFn(rpc, config), { cacheKeyFn });\n return {\n load: args => loader.load(args),\n loadMany: args => loader.loadMany(args),\n };\n}\n","import type { GetBlockApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHash, ToFetchMap } from './coalescer';\nimport { BlockLoader, BlockLoaderArgs, BlockLoaderArgsBase, BlockLoaderValue, cacheKeyFn } from './loader';\n\nasync function loadBlock(rpc: Rpc<GetBlockApi>, { slot, ...config }: BlockLoaderArgs): Promise<BlockLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getBlock(\n slot,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createBlockBatchLoadFn(rpc: Rpc<GetBlockApi>) {\n const resolveBlockUsingRpc = loadBlock.bind(null, rpc);\n return (blockQueryArgs: readonly BlockLoaderArgs[]): ReturnType<BlockLoader['loadMany']> => {\n /**\n * Gather all the blocks that need to be fetched, grouped by slot.\n */\n const blocksToFetch: ToFetchMap<BlockLoaderArgsBase, BlockLoaderValue> = {};\n try {\n return Promise.all(\n blockQueryArgs.map(\n ({ slot, ...args }) =>\n new Promise((resolve, reject) => {\n const blockRecords = (blocksToFetch[slot.toString()] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n blockRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<BlockLoader['loadMany']>;\n } finally {\n /**\n * Group together blocks that are fetched with identical args.\n */\n const blockFetchesByArgsHash = buildCoalescedFetchesByArgsHash(blocksToFetch, {\n criteria: (args: BlockLoaderArgsBase) =>\n args.encoding === undefined && args.transactionDetails !== 'signatures',\n defaults: (args: BlockLoaderArgsBase) => ({\n ...args,\n transactionDetails: 'none' as BlockLoaderArgsBase['transactionDetails'],\n }),\n hashOmit: ['encoding', 'transactionDetails'],\n });\n\n /**\n * For each set of blocks related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(blockFetchesByArgsHash).map(({ args, fetches: blockCallbacks }) => {\n return Object.entries(blockCallbacks).map(([slot, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveBlockUsingRpc({\n slot: BigInt(slot),\n ...args,\n });\n callbacks.forEach(c => c.resolve(result));\n } catch (e) {\n callbacks.forEach(c => c.reject(e));\n }\n });\n });\n });\n }\n };\n}\n\nexport function createBlockLoader(rpc: Rpc<GetBlockApi>): BlockLoader {\n const loader = new DataLoader(createBlockBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: args => loader.load({ ...args, maxSupportedTransactionVersion: 0 }),\n loadMany: args => loader.loadMany(args.map(a => ({ ...a, maxSupportedTransactionVersion: 0 }))),\n };\n}\n","import type { GetProgramAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { sliceData } from './account';\nimport { buildCoalescedFetchesByArgsHashWithDataSlice, ToFetchMap } from './coalescer';\nimport {\n cacheKeyFn,\n ProgramAccountsLoader,\n ProgramAccountsLoaderArgs,\n ProgramAccountsLoaderArgsBase,\n ProgramAccountsLoaderValue,\n} from './loader';\n\ntype Config = {\n maxDataSliceByteRange: number;\n};\n\nasync function loadProgramAccounts(\n rpc: Rpc<GetProgramAccountsApi>,\n { programAddress, ...config }: ProgramAccountsLoaderArgs,\n): Promise<ProgramAccountsLoaderValue> {\n return await rpc.getProgramAccounts(programAddress, config).send();\n}\n\nfunction createProgramAccountsBatchLoadFn(rpc: Rpc<GetProgramAccountsApi>, config: Config) {\n const resolveProgramAccountsUsingRpc = loadProgramAccounts.bind(null, rpc);\n return (accountQueryArgs: readonly ProgramAccountsLoaderArgs[]): ReturnType<ProgramAccountsLoader['loadMany']> => {\n /**\n * Gather all the program-accounts that need to be fetched, grouped by\n * program address.\n */\n const programAccountsToFetch: ToFetchMap<ProgramAccountsLoaderArgsBase, ProgramAccountsLoaderValue> = {};\n try {\n return Promise.all(\n accountQueryArgs.map(\n ({ programAddress, ...args }) =>\n new Promise((resolve, reject) => {\n const accountRecords = (programAccountsToFetch[programAddress] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n accountRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<ProgramAccountsLoader['loadMany']>;\n } finally {\n const { maxDataSliceByteRange } = config;\n\n /**\n * Group together program-accounts that are fetched with identical args.\n */\n const programAccountsFetchesByArgsHash = buildCoalescedFetchesByArgsHashWithDataSlice(\n programAccountsToFetch,\n maxDataSliceByteRange,\n );\n\n /**\n * For each set of program-accounts related to some common args, fetch them in the fewest\n * number of network requests.\n */\n Object.values(programAccountsFetchesByArgsHash).map(({ args, fetches: programAddressCallbacks }) => {\n return Object.entries(programAddressCallbacks).map(([programAddress, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveProgramAccountsUsingRpc({\n programAddress,\n ...args,\n } as ProgramAccountsLoaderArgs);\n callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n } catch (e) {\n callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n }\n });\n });\n });\n }\n };\n}\n\nexport function createProgramAccountsLoader(rpc: Rpc<GetProgramAccountsApi>, config: Config): ProgramAccountsLoader {\n const loader = new DataLoader(createProgramAccountsBatchLoadFn(rpc, config), { cacheKeyFn });\n return {\n load: args => loader.load(args),\n loadMany: args => loader.loadMany(args),\n };\n}\n","import type { GetTransactionApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHash, ToFetchMap } from './coalescer';\nimport {\n cacheKeyFn,\n TransactionLoader,\n TransactionLoaderArgs,\n TransactionLoaderArgsBase,\n TransactionLoaderValue,\n} from './loader';\n\nasync function loadTransaction(\n rpc: Rpc<GetTransactionApi>,\n { signature, ...config }: TransactionLoaderArgs,\n): Promise<TransactionLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getTransaction(\n signature,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createTransactionBatchLoadFn(rpc: Rpc<GetTransactionApi>) {\n const resolveTransactionUsingRpc = loadTransaction.bind(null, rpc);\n return (transactionQueryArgs: readonly TransactionLoaderArgs[]): ReturnType<TransactionLoader['loadMany']> => {\n /**\n * Gather all the transactions that need to be fetched, grouped by signature.\n */\n const transactionsToFetch: ToFetchMap<TransactionLoaderArgsBase, TransactionLoaderValue> = {};\n try {\n return Promise.all(\n transactionQueryArgs.map(\n ({ signature, ...args }) =>\n new Promise((resolve, reject) => {\n const transactionRecords = (transactionsToFetch[signature] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n transactionRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<TransactionLoader['loadMany']>;\n } finally {\n /**\n * Group together transactions that are fetched with identical args.\n */\n const transactionFetchesByArgsHash = buildCoalescedFetchesByArgsHash(transactionsToFetch, {\n criteria: (args: TransactionLoaderArgsBase) => args.encoding === undefined,\n defaults: (args: TransactionLoaderArgsBase) => ({ ...args, encoding: 'base64' }),\n hashOmit: ['encoding'],\n });\n\n /**\n * For each set of transactions related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(transactionFetchesByArgsHash).map(({ args, fetches: transactionCallbacks }) => {\n return Object.entries(transactionCallbacks).map(([signature, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveTransactionUsingRpc({\n signature,\n ...args,\n } as TransactionLoaderArgs);\n callbacks.forEach(c => c.resolve(result));\n } catch (e) {\n callbacks.forEach(c => c.reject(e));\n }\n });\n });\n });\n }\n };\n}\n\nexport function createTransactionLoader(rpc: Rpc<GetTransactionApi>): TransactionLoader {\n const loader = new DataLoader(createTransactionBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: args => loader.load(args),\n loadMany: args => loader.loadMany(args),\n };\n}\n","import type {\n GetAccountInfoApi,\n GetBlockApi,\n GetMultipleAccountsApi,\n GetProgramAccountsApi,\n GetTransactionApi,\n Rpc,\n} from '@solana/rpc';\n\nimport {\n createAccountLoader,\n createBlockLoader,\n createProgramAccountsLoader,\n createTransactionLoader,\n RpcGraphQLLoaders,\n} from './loaders';\n\ntype Config = {\n /**\n * Maximum number of acceptable bytes to waste before splitting two\n * `dataSlice` requests into two requests.\n */\n maxDataSliceByteRange: number;\n /**\n * Maximum number of accounts to fetch in a single batch.\n * See https://docs.solana.com/api/http#getmultipleaccounts.\n */\n maxMultipleAccountsBatchSize: number;\n};\n\nexport interface RpcGraphQLContext {\n loaders: RpcGraphQLLoaders;\n}\n\nexport function createSolanaGraphQLContext(\n rpc: Rpc<GetAccountInfoApi & GetBlockApi & GetMultipleAccountsApi & GetProgramAccountsApi & GetTransactionApi>,\n config: Config,\n): RpcGraphQLContext {\n return {\n loaders: {\n account: createAccountLoader(rpc, config),\n block: createBlockLoader(rpc),\n programAccounts: createProgramAccountsLoader(rpc, config),\n transaction: createTransactionLoader(rpc),\n },\n };\n}\n","export const accountTypeDefs = /* GraphQL */ `\n \"\"\"\n Token-2022 Extensions (Account State)\n \"\"\"\n interface SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: Confidential Transfer Fee Config\n \"\"\"\n type SplTokenExtensionConfidentialTransferFeeConfig implements SplTokenExtension {\n extension: String\n authority: Account\n harvestToMintEnabled: Boolean\n withdrawWithheldAuthorityElgamalPubkey: Address\n withheldAmount: String\n }\n\n \"\"\"\n Token-2022 Extension: Confidential Transfer Mint\n \"\"\"\n type SplTokenExtensionConfidentialTransferMint implements SplTokenExtension {\n extension: String\n auditorElgamalPubkey: Address\n authority: Account\n autoApproveNewAccounts: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: Default Account State\n \"\"\"\n type SplTokenExtensionDefaultAccountState implements SplTokenExtension {\n extension: String\n accountState: SplTokenDefaultAccountState\n }\n\n \"\"\"\n Token-2022 Extension: Group Pointer\n \"\"\"\n type SplTokenExtensionGroupPointer implements SplTokenExtension {\n extension: String\n authority: Account\n groupAddress: Account\n }\n\n \"\"\"\n Token-2022 Extension: Group Member Pointer\n \"\"\"\n type SplTokenExtensionGroupMemberPointer implements SplTokenExtension {\n extension: String\n authority: Account\n memberAddress: Account\n }\n\n \"\"\"\n Token-2022 Extension: Interest-Bearing Config\n \"\"\"\n type SplTokenExtensionInterestBearingConfig implements SplTokenExtension {\n extension: String\n currentRate: Int\n initializationTimestamp: BigInt\n lastUpdateTimestamp: BigInt\n preUpdateAverageRate: Int\n rateAuthority: Account\n }\n\n \"\"\"\n Token-2022 Extension: Metadata Pointer\n \"\"\"\n type SplTokenExtensionMetadataPointer implements SplTokenExtension {\n extension: String\n authority: Account\n metadataAddress: Account\n }\n\n \"\"\"\n Token-2022 Extension: Mint Close Authority\n \"\"\"\n type SplTokenExtensionMintCloseAuthority implements SplTokenExtension {\n extension: String\n closeAuthority: Account\n }\n\n \"\"\"\n Token-2022 Extension: Non-Transferable\n \"\"\"\n type SplTokenExtensionNonTransferable implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: Permanent Delegate\n \"\"\"\n type SplTokenExtensionPermanentDelegate implements SplTokenExtension {\n extension: String\n delegate: Account\n }\n\n \"\"\"\n Token-2022 Extension: Token Group\n \"\"\"\n type SplTokenExtensionTokenGroup implements SplTokenExtension {\n extension: String\n maxSize: BigInt\n mint: Account\n size: BigInt\n updateAuthority: Account\n }\n\n \"\"\"\n Token-2022 Extension: Token Group Member\n \"\"\"\n type SplTokenExtensionTokenGroupMember implements SplTokenExtension {\n extension: String\n group: Account\n memberNumber: BigInt\n mint: Account\n }\n\n type SplTokenMetadataAdditionalMetadata {\n key: String\n value: String\n }\n \"\"\"\n Token-2022 Extension: Token Metadata\n \"\"\"\n type SplTokenExtensionTokenMetadata implements SplTokenExtension {\n extension: String\n additionalMetadata: [SplTokenMetadataAdditionalMetadata]\n mint: Account\n name: String\n symbol: String\n updateAuthority: Account\n uri: String\n }\n\n type SplTokenTransferFeeConfig {\n epoch: Epoch\n maximumFee: BigInt\n transferFeeBasisPoints: Int\n }\n \"\"\"\n Token-2022 Extension: Transfer Fee Config\n \"\"\"\n type SplTokenExtensionTransferFeeConfig implements SplTokenExtension {\n extension: String\n newerTransferFee: SplTokenTransferFeeConfig\n olderTransferFee: SplTokenTransferFeeConfig\n transferFeeConfigAuthority: Account\n withdrawWithheldAuthority: Account\n withheldAmount: BigInt\n }\n\n \"\"\"\n Token-2022 Extension: Transfer Hook\n \"\"\"\n type SplTokenExtensionTransferHook implements SplTokenExtension {\n extension: String\n authority: Account\n hookProgramId: Account\n }\n\n \"\"\"\n Token-2022 Extension: Transfer Fee Amount\n \"\"\"\n type SplTokenExtensionTransferFeeAmount implements SplTokenExtension {\n extension: String\n withheldAmount: BigInt\n }\n\n \"\"\"\n Token-2022 Extension: Transfer Hook Account\n \"\"\"\n type SplTokenExtensionTransferHookAccount implements SplTokenExtension {\n extension: String\n transferring: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: Confidential Transfer Fee Amount\n \"\"\"\n type SplTokenExtensionConfidentialTransferFeeAmount implements SplTokenExtension {\n extension: String\n withheldAmount: String\n }\n\n \"\"\"\n Token-2022 Extension: NonTransferableAccount\n \"\"\"\n type SplTokenExtensionNonTransferableAccount implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: ImmutableOwner\n \"\"\"\n type SplTokenExtensionImmutableOwner implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: MemoTransfer\n \"\"\"\n type SplTokenExtensionMemoTransfer implements SplTokenExtension {\n extension: String\n requireIncomingTransferMemos: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: CpiGuard\n \"\"\"\n type SplTokenExtensionCpiGuard implements SplTokenExtension {\n extension: String\n lockCpi: Boolean\n }\n\n \"\"\"\n Token-2022 Extension: Unparseable\n \"\"\"\n type SplTokenExtensionUnparseable implements SplTokenExtension {\n extension: String\n }\n\n \"\"\"\n Token-2022 Extension: ConfidentialTransferAccount\n \"\"\"\n type SplTokenExtensionConfidentialTransferAccount implements SplTokenExtension {\n extension: String\n actualPendingBalanceCreditCounter: Int\n allowConfidentialCredits: Boolean\n allowNonConfidentialCredits: Boolean\n approved: Boolean\n availableBalance: String\n decryptableAvailableBalance: String\n elgamalPubkey: String\n expectedPendingBalanceCreditCounter: Int\n maximumPendingBalanceCreditCounter: Int\n pendingBalanceCreditCounter: Int\n pendingBalanceHi: String\n pendingBalanceLo: String\n }\n\n \"\"\"\n Account interface\n \"\"\"\n interface Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n }\n\n \"\"\"\n Generic base account type\n \"\"\"\n type GenericAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n }\n\n type NonceAccountFeeCalculator {\n lamportsPerSignature: Lamports\n }\n \"\"\"\n A nonce account\n \"\"\"\n type NonceAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n authority: Account\n blockhash: Hash\n feeCalculator: NonceAccountFeeCalculator\n }\n\n \"\"\"\n A lookup table account\n \"\"\"\n type LookupTableAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n addresses: [Address]\n authority: Account\n deactivationSlot: Slot\n lastExtendedSlot: Slot\n lastExtendedSlotStartIndex: Int\n }\n\n \"\"\"\n A mint account\n \"\"\"\n type MintAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n decimals: Int\n extensions: [SplTokenExtension]\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: BigInt\n }\n\n \"\"\"\n A token account\n \"\"\"\n type TokenAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n extensions: [SplTokenExtension]\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n\n type StakeAccountDataMetaAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeAccountDataMetaLockup {\n custodian: Account\n epoch: Epoch\n unixTimestamp: BigInt\n }\n type StakeAccountDataMeta {\n authorized: StakeAccountDataMetaAuthorized\n lockup: StakeAccountDataMetaLockup\n rentExemptReserve: Lamports\n }\n type StakeAccountDataStakeDelegation {\n activationEpoch: Epoch\n deactivationEpoch: Epoch\n stake: Lamports\n voter: Account\n warmupCooldownRate: Int\n }\n type StakeAccountDataStake {\n creditsObserved: BigInt\n delegation: StakeAccountDataStakeDelegation\n }\n \"\"\"\n A stake account\n \"\"\"\n type StakeAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\n }\n\n type VoteAccountDataAuthorizedVoter {\n authorizedVoter: Account\n epoch: Epoch\n }\n type VoteAccountDataEpochCredit {\n credits: BigInt\n epoch: Epoch\n previousCredits: BigInt\n }\n type VoteAccountDataLastTimestamp {\n slot: Slot\n timestamp: BigInt\n }\n type VoteAccountDataVote {\n confirmationCount: Int\n slot: Slot\n }\n \"\"\"\n A vote account\n \"\"\"\n type VoteAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [Address]\n rootSlot: Slot\n votes: [VoteAccountDataVote]\n }\n\n \"\"\"\n Sysvar Clock\n \"\"\"\n type SysvarClockAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n epoch: Epoch\n epochStartTimestamp: BigInt\n leaderScheduleEpoch: Epoch\n slot: Slot\n unixTimestamp: BigInt\n }\n\n \"\"\"\n Sysvar Epoch Rewards\n \"\"\"\n type SysvarEpochRewardsAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n distributedRewards: Lamports\n distributionCompleteBlockHeight: BigInt\n totalRewards: Lamports\n }\n\n \"\"\"\n Sysvar Epoch Schedule\n \"\"\"\n type SysvarEpochScheduleAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n firstNormalEpoch: Epoch\n firstNormalSlot: Slot\n leaderScheduleSlotOffset: BigInt\n slotsPerEpoch: BigInt\n warmup: Boolean\n }\n\n type FeeCalculator {\n lamportsPerSignature: Lamports\n }\n\n \"\"\"\n Sysvar Last Restart Slot\n \"\"\"\n type SysvarLastRestartSlotAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n lastRestartSlot: Slot\n }\n\n type SysvarRecentBlockhashesEntry {\n blockhash: Hash\n feeCalculator: FeeCalculator\n }\n \"\"\"\n Sysvar Recent Blockhashes\n \"\"\"\n type SysvarRecentBlockhashesAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n entries: [SysvarRecentBlockhashesEntry]\n }\n\n \"\"\"\n Sysvar Rent\n \"\"\"\n type SysvarRentAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n burnPercent: Int\n exemptionThreshold: Int\n lamportsPerByteYear: Lamports\n }\n\n type SlotHashEntry {\n hash: Hash\n slot: Slot\n }\n\n \"\"\"\n Sysvar Slot Hashes\n \"\"\"\n type SysvarSlotHashesAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n entries: [SlotHashEntry]\n }\n\n \"\"\"\n Sysvar Slot History\n \"\"\"\n type SysvarSlotHistoryAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n bits: String\n nextSlot: Slot\n }\n\n type StakeHistoryEntry {\n activating: Lamports\n deactivating: Lamports\n effective: Lamports\n }\n\n \"\"\"\n Sysvar Stake History\n \"\"\"\n type SysvarStakeHistoryAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: Lamports\n ownerProgram: Account\n space: BigInt\n entries: [StakeHistoryEntry]\n }\n`;\n","export const blockTypeDefs = /* GraphQL */ `\n \"\"\"\n A Solana block\n \"\"\"\n type Block {\n blockhash: Hash\n blockHeight: BigInt\n blockTime: BigInt\n parentSlot: Slot\n previousBlockhash: Hash\n rewards: [Reward]\n signatures: [Signature]\n transactions: [Transaction]\n }\n`;\n","// *Note: Any integer value inside a transaction instruction must be `BigInt`\n// until the following issue is resolved:\n// <https://github.com/solana-labs/solana-web3.js/issues/1828>\nexport const instructionTypeDefs = /* GraphQL */ `\n \"\"\"\n Transaction instruction interface\n \"\"\"\n interface TransactionInstruction {\n programId: Address\n }\n\n \"\"\"\n Generic transaction instruction\n \"\"\"\n type GenericInstruction implements TransactionInstruction {\n accounts: [Address]\n data: Base64EncodedBytes\n programId: Address\n }\n\n \"\"\"\n AddressLookupTable: CreateLookupTable instruction\n \"\"\"\n type CreateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: Slot\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: ExtendLookupTable instruction\n \"\"\"\n type ExtendLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: FreezeLookupTable instruction\n \"\"\"\n type FreezeLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: DeactivateLookupTable instruction\n \"\"\"\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: CloseLookupTable instruction\n \"\"\"\n type CloseLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n\n \"\"\"\n BpfLoader: Write instruction\n \"\"\"\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfLoader: Finalize instruction\n \"\"\"\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: InitializeBuffer instruction\n \"\"\"\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Write instruction\n \"\"\"\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfUpgradeableLoader: DeployWithMaxDataLen instruction\n \"\"\"\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Account\n maxDataLen: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Upgrade instruction\n \"\"\"\n type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Account\n spillAccount: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthority instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthorityChecked instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Close instruction\n \"\"\"\n type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n programAccount: Account\n recipient: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: ExtendProgram instruction\n \"\"\"\n type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {\n programId: Address\n additionalBytes: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: Create instruction\n \"\"\"\n type SplAssociatedTokenCreateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: CreateIdempotent instruction\n \"\"\"\n type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: RecoverNested instruction\n \"\"\"\n type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n nestedMint: Account\n nestedOwner: Account\n nestedSource: Account\n ownerMint: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplMemo instruction\n \"\"\"\n type SplMemoInstruction implements TransactionInstruction {\n programId: Address\n memo: String\n }\n\n \"\"\"\n SplToken: InitializeMint instruction\n \"\"\"\n type SplTokenInitializeMintInstruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeMint2 instruction\n \"\"\"\n type SplTokenInitializeMint2Instruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount instruction\n \"\"\"\n type SplTokenInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount2 instruction\n \"\"\"\n type SplTokenInitializeAccount2Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount3 instruction\n \"\"\"\n type SplTokenInitializeAccount3Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: InitializeMultisig instruction\n \"\"\"\n type SplTokenInitializeMultisigInstruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n rentSysvar: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: InitializeMultisig2 instruction\n \"\"\"\n type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: Transfer instruction\n \"\"\"\n type SplTokenTransferInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n authority: Account\n destination: Account\n multisigAuthority: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Approve instruction\n \"\"\"\n type SplTokenApproveInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n delegate: Account\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Revoke instruction\n \"\"\"\n type SplTokenRevokeInstruction implements TransactionInstruction {\n programId: Address\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: SetAuthority instruction\n \"\"\"\n type SplTokenSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n multisigAuthority: Account\n newAuthority: Account\n }\n\n \"\"\"\n SplToken: MintTo instruction\n \"\"\"\n type SplTokenMintToInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: BigInt\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n }\n\n \"\"\"\n SplToken: Burn instruction\n \"\"\"\n type SplTokenBurnInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: BigInt\n authority: Account\n mint: Account\n multisigAuthority: Account\n }\n\n \"\"\"\n SplToken: CloseAccount instruction\n \"\"\"\n type SplTokenCloseAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n destination: Account\n multisigOwner: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: FreezeAccount instruction\n \"\"\"\n type SplTokenFreezeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: ThawAccount instruction\n \"\"\"\n type SplTokenThawAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: TransferChecked instruction\n \"\"\"\n type SplTokenTransferCheckedInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n authority: Account\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigAuthority: Account\n source: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: ApproveChecked instruction\n \"\"\"\n type SplTokenApproveCheckedInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n source: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: MintToChecked instruction\n \"\"\"\n type SplTokenMintToCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: BurnChecked instruction\n \"\"\"\n type SplTokenBurnCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n multisigAuthority: Account\n tokenAmount: BigInt\n }\n\n \"\"\"\n SplToken: SyncNative instruction\n \"\"\"\n type SplTokenSyncNativeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: GetAccountDataSize instruction\n \"\"\"\n type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {\n programId: Address\n extensionTypes: [String]\n mint: Account\n }\n\n \"\"\"\n SplToken: InitializeImmutableOwner instruction\n \"\"\"\n type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: AmountToUiAmount instruction\n \"\"\"\n type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {\n programId: Address\n amount: BigInt\n mint: Account\n }\n\n \"\"\"\n SplToken: UiAmountToAmount instruction\n \"\"\"\n type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n uiAmount: String\n }\n\n \"\"\"\n SplToken-2022: InitializeDefaultAccountState instruction\n \"\"\"\n type SplTokenInitializeDefaultAccountStateInstruction implements TransactionInstruction {\n programId: Address\n accountState: SplTokenDefaultAccountState\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateDefaultAccountState instruction\n \"\"\"\n type SplTokenUpdateDefaultAccountStateInstruction implements TransactionInstruction {\n programId: Address\n accountState: SplTokenDefaultAccountState\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeMintCloseAuthority instruction\n \"\"\"\n type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n newAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: InitializePermanentDelegate instruction\n \"\"\"\n type SplTokenInitializePermanentDelegateInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: InitializeGroupPointer instruction\n \"\"\"\n type SplTokenInitializeGroupPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n groupAddress: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateGroupPointer instruction\n \"\"\"\n type SplTokenUpdateGroupPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n groupAddress: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeGroupMemberPointer instruction\n \"\"\"\n type SplTokenInitializeGroupMemberPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n memberAddress: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateGroupMemberPointer instruction\n \"\"\"\n type SplTokenUpdateGroupMemberPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n memberAddress: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeMetadataPointer instruction\n \"\"\"\n type SplTokenInitializeMetadataPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n metadataAddress: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateMetadataPointer instruction\n \"\"\"\n type SplTokenUpdateMetadataPointerInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n metadataAddress: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeTransferFeeConfig instruction\n \"\"\"\n type SplTokenInitializeTransferFeeConfig implements TransactionInstruction {\n programId: Address\n mint: Account\n transferFeeBasisPoints: BigInt #*FIXME:*\n transferFeeConfigAuthority: Account\n withdrawWithheldAuthority: Account\n maximumFee: BigInt #*FIXME:*\n }\n\n \"\"\"\n SplToken-2022: InitializeTransferHook instruction\n \"\"\"\n type SplTokenInitializeTransferHookInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n hookProgramId: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateTransferHook instruction\n \"\"\"\n type SplTokenUpdateTransferHookInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n hookProgramId: Account\n mint: Account\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableCpiGuard instruction\n \"\"\"\n type SplTokenEnableCpiGuardInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableCpiGuard instruction\n \"\"\"\n type SplTokenDisableCpiGuardInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: HarvestWithheldTokensToMint instruction\n \"\"\"\n type SplTokenHarvestWithheldTokensToMint implements TransactionInstruction {\n programId: Address\n mint: Account\n sourceAccounts: [Address]\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldTokensFromAccounts instruction\n \"\"\"\n type SplTokenWithdrawWithheldTokensFromAccounts implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n mint: Account\n multisigWithdrawWithheldAuthority: Account\n signers: [Address]\n sourceAccounts: [Address]\n withdrawWithheldAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldTokensFromMint instruction\n \"\"\"\n type SplTokenWithdrawWithheldTokensFromMint implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n mint: Account\n withdrawWithheldAuthority: Account\n multisigWithdrawWithheldAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: TransferCheckedWithFee instruction\n \"\"\"\n type SplTokenTransferCheckedWithFee implements TransactionInstruction {\n programId: Address\n authority: Account\n destination: Account\n feeAmount: TokenAmount\n mint: Account\n source: Account\n tokenAmount: TokenAmount\n multisigAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableRequiredMemoTransfers instruction\n \"\"\"\n type SplTokenEnableRequiredMemoTransfers implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n multisigOwner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableRequiredMemoTransfers instruction\n \"\"\"\n type SplTokenDisableRequiredMemoTransfers implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n multisigOwner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: InitializeConfidentialTransferMint instruction\n \"\"\"\n type SplTokenInitializeConfidentialTransferMint implements TransactionInstruction {\n programId: Address\n auditorElgamalPubkey: Address\n authority: Account\n autoApproveNewAccounts: Boolean\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: InitializeInterestBearingConfig instruction\n \"\"\"\n type SplTokenInitializeInterestBearingConfig implements TransactionInstruction {\n programId: Address\n mint: Account\n rate: BigInt #*FIXME:*\n rateAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateInterestBearingConfigRate instruction\n \"\"\"\n type SplTokenUpdateInterestBearingConfigRate implements TransactionInstruction {\n programId: Address\n mint: Account\n multisigRateAuthority: Account\n newRate: BigInt #*FIXME:*\n rateAuthority: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: ApproveConfidentialTransferAccount instruction\n \"\"\"\n type SplTokenApproveConfidentialTransferAccount implements TransactionInstruction {\n programId: Address\n account: Account\n confidentialTransferAuditorAuthority: Account\n mint: Account\n }\n\n \"\"\"\n SplToken-2022: EmptyConfidentialTransferAccount instruction\n \"\"\"\n type SplTokenEmptyConfidentialTransferAccount implements TransactionInstruction {\n programId: Address\n account: Account\n instructionsSysvar: Account\n multisigOwner: Account\n owner: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: ConfigureConfidentialTransferAccount instruction\n \"\"\"\n type SplTokenConfigureConfidentialTransferAccount implements TransactionInstruction {\n programId: Address\n account: Account\n decryptableZeroBalance: String\n maximumPendingBalanceCreditCounter: BigInt\n mint: Account\n multisigOwner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: ApplyPendingConfidentialTransferBalance instruction\n \"\"\"\n type SplTokenApplyPendingConfidentialTransferBalance implements TransactionInstruction {\n programId: Address\n account: Account\n expectedPendingBalanceCreditCounter: BigInt\n multisigOwner: Account\n newDecryptableAvailableBalance: String\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableConfidentialTransferConfidentialCredits instruction\n \"\"\"\n type SplTokenEnableConfidentialTransferConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableConfidentialTransferConfidentialCredits instruction\n \"\"\"\n type SplTokenDisableConfidentialTransferConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableConfidentialTransferNonConfidentialCredits instruction\n \"\"\"\n type SplTokenEnableConfidentialTransferNonConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DisableConfidentialTransferNonConfidentialCredits instruction\n \"\"\"\n type SplTokenDisableConfidentialTransferNonConfidentialCredits implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken-2022: DepositConfidentialTransfer instruction\n \"\"\"\n type SplTokenDepositConfidentialTransfer implements TransactionInstruction {\n programId: Address\n amount: BigInt\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n signers: [Address]\n source: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawConfidentialTransfer instruction\n \"\"\"\n type SplTokenWithdrawConfidentialTransfer implements TransactionInstruction {\n programId: Address\n amount: BigInt\n decimals: BigInt # FIXME:*\n destination: Account\n instructionsSysvar: Account\n newDecryptableAvailableBalance: String\n mint: Account\n multisigOwner: Account\n owner: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n source: Account\n }\n\n \"\"\"\n SplToken-2022: ConfidentialTransfer instruction\n \"\"\"\n type SplTokenConfidentialTransfer implements TransactionInstruction {\n programId: Address\n destination: Account\n instructionsSysvar: Account\n mint: Account\n multisigOwner: Account\n newSourceDecryptableAvailableBalance: String\n owner: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n source: Account\n }\n\n \"\"\"\n SplToken-2022: ConfidentialTransferWithSplitProofs instruction\n \"\"\"\n type SplTokenConfidentialTransferWithSplitProofs implements TransactionInstruction {\n programId: Address\n batchedGroupedCiphertext2HandlesValidityContext: Account\n batchedRangeProofContext: Account\n ciphertextCommitmentEqualityContext: Account\n closeSplitContextStateOnExecution: Boolean\n contextStateOwner: Account\n destination: Account\n lamportDestination: Account\n mint: Account\n newSourceDecryptableAvailableBalance: String\n noOpOnUninitializedSplitContextState: Boolean\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken-2022: UpdateConfidentialTransferMint instruction\n \"\"\"\n type SplTokenUpdateConfidentialTransferMint implements TransactionInstruction {\n programId: Address\n auditorElgamalPubkey: Address\n authority: Account\n autoApproveNewAccounts: Boolean\n confidentialTransferMintAuthority: Account\n mint: Account\n newConfidentialTransferMintAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldConfidentialTransferTokensFromMint instruction\n \"\"\"\n type SplTokenWithdrawWithheldConfidentialTransferTokensFromMint implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n instructionsSysvar: Account\n mint: Account\n multisigWithdrawWithheldAuthority: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n withdrawWithheldAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: WithdrawWithheldConfidentialTransferTokensFromAccounts instruction\n \"\"\"\n type SplTokenWithdrawWithheldConfidentialTransferTokensFromAccounts implements TransactionInstruction {\n programId: Address\n feeRecipient: Account\n instructionsSysvar: Account\n mint: Account\n multisigWithdrawWithheldAuthority: Account\n proofInstructionOffset: BigInt #*FIXME:*\n signers: [Address]\n sourceAccounts: [Address]\n withdrawWithheldAuthority: Account\n }\n\n \"\"\"\n SplToken-2022: HarvestWithheldConfidentialTransferTokensToMint instruction\n \"\"\"\n type SplTokenHarvestWithheldConfidentialTransferTokensToMint implements TransactionInstruction {\n programId: Address\n mint: Account\n sourceAccounts: [Address]\n }\n\n \"\"\"\n SplToken-2022: EnableConfidentialTransferFeeHarvestToMint instruction\n \"\"\"\n type SplTokenEnableConfidentialTransferFeeHarvestToMint implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n multisigOwner: Account\n signers: Address\n }\n\n \"\"\"\n SplToken-2022: DisableConfidentialTransferFeeHarvestToMint instruction\n \"\"\"\n type SplTokenDisableConfidentialTransferFeeHarvestToMint implements TransactionInstruction {\n programId: Address\n account: Account\n multisigOwner: Account\n owner: Account\n signers: Address\n }\n\n \"\"\"\n SplToken-2022: InitializeConfidentialTransferFeeConfig instruction\n \"\"\"\n type SplTokenInitializeConfidentialTransferFeeConfig implements TransactionInstruction {\n programId: Address\n authority: Account\n harvestToMintEnabled: Boolean\n mint: Account\n withdrawWithheldAuthorityElgamalPubkey: Address\n withheldAmount: String\n }\n\n \"\"\"\n SplToken-2022: Reallocate instruction\n \"\"\"\n type SplTokenReallocate implements TransactionInstruction {\n programId: Address\n account: Account\n extensionTypes: [SplTokenExtensionType]\n owner: Account\n multisigOwner: Account\n payer: Account\n signers: [Address]\n systemProgram: Account\n }\n\n \"\"\"\n Spl Token Group: InitializeGroup instruction\n \"\"\"\n type SplTokenGroupInitializeGroup implements TransactionInstruction {\n programId: Address\n group: Account\n maxSize: BigInt\n mint: Account\n mintAuthority: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Group: UpdateGroupMaxSize instruction\n \"\"\"\n type SplTokenGroupUpdateGroupMaxSize implements TransactionInstruction {\n programId: Address\n group: Account\n maxSize: BigInt\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Group: UpdateGroupAuthority instruction\n \"\"\"\n type SplTokenGroupUpdateGroupAuthority implements TransactionInstruction {\n programId: Address\n group: Account\n newAuthority: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Group: InitializeMember instruction\n \"\"\"\n type SplTokenGroupInitializeMember implements TransactionInstruction {\n programId: Address\n group: Account\n groupUpdateAuthority: Account\n member: Account\n memberMint: Account\n memberMintAuthority: Account\n }\n\n \"\"\"\n Spl Token Metadata: InitializeMetadata instruction\n \"\"\"\n type SplTokenMetadataInitialize implements TransactionInstruction {\n programId: Address\n metadata: Account\n mint: Account\n mintAuthority: Account\n name: String\n symbol: String\n updateAuthority: Account\n uri: String\n }\n\n \"\"\"\n Spl Token Metadata: UpdateField instruction\n \"\"\"\n type SplTokenMetadataUpdateField implements TransactionInstruction {\n programId: Address\n field: String\n metadata: Account\n updateAuthority: Account\n value: String\n }\n\n \"\"\"\n Spl Token Metadata: RemoveKey instruction\n \"\"\"\n type SplTokenMetadataRemoveKey implements TransactionInstruction {\n programId: Address\n idempotent: Boolean\n key: String\n metadata: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Metadata: UpdateAuthority instruction\n \"\"\"\n type SplTokenMetadataUpdateAuthority implements TransactionInstruction {\n programId: Address\n metadata: Account\n newAuthority: Account\n updateAuthority: Account\n }\n\n \"\"\"\n Spl Token Metadata: Emit instruction\n \"\"\"\n type SplTokenMetadataEmit implements TransactionInstruction {\n programId: Address\n metadata: Account\n end: BigInt\n start: BigInt\n }\n\n type Lockup {\n custodian: Account\n epoch: Epoch\n unixTimestamp: BigInt\n }\n\n \"\"\"\n Stake: Initialize instruction\n \"\"\"\n type StakeInitializeInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Authorize instruction\n \"\"\"\n type StakeAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DelegateStake instruction\n \"\"\"\n type StakeDelegateStakeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n stakeHistorySysvar: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Split instruction\n \"\"\"\n type StakeSplitInstruction implements TransactionInstruction {\n programId: Address\n lamports: Lamports\n newSplitAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: Withdraw instruction\n \"\"\"\n type StakeWithdrawInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n destination: Account\n lamports: Lamports\n stakeAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Stake: Deactivate instruction\n \"\"\"\n type StakeDeactivateInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: SetLockup instruction\n \"\"\"\n type StakeSetLockupInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Merge instruction\n \"\"\"\n type StakeMergeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n destination: Account\n source: Account\n stakeAuthority: Account\n stakeHistorySysvar: Account\n }\n\n \"\"\"\n Stake: AuthorizeWithSeed instruction\n \"\"\"\n type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: InitializeChecked instruction\n \"\"\"\n type StakeInitializeCheckedInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeCheckedInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeChecked instruction\n \"\"\"\n type StakeAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: SetLockupChecked instruction\n \"\"\"\n type StakeSetLockupCheckedInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DeactivateDelinquent instruction\n \"\"\"\n type StakeDeactivateDelinquentInstruction implements TransactionInstruction {\n programId: Address\n referenceVoteAccount: Account\n stakeAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Redelegate instruction\n \"\"\"\n type StakeRedelegateInstruction implements TransactionInstruction {\n programId: Address\n newStakeAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n System: CreateAccount instruction\n \"\"\"\n type CreateAccountInstruction implements TransactionInstruction {\n programId: Address\n lamports: Lamports\n newAccount: Account\n owner: Account\n source: Account\n space: BigInt\n }\n\n \"\"\"\n System: Assign instruction\n \"\"\"\n type AssignInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n }\n\n \"\"\"\n System: Transfer instruction\n \"\"\"\n type TransferInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n source: Account\n }\n\n \"\"\"\n System: CreateAccountWithSeed instruction\n \"\"\"\n type CreateAccountWithSeedInstruction implements TransactionInstruction {\n programId: Address\n base: Account\n lamports: Lamports\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AdvanceNonceAccount instruction\n \"\"\"\n type AdvanceNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n }\n\n \"\"\"\n System: WithdrawNonceAccount instruction\n \"\"\"\n type WithdrawNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n rentSysvar: Account\n }\n\n \"\"\"\n System: InitializeNonceAccount instruction\n \"\"\"\n type InitializeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n rentSysvar: Account\n }\n\n \"\"\"\n System: AuthorizeNonceAccount instruction\n \"\"\"\n type AuthorizeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n newAuthorized: Account\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: UpgradeNonceAccount instruction\n \"\"\"\n type UpgradeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: Allocate instruction\n \"\"\"\n type AllocateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n space: BigInt\n }\n\n \"\"\"\n System: AllocateWithSeed instruction\n \"\"\"\n type AllocateWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AssignWithSeed instruction\n \"\"\"\n type AssignWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n }\n\n \"\"\"\n System: TransferWithSeed instruction\n \"\"\"\n type TransferWithSeedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n source: Account\n sourceBase: Address\n sourceOwner: Account\n sourceSeed: String\n }\n\n \"\"\"\n Vote: InitializeAccount instruction\n \"\"\"\n type VoteInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n authorizedVoter: Account\n authorizedWithdrawer: Account\n clockSysvar: Account\n commission: BigInt # FIXME:*\n node: Account\n rentSysvar: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: Authorize instruction\n \"\"\"\n type VoteAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeWithSeed instruction\n \"\"\"\n type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n type Vote {\n hash: Hash\n slots: [Slot]\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: Vote instruction\n \"\"\"\n type VoteVoteInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n slotHashesSysvar: Account\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n type VoteStateUpdateLockout {\n confirmationCount: BigInt # FIXME:*\n slot: Slot\n }\n type VoteStateUpdate {\n hash: Hash\n lockouts: [VoteStateUpdateLockout]\n root: Slot\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: UpdateVoteState instruction\n \"\"\"\n type VoteUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: UpdateVoteStateSwitch instruction\n \"\"\"\n type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteState instruction\n \"\"\"\n type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteStateSwitch instruction\n \"\"\"\n type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: Hash\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: Withdraw instruction\n \"\"\"\n type VoteWithdrawInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: Lamports\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateValidatorIdentity instruction\n \"\"\"\n type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {\n programId: Address\n newValidatorIdentity: Account\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateCommission instruction\n \"\"\"\n type VoteUpdateCommissionInstruction implements TransactionInstruction {\n programId: Address\n commission: BigInt # FIXME:*\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: VoteSwitch instruction\n \"\"\"\n type VoteVoteSwitchInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n hash: Hash\n slotHashesSysvar: Account\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n \"\"\"\n Vote: AuthorizeChecked instruction\n \"\"\"\n type VoteAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n`;\n","export const rootTypeDefs = /* GraphQL */ `\n type Query {\n account(address: Address!, commitment: Commitment, minContextSlot: Slot): Account\n block(slot: Slot!, commitment: CommitmentWithoutProcessed): Block\n programAccounts(\n programAddress: Address!\n commitment: Commitment\n dataSizeFilters: [ProgramAccountsDataSizeFilter]\n memcmpFilters: [ProgramAccountsMemcmpFilter]\n minContextSlot: Slot\n ): [Account]\n transaction(signature: Signature!, commitment: CommitmentWithoutProcessed): Transaction\n }\n\n schema {\n query: Query\n }\n`;\n","export const transactionTypeDefs = /* GraphQL */ `\n type TransactionStatusOk {\n Ok: String\n }\n type TransactionStatusErr {\n Err: String\n }\n union TransactionStatus = TransactionStatusOk | TransactionStatusErr\n\n type TransactionLoadedAddresses {\n readonly: [Address]\n writable: [Address]\n }\n\n type TransactionInnerInstruction {\n index: Int\n instructions: [TransactionInstruction]\n }\n\n type TransactionMeta {\n computeUnitsConsumed: BigInt\n err: String\n fee: Lamports\n innerInstructions: [TransactionInnerInstruction]\n loadedAddresses: TransactionLoadedAddresses\n logMessages: [String]\n postBalances: [Lamports]\n postTokenBalances: [TokenBalance]\n preBalances: [Lamports]\n preTokenBalances: [TokenBalance]\n returnData: ReturnData\n rewards: [Reward]\n status: TransactionStatus\n }\n\n type TransactionMessageAccountKey {\n pubkey: Address\n signer: Boolean\n source: String\n writable: Boolean\n }\n\n type TransactionMessageAddressTableLookup {\n accountKey: Address\n readonlyIndexes: [Int]\n writableIndexes: [Int]\n }\n\n type TransactionMessageHeader {\n numReadonlySignedAccounts: Int\n numReadonlyUnsignedAccounts: Int\n numRequiredSignatures: Int\n }\n\n type TransactionMessage {\n accountKeys: [TransactionMessageAccountKey]\n addressTableLookups: [TransactionMessageAddressTableLookup]\n header: TransactionMessageHeader\n instructions: [TransactionInstruction]\n recentBlockhash: Hash\n }\n\n \"\"\"\n A Solana transaction\n \"\"\"\n type Transaction {\n blockTime: BigInt\n data(encoding: TransactionEncoding!): String\n message: TransactionMessage\n meta: TransactionMeta\n signatures: [Signature]\n slot: Slot\n version: String\n }\n`;\n","export const typeTypeDefs = /* GraphQL */ `\n enum AccountEncoding {\n BASE_58\n BASE_64\n BASE_64_ZSTD\n }\n\n scalar Address\n\n scalar Base58EncodedBytes\n\n scalar Base64EncodedBytes\n\n scalar Base64ZstdEncodedBytes\n\n scalar BigInt\n\n enum Commitment {\n CONFIRMED\n FINALIZED\n PROCESSED\n }\n\n enum CommitmentWithoutProcessed {\n CONFIRMED\n FINALIZED\n }\n\n input DataSlice {\n offset: Int!\n length: Int!\n }\n\n scalar Epoch\n\n scalar Hash\n\n scalar Lamports\n\n input ProgramAccountsDataSizeFilter {\n dataSize: BigInt!\n }\n\n enum ProgramAccountsMemcmpFilterAccountEncoding {\n BASE_58\n BASE_64\n }\n\n input ProgramAccountsMemcmpFilter {\n bytes: String!\n encoding: ProgramAccountsMemcmpFilterAccountEncoding!\n offset: BigInt!\n }\n\n type ReturnData {\n data: Base64EncodedBytes\n programId: Address\n }\n\n type Reward {\n commission: Int\n lamports: Lamports\n postBalance: BigInt\n pubkey: Address\n rewardType: String\n }\n\n scalar Signature\n\n scalar Slot\n\n enum SplTokenDefaultAccountState {\n FROZEN\n INITIALIZED\n UNINITIALIZED\n }\n\n enum SplTokenExtensionType {\n UNINITIALIZED\n TRANSFER_FEE_CONFIG\n TRANSFER_FEE_AMOUNT\n MINT_CLOSE_AUTHORITY\n CONFIDENTIAL_TRANSFER_MINT\n CONFIDENTIAL_TRANSFER_ACCOUNT\n DEFAULT_ACCOUNT_STATE\n IMMUTABLE_OWNER\n MEMO_TRANSFER\n NON_TRANSFERABLE\n INTEREST_BEARING_CONFIG\n CPI_GUARD\n PERMANENT_DELEGATE\n NON_TRANSFERABLE_ACCOUNT\n CONFIDENTIAL_TRANSFER_FEE_CONFIG\n CONFIDENTIAL_TRANSFER_FEE_AMOUNT\n TRANSFER_HOOK\n TRANSFER_HOOK_ACCOUNT\n METADATA_POINTER\n TOKEN_METADATA\n GROUP_POINTER\n GROUP_MEMBER_POINTER\n TOKEN_GROUP\n TOKEN_GROUP_MEMBER\n UNPARSEABLE_EXTENSION\n }\n\n type TokenAmount {\n amount: BigInt\n decimals: Int\n uiAmount: BigInt\n uiAmountString: String\n }\n\n type TokenBalance {\n accountIndex: Int\n mint: Account\n owner: Account\n programId: Address\n uiTokenAmount: TokenAmount\n }\n\n enum TransactionEncoding {\n BASE_58\n BASE_64\n }\n`;\n","import { accountTypeDefs } from './account';\nimport { blockTypeDefs } from './block';\nimport { instructionTypeDefs } from './instruction';\nimport { rootTypeDefs } from './root';\nimport { transactionTypeDefs } from './transaction';\nimport { typeTypeDefs } from './types';\n\n/**\n * Creates the GraphQL type definitions for the Solana GraphQL schema.\n *\n * @returns Solana GraphQL type definitions.\n */\nexport function createSolanaGraphQLTypeDefs() {\n return [accountTypeDefs, blockTypeDefs, instructionTypeDefs, rootTypeDefs, typeTypeDefs, transactionTypeDefs];\n}\n","import {\n ASTNode,\n ASTVisitFn,\n BREAK,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n GraphQLResolveInfo,\n InlineFragmentNode,\n visit,\n} from 'graphql';\n\ntype InjectableVisitorOperations = {\n fieldNodeOperation: (info: GraphQLResolveInfo, ...args: Parameters<ASTVisitFn<FieldNode>>) => void;\n fragmentSpreadNodeOperation: (\n info: GraphQLResolveInfo,\n fragment: FragmentDefinitionNode,\n ...args: Parameters<ASTVisitFn<FragmentSpreadNode>>\n ) => void;\n inlineFragmentNodeOperation: (\n info: GraphQLResolveInfo,\n ...args: Parameters<ASTVisitFn<InlineFragmentNode>>\n ) => void;\n};\ntype RootNode = FieldNode | FragmentDefinitionNode | InlineFragmentNode;\n\n/**\n * An AST visitor that keys on the root field provided.\n * This visitor can be injected with custom logic for various types of nodes.\n */\nexport function injectableRootVisitor(\n info: GraphQLResolveInfo,\n rootNode: RootNode | null,\n operations: InjectableVisitorOperations,\n) {\n const { fieldNodes } = info;\n const root = rootNode ?? fieldNodes[0];\n const parentIsRoot = (ancestors: readonly (ASTNode | readonly ASTNode[])[]) =>\n (Array.isArray(ancestors) ? ancestors[0] : ancestors) === root;\n visit(root, {\n Field(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.fieldNodeOperation(info, node, key, parent, path, ancestors);\n },\n FragmentSpread(node, key, parent, path, ancestors) {\n const fragmentDefinition = info.fragments[node.name.value];\n return operations.fragmentSpreadNodeOperation(info, fragmentDefinition, node, key, parent, path, ancestors);\n },\n InlineFragment(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.inlineFragmentNodeOperation(info, node, key, parent, path, ancestors);\n },\n });\n}\n\n/**\n * Determine if the query only requests the provided field names\n */\nexport function onlyFieldsRequested(fieldNames: string[], info: GraphQLResolveInfo, rootNode?: RootNode): boolean {\n let onlyFieldsRequested = true;\n\n function checkFieldsWithVisitor(root: RootNode | null) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(_info, node) {\n // Ignore the GraphQL default fields.\n if (node.name.value === '__id' || node.name.value === '__typename') {\n return;\n }\n onlyFieldsRequested = fieldNames.includes(node.name.value);\n if (!onlyFieldsRequested) {\n return BREAK;\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n checkFieldsWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, node) {\n checkFieldsWithVisitor(node);\n },\n });\n }\n\n checkFieldsWithVisitor(rootNode ?? null);\n\n return onlyFieldsRequested;\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, DataSlice, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo, isInterfaceType } from 'graphql';\n\nimport { AccountLoaderArgs, ProgramAccountsLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor, onlyFieldsRequested } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseAccountEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): AccountLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n if (argumentNode.value.value === 'BASE_64_ZSTD') {\n return 'base64+zstd';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as AccountLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nfunction parseAccountDataSliceArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: { [variable: string]: unknown },\n): AccountLoaderArgs['dataSlice'] {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'dataSlice');\n if (argumentNode) {\n if (argumentNode.value.kind === 'ObjectValue') {\n const offsetArg = argumentNode.value.fields?.find(field => field.name.value === 'offset');\n const lengthArg = argumentNode.value.fields?.find(field => field.name.value === 'length');\n const length =\n lengthArg?.value.kind === 'IntValue'\n ? parseInt(lengthArg.value.value)\n : lengthArg?.value.kind === 'Variable'\n ? (variableValues[lengthArg.value.name.value] as number)\n : undefined;\n const offset =\n offsetArg?.value.kind === 'IntValue'\n ? parseInt(offsetArg.value.value)\n : offsetArg?.value.kind === 'Variable'\n ? (variableValues[offsetArg.value.name.value] as number)\n : undefined;\n return length !== undefined && length !== null && offset !== undefined && offset !== null\n ? { length, offset }\n : undefined;\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as DataSlice;\n }\n } else {\n return undefined;\n }\n}\n\nexport function buildAccountArgSetWithVisitor<TArgs extends AccountLoaderArgs | ProgramAccountsLoaderArgs>(\n args: TArgs,\n info: GraphQLResolveInfo,\n): TArgs[] {\n const argSet = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value !== 'data') {\n return;\n }\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding = parseAccountEncodingArgument(node.arguments, variableValues);\n const dataSlice = parseAccountDataSliceArgument(node.arguments, variableValues);\n argSet.push({ ...args, dataSlice, encoding });\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(info, node) {\n const { schema } = info;\n const accountInterface = schema.getType('Account');\n if (\n isInterfaceType(accountInterface) &&\n // Recursively check if the inline fragment requests any\n // fields outside of the `Account` interface.\n !onlyFieldsRequested(Object.keys(accountInterface.getFields()), info, node)\n ) {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n }\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildAccountLoaderArgSetFromResolveInfo(\n args: {\n address: Address;\n /**\n * Fetch the details of the account as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions\n * up to this slot\n */\n minContextSlot?: Slot;\n },\n info: GraphQLResolveInfo,\n): AccountLoaderArgs[] {\n return buildAccountArgSetWithVisitor(args, info);\n}\n","import { Signature } from '@solana/keys';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo } from 'graphql';\n\nimport { BlockLoaderArgs, TransactionLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseTransactionEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): TransactionLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as TransactionLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nexport function buildTransactionArgSetWithVisitor<TArgs extends BlockLoaderArgs | TransactionLoaderArgs>(\n args: TArgs,\n info: GraphQLResolveInfo,\n): TArgs[] {\n const argSet = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value === 'message' || node.name.value === 'meta') {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n } else if (node.name.value === 'data') {\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding: TransactionLoaderArgs['encoding'] = parseTransactionEncodingArgument(\n node.arguments,\n variableValues,\n );\n argSet.push({ ...args, encoding });\n }\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, _node) {\n // Transaction schema doesn't support inline fragments at the\n // root level.\n return;\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n\n/**\n * Build a set of transaction loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildTransactionLoaderArgSetFromResolveInfo(\n args: {\n /**\n * Fetch the transaction details as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Omit<Commitment, 'processed'>;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions\n * up to this slot\n */\n minContextSlot?: Slot;\n signature: Signature;\n },\n info: GraphQLResolveInfo,\n): TransactionLoaderArgs[] {\n return buildTransactionArgSetWithVisitor(args, info);\n}\n","import { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { BlockLoaderArgs } from '../../loaders';\nimport { buildTransactionArgSetWithVisitor } from './transaction';\nimport { injectableRootVisitor } from './visitor';\n\n/**\n * Build a set of block loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildBlockLoaderArgSetFromResolveInfo(\n args: {\n /**\n * Fetch blocks from slots that have reached at least this level of commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Omit<Commitment, 'processed'>;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed\n * transactions up to this slot\n */\n minContextSlot?: Slot;\n slot: Slot;\n },\n info: GraphQLResolveInfo,\n): BlockLoaderArgs[] {\n const argSet: BlockLoaderArgs[] = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value === 'signatures') {\n argSet.push({ ...args, transactionDetails: 'signatures' });\n } else if (node.name.value === 'transactions') {\n argSet.push(...buildTransactionArgSetWithVisitor({ ...args, transactionDetails: 'full' }, info));\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, _node) {\n // Block schema doesn't support inline fragments at the\n // root level.\n return;\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, GetProgramAccountsDatasizeFilter, GetProgramAccountsMemcmpFilter, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { ProgramAccountsLoaderArgs } from '../../loaders';\nimport { buildAccountArgSetWithVisitor } from './account';\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildProgramAccountsLoaderArgSetFromResolveInfo(\n args: {\n /**\n * Fetch the details of the accounts as of the highest slot that has reached this level of\n * commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use. For\n * example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer on\n * the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n filters?: (GetProgramAccountsDatasizeFilter | GetProgramAccountsMemcmpFilter)[];\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed transactions\n * up to this slot\n */\n minContextSlot?: Slot;\n programAddress: Address;\n },\n info: GraphQLResolveInfo,\n): ProgramAccountsLoaderArgs[] {\n return buildAccountArgSetWithVisitor(args, info);\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { AccountLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildAccountLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nexport type EncodedAccountData = {\n [key: string]: string;\n};\n\nexport type AccountResult = Partial<Omit<AccountLoaderValue, 'data'>> & {\n address: Address;\n encodedData?: EncodedAccountData;\n jsonParsedConfigs?: {\n accountType: string;\n programId: Address;\n programName: string;\n };\n ownerProgram?: Address;\n};\n\nexport const resolveAccountData = () => {\n return (\n parent: AccountResult | null,\n args: {\n /**\n * Define which slice of the account's data you want the RPC to return.\n *\n * Use this to save network bandwidth and encoding time when you do not need the entire\n * buffer.\n */\n dataSlice?: DataSlice;\n encoding: Encoding;\n },\n ) => {\n return parent === null ? null : parent.encodedData ? parent.encodedData[cacheKeyFn(args)] : null;\n };\n};\n\nexport const resolveAccount = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Address },\n args: {\n address?: Address;\n /**\n * Fetch the details of the account as of the highest slot that has reached this level\n * of commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use.\n * For example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer\n * on the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed\n * transactions up to this slot\n */\n minContextSlot?: Slot;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult | null> => {\n const address = fieldName ? parent[fieldName] : args.address;\n\n if (address) {\n // Do not load any accounts if only the address is requested\n if (onlyFieldsRequested(['address'], info)) {\n return { address };\n }\n\n const argsSet = buildAccountLoaderArgSetFromResolveInfo({ ...args, address }, info);\n const loadedAccounts = await context.loaders.account.loadMany(argsSet);\n\n let result: AccountResult = {\n address,\n encodedData: {},\n };\n\n loadedAccounts.forEach((account, i) => {\n if (account instanceof Error) {\n console.error(account);\n return;\n }\n if (account === null) {\n return;\n }\n if (!result.ownerProgram) {\n result = {\n ...result,\n ...account,\n ownerProgram: account.owner,\n };\n }\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })\n ] = data[0];\n } else if (typeof data === 'string') {\n result.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })\n ] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n result.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n if (Array.isArray(parsedData)) {\n // If the `jsonParsed` data is an array, put it\n // into a field called `entries`.\n Object.assign(result, { entries: parsedData });\n } else {\n result = {\n ...result,\n ...(parsedData as object),\n };\n }\n }\n }\n });\n\n return result;\n }\n\n return null;\n };\n};\n","import { AccountResult, resolveAccount, resolveAccountData } from '../../resolvers/account';\n\ntype Token2022ExtensionResult = {\n extension: string;\n state: object;\n};\n\nconst resolveTokenExtensions = () => {\n return (parent: (AccountResult & { extensions?: Token2022ExtensionResult[] }) | null) => {\n if (parent != null && parent.extensions != undefined) {\n return parent.extensions.map(e => {\n const { extension, state } = e;\n return {\n extension,\n ...state,\n };\n });\n }\n return null;\n };\n};\n\nconst resolveAdditionalTokenMetadata = () => {\n return (parent: { additionalMetadata?: [string, string][] }) => {\n if (parent.additionalMetadata != undefined) {\n return parent.additionalMetadata.map(([key, value]) => {\n return {\n key,\n value,\n };\n });\n }\n return null;\n };\n};\n\nfunction resolveTokenExtensionType(extensionResult: Token2022ExtensionResult) {\n if (extensionResult.extension === 'confidentialTransferFeeConfig') {\n return 'SplTokenExtensionConfidentialTransferFeeConfig';\n }\n if (extensionResult.extension === 'confidentialTransferMint') {\n return 'SplTokenExtensionConfidentialTransferMint';\n }\n if (extensionResult.extension === 'defaultAccountState') {\n return 'SplTokenExtensionDefaultAccountState';\n }\n if (extensionResult.extension === 'groupPointer') {\n return 'SplTokenExtensionGroupPointer';\n }\n if (extensionResult.extension === 'groupMemberPointer') {\n return 'SplTokenExtensionGroupMemberPointer';\n }\n if (extensionResult.extension === 'interestBearingConfig') {\n return 'SplTokenExtensionInterestBearingConfig';\n }\n if (extensionResult.extension === 'metadataPointer') {\n return 'SplTokenExtensionMetadataPointer';\n }\n if (extensionResult.extension === 'mintCloseAuthority') {\n return 'SplTokenExtensionMintCloseAuthority';\n }\n if (extensionResult.extension === 'nonTransferable') {\n return 'SplTokenExtensionNonTransferable';\n }\n if (extensionResult.extension === 'permanentDelegate') {\n return 'SplTokenExtensionPermanentDelegate';\n }\n if (extensionResult.extension === 'tokenGroup') {\n return 'SplTokenExtensionTokenGroup';\n }\n if (extensionResult.extension === 'tokenGroupMember') {\n return 'SplTokenExtensionTokenGroupMember';\n }\n if (extensionResult.extension === 'tokenMetadata') {\n return 'SplTokenExtensionTokenMetadata';\n }\n if (extensionResult.extension === 'transferFeeConfig') {\n return 'SplTokenExtensionTransferFeeConfig';\n }\n if (extensionResult.extension === 'transferHook') {\n return 'SplTokenExtensionTransferHook';\n }\n if (extensionResult.extension === 'confidentialTransferAccount') {\n return 'SplTokenExtensionConfidentialTransferAccount';\n }\n if (extensionResult.extension === 'transferFeeAmount') {\n return 'SplTokenExtensionTransferFeeAmount';\n }\n if (extensionResult.extension === 'transferHookAccount') {\n return 'SplTokenExtensionTransferHookAccount';\n }\n if (extensionResult.extension === 'confidentialTransferFeeAmount') {\n return 'SplTokenExtensionConfidentialTransferFeeAmount';\n }\n if (extensionResult.extension === 'nonTransferableAccount') {\n return 'SplTokenExtensionNonTransferableAccount';\n }\n if (extensionResult.extension === 'immutableOwner') {\n return 'SplTokenExtensionImmutableOwner';\n }\n if (extensionResult.extension === 'memoTransfer') {\n return 'SplTokenExtensionMemoTransfer';\n }\n if (extensionResult.extension === 'cpiGuard') {\n return 'SplTokenExtensionCpiGuard';\n }\n if (extensionResult.extension === 'unparseableExtension') {\n return 'SplTokenExtensionUnparseable';\n }\n}\n\nexport const accountTypeResolvers = {\n Account: {\n __resolveType: (accountResult: AccountResult) => {\n const { jsonParsedConfigs } = accountResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'nonce') {\n return 'NonceAccount';\n }\n if (\n jsonParsedConfigs.programName === 'spl-token' ||\n jsonParsedConfigs.programName === 'spl-token-2022'\n ) {\n if (jsonParsedConfigs.accountType === 'mint') {\n return 'MintAccount';\n }\n if (jsonParsedConfigs.accountType === 'account') {\n return 'TokenAccount';\n }\n }\n if (jsonParsedConfigs.programName === 'stake') {\n return 'StakeAccount';\n }\n if (jsonParsedConfigs.accountType === 'vote' && jsonParsedConfigs.programName === 'vote') {\n return 'VoteAccount';\n }\n if (\n jsonParsedConfigs.accountType === 'lookupTable' &&\n jsonParsedConfigs.programName === 'address-lookup-table'\n ) {\n return 'LookupTableAccount';\n }\n if (jsonParsedConfigs.programName === 'sysvar') {\n if (jsonParsedConfigs.accountType === 'clock') {\n return 'SysvarClockAccount';\n }\n if (jsonParsedConfigs.accountType === 'epochRewards') {\n return 'SysvarEpochRewardsAccount';\n }\n if (jsonParsedConfigs.accountType === 'epochSchedule') {\n return 'SysvarEpochScheduleAccount';\n }\n if (jsonParsedConfigs.accountType === 'lastRestartSlot') {\n return 'SysvarLastRestartSlotAccount';\n }\n if (jsonParsedConfigs.accountType === 'recentBlockhashes') {\n return 'SysvarRecentBlockhashesAccount';\n }\n if (jsonParsedConfigs.accountType === 'rent') {\n return 'SysvarRentAccount';\n }\n if (jsonParsedConfigs.accountType === 'slotHashes') {\n return 'SysvarSlotHashesAccount';\n }\n if (jsonParsedConfigs.accountType === 'slotHistory') {\n return 'SysvarSlotHistoryAccount';\n }\n if (jsonParsedConfigs.accountType === 'stakeHistory') {\n return 'SysvarStakeHistoryAccount';\n }\n }\n }\n return 'GenericAccount';\n },\n },\n GenericAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n LookupTableAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n MintAccount: {\n data: resolveAccountData(),\n extensions: resolveTokenExtensions(),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n NonceAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SplTokenExtension: {\n __resolveType: resolveTokenExtensionType,\n },\n SplTokenExtensionConfidentialTransferFeeConfig: {\n authority: resolveAccount('authority'),\n },\n SplTokenExtensionConfidentialTransferMint: {\n authority: resolveAccount('authority'),\n },\n SplTokenExtensionGroupMemberPointer: {\n authority: resolveAccount('authority'),\n memberAddress: resolveAccount('memberAddress'),\n },\n SplTokenExtensionGroupPointer: {\n authority: resolveAccount('authority'),\n groupAddress: resolveAccount('groupAddress'),\n },\n SplTokenExtensionInterestBearingConfig: {\n rateAuthority: resolveAccount('rateAuthority'),\n },\n SplTokenExtensionMetadataPointer: {\n authority: resolveAccount('authority'),\n metadataAddress: resolveAccount('metadataAddress'),\n },\n SplTokenExtensionMintCloseAuthority: {\n closeAuthority: resolveAccount('closeAuthority'),\n },\n SplTokenExtensionPermanentDelegate: {\n delegate: resolveAccount('delegate'),\n },\n SplTokenExtensionTokenGroup: {\n mint: resolveAccount('mint'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenExtensionTokenGroupMember: {\n group: resolveAccount('group'),\n mint: resolveAccount('mint'),\n },\n SplTokenExtensionTokenMetadata: {\n additionalMetadata: resolveAdditionalTokenMetadata(),\n mint: resolveAccount('mint'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenExtensionTransferFeeConfig: {\n transferFeeConfigAuthority: resolveAccount('transferFeeConfigAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenExtensionTransferHook: {\n authority: resolveAccount('authority'),\n hookProgramId: resolveAccount('programId'),\n },\n StakeAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccountDataMetaAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAccountDataMetaLockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeAccountDataStakeDelegation: {\n voter: resolveAccount('voter'),\n },\n SysvarClockAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarEpochRewardsAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarEpochScheduleAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarLastRestartSlotAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarRecentBlockhashesAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarRentAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarSlotHashesAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarSlotHistoryAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n SysvarStakeHistoryAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n TokenAccount: {\n data: resolveAccountData(),\n extensions: resolveTokenExtensions(),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccount: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n data: resolveAccountData(),\n node: resolveAccount('nodePubkey'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n};\n","import { BlockResult } from '../../resolvers/block';\n\nexport const blockTypeResolvers = {\n Block: {\n transactions: (parent?: BlockResult) =>\n parent?.transactionResults ? Object.values(parent.transactionResults) : null,\n },\n};\n","import { resolveAccount } from '../../resolvers/account';\nimport { InstructionResult } from '../../resolvers/transaction';\n\nexport const instructionTypeResolvers = {\n AdvanceNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n },\n AllocateInstruction: {\n account: resolveAccount('account'),\n },\n AllocateWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AuthorizeNonceAccountInstruction: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n BpfLoaderFinalizeInstruction: {\n account: resolveAccount('account'),\n },\n BpfLoaderWriteInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderCloseInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n clockSysvar: resolveAccount('clockSysvar'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n BpfUpgradeableLoaderExtendProgramInstruction: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n BpfUpgradeableLoaderInitializeBufferInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderUpgradeInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n clockSysvar: resolveAccount('clockSysvar'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n BpfUpgradeableLoaderWriteInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n CloseLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n CreateAccountInstruction: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstruction: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n CreateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n DeactivateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n ExtendLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n InitializeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n Lockup: {\n custodian: resolveAccount('custodian'),\n },\n SplAssociatedTokenCreateIdempotentInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenCreateInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenRecoverNestedInstruction: {\n destination: resolveAccount('destination'),\n nestedMint: resolveAccount('nestedMint'),\n nestedOwner: resolveAccount('nestedOwner'),\n nestedSource: resolveAccount('nestedSource'),\n ownerMint: resolveAccount('ownerMint'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplTokenAmountToUiAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenApplyPendingConfidentialTransferBalance: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenApproveCheckedInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenApproveConfidentialTransferAccount: {\n account: resolveAccount('account'),\n confidentialTransferAuditorAuthority: resolveAccount('confidentialTransferAuditorAuthority'),\n mint: resolveAccount('mint'),\n },\n SplTokenApproveInstruction: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenBurnCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenBurnInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstruction: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenConfidentialTransfer: {\n destination: resolveAccount('destination'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenConfidentialTransferWithSplitProofs: {\n batchedGroupedCiphertext2HandlesValidityContext: resolveAccount(\n 'batchedGroupedCiphertext2HandlesValidityContext',\n ),\n batchedRangeProofContext: resolveAccount('batchedRangeProofContext'),\n ciphertextCommitmentEqualityContext: resolveAccount('ciphertextCommitmentEqualityContext'),\n contextStateOwner: resolveAccount('contextStateOwner'),\n destination: resolveAccount('destination'),\n lamportDestination: resolveAccount('lamportDestination'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenConfigureConfidentialTransferAccount: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n },\n SplTokenDepositConfidentialTransfer: {\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenDisableConfidentialTransferConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableConfidentialTransferFeeHarvestToMint: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableConfidentialTransferNonConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableCpiGuardInstruction: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenDisableRequiredMemoTransfers: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEmptyConfidentialTransferAccount: {\n account: resolveAccount('account'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableConfidentialTransferConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableConfidentialTransferFeeHarvestToMint: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableConfidentialTransferNonConfidentialCredits: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableCpiGuardInstruction: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenEnableRequiredMemoTransfers: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenGetAccountDataSizeInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenGroupInitializeGroup: {\n group: resolveAccount('group'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenGroupInitializeMember: {\n group: resolveAccount('group'),\n groupUpdateAuthority: resolveAccount('groupUpdateAuthority'),\n member: resolveAccount('member'),\n memberMint: resolveAccount('memberMint'),\n memberMintAuthority: resolveAccount('memberMintAuthority'),\n },\n SplTokenGroupUpdateGroupAuthority: {\n group: resolveAccount('group'),\n newAuthority: resolveAccount('newAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenGroupUpdateGroupMaxSize: {\n group: resolveAccount('group'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenHarvestWithheldConfidentialTransferTokensToMint: {\n mint: resolveAccount('mint'),\n },\n SplTokenHarvestWithheldTokensToMint: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeAccount2Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeAccount3Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccountInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeConfidentialTransferFeeConfig: {\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeConfidentialTransferMint: {\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeDefaultAccountStateInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeGroupMemberPointerInstruction: {\n authority: resolveAccount('authority'),\n memberAddress: resolveAccount('memberAddress'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeGroupPointerInstruction: {\n authority: resolveAccount('authority'),\n groupAddress: resolveAccount('groupAddress'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeInterestBearingConfig: {\n mint: resolveAccount('mint'),\n rateAuthority: resolveAccount('rateAuthority'),\n },\n SplTokenInitializeMetadataPointerInstruction: {\n authority: resolveAccount('authority'),\n metadataAddress: resolveAccount('metadataAddress'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeMint2Instruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMintCloseAuthorityInstruction: {\n mint: resolveAccount('mint'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenInitializeMintInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeMultisig2Instruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisigInstruction: {\n multisig: resolveAccount('multisig'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializePermanentDelegateInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeTransferFeeConfig: {\n mint: resolveAccount('mint'),\n transferFeeConfigAuthority: resolveAccount('transferFeeConfigAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenInitializeTransferHookInstruction: {\n authority: resolveAccount('authority'),\n hookProgramId: resolveAccount('programId'),\n mint: resolveAccount('mint'),\n },\n SplTokenMetadataEmit: {\n metadata: resolveAccount('metadata'),\n },\n SplTokenMetadataInitialize: {\n metadata: resolveAccount('metadata'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMetadataRemoveKey: {\n metadata: resolveAccount('metadata'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMetadataUpdateAuthority: {\n metadata: resolveAccount('metadata'),\n newAuthority: resolveAccount('newAuthority'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMetadataUpdateField: {\n metadata: resolveAccount('metadata'),\n updateAuthority: resolveAccount('updateAuthority'),\n },\n SplTokenMintToCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenMintToInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenReallocate: {\n account: resolveAccount('account'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n payer: resolveAccount('payer'),\n systemProgram: resolveAccount('systemProgram'),\n },\n SplTokenRevokeInstruction: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstruction: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenSyncNativeInstruction: {\n account: resolveAccount('account'),\n },\n SplTokenThawAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenTransferCheckedWithFee: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenTransferInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenUiAmountToAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenUpdateConfidentialTransferMint: {\n authority: resolveAccount('authority'),\n confidentialTransferMintAuthority: resolveAccount('confidentialTransferMintAuthority'),\n mint: resolveAccount('mint'),\n newConfidentialTransferMintAuthority: resolveAccount('newConfidentialTransferMintAuthority'),\n },\n SplTokenUpdateDefaultAccountStateInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenUpdateGroupMemberPointerInstruction: {\n authority: resolveAccount('authority'),\n memberAddress: resolveAccount('memberAddress'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenUpdateGroupPointerInstruction: {\n authority: resolveAccount('authority'),\n groupAddress: resolveAccount('groupAddress'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenUpdateInterestBearingConfigRate: {\n mint: resolveAccount('mint'),\n multisigRateAuthority: resolveAccount('multisigRateAuthority'),\n rateAuthority: resolveAccount('rateAuthority'),\n },\n SplTokenUpdateMetadataPointerInstruction: {\n authority: resolveAccount('authority'),\n metadataAddress: resolveAccount('metadataAddress'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenUpdateTransferHookInstruction: {\n authority: resolveAccount('authority'),\n hookProgramId: resolveAccount('programId'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenWithdrawConfidentialTransfer: {\n destination: resolveAccount('destination'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenWithdrawWithheldConfidentialTransferTokensFromAccounts: {\n feeRecipient: resolveAccount('feeRecipient'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenWithdrawWithheldConfidentialTransferTokensFromMint: {\n feeRecipient: resolveAccount('feeRecipient'),\n instructionsSysvar: resolveAccount('instructionsSysvar'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenWithdrawWithheldTokensFromAccounts: {\n feeRecipient: resolveAccount('feeRecipient'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n SplTokenWithdrawWithheldTokensFromMint: {\n feeRecipient: resolveAccount('feeRecipient'),\n mint: resolveAccount('mint'),\n multisigWithdrawWithheldAuthority: resolveAccount('multisigWithdrawWithheldAuthority'),\n withdrawWithheldAuthority: resolveAccount('withdrawWithheldAuthority'),\n },\n StakeAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeCheckedWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDeactivateDelinquentInstruction: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeDeactivateInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeDelegateStakeInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n stakeHistorySysvar: resolveAccount('stakeHistorySysvar'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeInitializeCheckedInstruction: {\n rentSysvar: resolveAccount('rentSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeInitializeInstruction: {\n rentSysvar: resolveAccount('rentSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeMergeInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeHistorySysvar: resolveAccount('stakeHistorySysvar'),\n },\n StakeRedelegateInstruction: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSetLockupCheckedInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSplitInstruction: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n TransactionInstruction: {\n __resolveType(instructionResult: InstructionResult) {\n const { jsonParsedConfigs } = instructionResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'address-lookup-table') {\n if (jsonParsedConfigs.instructionType === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'bpf-loader') {\n if (jsonParsedConfigs.instructionType === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'bpf-upgradeable-loader') {\n if (jsonParsedConfigs.instructionType === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'spl-associated-token-account') {\n if (jsonParsedConfigs.instructionType === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (jsonParsedConfigs.programName === 'spl-token') {\n if (jsonParsedConfigs.instructionType === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializePermanentDelegate') {\n return 'SplTokenInitializePermanentDelegateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeGroupPointer') {\n return 'SplTokenInitializeGroupPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateGroupPointer') {\n return 'SplTokenUpdateGroupPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeGroupMemberPointer') {\n return 'SplTokenInitializeGroupMemberPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateGroupMemberPointer') {\n return 'SplTokenUpdateGroupMemberPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMetadataPointer') {\n return 'SplTokenInitializeMetadataPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateMetadataPointer') {\n return 'SplTokenUpdateMetadataPointerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTransferFeeConfig') {\n return 'SplTokenInitializeTransferFeeConfig';\n }\n if (jsonParsedConfigs.instructionType === 'transferCheckedWithFee') {\n return 'SplTokenTransferCheckedWithFee';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTransferHook') {\n return 'SplTokenInitializeTransferHookInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateTransferHook') {\n return 'SplTokenUpdateTransferHookInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeDefaultAccountState') {\n return 'SplTokenInitializeDefaultAccountStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateDefaultAccountState') {\n return 'SplTokenUpdateDefaultAccountStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'disableCpiGuard') {\n return 'SplTokenDisableCpiGuardInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'enableCpiGuard') {\n return 'SplTokenEnableCpiGuardInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'harvestWithheldTokensToMint') {\n return 'SplTokenHarvestWithheldTokensToMint';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawWithheldTokensFromAccounts') {\n return 'SplTokenWithdrawWithheldTokensFromAccounts';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawWithheldTokensFromMint') {\n return 'SplTokenWithdrawWithheldTokensFromMint';\n }\n if (jsonParsedConfigs.instructionType === 'enableRequiredMemoTransfers') {\n return 'SplTokenEnableRequiredMemoTransfers';\n }\n if (jsonParsedConfigs.instructionType === 'disableRequiredMemoTransfers') {\n return 'SplTokenDisableRequiredMemoTransfers';\n }\n if (jsonParsedConfigs.instructionType === 'initializeConfidentialTransferMint') {\n return 'SplTokenInitializeConfidentialTransferMint';\n }\n if (jsonParsedConfigs.instructionType === 'initializeInterestBearingConfig') {\n return 'SplTokenInitializeInterestBearingConfig';\n }\n if (jsonParsedConfigs.instructionType === 'updateInterestBearingConfigRate') {\n return 'SplTokenUpdateInterestBearingConfigRate';\n }\n if (jsonParsedConfigs.instructionType === 'approveConfidentialTransferAccount') {\n return 'SplTokenApproveConfidentialTransferAccount';\n }\n if (jsonParsedConfigs.instructionType === 'emptyConfidentialTransferAccount') {\n return 'SplTokenEmptyConfidentialTransferAccount';\n }\n if (jsonParsedConfigs.instructionType === 'configureConfidentialTransferAccount') {\n return 'SplTokenConfigureConfidentialTransferAccount';\n }\n if (jsonParsedConfigs.instructionType === 'applyPendingConfidentialTransferBalance') {\n return 'SplTokenApplyPendingConfidentialTransferBalance';\n }\n if (jsonParsedConfigs.instructionType === 'enableConfidentialTransferConfidentialCredits') {\n return 'SplTokenEnableConfidentialTransferConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'disableConfidentialTransferConfidentialCredits') {\n return 'SplTokenDisableConfidentialTransferConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'enableConfidentialTransferNonConfidentialCredits') {\n return 'SplTokenEnableConfidentialTransferNonConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'disableNonConfidentialTransferConfidentialCredits') {\n return 'SplTokenDisableConfidentialTransferNonConfidentialCredits';\n }\n if (jsonParsedConfigs.instructionType === 'depositConfidentialTransfer') {\n return 'SplTokenDepositConfidentialTransfer';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawConfidentialTransfer') {\n return 'SplTokenWithdrawConfidentialTransfer';\n }\n if (jsonParsedConfigs.instructionType === 'confidentialTransfer') {\n return 'SplTokenConfidentialTransfer';\n }\n if (jsonParsedConfigs.instructionType === 'confidentialTransferWithSplitProofs') {\n return 'SplTokenConfidentialTransferWithSplitProofs';\n }\n if (jsonParsedConfigs.instructionType === 'updateConfidentialTransferMint') {\n return 'SplTokenUpdateConfidentialTransferMint';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawWithheldConfidentialTransferTokensFromMint') {\n return 'SplTokenWithdrawWithheldConfidentialTransferTokensFromMint';\n }\n if (\n jsonParsedConfigs.instructionType === 'withdrawWithheldConfidentialTransferTokensFromAccounts'\n ) {\n return 'SplTokenWithdrawWithheldConfidentialTransferTokensFromAccounts';\n }\n if (jsonParsedConfigs.instructionType === 'harvestWithheldConfidentialTransferTokensToMint') {\n return 'SplTokenHarvestWithheldConfidentialTransferTokensToMint';\n }\n if (jsonParsedConfigs.instructionType === 'enableConfidentialTransferFeeHarvestToMint') {\n return 'SplTokenEnableConfidentialTransferFeeHarvestToMint';\n }\n if (jsonParsedConfigs.instructionType === 'disableConfidentialTransferFeeHarvestToMint') {\n return 'SplTokenDisableConfidentialTransferFeeHarvestToMint';\n }\n if (jsonParsedConfigs.instructionType === 'initializeConfidentialTransferFeeConfig') {\n return 'SplTokenInitializeConfidentialTransferFeeConfig';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTokenGroup') {\n return 'SplTokenGroupInitializeGroup';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenGroupMaxSize') {\n return 'SplTokenGroupUpdateGroupMaxSize';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenGroupAuthority') {\n return 'SplTokenGroupUpdateGroupAuthority';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTokenGroupMember') {\n return 'SplTokenGroupInitializeMember';\n }\n if (jsonParsedConfigs.instructionType === 'initializeTokenMetadata') {\n return 'SplTokenMetadataInitialize';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenMetadataField') {\n return 'SplTokenMetadataUpdateField';\n }\n if (jsonParsedConfigs.instructionType === 'removeTokenMetadataKey') {\n return 'SplTokenMetadataRemoveKey';\n }\n if (jsonParsedConfigs.instructionType === 'updateTokenMetadataAuthority') {\n return 'SplTokenMetadataUpdateAuthority';\n }\n if (jsonParsedConfigs.instructionType === 'emitTokenMetadata') {\n return 'SplTokenMetadataEmit';\n }\n if (jsonParsedConfigs?.instructionType === 'reallocate') {\n return 'SplTokenReallocate';\n }\n }\n if (jsonParsedConfigs.programName === 'stake') {\n if (jsonParsedConfigs.instructionType === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'split') {\n return 'StakeSplitInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'system') {\n if (jsonParsedConfigs.instructionType === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'assign') {\n return 'AssignInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transfer') {\n return 'TransferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'allocate') {\n return 'AllocateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'vote') {\n if (jsonParsedConfigs.instructionType === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n }\n return 'GenericInstruction';\n },\n },\n TransferInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n TransferWithSeedInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n UpgradeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n VoteAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteCompactUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteInitializeAccountInstruction: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n clockSysvar: resolveAccount('clockSysvar'),\n node: resolveAccount('node'),\n\n rentSysvar: resolveAccount('rentSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteUpdateCommissionInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateValidatorIdentityInstruction: {\n newValidatorIdentity: resolveAccount('newValidatorIdentity'),\n\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n slotHashesSysvar: resolveAccount('slotHashesSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteSwitchInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n slotHashesSysvar: resolveAccount('slotHashesSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n WithdrawNonceAccountInstruction: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n};\n","import { Address } from '@solana/addresses';\nimport { Signature } from '@solana/keys';\nimport { Commitment } from '@solana/rpc-types';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn, TransactionLoaderValue } from '../loaders';\nimport { buildTransactionLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\nexport type EncodedTransactionData = {\n [key: string]: string;\n};\n\nexport type InstructionResult = {\n [key: string]: unknown;\n} & {\n jsonParsedConfigs?: {\n instructionType: string;\n programId: Address;\n programName: string;\n };\n programId?: Address;\n};\n\nexport type TransactionResult = Partial<TransactionLoaderValue> & {\n encodedData?: EncodedTransactionData;\n signature?: Signature;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapJsonParsedInstructions(instructions: readonly any[]): InstructionResult[] {\n return instructions.map(instruction => {\n if ('parsed' in instruction) {\n // `jsonParsed`\n if (typeof instruction.parsed === 'string' && instruction.program === 'spl-memo') {\n const { parsed: memo, program: programName, programId } = instruction;\n const instructionType = 'memo';\n const jsonParsedConfigs = {\n instructionType,\n programId,\n programName,\n };\n return { jsonParsedConfigs, memo, programId };\n }\n const {\n parsed: { info: data, type: instructionType },\n program: programName,\n programId,\n } = instruction;\n const jsonParsedConfigs = {\n instructionType,\n programId,\n programName,\n };\n return { jsonParsedConfigs, ...data, programId };\n } else {\n // `json`\n return instruction;\n }\n });\n}\n\nexport function mapJsonParsedInnerInstructions(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n innerInstructions: readonly any[],\n): { index: number; instructions: InstructionResult[] }[] {\n return innerInstructions.map(({ index, instructions }) => ({\n index,\n instructions: mapJsonParsedInstructions(instructions),\n }));\n}\n\nexport const resolveTransactionData = () => {\n return (\n parent: TransactionResult | null,\n args: {\n encoding: 'base58' | 'base64';\n },\n ) => {\n return parent === null ? null : parent.encodedData ? parent.encodedData[cacheKeyFn(args)] : null;\n };\n};\n\nexport function resolveTransaction(fieldName?: string) {\n return async (\n parent: { [x: string]: Signature },\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n signature?: Signature;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<TransactionResult | null> => {\n const signature = fieldName ? parent[fieldName] : args.signature;\n\n if (signature) {\n if (onlyFieldsRequested(['signature'], info)) {\n return { signature };\n }\n\n const argsSet = buildTransactionLoaderArgSetFromResolveInfo({ ...args, signature }, info);\n const loadedTransactions = await context.loaders.transaction.loadMany(argsSet);\n\n let result: TransactionResult = {\n encodedData: {},\n signature,\n };\n\n loadedTransactions.forEach((loadedTransaction, i) => {\n if (loadedTransaction instanceof Error) {\n console.error(loadedTransaction);\n return;\n }\n if (loadedTransaction === null) {\n return;\n }\n if (!result.slot) {\n result = {\n ...result,\n ...loadedTransaction,\n };\n }\n\n const { transaction: data } = loadedTransaction;\n const { encoding } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[\n cacheKeyFn({\n encoding,\n })\n ] = data[0];\n } else if (typeof data === 'object') {\n const jsonParsedData = data;\n jsonParsedData.message.instructions = mapJsonParsedInstructions(\n jsonParsedData.message.instructions,\n ) as unknown as (typeof jsonParsedData)['message']['instructions'];\n\n const loadedInnerInstructions = loadedTransaction.meta?.innerInstructions;\n if (loadedInnerInstructions) {\n const innerInstructions = mapJsonParsedInnerInstructions(loadedInnerInstructions);\n const jsonParsedMeta = {\n ...loadedTransaction.meta,\n innerInstructions,\n };\n result = {\n ...result,\n ...jsonParsedData,\n meta: jsonParsedMeta as unknown as (typeof loadedTransaction)['meta'],\n };\n } else {\n result = {\n ...result,\n ...jsonParsedData,\n };\n }\n }\n }\n });\n return result;\n }\n return null;\n };\n}\n","import type { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { BlockLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildBlockLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\nimport { mapJsonParsedInnerInstructions, mapJsonParsedInstructions, TransactionResult } from './transaction';\n\nexport type BlockResult = Partial<BlockLoaderValue> & {\n slot: Slot;\n transactionResults?: { [i: number]: TransactionResult };\n};\n\nexport const resolveBlock = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Slot },\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n slot?: Slot;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ) => {\n const slot = fieldName ? parent[fieldName] : args.slot;\n\n if (slot) {\n if (onlyFieldsRequested(['slot'], info)) {\n return { slot };\n }\n\n const argsSet = buildBlockLoaderArgSetFromResolveInfo({ ...args, slot }, info);\n const loadedBlocks = await context.loaders.block.loadMany(argsSet);\n\n let result: BlockResult = {\n slot,\n };\n\n loadedBlocks.forEach((loadedBlock, i) => {\n if (loadedBlock instanceof Error) {\n console.error(loadedBlock);\n return;\n }\n if (loadedBlock === null) {\n return;\n }\n if (!result.blockhash) {\n result = {\n ...result,\n ...loadedBlock,\n };\n }\n // @ts-expect-error FIX ME: https://github.com/solana-labs/solana-web3.js/pull/2052\n if (!result.signatures && loadedBlock.signatures) {\n result = {\n ...result,\n // @ts-expect-error FIX ME: https://github.com/solana-labs/solana-web3.js/pull/2052\n signatures: loadedBlock.signatures,\n };\n }\n if (!result.transactionResults && loadedBlock.transactions) {\n result.transactionResults = Array.from({ length: loadedBlock.transactions.length }, (_, i) => ({\n [i]: { encodedData: {} },\n }));\n }\n\n const { transactions } = loadedBlock;\n const { encoding } = argsSet[i];\n\n if (encoding) {\n transactions.forEach((loadedTransaction, j) => {\n const { transaction: data } = loadedTransaction;\n\n if (result.transactionResults) {\n const thisTransactionResult = (result.transactionResults[j] ||= {\n encodedData: {},\n });\n\n if (Array.isArray(data)) {\n const thisEncodedData = (thisTransactionResult.encodedData ||= {});\n thisEncodedData[\n cacheKeyFn({\n encoding,\n })\n ] = data[0];\n } else if (typeof data === 'object') {\n const jsonParsedData: typeof data = {\n ...data,\n message: {\n ...data.message,\n instructions: mapJsonParsedInstructions(\n data.message.instructions,\n ) as unknown as (typeof jsonParsedData)['message']['instructions'],\n },\n };\n\n const loadedInnerInstructions = loadedTransaction.meta?.innerInstructions;\n if (loadedInnerInstructions) {\n const innerInstructions = mapJsonParsedInnerInstructions(loadedInnerInstructions);\n const jsonParsedMeta = {\n ...loadedTransaction.meta,\n innerInstructions,\n };\n result.transactionResults[j] = {\n ...thisTransactionResult,\n ...jsonParsedData,\n meta: jsonParsedMeta as unknown as TransactionResult['meta'],\n };\n } else {\n result.transactionResults[j] = {\n ...thisTransactionResult,\n ...jsonParsedData,\n };\n }\n }\n }\n });\n }\n });\n return result;\n }\n return null;\n };\n};\n","import { Address } from '@solana/addresses';\nimport { Commitment, GetProgramAccountsDatasizeFilter, GetProgramAccountsMemcmpFilter, Slot } from '@solana/rpc-types';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn } from '../loaders';\nimport { AccountResult } from './account';\nimport { buildProgramAccountsLoaderArgSetFromResolveInfo } from './resolve-info';\n\nexport function resolveProgramAccounts(fieldName?: string) {\n return async (\n parent: { [x: string]: Address },\n args: {\n /**\n * Fetch the details of the accounts as of the highest slot that has reached this level\n * of commitment.\n *\n * @defaultValue Whichever default is applied by the underlying {@link RpcApi} in use.\n * For example, when using an API created by a `createSolanaRpc*()` helper, the default\n * commitment is `\"confirmed\"` unless configured otherwise. Unmitigated by an API layer\n * on the client, the default commitment applied by the server is `\"finalized\"`.\n */\n commitment?: Commitment;\n dataSizeFilters?: GetProgramAccountsDatasizeFilter[];\n memcmpFilters?: GetProgramAccountsMemcmpFilter['memcmp'][];\n /**\n * Prevents accessing stale data by enforcing that the RPC node has processed\n * transactions up to this slot\n */\n minContextSlot?: Slot;\n programAddress: Address;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult[] | null> => {\n const programAddress = fieldName ? parent[fieldName] : args.programAddress;\n let filters: (GetProgramAccountsDatasizeFilter | GetProgramAccountsMemcmpFilter)[] | undefined = [];\n if (args.memcmpFilters) {\n filters.concat(\n args.memcmpFilters.map(memcmpFilter => ({\n memcmp: memcmpFilter,\n })),\n );\n }\n if (args.dataSizeFilters) {\n filters = filters.concat(args.dataSizeFilters);\n }\n if (filters.length === 0) {\n filters = undefined;\n }\n\n if (programAddress) {\n const argsSet = buildProgramAccountsLoaderArgSetFromResolveInfo({ ...args, filters, programAddress }, info);\n const loadedProgramAccountsLists = await context.loaders.programAccounts.loadMany(argsSet);\n\n const result: {\n [address: string]: AccountResult;\n } = {};\n\n loadedProgramAccountsLists.forEach((programAccounts, i) => {\n if (programAccounts instanceof Error) {\n console.error(programAccounts);\n return;\n }\n programAccounts.forEach(programAccount => {\n const { account, pubkey: address } = programAccount;\n\n const thisResult = (result[address] ||= {\n ...account,\n address,\n encodedData: {},\n ownerProgram: account.owner,\n });\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && thisResult.encodedData) {\n if (Array.isArray(data)) {\n thisResult.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })\n ] = data[0];\n } else if (typeof data === 'string') {\n thisResult.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })\n ] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n thisResult.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n for (const key in parsedData as object) {\n thisResult[key as keyof typeof thisResult] = parsedData[key];\n }\n }\n }\n });\n });\n return Object.values(result);\n }\n return null;\n };\n}\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { resolveAccount } from '../../resolvers/account';\nimport { resolveBlock } from '../../resolvers/block';\nimport { resolveProgramAccounts } from '../../resolvers/program-accounts';\nimport { resolveTransaction } from '../../resolvers/transaction';\n\nexport const rootTypeResolvers: Parameters<typeof makeExecutableSchema>[0]['resolvers'] = {\n Query: {\n account: resolveAccount(),\n block: resolveBlock(),\n programAccounts: resolveProgramAccounts(),\n transaction: resolveTransaction(),\n },\n};\n","import { resolveTransactionData } from '../../resolvers/transaction';\n\nexport const transactionTypeResolvers = {\n Transaction: {\n data: resolveTransactionData(),\n },\n};\n","import { Kind } from 'graphql';\n\nimport { resolveAccount } from '../../resolvers/account';\n\nconst stringScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: bigint | boolean | number | string }): string | null {\n if (ast.kind === Kind.STRING) {\n return ast.value.toString();\n }\n return null;\n },\n __parseValue(value: string): string {\n return value;\n },\n __serialize(value: string): string {\n return value;\n },\n};\n\nconst bigIntScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: bigint | boolean | number | string }): bigint | null {\n if (ast.kind === Kind.STRING || ast.kind === Kind.INT || ast.kind === Kind.FLOAT) {\n return BigInt(ast.value);\n }\n return null;\n },\n __parseValue(value: string): bigint {\n return BigInt(value);\n },\n __serialize(value: string): bigint {\n return BigInt(value);\n },\n};\n\nexport const typeTypeResolvers = {\n AccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n BASE_64_ZSTD: 'base64+zstd',\n },\n Address: stringScalarAlias,\n Base58EncodedBytes: stringScalarAlias,\n Base64EncodedBytes: stringScalarAlias,\n Base64ZstdEncodedBytes: stringScalarAlias,\n BigInt: bigIntScalarAlias,\n Commitment: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n PROCESSED: 'processed',\n },\n CommitmentWithoutProcessed: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n },\n Epoch: bigIntScalarAlias,\n Hash: stringScalarAlias,\n Lamports: bigIntScalarAlias,\n ProgramAccountsMemcmpFilterAccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n },\n Signature: stringScalarAlias,\n Slot: bigIntScalarAlias,\n SplTokenDefaultAccountState: {\n FROZEN: 'frozen',\n INITIALIZED: 'initialized',\n UNINITIALIZED: 'uninitialized',\n },\n SplTokenExtensionType: {\n CONFIDENTIAL_TRANSFER_ACCOUNT: 'confidentialTransferAccount',\n CONFIDENTIAL_TRANSFER_FEE_AMOUNT: 'confidentialTransferFeeAmount',\n CONFIDENTIAL_TRANSFER_FEE_CONFIG: 'confidentialTransferFeeConfig',\n CONFIDENTIAL_TRANSFER_MINT: 'confidentialTransferMint',\n CPI_GUARD: 'cpiGuard',\n DEFAULT_ACCOUNT_STATE: 'defaultAccountState',\n GROUP_MEMBER_POINTER: 'groupMemberPointer',\n GROUP_POINTER: 'groupPointer',\n IMMUTABLE_OWNER: 'immutableOwner',\n INTEREST_BEARING_CONFIG: 'interestBearingConfig',\n MEMO_TRANSFER: 'memoTransfer',\n METADATA_POINTER: 'metadataPointer',\n MINT_CLOSE_AUTHORITY: 'mintCloseAuthority',\n NON_TRANSFERABLE: 'nonTransferable',\n NON_TRANSFERABLE_ACCOUNT: 'nonTransferableAccount',\n PERMANENT_DELEGATE: 'permanentDelegate',\n TOKEN_GROUP: 'tokenGroup',\n TOKEN_GROUP_MEMBER: 'tokenGroupMember',\n TOKEN_METADATA: 'tokenMetadata',\n TRANSFER_FEE_AMOUNT: 'transferFeeAmount',\n TRANSFER_FEE_CONFIG: 'transferFeeConfig',\n TRANSFER_HOOK: 'transferHook',\n TRANSFER_HOOK_ACCOUNT: 'transferHookAccount',\n UNINITIALIZED: 'uninitialized',\n UNPARSEABLE_EXTENSION: 'unparseableExtension',\n },\n TokenBalance: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n TransactionEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n },\n};\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { accountTypeResolvers } from './account';\nimport { blockTypeResolvers } from './block';\nimport { instructionTypeResolvers } from './instruction';\nimport { rootTypeResolvers } from './root';\nimport { transactionTypeResolvers } from './transaction';\nimport { typeTypeResolvers } from './types';\n\n/**\n * Create the GraphQL type resolvers for the Solana GraphQL schema.\n *\n * @returns Solana GraphQL type resolvers.\n */\nexport function createSolanaGraphQLTypeResolvers(): Parameters<typeof makeExecutableSchema>[0]['resolvers'] {\n return {\n ...accountTypeResolvers,\n ...blockTypeResolvers,\n ...instructionTypeResolvers,\n ...rootTypeResolvers,\n ...transactionTypeResolvers,\n ...typeTypeResolvers,\n };\n}\n","import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { graphql } from 'graphql';\n\nimport { createSolanaGraphQLContext } from './context';\nimport { createSolanaGraphQLTypeDefs } from './schema/type-defs';\nimport { createSolanaGraphQLTypeResolvers } from './schema/type-resolvers';\n\nexport interface RpcGraphQL {\n query(\n source: Parameters<typeof graphql>[0]['source'],\n variableValues?: Parameters<typeof graphql>[0]['variableValues'],\n ): ReturnType<typeof graphql>;\n}\n\n/**\n * Create a GraphQL RPC client resolver.\n *\n * @param rpc Solana RPC client.\n * @param schema GraphQL schema.\n * @param config Optional GraphQL resolver configurations.\n * @returns GraphQL RPC client resolver.\n */\nexport function createRpcGraphQL(\n rpc: Parameters<typeof createSolanaGraphQLContext>[0],\n schema: ReturnType<typeof makeExecutableSchema>,\n config?: Partial<Parameters<typeof createSolanaGraphQLContext>[1]>,\n): RpcGraphQL {\n const rpcGraphQLConfig = {\n maxDataSliceByteRange: config?.maxDataSliceByteRange ?? 200,\n maxMultipleAccountsBatchSize: config?.maxMultipleAccountsBatchSize ?? 100,\n };\n return {\n async query(source, variableValues?) {\n const contextValue = createSolanaGraphQLContext(rpc, rpcGraphQLConfig);\n return await graphql({\n contextValue,\n schema,\n source,\n variableValues,\n });\n },\n };\n}\n\n/**\n * Create a Solana GraphQL RPC client resolver.\n *\n * Configures the client resolver to use the default Solana GraphQL schema.\n *\n * @param rpc Solana RPC client.\n * @param config Optional GraphQL resolver configurations.\n * @returns Solana GraphQL RPC client resolver.\n */\nexport function createSolanaRpcGraphQL(\n rpc: Parameters<typeof createSolanaGraphQLContext>[0],\n config?: Partial<Parameters<typeof createSolanaGraphQLContext>[1]>,\n): RpcGraphQL {\n const schema = makeExecutableSchema({\n resolvers: createSolanaGraphQLTypeResolvers(),\n typeDefs: createSolanaGraphQLTypeDefs(),\n });\n return createRpcGraphQL(rpc, schema, config);\n}\n\nexport { createSolanaGraphQLTypeDefs, createSolanaGraphQLTypeResolvers };\n"]}
|