@solana-mobile/guardian-client 0.0.0 → 0.1.0

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.
Files changed (69) hide show
  1. package/README.md +6 -42
  2. package/dist/src/index.js +4641 -0
  3. package/dist/src/index.js.map +1 -0
  4. package/dist/src/index.mjs +4282 -0
  5. package/dist/src/index.mjs.map +1 -0
  6. package/dist/types/generated/accounts/appAccount.d.ts +50 -0
  7. package/dist/types/generated/accounts/guardiansConfig.d.ts +54 -0
  8. package/dist/types/generated/accounts/index.d.ts +10 -0
  9. package/dist/types/generated/accounts/pendingRegistry.d.ts +35 -0
  10. package/dist/types/generated/constants/guardian.d.ts +8 -0
  11. package/dist/types/generated/constants/index.d.ts +8 -0
  12. package/dist/types/generated/errors/guardian.d.ts +95 -0
  13. package/dist/types/generated/errors/index.d.ts +8 -0
  14. package/dist/types/generated/events/appAuthorityAccepted.d.ts +42 -0
  15. package/dist/types/generated/events/appAuthorityProposed.d.ts +42 -0
  16. package/dist/types/generated/events/appDeveloperUpdated.d.ts +42 -0
  17. package/dist/types/generated/events/appRegistered.d.ts +42 -0
  18. package/dist/types/generated/events/configAuthorityAccepted.d.ts +38 -0
  19. package/dist/types/generated/events/configAuthorityProposed.d.ts +38 -0
  20. package/dist/types/generated/events/configInitialized.d.ts +46 -0
  21. package/dist/types/generated/events/configUpdated.d.ts +52 -0
  22. package/dist/types/generated/events/guardianAdded.d.ts +34 -0
  23. package/dist/types/generated/events/guardianRegistered.d.ts +46 -0
  24. package/dist/types/generated/events/guardianRemoved.d.ts +42 -0
  25. package/dist/types/generated/events/guardianVoteAuthorityRotated.d.ts +42 -0
  26. package/dist/types/generated/events/index.d.ts +25 -0
  27. package/dist/types/generated/events/releaseApproved.d.ts +27 -0
  28. package/dist/types/generated/events/releaseCancelled.d.ts +38 -0
  29. package/dist/types/generated/events/releaseExpired.d.ts +38 -0
  30. package/dist/types/generated/events/releaseProposed.d.ts +42 -0
  31. package/dist/types/generated/events/releaseRejected.d.ts +27 -0
  32. package/dist/types/generated/events/voteCast.d.ts +55 -0
  33. package/dist/types/generated/index.d.ts +15 -0
  34. package/dist/types/generated/instructions/acceptAppAuthority.d.ts +71 -0
  35. package/dist/types/generated/instructions/acceptConfigAuthority.d.ts +71 -0
  36. package/dist/types/generated/instructions/addGuardian.d.ts +90 -0
  37. package/dist/types/generated/instructions/cancelRelease.d.ts +78 -0
  38. package/dist/types/generated/instructions/expireRelease.d.ts +71 -0
  39. package/dist/types/generated/instructions/index.d.ts +24 -0
  40. package/dist/types/generated/instructions/initializeConfig.d.ts +135 -0
  41. package/dist/types/generated/instructions/proposeAppAuthority.d.ts +76 -0
  42. package/dist/types/generated/instructions/proposeConfigAuthority.d.ts +76 -0
  43. package/dist/types/generated/instructions/proposeRelease.d.ts +121 -0
  44. package/dist/types/generated/instructions/registerApp.d.ts +87 -0
  45. package/dist/types/generated/instructions/registerGuardian.d.ts +120 -0
  46. package/dist/types/generated/instructions/removeGuardian.d.ts +120 -0
  47. package/dist/types/generated/instructions/rotateVoteAuthority.d.ts +80 -0
  48. package/dist/types/generated/instructions/setAppDeveloper.d.ts +112 -0
  49. package/dist/types/generated/instructions/updateConfig.d.ts +88 -0
  50. package/dist/types/generated/instructions/vote.d.ts +116 -0
  51. package/dist/types/generated/instructions/writeReleaseManifest.d.ts +104 -0
  52. package/dist/types/generated/pdas/bondVault.d.ts +11 -0
  53. package/dist/types/generated/pdas/guardiansConfig.d.ts +11 -0
  54. package/dist/types/generated/pdas/index.d.ts +10 -0
  55. package/dist/types/generated/pdas/pendingRegistry.d.ts +11 -0
  56. package/dist/types/generated/programs/guardian.d.ts +179 -0
  57. package/dist/types/generated/programs/index.d.ts +8 -0
  58. package/dist/types/generated/types/bondInfo.d.ts +19 -0
  59. package/dist/types/generated/types/guardianInfo.d.ts +19 -0
  60. package/dist/types/generated/types/index.d.ts +14 -0
  61. package/dist/types/generated/types/pendingRelease.d.ts +29 -0
  62. package/dist/types/generated/types/publishedApp.d.ts +16 -0
  63. package/dist/types/generated/types/releaseManifest.d.ts +45 -0
  64. package/dist/types/generated/types/releaseResolution.d.ts +65 -0
  65. package/dist/types/generated/types/voteFinding.d.ts +24 -0
  66. package/dist/types/index.d.ts +3 -0
  67. package/dist/types/manifest.d.ts +72 -0
  68. package/dist/types/proposal.d.ts +66 -0
  69. package/package.json +59 -8
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/generated/types/bondInfo.ts","../../src/generated/types/guardianInfo.ts","../../src/generated/types/pendingRelease.ts","../../src/generated/types/publishedApp.ts","../../src/generated/types/releaseManifest.ts","../../src/generated/types/releaseResolution.ts","../../src/generated/types/voteFinding.ts","../../src/generated/accounts/appAccount.ts","../../src/generated/accounts/guardiansConfig.ts","../../src/generated/accounts/pendingRegistry.ts","../../src/generated/constants/guardian.ts","../../src/generated/instructions/acceptAppAuthority.ts","../../src/generated/instructions/acceptConfigAuthority.ts","../../src/generated/instructions/addGuardian.ts","../../src/generated/instructions/cancelRelease.ts","../../src/generated/instructions/expireRelease.ts","../../src/generated/instructions/initializeConfig.ts","../../src/generated/instructions/proposeAppAuthority.ts","../../src/generated/instructions/proposeConfigAuthority.ts","../../src/generated/instructions/proposeRelease.ts","../../src/generated/instructions/registerApp.ts","../../src/generated/instructions/registerGuardian.ts","../../src/generated/instructions/removeGuardian.ts","../../src/generated/instructions/rotateVoteAuthority.ts","../../src/generated/instructions/setAppDeveloper.ts","../../src/generated/instructions/updateConfig.ts","../../src/generated/instructions/vote.ts","../../src/generated/instructions/writeReleaseManifest.ts","../../src/generated/pdas/bondVault.ts","../../src/generated/pdas/guardiansConfig.ts","../../src/generated/pdas/pendingRegistry.ts","../../src/generated/programs/guardian.ts","../../src/generated/errors/guardian.ts","../../src/generated/events/appAuthorityAccepted.ts","../../src/generated/events/appAuthorityProposed.ts","../../src/generated/events/appDeveloperUpdated.ts","../../src/generated/events/appRegistered.ts","../../src/generated/events/configAuthorityAccepted.ts","../../src/generated/events/configAuthorityProposed.ts","../../src/generated/events/configInitialized.ts","../../src/generated/events/configUpdated.ts","../../src/generated/events/guardianAdded.ts","../../src/generated/events/guardianRegistered.ts","../../src/generated/events/guardianRemoved.ts","../../src/generated/events/guardianVoteAuthorityRotated.ts","../../src/generated/events/releaseApproved.ts","../../src/generated/events/releaseCancelled.ts","../../src/generated/events/releaseExpired.ts","../../src/generated/events/releaseProposed.ts","../../src/generated/events/releaseRejected.ts","../../src/generated/events/voteCast.ts","../../src/manifest.ts","../../src/proposal.ts"],"names":["getStructEncoder","getAddressEncoder","getU64Encoder","getStructDecoder","getAddressDecoder","getU64Decoder","combineCodec","getDiscriminatedUnionEncoder","getUnitEncoder","getTupleEncoder","getDiscriminatedUnionDecoder","getUnitDecoder","getTupleDecoder","getU32Encoder","fixEncoderSize","getBytesEncoder","getU32Decoder","fixDecoderSize","getBytesDecoder","getBooleanEncoder","getI64Encoder","addEncoderSizePrefix","getMapEncoder","getBooleanDecoder","getI64Decoder","addDecoderSizePrefix","getMapDecoder","getU8Encoder","getArrayEncoder","getU8Decoder","getArrayDecoder","getU16Encoder","getUtf8Encoder","getU16Decoder","getUtf8Decoder","transformEncoder","getSetEncoder","getSetDecoder","decodeAccount","assertAccountExists","fetchEncodedAccount","assertAccountsExist","fetchEncodedAccounts","getAccountMetaFactory","getProgramDerivedAddress","SolanaError","SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS","getOptionEncoder","getOptionDecoder","GuardianAccount","containsBytes","SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT","GuardianEvent","GuardianInstruction","SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION","assertIsInstructionWithAccounts","SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE","extendClient","addSelfFetchFunctions","addSelfPlanAndSendFunctions","isProgramError","getHiddenPrefixEncoder","getConstantEncoder","getHiddenPrefixDecoder","getConstantDecoder","getHiddenPrefixCodec","getStructCodec","getU32Codec","getArrayCodec","getNullableEncoder","getConstantCodec","transformCodec","fixCodecSize","getBytesCodec","createDecoder"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n} from '@solana/kit';\n\nexport type BondInfo = { mint: Address; amount: bigint };\n\nexport type BondInfoArgs = { mint: Address | HasAddress; amount: number | bigint };\n\nexport function getBondInfoEncoder(): FixedSizeEncoder<BondInfoArgs> {\n return getStructEncoder([\n ['mint', getAddressEncoder()],\n ['amount', getU64Encoder()],\n ]);\n}\n\nexport function getBondInfoDecoder(): FixedSizeDecoder<BondInfo> {\n return getStructDecoder([\n ['mint', getAddressDecoder()],\n ['amount', getU64Decoder()],\n ]);\n}\n\nexport function getBondInfoCodec(): FixedSizeCodec<BondInfoArgs, BondInfo> {\n return combineCodec(getBondInfoEncoder(), getBondInfoDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n} from '@solana/kit';\n\nexport type GuardianInfo = { voteAuthority: Address; bond: bigint };\n\nexport type GuardianInfoArgs = { voteAuthority: Address | HasAddress; bond: number | bigint };\n\nexport function getGuardianInfoEncoder(): FixedSizeEncoder<GuardianInfoArgs> {\n return getStructEncoder([\n ['voteAuthority', getAddressEncoder()],\n ['bond', getU64Encoder()],\n ]);\n}\n\nexport function getGuardianInfoDecoder(): FixedSizeDecoder<GuardianInfo> {\n return getStructDecoder([\n ['voteAuthority', getAddressDecoder()],\n ['bond', getU64Decoder()],\n ]);\n}\n\nexport function getGuardianInfoCodec(): FixedSizeCodec<GuardianInfoArgs, GuardianInfo> {\n return combineCodec(getGuardianInfoEncoder(), getGuardianInfoDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getDiscriminatedUnionDecoder,\n getDiscriminatedUnionEncoder,\n getStructDecoder,\n getStructEncoder,\n getTupleDecoder,\n getTupleEncoder,\n getUnitDecoder,\n getUnitEncoder,\n type Codec,\n type Decoder,\n type Encoder,\n type GetDiscriminatedUnionVariant,\n type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\nimport {\n getReleaseManifestDecoder,\n getReleaseManifestEncoder,\n type ReleaseManifest,\n type ReleaseManifestArgs,\n} from '.';\n\nexport type PendingRelease = { __kind: 'None' } | { __kind: 'Pending'; fields: readonly [ReleaseManifest] };\n\nexport type PendingReleaseArgs = { __kind: 'None' } | { __kind: 'Pending'; fields: readonly [ReleaseManifestArgs] };\n\nexport function getPendingReleaseEncoder(): Encoder<PendingReleaseArgs> {\n return getDiscriminatedUnionEncoder([\n ['None', getUnitEncoder()],\n ['Pending', getStructEncoder([['fields', getTupleEncoder([getReleaseManifestEncoder()])]])],\n ]);\n}\n\nexport function getPendingReleaseDecoder(): Decoder<PendingRelease> {\n return getDiscriminatedUnionDecoder([\n ['None', getUnitDecoder()],\n ['Pending', getStructDecoder([['fields', getTupleDecoder([getReleaseManifestDecoder()])]])],\n ]);\n}\n\nexport function getPendingReleaseCodec(): Codec<PendingReleaseArgs, PendingRelease> {\n return combineCodec(getPendingReleaseEncoder(), getPendingReleaseDecoder());\n}\n\n// Data Enum Helpers.\nexport function pendingRelease(kind: 'None'): GetDiscriminatedUnionVariant<PendingReleaseArgs, '__kind', 'None'>;\nexport function pendingRelease(\n kind: 'Pending',\n data: GetDiscriminatedUnionVariantContent<PendingReleaseArgs, '__kind', 'Pending'>['fields'],\n): GetDiscriminatedUnionVariant<PendingReleaseArgs, '__kind', 'Pending'>;\nexport function pendingRelease<K extends PendingReleaseArgs['__kind'], Data>(kind: K, data?: Data) {\n return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isPendingRelease<K extends PendingRelease['__kind']>(\n kind: K,\n value: PendingRelease,\n): value is PendingRelease & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport type PublishedApp = { versionCode: number; manifestHash: ReadonlyUint8Array };\n\nexport type PublishedAppArgs = PublishedApp;\n\nexport function getPublishedAppEncoder(): FixedSizeEncoder<PublishedAppArgs> {\n return getStructEncoder([\n ['versionCode', getU32Encoder()],\n ['manifestHash', fixEncoderSize(getBytesEncoder(), 32)],\n ]);\n}\n\nexport function getPublishedAppDecoder(): FixedSizeDecoder<PublishedApp> {\n return getStructDecoder([\n ['versionCode', getU32Decoder()],\n ['manifestHash', fixDecoderSize(getBytesDecoder(), 32)],\n ]);\n}\n\nexport function getPublishedAppCodec(): FixedSizeCodec<PublishedAppArgs, PublishedApp> {\n return combineCodec(getPublishedAppEncoder(), getPublishedAppDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBooleanDecoder,\n getBooleanEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getI64Decoder,\n getI64Encoder,\n getMapDecoder,\n getMapEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport type ReleaseManifest = {\n versionCode: number;\n finalized: boolean;\n guardianNonce: number;\n manifestHash: ReadonlyUint8Array;\n policyBundleHash: ReadonlyUint8Array;\n resolved: boolean;\n approved: boolean;\n quorumTs: bigint;\n votingDeadline: bigint;\n finalizeTs: bigint;\n finalizeSeq: bigint;\n previousFinalizeTs: bigint;\n certificateSha256: ReadonlyUint8Array;\n data: ReadonlyUint8Array;\n votes: Map<Address, boolean>;\n};\n\nexport type ReleaseManifestArgs = {\n versionCode: number;\n finalized: boolean;\n guardianNonce: number;\n manifestHash: ReadonlyUint8Array;\n policyBundleHash: ReadonlyUint8Array;\n resolved: boolean;\n approved: boolean;\n quorumTs: number | bigint;\n votingDeadline: number | bigint;\n finalizeTs: number | bigint;\n finalizeSeq: number | bigint;\n previousFinalizeTs: number | bigint;\n certificateSha256: ReadonlyUint8Array;\n data: ReadonlyUint8Array;\n votes: Map<Address | HasAddress, boolean>;\n};\n\nexport function getReleaseManifestEncoder(): Encoder<ReleaseManifestArgs> {\n return getStructEncoder([\n ['versionCode', getU32Encoder()],\n ['finalized', getBooleanEncoder()],\n ['guardianNonce', getU32Encoder()],\n ['manifestHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['policyBundleHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['resolved', getBooleanEncoder()],\n ['approved', getBooleanEncoder()],\n ['quorumTs', getI64Encoder()],\n ['votingDeadline', getI64Encoder()],\n ['finalizeTs', getI64Encoder()],\n ['finalizeSeq', getU64Encoder()],\n ['previousFinalizeTs', getI64Encoder()],\n ['certificateSha256', fixEncoderSize(getBytesEncoder(), 32)],\n ['data', addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())],\n ['votes', getMapEncoder(getAddressEncoder(), getBooleanEncoder())],\n ]);\n}\n\nexport function getReleaseManifestDecoder(): Decoder<ReleaseManifest> {\n return getStructDecoder([\n ['versionCode', getU32Decoder()],\n ['finalized', getBooleanDecoder()],\n ['guardianNonce', getU32Decoder()],\n ['manifestHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['policyBundleHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['resolved', getBooleanDecoder()],\n ['approved', getBooleanDecoder()],\n ['quorumTs', getI64Decoder()],\n ['votingDeadline', getI64Decoder()],\n ['finalizeTs', getI64Decoder()],\n ['finalizeSeq', getU64Decoder()],\n ['previousFinalizeTs', getI64Decoder()],\n ['certificateSha256', fixDecoderSize(getBytesDecoder(), 32)],\n ['data', addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],\n ['votes', getMapDecoder(getAddressDecoder(), getBooleanDecoder())],\n ]);\n}\n\nexport function getReleaseManifestCodec(): Codec<ReleaseManifestArgs, ReleaseManifest> {\n return combineCodec(getReleaseManifestEncoder(), getReleaseManifestDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\n/**\n * A resolved release, with its manifest and voters. Late votes aren't included; each one gets its\n * own `VoteCast`.\n */\nexport type ReleaseResolution = {\n /** The wrapping event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** Version code of the resolved release. */\n versionCode: number;\n /** sha256 of `manifest`. */\n manifestHash: ReadonlyUint8Array;\n /**\n * The release's signing certificate hash. Copied to the app's `signing_certificate` on\n * approval.\n */\n certificateSha256: ReadonlyUint8Array;\n /** Guardian-set nonce the votes were cast under. */\n guardianNonce: number;\n /** Authority keys of the guardians that approved, sorted. */\n approvals: Array<Address>;\n /** Authority keys of the guardians that rejected, sorted. */\n rejections: Array<Address>;\n /** Full manifest bytes. */\n manifest: ReadonlyUint8Array;\n};\n\nexport type ReleaseResolutionArgs = {\n /** The wrapping event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** Version code of the resolved release. */\n versionCode: number;\n /** sha256 of `manifest`. */\n manifestHash: ReadonlyUint8Array;\n /**\n * The release's signing certificate hash. Copied to the app's `signing_certificate` on\n * approval.\n */\n certificateSha256: ReadonlyUint8Array;\n /** Guardian-set nonce the votes were cast under. */\n guardianNonce: number;\n /** Authority keys of the guardians that approved, sorted. */\n approvals: Array<Address | HasAddress>;\n /** Authority keys of the guardians that rejected, sorted. */\n rejections: Array<Address | HasAddress>;\n /** Full manifest bytes. */\n manifest: ReadonlyUint8Array;\n};\n\nexport function getReleaseResolutionEncoder(): Encoder<ReleaseResolutionArgs> {\n return getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['versionCode', getU32Encoder()],\n ['manifestHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['certificateSha256', fixEncoderSize(getBytesEncoder(), 32)],\n ['guardianNonce', getU32Encoder()],\n ['approvals', getArrayEncoder(getAddressEncoder())],\n ['rejections', getArrayEncoder(getAddressEncoder())],\n ['manifest', addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())],\n ]);\n}\n\nexport function getReleaseResolutionDecoder(): Decoder<ReleaseResolution> {\n return getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['versionCode', getU32Decoder()],\n ['manifestHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['certificateSha256', fixDecoderSize(getBytesDecoder(), 32)],\n ['guardianNonce', getU32Decoder()],\n ['approvals', getArrayDecoder(getAddressDecoder())],\n ['rejections', getArrayDecoder(getAddressDecoder())],\n ['manifest', addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],\n ]);\n}\n\nexport function getReleaseResolutionCodec(): Codec<ReleaseResolutionArgs, ReleaseResolution> {\n return combineCodec(getReleaseResolutionEncoder(), getReleaseResolutionDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU16Decoder,\n getU16Encoder,\n getU32Decoder,\n getU32Encoder,\n getU8Decoder,\n getU8Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\n/**\n * A finding reported with a vote. `code` indexes the taxonomy of the vote's policy bundle. The\n * program doesn't interpret findings.\n */\nexport type VoteFinding = {\n /** Index of the finding code in the policy bundle's taxonomy. */\n code: number;\n /** Check outcome, encoded by the voter. */\n status: number;\n /** Free-text detail. */\n detail: string;\n};\n\nexport type VoteFindingArgs = VoteFinding;\n\nexport function getVoteFindingEncoder(): Encoder<VoteFindingArgs> {\n return getStructEncoder([\n ['code', getU16Encoder()],\n ['status', getU8Encoder()],\n ['detail', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n ]);\n}\n\nexport function getVoteFindingDecoder(): Decoder<VoteFinding> {\n return getStructDecoder([\n ['code', getU16Decoder()],\n ['status', getU8Decoder()],\n ['detail', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n ]);\n}\n\nexport function getVoteFindingCodec(): Codec<VoteFindingArgs, VoteFinding> {\n return combineCodec(getVoteFindingEncoder(), getVoteFindingDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getI64Decoder,\n getI64Encoder,\n getSetDecoder,\n getSetEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type HasAddress,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n getPendingReleaseDecoder,\n getPendingReleaseEncoder,\n getPublishedAppDecoder,\n getPublishedAppEncoder,\n type PendingRelease,\n type PendingReleaseArgs,\n type PublishedApp,\n type PublishedAppArgs,\n} from '../types';\n\nexport const APP_ACCOUNT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([189, 192, 243, 151, 141, 78, 227, 17]);\n\nexport function getAppAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(APP_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type AppAccount = {\n discriminator: ReadonlyUint8Array;\n version: number;\n authority: Address;\n pendingAuthority: Address;\n eventSeq: bigint;\n lastResolvedVersion: number;\n lastFinalizeTs: bigint;\n signingCertificate: ReadonlyUint8Array;\n name: string;\n developers: Set<Address>;\n publishedVersions: Array<PublishedApp>;\n pendingRelease: PendingRelease;\n};\n\nexport type AppAccountArgs = {\n version: number;\n authority: Address | HasAddress;\n pendingAuthority: Address | HasAddress;\n eventSeq: number | bigint;\n lastResolvedVersion: number;\n lastFinalizeTs: number | bigint;\n signingCertificate: ReadonlyUint8Array;\n name: string;\n developers: Set<Address | HasAddress>;\n publishedVersions: Array<PublishedAppArgs>;\n pendingRelease: PendingReleaseArgs;\n};\n\n/** Gets the encoder for {@link AppAccountArgs} account data. */\nexport function getAppAccountEncoder(): Encoder<AppAccountArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['version', getU8Encoder()],\n ['authority', getAddressEncoder()],\n ['pendingAuthority', getAddressEncoder()],\n ['eventSeq', getU64Encoder()],\n ['lastResolvedVersion', getU32Encoder()],\n ['lastFinalizeTs', getI64Encoder()],\n ['signingCertificate', fixEncoderSize(getBytesEncoder(), 32)],\n ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n ['developers', getSetEncoder(getAddressEncoder())],\n ['publishedVersions', getArrayEncoder(getPublishedAppEncoder())],\n ['pendingRelease', getPendingReleaseEncoder()],\n ]),\n value => ({ ...value, discriminator: APP_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\n/** Gets the decoder for {@link AppAccount} account data. */\nexport function getAppAccountDecoder(): Decoder<AppAccount> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['version', getU8Decoder()],\n ['authority', getAddressDecoder()],\n ['pendingAuthority', getAddressDecoder()],\n ['eventSeq', getU64Decoder()],\n ['lastResolvedVersion', getU32Decoder()],\n ['lastFinalizeTs', getI64Decoder()],\n ['signingCertificate', fixDecoderSize(getBytesDecoder(), 32)],\n ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n ['developers', getSetDecoder(getAddressDecoder())],\n ['publishedVersions', getArrayDecoder(getPublishedAppDecoder())],\n ['pendingRelease', getPendingReleaseDecoder()],\n ]);\n}\n\n/** Gets the codec for {@link AppAccount} account data. */\nexport function getAppAccountCodec(): Codec<AppAccountArgs, AppAccount> {\n return combineCodec(getAppAccountEncoder(), getAppAccountDecoder());\n}\n\nexport function decodeAppAccount<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>,\n): Account<AppAccount, TAddress>;\nexport function decodeAppAccount<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>,\n): MaybeAccount<AppAccount, TAddress>;\nexport function decodeAppAccount<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,\n): Account<AppAccount, TAddress> | MaybeAccount<AppAccount, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getAppAccountDecoder());\n}\n\nexport async function fetchAppAccount<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<AppAccount, TAddress>> {\n const maybeAccount = await fetchMaybeAppAccount(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeAppAccount<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<AppAccount, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(\n rpc,\n typeof address === 'string' ? address : address.address,\n config,\n );\n return decodeAppAccount(maybeAccount);\n}\n\nexport async function fetchAllAppAccount(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<Account<AppAccount>[]> {\n const maybeAccounts = await fetchAllMaybeAppAccount(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeAppAccount(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<AppAccount>[]> {\n const maybeAccounts = await fetchEncodedAccounts(\n rpc,\n addresses.map(a => (typeof a === 'string' ? a : a.address)),\n config,\n );\n return maybeAccounts.map(maybeAccount => decodeAppAccount(maybeAccount));\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getMapDecoder,\n getMapEncoder,\n getSetDecoder,\n getSetEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type HasAddress,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n getBondInfoDecoder,\n getBondInfoEncoder,\n getGuardianInfoDecoder,\n getGuardianInfoEncoder,\n type BondInfo,\n type BondInfoArgs,\n type GuardianInfo,\n type GuardianInfoArgs,\n} from '../types';\n\nexport const GUARDIANS_CONFIG_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([96, 9, 56, 96, 215, 120, 26, 206]);\n\nexport function getGuardiansConfigDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(GUARDIANS_CONFIG_DISCRIMINATOR);\n}\n\nexport type GuardiansConfig = {\n discriminator: ReadonlyUint8Array;\n version: number;\n bump: number;\n authority: Address;\n pendingAuthority: Address;\n bond: BondInfo;\n updateNonce: number;\n eventSeq: bigint;\n policyBundleHash: ReadonlyUint8Array;\n voteWindow: number;\n votingPeriod: number;\n pendingGuardians: Set<Address>;\n guardians: Map<Address, GuardianInfo>;\n voters: Map<Address, Address>;\n};\n\nexport type GuardiansConfigArgs = {\n version: number;\n bump: number;\n authority: Address | HasAddress;\n pendingAuthority: Address | HasAddress;\n bond: BondInfoArgs;\n updateNonce: number;\n eventSeq: number | bigint;\n policyBundleHash: ReadonlyUint8Array;\n voteWindow: number;\n votingPeriod: number;\n pendingGuardians: Set<Address | HasAddress>;\n guardians: Map<Address | HasAddress, GuardianInfoArgs>;\n voters: Map<Address | HasAddress, Address | HasAddress>;\n};\n\n/** Gets the encoder for {@link GuardiansConfigArgs} account data. */\nexport function getGuardiansConfigEncoder(): Encoder<GuardiansConfigArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['version', getU8Encoder()],\n ['bump', getU8Encoder()],\n ['authority', getAddressEncoder()],\n ['pendingAuthority', getAddressEncoder()],\n ['bond', getBondInfoEncoder()],\n ['updateNonce', getU32Encoder()],\n ['eventSeq', getU64Encoder()],\n ['policyBundleHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['voteWindow', getU32Encoder()],\n ['votingPeriod', getU32Encoder()],\n ['pendingGuardians', getSetEncoder(getAddressEncoder())],\n ['guardians', getMapEncoder(getAddressEncoder(), getGuardianInfoEncoder())],\n ['voters', getMapEncoder(getAddressEncoder(), getAddressEncoder())],\n ]),\n value => ({ ...value, discriminator: GUARDIANS_CONFIG_DISCRIMINATOR }),\n );\n}\n\n/** Gets the decoder for {@link GuardiansConfig} account data. */\nexport function getGuardiansConfigDecoder(): Decoder<GuardiansConfig> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['version', getU8Decoder()],\n ['bump', getU8Decoder()],\n ['authority', getAddressDecoder()],\n ['pendingAuthority', getAddressDecoder()],\n ['bond', getBondInfoDecoder()],\n ['updateNonce', getU32Decoder()],\n ['eventSeq', getU64Decoder()],\n ['policyBundleHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['voteWindow', getU32Decoder()],\n ['votingPeriod', getU32Decoder()],\n ['pendingGuardians', getSetDecoder(getAddressDecoder())],\n ['guardians', getMapDecoder(getAddressDecoder(), getGuardianInfoDecoder())],\n ['voters', getMapDecoder(getAddressDecoder(), getAddressDecoder())],\n ]);\n}\n\n/** Gets the codec for {@link GuardiansConfig} account data. */\nexport function getGuardiansConfigCodec(): Codec<GuardiansConfigArgs, GuardiansConfig> {\n return combineCodec(getGuardiansConfigEncoder(), getGuardiansConfigDecoder());\n}\n\nexport function decodeGuardiansConfig<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>,\n): Account<GuardiansConfig, TAddress>;\nexport function decodeGuardiansConfig<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>,\n): MaybeAccount<GuardiansConfig, TAddress>;\nexport function decodeGuardiansConfig<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,\n): Account<GuardiansConfig, TAddress> | MaybeAccount<GuardiansConfig, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getGuardiansConfigDecoder());\n}\n\nexport async function fetchGuardiansConfig<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<GuardiansConfig, TAddress>> {\n const maybeAccount = await fetchMaybeGuardiansConfig(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeGuardiansConfig<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<GuardiansConfig, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(\n rpc,\n typeof address === 'string' ? address : address.address,\n config,\n );\n return decodeGuardiansConfig(maybeAccount);\n}\n\nexport async function fetchAllGuardiansConfig(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<Account<GuardiansConfig>[]> {\n const maybeAccounts = await fetchAllMaybeGuardiansConfig(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeGuardiansConfig(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<GuardiansConfig>[]> {\n const maybeAccounts = await fetchEncodedAccounts(\n rpc,\n addresses.map(a => (typeof a === 'string' ? a : a.address)),\n config,\n );\n return maybeAccounts.map(maybeAccount => decodeGuardiansConfig(maybeAccount));\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getSetDecoder,\n getSetEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type HasAddress,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const PENDING_REGISTRY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([190, 252, 14, 196, 56, 47, 120, 61]);\n\nexport function getPendingRegistryDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(PENDING_REGISTRY_DISCRIMINATOR);\n}\n\nexport type PendingRegistry = {\n discriminator: ReadonlyUint8Array;\n version: number;\n bump: number;\n finalizeSeq: bigint;\n pending: Set<Address>;\n};\n\nexport type PendingRegistryArgs = {\n version: number;\n bump: number;\n finalizeSeq: number | bigint;\n pending: Set<Address | HasAddress>;\n};\n\n/** Gets the encoder for {@link PendingRegistryArgs} account data. */\nexport function getPendingRegistryEncoder(): Encoder<PendingRegistryArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['version', getU8Encoder()],\n ['bump', getU8Encoder()],\n ['finalizeSeq', getU64Encoder()],\n ['pending', getSetEncoder(getAddressEncoder())],\n ]),\n value => ({ ...value, discriminator: PENDING_REGISTRY_DISCRIMINATOR }),\n );\n}\n\n/** Gets the decoder for {@link PendingRegistry} account data. */\nexport function getPendingRegistryDecoder(): Decoder<PendingRegistry> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['version', getU8Decoder()],\n ['bump', getU8Decoder()],\n ['finalizeSeq', getU64Decoder()],\n ['pending', getSetDecoder(getAddressDecoder())],\n ]);\n}\n\n/** Gets the codec for {@link PendingRegistry} account data. */\nexport function getPendingRegistryCodec(): Codec<PendingRegistryArgs, PendingRegistry> {\n return combineCodec(getPendingRegistryEncoder(), getPendingRegistryDecoder());\n}\n\nexport function decodePendingRegistry<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>,\n): Account<PendingRegistry, TAddress>;\nexport function decodePendingRegistry<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>,\n): MaybeAccount<PendingRegistry, TAddress>;\nexport function decodePendingRegistry<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,\n): Account<PendingRegistry, TAddress> | MaybeAccount<PendingRegistry, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getPendingRegistryDecoder());\n}\n\nexport async function fetchPendingRegistry<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<PendingRegistry, TAddress>> {\n const maybeAccount = await fetchMaybePendingRegistry(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybePendingRegistry<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<PendingRegistry, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(\n rpc,\n typeof address === 'string' ? address : address.address,\n config,\n );\n return decodePendingRegistry(maybeAccount);\n}\n\nexport async function fetchAllPendingRegistry(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<Account<PendingRegistry>[]> {\n const maybeAccounts = await fetchAllMaybePendingRegistry(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybePendingRegistry(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<PendingRegistry>[]> {\n const maybeAccounts = await fetchEncodedAccounts(\n rpc,\n addresses.map(a => (typeof a === 'string' ? a : a.address)),\n config,\n );\n return maybeAccounts.map(maybeAccount => decodePendingRegistry(maybeAccount));\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nexport const MAX_MANIFEST_LEN: number = 8051;\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const ACCEPT_APP_AUTHORITY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 227, 109, 248, 178, 27, 2, 126, 21,\n]);\n\nexport function getAcceptAppAuthorityDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(ACCEPT_APP_AUTHORITY_DISCRIMINATOR);\n}\n\nexport type AcceptAppAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountNewAuthority extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAuthority extends string\n ? ReadonlySignerAccount<TAccountNewAuthority> & AccountSignerMeta<TAccountNewAuthority>\n : TAccountNewAuthority,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AcceptAppAuthorityInstructionData = { discriminator: ReadonlyUint8Array };\n\nexport type AcceptAppAuthorityInstructionDataArgs = {};\n\nexport function getAcceptAppAuthorityInstructionDataEncoder(): FixedSizeEncoder<AcceptAppAuthorityInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), value => ({\n ...value,\n discriminator: ACCEPT_APP_AUTHORITY_DISCRIMINATOR,\n }));\n}\n\nexport function getAcceptAppAuthorityInstructionDataDecoder(): FixedSizeDecoder<AcceptAppAuthorityInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);\n}\n\nexport function getAcceptAppAuthorityInstructionDataCodec(): FixedSizeCodec<\n AcceptAppAuthorityInstructionDataArgs,\n AcceptAppAuthorityInstructionData\n> {\n return combineCodec(getAcceptAppAuthorityInstructionDataEncoder(), getAcceptAppAuthorityInstructionDataDecoder());\n}\n\nexport type AcceptAppAuthorityAsyncInput<\n TAccountNewAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** The authority proposed with `propose_app_authority`. */\n newAuthority: TAccountNewAuthority;\n /** The app. */\n app: TAccountApp;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport async function getAcceptAppAuthorityInstructionAsync<\n TAccountNewAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: AcceptAppAuthorityAsyncInput<TAccountNewAuthority, TAccountApp, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n AcceptAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n newAuthority: { value: input.newAuthority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('newAuthority', accounts.newAuthority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getAcceptAppAuthorityInstructionDataEncoder().encode({}),\n programAddress,\n } as AcceptAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type AcceptAppAuthorityInput<\n TAccountNewAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** The authority proposed with `propose_app_authority`. */\n newAuthority: TAccountNewAuthority;\n /** The app. */\n app: TAccountApp;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport function getAcceptAppAuthorityInstruction<\n TAccountNewAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: AcceptAppAuthorityInput<TAccountNewAuthority, TAccountApp, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AcceptAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n newAuthority: { value: input.newAuthority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('newAuthority', accounts.newAuthority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getAcceptAppAuthorityInstructionDataEncoder().encode({}),\n programAddress,\n } as AcceptAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedAcceptAppAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** The authority proposed with `propose_app_authority`. */\n newAuthority: TAccountMetas[0];\n /** The app. */\n app: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: AcceptAppAuthorityInstructionData;\n};\n\nexport function parseAcceptAppAuthorityInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAcceptAppAuthorityInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n newAuthority: getNextAccount(),\n app: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getAcceptAppAuthorityInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const ACCEPT_CONFIG_AUTHORITY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 138, 34, 130, 16, 252, 207, 24, 90,\n]);\n\nexport function getAcceptConfigAuthorityDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(ACCEPT_CONFIG_AUTHORITY_DISCRIMINATOR);\n}\n\nexport type AcceptConfigAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountNewAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAuthority extends string\n ? ReadonlySignerAccount<TAccountNewAuthority> & AccountSignerMeta<TAccountNewAuthority>\n : TAccountNewAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AcceptConfigAuthorityInstructionData = { discriminator: ReadonlyUint8Array };\n\nexport type AcceptConfigAuthorityInstructionDataArgs = {};\n\nexport function getAcceptConfigAuthorityInstructionDataEncoder(): FixedSizeEncoder<AcceptConfigAuthorityInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), value => ({\n ...value,\n discriminator: ACCEPT_CONFIG_AUTHORITY_DISCRIMINATOR,\n }));\n}\n\nexport function getAcceptConfigAuthorityInstructionDataDecoder(): FixedSizeDecoder<AcceptConfigAuthorityInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);\n}\n\nexport function getAcceptConfigAuthorityInstructionDataCodec(): FixedSizeCodec<\n AcceptConfigAuthorityInstructionDataArgs,\n AcceptConfigAuthorityInstructionData\n> {\n return combineCodec(\n getAcceptConfigAuthorityInstructionDataEncoder(),\n getAcceptConfigAuthorityInstructionDataDecoder(),\n );\n}\n\nexport type AcceptConfigAuthorityAsyncInput<\n TAccountNewAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** The authority proposed with `propose_config_authority`. */\n newAuthority: TAccountNewAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport async function getAcceptConfigAuthorityInstructionAsync<\n TAccountNewAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: AcceptConfigAuthorityAsyncInput<\n TAccountNewAuthority,\n TAccountConfig,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n AcceptConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n newAuthority: { value: input.newAuthority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('newAuthority', accounts.newAuthority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getAcceptConfigAuthorityInstructionDataEncoder().encode({}),\n programAddress,\n } as AcceptConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type AcceptConfigAuthorityInput<\n TAccountNewAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** The authority proposed with `propose_config_authority`. */\n newAuthority: TAccountNewAuthority;\n /** Global config. */\n config: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport function getAcceptConfigAuthorityInstruction<\n TAccountNewAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: AcceptConfigAuthorityInput<TAccountNewAuthority, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AcceptConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n newAuthority: { value: input.newAuthority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('newAuthority', accounts.newAuthority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getAcceptConfigAuthorityInstructionDataEncoder().encode({}),\n programAddress,\n } as AcceptConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAuthority, InstructionAccountInputAddress<TAccountNewAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedAcceptConfigAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** The authority proposed with `propose_config_authority`. */\n newAuthority: TAccountMetas[0];\n /** Global config. */\n config: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: AcceptConfigAuthorityInstructionData;\n};\n\nexport function parseAcceptConfigAuthorityInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAcceptConfigAuthorityInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n newAuthority: getNextAccount(),\n config: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getAcceptConfigAuthorityInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const ADD_GUARDIAN_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([167, 189, 170, 27, 74, 240, 201, 241]);\n\nexport function getAddGuardianDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(ADD_GUARDIAN_DISCRIMINATOR);\n}\n\nexport type AddGuardianInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AddGuardianInstructionData = { discriminator: ReadonlyUint8Array; guardian: Address };\n\nexport type AddGuardianInstructionDataArgs = { guardian: Address | HasAddress };\n\nexport function getAddGuardianInstructionDataEncoder(): FixedSizeEncoder<AddGuardianInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['guardian', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ADD_GUARDIAN_DISCRIMINATOR }),\n );\n}\n\nexport function getAddGuardianInstructionDataDecoder(): FixedSizeDecoder<AddGuardianInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['guardian', getAddressDecoder()],\n ]);\n}\n\nexport function getAddGuardianInstructionDataCodec(): FixedSizeCodec<\n AddGuardianInstructionDataArgs,\n AddGuardianInstructionData\n> {\n return combineCodec(getAddGuardianInstructionDataEncoder(), getAddGuardianInstructionDataDecoder());\n}\n\nexport type AddGuardianAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Pays rent for the new entry. Must be owned by the System Program. */\n funder: TAccountFunder;\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n guardian: AddGuardianInstructionDataArgs['guardian'];\n};\n\nexport async function getAddGuardianInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: AddGuardianAsyncInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountConfig,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n AddGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getAddGuardianInstructionDataEncoder().encode(args as AddGuardianInstructionDataArgs),\n programAddress,\n } as AddGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type AddGuardianInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Pays rent for the new entry. Must be owned by the System Program. */\n funder: TAccountFunder;\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config: TAccountConfig;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n guardian: AddGuardianInstructionDataArgs['guardian'];\n};\n\nexport function getAddGuardianInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: AddGuardianInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountConfig,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AddGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getAddGuardianInstructionDataEncoder().encode(args as AddGuardianInstructionDataArgs),\n programAddress,\n } as AddGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedAddGuardianInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** Pays rent for the new entry. Must be owned by the System Program. */\n funder: TAccountMetas[0];\n /** Config authority. */\n authority: TAccountMetas[1];\n /** Global config. */\n config: TAccountMetas[2];\n /** For the rent transfer. */\n systemProgram: TAccountMetas[3];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[4];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[5];\n };\n data: AddGuardianInstructionData;\n};\n\nexport function parseAddGuardianInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAddGuardianInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 6) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 6,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n authority: getNextAccount(),\n config: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getAddGuardianInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const CANCEL_RELEASE_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([109, 170, 172, 190, 125, 251, 1, 66]);\n\nexport function getCancelReleaseDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(CANCEL_RELEASE_DISCRIMINATOR);\n}\n\nexport type CancelReleaseInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountRegistry extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountRegistry extends string ? WritableAccount<TAccountRegistry> : TAccountRegistry,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CancelReleaseInstructionData = { discriminator: ReadonlyUint8Array };\n\nexport type CancelReleaseInstructionDataArgs = {};\n\nexport function getCancelReleaseInstructionDataEncoder(): FixedSizeEncoder<CancelReleaseInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), value => ({\n ...value,\n discriminator: CANCEL_RELEASE_DISCRIMINATOR,\n }));\n}\n\nexport function getCancelReleaseInstructionDataDecoder(): FixedSizeDecoder<CancelReleaseInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);\n}\n\nexport function getCancelReleaseInstructionDataCodec(): FixedSizeCodec<\n CancelReleaseInstructionDataArgs,\n CancelReleaseInstructionData\n> {\n return combineCodec(getCancelReleaseInstructionDataEncoder(), getCancelReleaseInstructionDataDecoder());\n}\n\nexport type CancelReleaseAsyncInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** App authority. Developers can't cancel. */\n authority: TAccountAuthority;\n /** App with the pending release to discard. */\n app: TAccountApp;\n /** Pending-release registry. The app is removed from it. */\n registry?: TAccountRegistry;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport async function getCancelReleaseInstructionAsync<\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: CancelReleaseAsyncInput<\n TAccountAuthority,\n TAccountApp,\n TAccountRegistry,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n CancelReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.registry.value) {\n accounts.registry.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([80, 69, 78, 68, 73, 78, 71, 95, 82, 69, 71, 73, 83, 84, 82, 89]),\n ),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getCancelReleaseInstructionDataEncoder().encode({}),\n programAddress,\n } as CancelReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type CancelReleaseInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** App authority. Developers can't cancel. */\n authority: TAccountAuthority;\n /** App with the pending release to discard. */\n app: TAccountApp;\n /** Pending-release registry. The app is removed from it. */\n registry: TAccountRegistry;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport function getCancelReleaseInstruction<\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: CancelReleaseInput<\n TAccountAuthority,\n TAccountApp,\n TAccountRegistry,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): CancelReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getCancelReleaseInstructionDataEncoder().encode({}),\n programAddress,\n } as CancelReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedCancelReleaseInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** App authority. Developers can't cancel. */\n authority: TAccountMetas[0];\n /** App with the pending release to discard. */\n app: TAccountMetas[1];\n /** Pending-release registry. The app is removed from it. */\n registry: TAccountMetas[2];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[3];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[4];\n };\n data: CancelReleaseInstructionData;\n};\n\nexport function parseCancelReleaseInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCancelReleaseInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 5) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 5,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n authority: getNextAccount(),\n app: getNextAccount(),\n registry: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getCancelReleaseInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const EXPIRE_RELEASE_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([174, 239, 151, 37, 202, 177, 207, 99]);\n\nexport function getExpireReleaseDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(EXPIRE_RELEASE_DISCRIMINATOR);\n}\n\nexport type ExpireReleaseInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountRegistry extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountRegistry extends string ? WritableAccount<TAccountRegistry> : TAccountRegistry,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type ExpireReleaseInstructionData = { discriminator: ReadonlyUint8Array };\n\nexport type ExpireReleaseInstructionDataArgs = {};\n\nexport function getExpireReleaseInstructionDataEncoder(): FixedSizeEncoder<ExpireReleaseInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), value => ({\n ...value,\n discriminator: EXPIRE_RELEASE_DISCRIMINATOR,\n }));\n}\n\nexport function getExpireReleaseInstructionDataDecoder(): FixedSizeDecoder<ExpireReleaseInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);\n}\n\nexport function getExpireReleaseInstructionDataCodec(): FixedSizeCodec<\n ExpireReleaseInstructionDataArgs,\n ExpireReleaseInstructionData\n> {\n return combineCodec(getExpireReleaseInstructionDataEncoder(), getExpireReleaseInstructionDataDecoder());\n}\n\nexport type ExpireReleaseAsyncInput<\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** App whose pending release is past its voting deadline. */\n app: TAccountApp;\n /** Pending-release registry. The app is removed from it. */\n registry?: TAccountRegistry;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport async function getExpireReleaseInstructionAsync<\n TAccountApp extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ExpireReleaseAsyncInput<TAccountApp, TAccountRegistry, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n ExpireReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.registry.value) {\n accounts.registry.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([80, 69, 78, 68, 73, 78, 71, 95, 82, 69, 71, 73, 83, 84, 82, 89]),\n ),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('app', accounts.app),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getExpireReleaseInstructionDataEncoder().encode({}),\n programAddress,\n } as ExpireReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ExpireReleaseInput<\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** App whose pending release is past its voting deadline. */\n app: TAccountApp;\n /** Pending-release registry. The app is removed from it. */\n registry: TAccountRegistry;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n};\n\nexport function getExpireReleaseInstruction<\n TAccountApp extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ExpireReleaseInput<TAccountApp, TAccountRegistry, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): ExpireReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('app', accounts.app),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getExpireReleaseInstructionDataEncoder().encode({}),\n programAddress,\n } as ExpireReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedExpireReleaseInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** App whose pending release is past its voting deadline. */\n app: TAccountMetas[0];\n /** Pending-release registry. The app is removed from it. */\n registry: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: ExpireReleaseInstructionData;\n};\n\nexport function parseExpireReleaseInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedExpireReleaseInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n app: getNextAccount(),\n registry: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getExpireReleaseInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const INITIALIZE_CONFIG_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([208, 127, 21, 1, 194, 190, 196, 70]);\n\nexport function getInitializeConfigDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(INITIALIZE_CONFIG_DISCRIMINATOR);\n}\n\nexport type InitializeConfigInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountSetupAuthority extends string | AccountMeta<string> = 'setup9dEwHLaDMvUwEsigW9nkXYHVenLMPzToyx3cpj',\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountRegistry extends string | AccountMeta<string> = string,\n TAccountBondMint extends string | AccountMeta<string> = string,\n TAccountBondVault extends string | AccountMeta<string> = string,\n TAccountTokenProgram extends string | AccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountSetupAuthority extends string\n ? ReadonlySignerAccount<TAccountSetupAuthority> & AccountSignerMeta<TAccountSetupAuthority>\n : TAccountSetupAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountRegistry extends string ? WritableAccount<TAccountRegistry> : TAccountRegistry,\n TAccountBondMint extends string ? ReadonlyAccount<TAccountBondMint> : TAccountBondMint,\n TAccountBondVault extends string ? WritableAccount<TAccountBondVault> : TAccountBondVault,\n TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeConfigInstructionData = {\n discriminator: ReadonlyUint8Array;\n authority: Address;\n voteWindow: number;\n votingPeriod: number;\n};\n\nexport type InitializeConfigInstructionDataArgs = {\n authority: Address | HasAddress;\n voteWindow: number;\n votingPeriod: number;\n};\n\nexport function getInitializeConfigInstructionDataEncoder(): FixedSizeEncoder<InitializeConfigInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['authority', getAddressEncoder()],\n ['voteWindow', getU32Encoder()],\n ['votingPeriod', getU32Encoder()],\n ]),\n value => ({ ...value, discriminator: INITIALIZE_CONFIG_DISCRIMINATOR }),\n );\n}\n\nexport function getInitializeConfigInstructionDataDecoder(): FixedSizeDecoder<InitializeConfigInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['authority', getAddressDecoder()],\n ['voteWindow', getU32Decoder()],\n ['votingPeriod', getU32Decoder()],\n ]);\n}\n\nexport function getInitializeConfigInstructionDataCodec(): FixedSizeCodec<\n InitializeConfigInstructionDataArgs,\n InitializeConfigInstructionData\n> {\n return combineCodec(getInitializeConfigInstructionDataEncoder(), getInitializeConfigInstructionDataDecoder());\n}\n\nexport type InitializeConfigAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountSetupAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondMint extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput = InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Pays rent for the config, the registry, and the bond vault. Must be owned by the System\n * Program.\n */\n funder: TAccountFunder;\n /** Must be `SETUP_AUTHORITY`. */\n setupAuthority?: TAccountSetupAuthority;\n /** The config, created here. */\n config?: TAccountConfig;\n /** The pending-release registry, created here. */\n registry?: TAccountRegistry;\n /** Mint for guardian bonds. Can't be changed later. */\n bondMint: TAccountBondMint;\n /** The bond vault, created here. A `bond_mint` token account owned by the config. */\n bondVault?: TAccountBondVault;\n /** Initializes the bond vault. */\n tokenProgram?: TAccountTokenProgram;\n /** Creates the accounts. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n authority: InitializeConfigInstructionDataArgs['authority'];\n voteWindow: InitializeConfigInstructionDataArgs['voteWindow'];\n votingPeriod: InitializeConfigInstructionDataArgs['votingPeriod'];\n};\n\nexport async function getInitializeConfigInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountSetupAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountBondMint extends InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: InitializeConfigAsyncInput<\n TAccountFunder,\n TAccountSetupAuthority,\n TAccountConfig,\n TAccountRegistry,\n TAccountBondMint,\n TAccountBondVault,\n TAccountTokenProgram,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n InitializeConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountSetupAuthority, InstructionAccountInputAddress<TAccountSetupAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountBondMint, InstructionAccountInputAddress<TAccountBondMint>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n setupAuthority: { value: input.setupAuthority ?? null, isSigner: 'either', isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n bondMint: { value: input.bondMint ?? null, isSigner: false, isWritable: false },\n bondVault: { value: input.bondVault ?? null, isSigner: false, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.setupAuthority.value) {\n accounts.setupAuthority.value =\n 'setup9dEwHLaDMvUwEsigW9nkXYHVenLMPzToyx3cpj' as Address<'setup9dEwHLaDMvUwEsigW9nkXYHVenLMPzToyx3cpj'>;\n }\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.registry.value) {\n accounts.registry.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([80, 69, 78, 68, 73, 78, 71, 95, 82, 69, 71, 73, 83, 84, 82, 89]),\n ),\n ],\n });\n }\n if (!accounts.bondVault.value) {\n accounts.bondVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [getBytesEncoder().encode(new Uint8Array([66, 79, 78, 68, 95, 86, 65, 85, 76, 84]))],\n });\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('setupAuthority', accounts.setupAuthority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('bondMint', accounts.bondMint),\n getAccountMeta('bondVault', accounts.bondVault),\n getAccountMeta('tokenProgram', accounts.tokenProgram),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getInitializeConfigInstructionDataEncoder().encode(args as InitializeConfigInstructionDataArgs),\n programAddress,\n } as InitializeConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountSetupAuthority, InstructionAccountInputAddress<TAccountSetupAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountBondMint, InstructionAccountInputAddress<TAccountBondMint>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type InitializeConfigInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountSetupAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondMint extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput = InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Pays rent for the config, the registry, and the bond vault. Must be owned by the System\n * Program.\n */\n funder: TAccountFunder;\n /** Must be `SETUP_AUTHORITY`. */\n setupAuthority?: TAccountSetupAuthority;\n /** The config, created here. */\n config: TAccountConfig;\n /** The pending-release registry, created here. */\n registry: TAccountRegistry;\n /** Mint for guardian bonds. Can't be changed later. */\n bondMint: TAccountBondMint;\n /** The bond vault, created here. A `bond_mint` token account owned by the config. */\n bondVault: TAccountBondVault;\n /** Initializes the bond vault. */\n tokenProgram?: TAccountTokenProgram;\n /** Creates the accounts. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n authority: InitializeConfigInstructionDataArgs['authority'];\n voteWindow: InitializeConfigInstructionDataArgs['voteWindow'];\n votingPeriod: InitializeConfigInstructionDataArgs['votingPeriod'];\n};\n\nexport function getInitializeConfigInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountSetupAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountBondMint extends InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: InitializeConfigInput<\n TAccountFunder,\n TAccountSetupAuthority,\n TAccountConfig,\n TAccountRegistry,\n TAccountBondMint,\n TAccountBondVault,\n TAccountTokenProgram,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): InitializeConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountSetupAuthority, InstructionAccountInputAddress<TAccountSetupAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountBondMint, InstructionAccountInputAddress<TAccountBondMint>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n setupAuthority: { value: input.setupAuthority ?? null, isSigner: 'either', isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n bondMint: { value: input.bondMint ?? null, isSigner: false, isWritable: false },\n bondVault: { value: input.bondVault ?? null, isSigner: false, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.setupAuthority.value) {\n accounts.setupAuthority.value =\n 'setup9dEwHLaDMvUwEsigW9nkXYHVenLMPzToyx3cpj' as Address<'setup9dEwHLaDMvUwEsigW9nkXYHVenLMPzToyx3cpj'>;\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('setupAuthority', accounts.setupAuthority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('bondMint', accounts.bondMint),\n getAccountMeta('bondVault', accounts.bondVault),\n getAccountMeta('tokenProgram', accounts.tokenProgram),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getInitializeConfigInstructionDataEncoder().encode(args as InitializeConfigInstructionDataArgs),\n programAddress,\n } as InitializeConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountSetupAuthority, InstructionAccountInputAddress<TAccountSetupAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountBondMint, InstructionAccountInputAddress<TAccountBondMint>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedInitializeConfigInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * Pays rent for the config, the registry, and the bond vault. Must be owned by the System\n * Program.\n */\n funder: TAccountMetas[0];\n /** Must be `SETUP_AUTHORITY`. */\n setupAuthority: TAccountMetas[1];\n /** The config, created here. */\n config: TAccountMetas[2];\n /** The pending-release registry, created here. */\n registry: TAccountMetas[3];\n /** Mint for guardian bonds. Can't be changed later. */\n bondMint: TAccountMetas[4];\n /** The bond vault, created here. A `bond_mint` token account owned by the config. */\n bondVault: TAccountMetas[5];\n /** Initializes the bond vault. */\n tokenProgram: TAccountMetas[6];\n /** Creates the accounts. */\n systemProgram: TAccountMetas[7];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[8];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[9];\n };\n data: InitializeConfigInstructionData;\n};\n\nexport function parseInitializeConfigInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedInitializeConfigInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 10) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 10,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n setupAuthority: getNextAccount(),\n config: getNextAccount(),\n registry: getNextAccount(),\n bondMint: getNextAccount(),\n bondVault: getNextAccount(),\n tokenProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getInitializeConfigInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const PROPOSE_APP_AUTHORITY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 147, 62, 16, 95, 39, 187, 25, 15,\n]);\n\nexport function getProposeAppAuthorityDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(PROPOSE_APP_AUTHORITY_DISCRIMINATOR);\n}\n\nexport type ProposeAppAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type ProposeAppAuthorityInstructionData = { discriminator: ReadonlyUint8Array; newAuthority: Address };\n\nexport type ProposeAppAuthorityInstructionDataArgs = { newAuthority: Address | HasAddress };\n\nexport function getProposeAppAuthorityInstructionDataEncoder(): FixedSizeEncoder<ProposeAppAuthorityInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['newAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: PROPOSE_APP_AUTHORITY_DISCRIMINATOR }),\n );\n}\n\nexport function getProposeAppAuthorityInstructionDataDecoder(): FixedSizeDecoder<ProposeAppAuthorityInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['newAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getProposeAppAuthorityInstructionDataCodec(): FixedSizeCodec<\n ProposeAppAuthorityInstructionDataArgs,\n ProposeAppAuthorityInstructionData\n> {\n return combineCodec(getProposeAppAuthorityInstructionDataEncoder(), getProposeAppAuthorityInstructionDataDecoder());\n}\n\nexport type ProposeAppAuthorityAsyncInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** App authority. */\n authority: TAccountAuthority;\n /** The app. */\n app: TAccountApp;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n newAuthority: ProposeAppAuthorityInstructionDataArgs['newAuthority'];\n};\n\nexport async function getProposeAppAuthorityInstructionAsync<\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ProposeAppAuthorityAsyncInput<TAccountAuthority, TAccountApp, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n ProposeAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getProposeAppAuthorityInstructionDataEncoder().encode(args as ProposeAppAuthorityInstructionDataArgs),\n programAddress,\n } as ProposeAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ProposeAppAuthorityInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** App authority. */\n authority: TAccountAuthority;\n /** The app. */\n app: TAccountApp;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n newAuthority: ProposeAppAuthorityInstructionDataArgs['newAuthority'];\n};\n\nexport function getProposeAppAuthorityInstruction<\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ProposeAppAuthorityInput<TAccountAuthority, TAccountApp, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): ProposeAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getProposeAppAuthorityInstructionDataEncoder().encode(args as ProposeAppAuthorityInstructionDataArgs),\n programAddress,\n } as ProposeAppAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedProposeAppAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** App authority. */\n authority: TAccountMetas[0];\n /** The app. */\n app: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: ProposeAppAuthorityInstructionData;\n};\n\nexport function parseProposeAppAuthorityInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedProposeAppAuthorityInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n authority: getNextAccount(),\n app: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getProposeAppAuthorityInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const PROPOSE_CONFIG_AUTHORITY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 31, 229, 9, 231, 45, 153, 123, 235,\n]);\n\nexport function getProposeConfigAuthorityDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(PROPOSE_CONFIG_AUTHORITY_DISCRIMINATOR);\n}\n\nexport type ProposeConfigAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type ProposeConfigAuthorityInstructionData = { discriminator: ReadonlyUint8Array; newAuthority: Address };\n\nexport type ProposeConfigAuthorityInstructionDataArgs = { newAuthority: Address | HasAddress };\n\nexport function getProposeConfigAuthorityInstructionDataEncoder(): FixedSizeEncoder<ProposeConfigAuthorityInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['newAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: PROPOSE_CONFIG_AUTHORITY_DISCRIMINATOR }),\n );\n}\n\nexport function getProposeConfigAuthorityInstructionDataDecoder(): FixedSizeDecoder<ProposeConfigAuthorityInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['newAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getProposeConfigAuthorityInstructionDataCodec(): FixedSizeCodec<\n ProposeConfigAuthorityInstructionDataArgs,\n ProposeConfigAuthorityInstructionData\n> {\n return combineCodec(\n getProposeConfigAuthorityInstructionDataEncoder(),\n getProposeConfigAuthorityInstructionDataDecoder(),\n );\n}\n\nexport type ProposeConfigAuthorityAsyncInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n newAuthority: ProposeConfigAuthorityInstructionDataArgs['newAuthority'];\n};\n\nexport async function getProposeConfigAuthorityInstructionAsync<\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ProposeConfigAuthorityAsyncInput<TAccountAuthority, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n ProposeConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getProposeConfigAuthorityInstructionDataEncoder().encode(\n args as ProposeConfigAuthorityInstructionDataArgs,\n ),\n programAddress,\n } as ProposeConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ProposeConfigAuthorityInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n newAuthority: ProposeConfigAuthorityInstructionDataArgs['newAuthority'];\n};\n\nexport function getProposeConfigAuthorityInstruction<\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ProposeConfigAuthorityInput<TAccountAuthority, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): ProposeConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getProposeConfigAuthorityInstructionDataEncoder().encode(\n args as ProposeConfigAuthorityInstructionDataArgs,\n ),\n programAddress,\n } as ProposeConfigAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedProposeConfigAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** Config authority. */\n authority: TAccountMetas[0];\n /** Global config. */\n config: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: ProposeConfigAuthorityInstructionData;\n};\n\nexport function parseProposeConfigAuthorityInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedProposeConfigAuthorityInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n authority: getNextAccount(),\n config: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getProposeConfigAuthorityInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const PROPOSE_RELEASE_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([156, 43, 186, 24, 116, 44, 17, 71]);\n\nexport function getProposeReleaseDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(PROPOSE_RELEASE_DISCRIMINATOR);\n}\n\nexport type ProposeReleaseInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountRegistry extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountConfig extends string ? ReadonlyAccount<TAccountConfig> : TAccountConfig,\n TAccountRegistry extends string ? WritableAccount<TAccountRegistry> : TAccountRegistry,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type ProposeReleaseInstructionData = {\n discriminator: ReadonlyUint8Array;\n versionCode: number;\n manifestHash: ReadonlyUint8Array;\n certificateSha256: ReadonlyUint8Array;\n};\n\nexport type ProposeReleaseInstructionDataArgs = {\n versionCode: number;\n manifestHash: ReadonlyUint8Array;\n certificateSha256: ReadonlyUint8Array;\n};\n\nexport function getProposeReleaseInstructionDataEncoder(): FixedSizeEncoder<ProposeReleaseInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['versionCode', getU32Encoder()],\n ['manifestHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['certificateSha256', fixEncoderSize(getBytesEncoder(), 32)],\n ]),\n value => ({ ...value, discriminator: PROPOSE_RELEASE_DISCRIMINATOR }),\n );\n}\n\nexport function getProposeReleaseInstructionDataDecoder(): FixedSizeDecoder<ProposeReleaseInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['versionCode', getU32Decoder()],\n ['manifestHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['certificateSha256', fixDecoderSize(getBytesDecoder(), 32)],\n ]);\n}\n\nexport function getProposeReleaseInstructionDataCodec(): FixedSizeCodec<\n ProposeReleaseInstructionDataArgs,\n ProposeReleaseInstructionData\n> {\n return combineCodec(getProposeReleaseInstructionDataEncoder(), getProposeReleaseInstructionDataDecoder());\n}\n\nexport type ProposeReleaseAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Pays rent for the release's votes, its published version, and its registry entry. Must be\n * owned by the System Program.\n */\n funder: TAccountFunder;\n /** App authority or one of its developers. */\n authority: TAccountAuthority;\n /** App with the upload to finalize. */\n app: TAccountApp;\n /** Global config. */\n config?: TAccountConfig;\n /** Pending-release registry. Finalizing adds the app. */\n registry?: TAccountRegistry;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n versionCode: ProposeReleaseInstructionDataArgs['versionCode'];\n manifestHash: ProposeReleaseInstructionDataArgs['manifestHash'];\n certificateSha256: ProposeReleaseInstructionDataArgs['certificateSha256'];\n};\n\nexport async function getProposeReleaseInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ProposeReleaseAsyncInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountApp,\n TAccountConfig,\n TAccountRegistry,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n ProposeReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n config: { value: input.config ?? null, isSigner: false, isWritable: false },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.registry.value) {\n accounts.registry.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([80, 69, 78, 68, 73, 78, 71, 95, 82, 69, 71, 73, 83, 84, 82, 89]),\n ),\n ],\n });\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('config', accounts.config),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getProposeReleaseInstructionDataEncoder().encode(args as ProposeReleaseInstructionDataArgs),\n programAddress,\n } as ProposeReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ProposeReleaseInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Pays rent for the release's votes, its published version, and its registry entry. Must be\n * owned by the System Program.\n */\n funder: TAccountFunder;\n /** App authority or one of its developers. */\n authority: TAccountAuthority;\n /** App with the upload to finalize. */\n app: TAccountApp;\n /** Global config. */\n config: TAccountConfig;\n /** Pending-release registry. Finalizing adds the app. */\n registry: TAccountRegistry;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n versionCode: ProposeReleaseInstructionDataArgs['versionCode'];\n manifestHash: ProposeReleaseInstructionDataArgs['manifestHash'];\n certificateSha256: ProposeReleaseInstructionDataArgs['certificateSha256'];\n};\n\nexport function getProposeReleaseInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: ProposeReleaseInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountApp,\n TAccountConfig,\n TAccountRegistry,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): ProposeReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n config: { value: input.config ?? null, isSigner: false, isWritable: false },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('config', accounts.config),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getProposeReleaseInstructionDataEncoder().encode(args as ProposeReleaseInstructionDataArgs),\n programAddress,\n } as ProposeReleaseInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedProposeReleaseInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * Pays rent for the release's votes, its published version, and its registry entry. Must be\n * owned by the System Program.\n */\n funder: TAccountMetas[0];\n /** App authority or one of its developers. */\n authority: TAccountMetas[1];\n /** App with the upload to finalize. */\n app: TAccountMetas[2];\n /** Global config. */\n config: TAccountMetas[3];\n /** Pending-release registry. Finalizing adds the app. */\n registry: TAccountMetas[4];\n /** For the rent transfer. */\n systemProgram: TAccountMetas[5];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[6];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[7];\n };\n data: ProposeReleaseInstructionData;\n};\n\nexport function parseProposeReleaseInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedProposeReleaseInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 8) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 8,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n authority: getNextAccount(),\n app: getNextAccount(),\n config: getNextAccount(),\n registry: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getProposeReleaseInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const REGISTER_APP_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([5, 248, 20, 126, 12, 159, 9, 242]);\n\nexport function getRegisterAppDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(REGISTER_APP_DISCRIMINATOR);\n}\n\nexport type RegisterAppInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountApp extends string\n ? WritableSignerAccount<TAccountApp> & AccountSignerMeta<TAccountApp>\n : TAccountApp,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type RegisterAppInstructionData = { discriminator: ReadonlyUint8Array; authority: Address; name: string };\n\nexport type RegisterAppInstructionDataArgs = { authority: Address | HasAddress; name: string };\n\nexport function getRegisterAppInstructionDataEncoder(): Encoder<RegisterAppInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['authority', getAddressEncoder()],\n ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n ]),\n value => ({ ...value, discriminator: REGISTER_APP_DISCRIMINATOR }),\n );\n}\n\nexport function getRegisterAppInstructionDataDecoder(): Decoder<RegisterAppInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['authority', getAddressDecoder()],\n ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n ]);\n}\n\nexport function getRegisterAppInstructionDataCodec(): Codec<\n RegisterAppInstructionDataArgs,\n RegisterAppInstructionData\n> {\n return combineCodec(getRegisterAppInstructionDataEncoder(), getRegisterAppInstructionDataDecoder());\n}\n\nexport type RegisterAppAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionSignerInput = InstructionSignerInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Pays rent for the app account. Must be owned by the System Program. */\n funder: TAccountFunder;\n /** The new app account. A fresh keypair that signs this transaction. */\n app: TAccountApp;\n /** Creates the app account. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n authority: RegisterAppInstructionDataArgs['authority'];\n name: RegisterAppInstructionDataArgs['name'];\n};\n\nexport async function getRegisterAppInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountApp extends InstructionSignerInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RegisterAppAsyncInput<\n TAccountFunder,\n TAccountApp,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n RegisterAppInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n app: { value: input.app ?? null, isSigner: true, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('app', accounts.app),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRegisterAppInstructionDataEncoder().encode(args as RegisterAppInstructionDataArgs),\n programAddress,\n } as RegisterAppInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type RegisterAppInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionSignerInput = InstructionSignerInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Pays rent for the app account. Must be owned by the System Program. */\n funder: TAccountFunder;\n /** The new app account. A fresh keypair that signs this transaction. */\n app: TAccountApp;\n /** Creates the app account. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n authority: RegisterAppInstructionDataArgs['authority'];\n name: RegisterAppInstructionDataArgs['name'];\n};\n\nexport function getRegisterAppInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountApp extends InstructionSignerInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RegisterAppInput<\n TAccountFunder,\n TAccountApp,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): RegisterAppInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n app: { value: input.app ?? null, isSigner: true, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('app', accounts.app),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRegisterAppInstructionDataEncoder().encode(args as RegisterAppInstructionDataArgs),\n programAddress,\n } as RegisterAppInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedRegisterAppInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** Pays rent for the app account. Must be owned by the System Program. */\n funder: TAccountMetas[0];\n /** The new app account. A fresh keypair that signs this transaction. */\n app: TAccountMetas[1];\n /** Creates the app account. */\n systemProgram: TAccountMetas[2];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[3];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[4];\n };\n data: RegisterAppInstructionData;\n};\n\nexport function parseRegisterAppInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedRegisterAppInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 5) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 5,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n app: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getRegisterAppInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const REGISTER_GUARDIAN_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 21, 206, 243, 116, 97, 100, 230, 59,\n]);\n\nexport function getRegisterGuardianDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(REGISTER_GUARDIAN_DISCRIMINATOR);\n}\n\nexport type RegisterGuardianInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountBondSource extends string | AccountMeta<string> = string,\n TAccountBondVault extends string | AccountMeta<string> = string,\n TAccountTokenProgram extends string | AccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountBondSource extends string ? WritableAccount<TAccountBondSource> : TAccountBondSource,\n TAccountBondVault extends string ? WritableAccount<TAccountBondVault> : TAccountBondVault,\n TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type RegisterGuardianInstructionData = { discriminator: ReadonlyUint8Array; voteAuthority: Address };\n\nexport type RegisterGuardianInstructionDataArgs = { voteAuthority: Address | HasAddress };\n\nexport function getRegisterGuardianInstructionDataEncoder(): FixedSizeEncoder<RegisterGuardianInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['voteAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: REGISTER_GUARDIAN_DISCRIMINATOR }),\n );\n}\n\nexport function getRegisterGuardianInstructionDataDecoder(): FixedSizeDecoder<RegisterGuardianInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['voteAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getRegisterGuardianInstructionDataCodec(): FixedSizeCodec<\n RegisterGuardianInstructionDataArgs,\n RegisterGuardianInstructionData\n> {\n return combineCodec(getRegisterGuardianInstructionDataEncoder(), getRegisterGuardianInstructionDataDecoder());\n}\n\nexport type RegisterGuardianAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondSource extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput = InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Pays rent for the new entry. Must be owned by the System Program. */\n funder: TAccountFunder;\n /** The guardian's authority key. */\n authority: TAccountAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /**\n * Token account the bond is paid from. `authority` must own it or be its delegate, and its\n * mint must be the bond mint.\n */\n bondSource: TAccountBondSource;\n /** Bond vault. Receives the bond. */\n bondVault?: TAccountBondVault;\n /** For the bond transfer. */\n tokenProgram?: TAccountTokenProgram;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n voteAuthority: RegisterGuardianInstructionDataArgs['voteAuthority'];\n};\n\nexport async function getRegisterGuardianInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountBondSource extends InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RegisterGuardianAsyncInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountConfig,\n TAccountBondSource,\n TAccountBondVault,\n TAccountTokenProgram,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n RegisterGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondSource, InstructionAccountInputAddress<TAccountBondSource>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n bondSource: { value: input.bondSource ?? null, isSigner: false, isWritable: true },\n bondVault: { value: input.bondVault ?? null, isSigner: false, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.bondVault.value) {\n accounts.bondVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [getBytesEncoder().encode(new Uint8Array([66, 79, 78, 68, 95, 86, 65, 85, 76, 84]))],\n });\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('bondSource', accounts.bondSource),\n getAccountMeta('bondVault', accounts.bondVault),\n getAccountMeta('tokenProgram', accounts.tokenProgram),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRegisterGuardianInstructionDataEncoder().encode(args as RegisterGuardianInstructionDataArgs),\n programAddress,\n } as RegisterGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondSource, InstructionAccountInputAddress<TAccountBondSource>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type RegisterGuardianInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondSource extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput = InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Pays rent for the new entry. Must be owned by the System Program. */\n funder: TAccountFunder;\n /** The guardian's authority key. */\n authority: TAccountAuthority;\n /** Global config. */\n config: TAccountConfig;\n /**\n * Token account the bond is paid from. `authority` must own it or be its delegate, and its\n * mint must be the bond mint.\n */\n bondSource: TAccountBondSource;\n /** Bond vault. Receives the bond. */\n bondVault: TAccountBondVault;\n /** For the bond transfer. */\n tokenProgram?: TAccountTokenProgram;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n voteAuthority: RegisterGuardianInstructionDataArgs['voteAuthority'];\n};\n\nexport function getRegisterGuardianInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountBondSource extends InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RegisterGuardianInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountConfig,\n TAccountBondSource,\n TAccountBondVault,\n TAccountTokenProgram,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): RegisterGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondSource, InstructionAccountInputAddress<TAccountBondSource>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n bondSource: { value: input.bondSource ?? null, isSigner: false, isWritable: true },\n bondVault: { value: input.bondVault ?? null, isSigner: false, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('bondSource', accounts.bondSource),\n getAccountMeta('bondVault', accounts.bondVault),\n getAccountMeta('tokenProgram', accounts.tokenProgram),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRegisterGuardianInstructionDataEncoder().encode(args as RegisterGuardianInstructionDataArgs),\n programAddress,\n } as RegisterGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondSource, InstructionAccountInputAddress<TAccountBondSource>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedRegisterGuardianInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** Pays rent for the new entry. Must be owned by the System Program. */\n funder: TAccountMetas[0];\n /** The guardian's authority key. */\n authority: TAccountMetas[1];\n /** Global config. */\n config: TAccountMetas[2];\n /**\n * Token account the bond is paid from. `authority` must own it or be its delegate, and its\n * mint must be the bond mint.\n */\n bondSource: TAccountMetas[3];\n /** Bond vault. Receives the bond. */\n bondVault: TAccountMetas[4];\n /** For the bond transfer. */\n tokenProgram: TAccountMetas[5];\n /** For the rent transfer. */\n systemProgram: TAccountMetas[6];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[7];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[8];\n };\n data: RegisterGuardianInstructionData;\n};\n\nexport function parseRegisterGuardianInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedRegisterGuardianInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 9) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 9,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n authority: getNextAccount(),\n config: getNextAccount(),\n bondSource: getNextAccount(),\n bondVault: getNextAccount(),\n tokenProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getRegisterGuardianInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const REMOVE_GUARDIAN_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([72, 117, 160, 244, 155, 185, 71, 18]);\n\nexport function getRemoveGuardianDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(REMOVE_GUARDIAN_DISCRIMINATOR);\n}\n\nexport type RemoveGuardianInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountBondVault extends string | AccountMeta<string> = string,\n TAccountDestination extends string | AccountMeta<string> = string,\n TAccountTokenProgram extends string | AccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountBondVault extends string ? WritableAccount<TAccountBondVault> : TAccountBondVault,\n TAccountDestination extends string ? WritableAccount<TAccountDestination> : TAccountDestination,\n TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type RemoveGuardianInstructionData = { discriminator: ReadonlyUint8Array; guardian: Address };\n\nexport type RemoveGuardianInstructionDataArgs = { guardian: Address | HasAddress };\n\nexport function getRemoveGuardianInstructionDataEncoder(): FixedSizeEncoder<RemoveGuardianInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['guardian', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: REMOVE_GUARDIAN_DISCRIMINATOR }),\n );\n}\n\nexport function getRemoveGuardianInstructionDataDecoder(): FixedSizeDecoder<RemoveGuardianInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['guardian', getAddressDecoder()],\n ]);\n}\n\nexport function getRemoveGuardianInstructionDataCodec(): FixedSizeCodec<\n RemoveGuardianInstructionDataArgs,\n RemoveGuardianInstructionData\n> {\n return combineCodec(getRemoveGuardianInstructionDataEncoder(), getRemoveGuardianInstructionDataDecoder());\n}\n\nexport type RemoveGuardianAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput = InstructionAccountInput,\n TAccountDestination extends InstructionAccountInput = InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Gets the config's lamports above rent exemption, including the rent this removal frees. Must\n * be owned by the System Program.\n */\n funder: TAccountFunder;\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /** Bond vault. Pays out a registered guardian's bond. */\n bondVault?: TAccountBondVault;\n /** Receives the bond. Required for a registered guardian, ignored for a pending one. */\n destination?: TAccountDestination;\n /** For the bond transfer. */\n tokenProgram?: TAccountTokenProgram;\n /** For the rent refund. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n guardian: RemoveGuardianInstructionDataArgs['guardian'];\n};\n\nexport async function getRemoveGuardianInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput,\n TAccountDestination extends InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RemoveGuardianAsyncInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountConfig,\n TAccountBondVault,\n TAccountDestination,\n TAccountTokenProgram,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n RemoveGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n bondVault: { value: input.bondVault ?? null, isSigner: false, isWritable: true },\n destination: { value: input.destination ?? null, isSigner: false, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.bondVault.value) {\n accounts.bondVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [getBytesEncoder().encode(new Uint8Array([66, 79, 78, 68, 95, 86, 65, 85, 76, 84]))],\n });\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('bondVault', accounts.bondVault),\n getAccountMeta('destination', accounts.destination),\n getAccountMeta('tokenProgram', accounts.tokenProgram),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRemoveGuardianInstructionDataEncoder().encode(args as RemoveGuardianInstructionDataArgs),\n programAddress,\n } as RemoveGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type RemoveGuardianInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput = InstructionAccountInput,\n TAccountDestination extends InstructionAccountInput = InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Gets the config's lamports above rent exemption, including the rent this removal frees. Must\n * be owned by the System Program.\n */\n funder: TAccountFunder;\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config: TAccountConfig;\n /** Bond vault. Pays out a registered guardian's bond. */\n bondVault: TAccountBondVault;\n /** Receives the bond. Required for a registered guardian, ignored for a pending one. */\n destination?: TAccountDestination;\n /** For the bond transfer. */\n tokenProgram?: TAccountTokenProgram;\n /** For the rent refund. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n guardian: RemoveGuardianInstructionDataArgs['guardian'];\n};\n\nexport function getRemoveGuardianInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountBondVault extends InstructionAccountInput,\n TAccountDestination extends InstructionAccountInput,\n TAccountTokenProgram extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RemoveGuardianInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountConfig,\n TAccountBondVault,\n TAccountDestination,\n TAccountTokenProgram,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): RemoveGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n bondVault: { value: input.bondVault ?? null, isSigner: false, isWritable: true },\n destination: { value: input.destination ?? null, isSigner: false, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('bondVault', accounts.bondVault),\n getAccountMeta('destination', accounts.destination),\n getAccountMeta('tokenProgram', accounts.tokenProgram),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRemoveGuardianInstructionDataEncoder().encode(args as RemoveGuardianInstructionDataArgs),\n programAddress,\n } as RemoveGuardianInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountBondVault, InstructionAccountInputAddress<TAccountBondVault>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>,\n ResolvedInstructionAccountMeta<TAccountTokenProgram, InstructionAccountInputAddress<TAccountTokenProgram>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedRemoveGuardianInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * Gets the config's lamports above rent exemption, including the rent this removal frees. Must\n * be owned by the System Program.\n */\n funder: TAccountMetas[0];\n /** Config authority. */\n authority: TAccountMetas[1];\n /** Global config. */\n config: TAccountMetas[2];\n /** Bond vault. Pays out a registered guardian's bond. */\n bondVault: TAccountMetas[3];\n /** Receives the bond. Required for a registered guardian, ignored for a pending one. */\n destination?: TAccountMetas[4] | undefined;\n /** For the bond transfer. */\n tokenProgram: TAccountMetas[5];\n /** For the rent refund. */\n systemProgram: TAccountMetas[6];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[7];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[8];\n };\n data: RemoveGuardianInstructionData;\n};\n\nexport function parseRemoveGuardianInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedRemoveGuardianInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 9) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 9,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n const getNextOptionalAccount = () => {\n const accountMeta = getNextAccount();\n return accountMeta.address === GUARDIAN_PROGRAM_ADDRESS ? undefined : accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n authority: getNextAccount(),\n config: getNextAccount(),\n bondVault: getNextAccount(),\n destination: getNextOptionalAccount(),\n tokenProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getRemoveGuardianInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const ROTATE_VOTE_AUTHORITY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 153, 199, 84, 126, 148, 220, 80, 34,\n]);\n\nexport function getRotateVoteAuthorityDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(ROTATE_VOTE_AUTHORITY_DISCRIMINATOR);\n}\n\nexport type RotateVoteAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountSigner extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountSigner extends string\n ? ReadonlySignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner>\n : TAccountSigner,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type RotateVoteAuthorityInstructionData = {\n discriminator: ReadonlyUint8Array;\n guardian: Address;\n newVoteAuthority: Address;\n};\n\nexport type RotateVoteAuthorityInstructionDataArgs = {\n guardian: Address | HasAddress;\n newVoteAuthority: Address | HasAddress;\n};\n\nexport function getRotateVoteAuthorityInstructionDataEncoder(): FixedSizeEncoder<RotateVoteAuthorityInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['guardian', getAddressEncoder()],\n ['newVoteAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ROTATE_VOTE_AUTHORITY_DISCRIMINATOR }),\n );\n}\n\nexport function getRotateVoteAuthorityInstructionDataDecoder(): FixedSizeDecoder<RotateVoteAuthorityInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['guardian', getAddressDecoder()],\n ['newVoteAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getRotateVoteAuthorityInstructionDataCodec(): FixedSizeCodec<\n RotateVoteAuthorityInstructionDataArgs,\n RotateVoteAuthorityInstructionData\n> {\n return combineCodec(getRotateVoteAuthorityInstructionDataEncoder(), getRotateVoteAuthorityInstructionDataDecoder());\n}\n\nexport type RotateVoteAuthorityAsyncInput<\n TAccountSigner extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** The guardian's authority key or its current vote authority. */\n signer: TAccountSigner;\n /** Global config. */\n config?: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n guardian: RotateVoteAuthorityInstructionDataArgs['guardian'];\n newVoteAuthority: RotateVoteAuthorityInstructionDataArgs['newVoteAuthority'];\n};\n\nexport async function getRotateVoteAuthorityInstructionAsync<\n TAccountSigner extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RotateVoteAuthorityAsyncInput<TAccountSigner, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n RotateVoteAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSigner, InstructionAccountInputAddress<TAccountSigner>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n signer: { value: input.signer ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('signer', accounts.signer),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRotateVoteAuthorityInstructionDataEncoder().encode(args as RotateVoteAuthorityInstructionDataArgs),\n programAddress,\n } as RotateVoteAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSigner, InstructionAccountInputAddress<TAccountSigner>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type RotateVoteAuthorityInput<\n TAccountSigner extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** The guardian's authority key or its current vote authority. */\n signer: TAccountSigner;\n /** Global config. */\n config: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n guardian: RotateVoteAuthorityInstructionDataArgs['guardian'];\n newVoteAuthority: RotateVoteAuthorityInstructionDataArgs['newVoteAuthority'];\n};\n\nexport function getRotateVoteAuthorityInstruction<\n TAccountSigner extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: RotateVoteAuthorityInput<TAccountSigner, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): RotateVoteAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSigner, InstructionAccountInputAddress<TAccountSigner>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n signer: { value: input.signer ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('signer', accounts.signer),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getRotateVoteAuthorityInstructionDataEncoder().encode(args as RotateVoteAuthorityInstructionDataArgs),\n programAddress,\n } as RotateVoteAuthorityInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSigner, InstructionAccountInputAddress<TAccountSigner>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedRotateVoteAuthorityInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** The guardian's authority key or its current vote authority. */\n signer: TAccountMetas[0];\n /** Global config. */\n config: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: RotateVoteAuthorityInstructionData;\n};\n\nexport function parseRotateVoteAuthorityInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedRotateVoteAuthorityInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n signer: getNextAccount(),\n config: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getRotateVoteAuthorityInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBooleanDecoder,\n getBooleanEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const SET_APP_DEVELOPER_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([53, 1, 26, 238, 175, 84, 152, 48]);\n\nexport function getSetAppDeveloperDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(SET_APP_DEVELOPER_DISCRIMINATOR);\n}\n\nexport type SetAppDeveloperInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type SetAppDeveloperInstructionData = {\n discriminator: ReadonlyUint8Array;\n developer: Address;\n allowed: boolean;\n};\n\nexport type SetAppDeveloperInstructionDataArgs = { developer: Address | HasAddress; allowed: boolean };\n\nexport function getSetAppDeveloperInstructionDataEncoder(): FixedSizeEncoder<SetAppDeveloperInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['developer', getAddressEncoder()],\n ['allowed', getBooleanEncoder()],\n ]),\n value => ({ ...value, discriminator: SET_APP_DEVELOPER_DISCRIMINATOR }),\n );\n}\n\nexport function getSetAppDeveloperInstructionDataDecoder(): FixedSizeDecoder<SetAppDeveloperInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['developer', getAddressDecoder()],\n ['allowed', getBooleanDecoder()],\n ]);\n}\n\nexport function getSetAppDeveloperInstructionDataCodec(): FixedSizeCodec<\n SetAppDeveloperInstructionDataArgs,\n SetAppDeveloperInstructionData\n> {\n return combineCodec(getSetAppDeveloperInstructionDataEncoder(), getSetAppDeveloperInstructionDataDecoder());\n}\n\nexport type SetAppDeveloperAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Pays rent when a key is added and gets it back when one is removed. Must be owned by the\n * System Program.\n */\n funder: TAccountFunder;\n /** App authority. */\n authority: TAccountAuthority;\n /**\n * The app. Only the rent for the changed key moves, so vote rent prepaid by `propose_release`\n * stays.\n */\n app: TAccountApp;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n developer: SetAppDeveloperInstructionDataArgs['developer'];\n allowed: SetAppDeveloperInstructionDataArgs['allowed'];\n};\n\nexport async function getSetAppDeveloperInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: SetAppDeveloperAsyncInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountApp,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n SetAppDeveloperInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getSetAppDeveloperInstructionDataEncoder().encode(args as SetAppDeveloperInstructionDataArgs),\n programAddress,\n } as SetAppDeveloperInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type SetAppDeveloperInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Pays rent when a key is added and gets it back when one is removed. Must be owned by the\n * System Program.\n */\n funder: TAccountFunder;\n /** App authority. */\n authority: TAccountAuthority;\n /**\n * The app. Only the rent for the changed key moves, so vote rent prepaid by `propose_release`\n * stays.\n */\n app: TAccountApp;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n developer: SetAppDeveloperInstructionDataArgs['developer'];\n allowed: SetAppDeveloperInstructionDataArgs['allowed'];\n};\n\nexport function getSetAppDeveloperInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: SetAppDeveloperInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountApp,\n TAccountSystemProgram,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): SetAppDeveloperInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('systemProgram', accounts.systemProgram),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getSetAppDeveloperInstructionDataEncoder().encode(args as SetAppDeveloperInstructionDataArgs),\n programAddress,\n } as SetAppDeveloperInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedSetAppDeveloperInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * Pays rent when a key is added and gets it back when one is removed. Must be owned by the\n * System Program.\n */\n funder: TAccountMetas[0];\n /** App authority. */\n authority: TAccountMetas[1];\n /**\n * The app. Only the rent for the changed key moves, so vote rent prepaid by `propose_release`\n * stays.\n */\n app: TAccountMetas[2];\n /** For the rent transfer. */\n systemProgram: TAccountMetas[3];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[4];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[5];\n };\n data: SetAppDeveloperInstructionData;\n};\n\nexport function parseSetAppDeveloperInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedSetAppDeveloperInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 6) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 6,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n authority: getNextAccount(),\n app: getNextAccount(),\n systemProgram: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getSetAppDeveloperInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getOptionDecoder,\n getOptionEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type Option,\n type OptionOrNullable,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const UPDATE_CONFIG_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([29, 158, 252, 191, 10, 83, 219, 99]);\n\nexport function getUpdateConfigDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(UPDATE_CONFIG_DISCRIMINATOR);\n}\n\nexport type UpdateConfigInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountConfig extends string ? WritableAccount<TAccountConfig> : TAccountConfig,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type UpdateConfigInstructionData = {\n discriminator: ReadonlyUint8Array;\n bondAmount: Option<bigint>;\n policyBundleHash: Option<ReadonlyUint8Array>;\n voteWindow: Option<number>;\n votingPeriod: Option<number>;\n};\n\nexport type UpdateConfigInstructionDataArgs = {\n bondAmount: OptionOrNullable<number | bigint>;\n policyBundleHash: OptionOrNullable<ReadonlyUint8Array>;\n voteWindow: OptionOrNullable<number>;\n votingPeriod: OptionOrNullable<number>;\n};\n\nexport function getUpdateConfigInstructionDataEncoder(): Encoder<UpdateConfigInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['bondAmount', getOptionEncoder(getU64Encoder())],\n ['policyBundleHash', getOptionEncoder(fixEncoderSize(getBytesEncoder(), 32))],\n ['voteWindow', getOptionEncoder(getU32Encoder())],\n ['votingPeriod', getOptionEncoder(getU32Encoder())],\n ]),\n value => ({ ...value, discriminator: UPDATE_CONFIG_DISCRIMINATOR }),\n );\n}\n\nexport function getUpdateConfigInstructionDataDecoder(): Decoder<UpdateConfigInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['bondAmount', getOptionDecoder(getU64Decoder())],\n ['policyBundleHash', getOptionDecoder(fixDecoderSize(getBytesDecoder(), 32))],\n ['voteWindow', getOptionDecoder(getU32Decoder())],\n ['votingPeriod', getOptionDecoder(getU32Decoder())],\n ]);\n}\n\nexport function getUpdateConfigInstructionDataCodec(): Codec<\n UpdateConfigInstructionDataArgs,\n UpdateConfigInstructionData\n> {\n return combineCodec(getUpdateConfigInstructionDataEncoder(), getUpdateConfigInstructionDataDecoder());\n}\n\nexport type UpdateConfigAsyncInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n bondAmount: UpdateConfigInstructionDataArgs['bondAmount'];\n policyBundleHash: UpdateConfigInstructionDataArgs['policyBundleHash'];\n voteWindow: UpdateConfigInstructionDataArgs['voteWindow'];\n votingPeriod: UpdateConfigInstructionDataArgs['votingPeriod'];\n};\n\nexport async function getUpdateConfigInstructionAsync<\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: UpdateConfigAsyncInput<TAccountAuthority, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n UpdateConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getUpdateConfigInstructionDataEncoder().encode(args as UpdateConfigInstructionDataArgs),\n programAddress,\n } as UpdateConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type UpdateConfigInput<\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /** Config authority. */\n authority: TAccountAuthority;\n /** Global config. */\n config: TAccountConfig;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n bondAmount: UpdateConfigInstructionDataArgs['bondAmount'];\n policyBundleHash: UpdateConfigInstructionDataArgs['policyBundleHash'];\n voteWindow: UpdateConfigInstructionDataArgs['voteWindow'];\n votingPeriod: UpdateConfigInstructionDataArgs['votingPeriod'];\n};\n\nexport function getUpdateConfigInstruction<\n TAccountAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: UpdateConfigInput<TAccountAuthority, TAccountConfig, TAccountEventAuthority, TAccountProgram>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): UpdateConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getUpdateConfigInstructionDataEncoder().encode(args as UpdateConfigInstructionDataArgs),\n programAddress,\n } as UpdateConfigInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedUpdateConfigInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /** Config authority. */\n authority: TAccountMetas[0];\n /** Global config. */\n config: TAccountMetas[1];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[2];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[3];\n };\n data: UpdateConfigInstructionData;\n};\n\nexport function parseUpdateConfigInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedUpdateConfigInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 4) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 4,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n authority: getNextAccount(),\n config: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getUpdateConfigInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getArrayDecoder,\n getArrayEncoder,\n getBooleanDecoder,\n getBooleanEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\nimport { getVoteFindingDecoder, getVoteFindingEncoder, type VoteFinding, type VoteFindingArgs } from '../types';\n\nexport const VOTE_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([227, 110, 155, 23, 136, 126, 172, 25]);\n\nexport function getVoteDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(VOTE_DISCRIMINATOR);\n}\n\nexport type VoteInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountVoteAuthority extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountRegistry extends string | AccountMeta<string> = string,\n TAccountEventAuthority extends string | AccountMeta<string> = string,\n TAccountProgram extends string | AccountMeta<string> = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountVoteAuthority extends string\n ? ReadonlySignerAccount<TAccountVoteAuthority> & AccountSignerMeta<TAccountVoteAuthority>\n : TAccountVoteAuthority,\n TAccountConfig extends string ? ReadonlyAccount<TAccountConfig> : TAccountConfig,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountRegistry extends string ? WritableAccount<TAccountRegistry> : TAccountRegistry,\n TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,\n TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type VoteInstructionData = {\n discriminator: ReadonlyUint8Array;\n approve: boolean;\n versionCode: number;\n manifestHash: ReadonlyUint8Array;\n policyBundleHash: ReadonlyUint8Array;\n findings: Array<VoteFinding>;\n};\n\nexport type VoteInstructionDataArgs = {\n approve: boolean;\n versionCode: number;\n manifestHash: ReadonlyUint8Array;\n policyBundleHash: ReadonlyUint8Array;\n findings: Array<VoteFindingArgs>;\n};\n\nexport function getVoteInstructionDataEncoder(): Encoder<VoteInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['approve', getBooleanEncoder()],\n ['versionCode', getU32Encoder()],\n ['manifestHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['policyBundleHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['findings', getArrayEncoder(getVoteFindingEncoder())],\n ]),\n value => ({ ...value, discriminator: VOTE_DISCRIMINATOR }),\n );\n}\n\nexport function getVoteInstructionDataDecoder(): Decoder<VoteInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['approve', getBooleanDecoder()],\n ['versionCode', getU32Decoder()],\n ['manifestHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['policyBundleHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['findings', getArrayDecoder(getVoteFindingDecoder())],\n ]);\n}\n\nexport function getVoteInstructionDataCodec(): Codec<VoteInstructionDataArgs, VoteInstructionData> {\n return combineCodec(getVoteInstructionDataEncoder(), getVoteInstructionDataDecoder());\n}\n\nexport type VoteAsyncInput<\n TAccountVoteAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * A registered guardian's vote authority. No rent payer is needed, since `propose_release`\n * prepays the votes.\n */\n voteAuthority: TAccountVoteAuthority;\n /** Global config. */\n config?: TAccountConfig;\n /** App with the release being voted on. */\n app: TAccountApp;\n /** Pending-release registry. The app is removed when its release resolves. */\n registry?: TAccountRegistry;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority?: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n approve: VoteInstructionDataArgs['approve'];\n versionCode: VoteInstructionDataArgs['versionCode'];\n manifestHash: VoteInstructionDataArgs['manifestHash'];\n policyBundleHash: VoteInstructionDataArgs['policyBundleHash'];\n findings: VoteInstructionDataArgs['findings'];\n};\n\nexport async function getVoteInstructionAsync<\n TAccountVoteAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountApp extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: VoteAsyncInput<\n TAccountVoteAuthority,\n TAccountConfig,\n TAccountApp,\n TAccountRegistry,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n VoteInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountVoteAuthority, InstructionAccountInputAddress<TAccountVoteAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n voteAuthority: { value: input.voteAuthority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.registry.value) {\n accounts.registry.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([80, 69, 78, 68, 73, 78, 71, 95, 82, 69, 71, 73, 83, 84, 82, 89]),\n ),\n ],\n });\n }\n if (!accounts.eventAuthority.value) {\n accounts.eventAuthority.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]),\n ),\n ],\n });\n }\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('voteAuthority', accounts.voteAuthority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('app', accounts.app),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getVoteInstructionDataEncoder().encode(args as VoteInstructionDataArgs),\n programAddress,\n } as VoteInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountVoteAuthority, InstructionAccountInputAddress<TAccountVoteAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type VoteInput<\n TAccountVoteAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput = InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput = InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * A registered guardian's vote authority. No rent payer is needed, since `propose_release`\n * prepays the votes.\n */\n voteAuthority: TAccountVoteAuthority;\n /** Global config. */\n config: TAccountConfig;\n /** App with the release being voted on. */\n app: TAccountApp;\n /** Pending-release registry. The app is removed when its release resolves. */\n registry: TAccountRegistry;\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountEventAuthority;\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program?: TAccountProgram;\n approve: VoteInstructionDataArgs['approve'];\n versionCode: VoteInstructionDataArgs['versionCode'];\n manifestHash: VoteInstructionDataArgs['manifestHash'];\n policyBundleHash: VoteInstructionDataArgs['policyBundleHash'];\n findings: VoteInstructionDataArgs['findings'];\n};\n\nexport function getVoteInstruction<\n TAccountVoteAuthority extends InstructionSignerInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountApp extends InstructionAccountInput,\n TAccountRegistry extends InstructionAccountInput,\n TAccountEventAuthority extends InstructionAccountInput,\n TAccountProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: VoteInput<\n TAccountVoteAuthority,\n TAccountConfig,\n TAccountApp,\n TAccountRegistry,\n TAccountEventAuthority,\n TAccountProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): VoteInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountVoteAuthority, InstructionAccountInputAddress<TAccountVoteAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n voteAuthority: { value: input.voteAuthority ?? null, isSigner: true, isWritable: false },\n config: { value: input.config ?? null, isSigner: false, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n registry: { value: input.registry ?? null, isSigner: false, isWritable: true },\n eventAuthority: { value: input.eventAuthority ?? null, isSigner: false, isWritable: false },\n program: { value: input.program ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.program.value) {\n accounts.program.value = programAddress;\n accounts.program.isWritable = false;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('voteAuthority', accounts.voteAuthority),\n getAccountMeta('config', accounts.config),\n getAccountMeta('app', accounts.app),\n getAccountMeta('registry', accounts.registry),\n getAccountMeta('eventAuthority', accounts.eventAuthority),\n getAccountMeta('program', accounts.program),\n ],\n data: getVoteInstructionDataEncoder().encode(args as VoteInstructionDataArgs),\n programAddress,\n } as VoteInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountVoteAuthority, InstructionAccountInputAddress<TAccountVoteAuthority>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountRegistry, InstructionAccountInputAddress<TAccountRegistry>>,\n ResolvedInstructionAccountMeta<TAccountEventAuthority, InstructionAccountInputAddress<TAccountEventAuthority>>,\n ResolvedInstructionAccountMeta<TAccountProgram, InstructionAccountInputAddress<TAccountProgram>>\n >);\n}\n\nexport type ParsedVoteInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * A registered guardian's vote authority. No rent payer is needed, since `propose_release`\n * prepays the votes.\n */\n voteAuthority: TAccountMetas[0];\n /** Global config. */\n config: TAccountMetas[1];\n /** App with the release being voted on. */\n app: TAccountMetas[2];\n /** Pending-release registry. The app is removed when its release resolves. */\n registry: TAccountMetas[3];\n /** CHECK: Only the event authority can invoke self-CPI */\n eventAuthority: TAccountMetas[4];\n /** CHECK: Kept for v1-compatible account ordering and IDL shape */\n program: TAccountMetas[5];\n };\n data: VoteInstructionData;\n};\n\nexport function parseVoteInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedVoteInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 6) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 6,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n voteAuthority: getNextAccount(),\n config: getNextAccount(),\n app: getNextAccount(),\n registry: getNextAccount(),\n eventAuthority: getNextAccount(),\n program: getNextAccount(),\n },\n data: getVoteInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/program-client-core';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\nexport const WRITE_RELEASE_MANIFEST_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 98, 30, 102, 216, 54, 58, 138, 114,\n]);\n\nexport function getWriteReleaseManifestDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(WRITE_RELEASE_MANIFEST_DISCRIMINATOR);\n}\n\nexport type WriteReleaseManifestInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountFunder extends string | AccountMeta<string> = string,\n TAccountAuthority extends string | AccountMeta<string> = string,\n TAccountApp extends string | AccountMeta<string> = string,\n TAccountConfig extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountFunder extends string\n ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder>\n : TAccountFunder,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountApp extends string ? WritableAccount<TAccountApp> : TAccountApp,\n TAccountConfig extends string ? ReadonlyAccount<TAccountConfig> : TAccountConfig,\n TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type WriteReleaseManifestInstructionData = {\n discriminator: ReadonlyUint8Array;\n versionCode: number;\n manifestLen: number;\n offset: number;\n bytes: ReadonlyUint8Array;\n};\n\nexport type WriteReleaseManifestInstructionDataArgs = {\n versionCode: number;\n manifestLen: number;\n offset: number;\n bytes: ReadonlyUint8Array;\n};\n\nexport function getWriteReleaseManifestInstructionDataEncoder(): Encoder<WriteReleaseManifestInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['versionCode', getU32Encoder()],\n ['manifestLen', getU32Encoder()],\n ['offset', getU32Encoder()],\n ['bytes', addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())],\n ]),\n value => ({ ...value, discriminator: WRITE_RELEASE_MANIFEST_DISCRIMINATOR }),\n );\n}\n\nexport function getWriteReleaseManifestInstructionDataDecoder(): Decoder<WriteReleaseManifestInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['versionCode', getU32Decoder()],\n ['manifestLen', getU32Decoder()],\n ['offset', getU32Decoder()],\n ['bytes', addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],\n ]);\n}\n\nexport function getWriteReleaseManifestInstructionDataCodec(): Codec<\n WriteReleaseManifestInstructionDataArgs,\n WriteReleaseManifestInstructionData\n> {\n return combineCodec(\n getWriteReleaseManifestInstructionDataEncoder(),\n getWriteReleaseManifestInstructionDataDecoder(),\n );\n}\n\nexport type WriteReleaseManifestAsyncInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Tops up the app's rent for the manifest buffer on the write that starts a release. Must be\n * owned by the System Program.\n */\n funder: TAccountFunder;\n /** App authority or one of its developers. */\n authority: TAccountAuthority;\n /** The app. Grows by the manifest buffer on the write that starts a release. */\n app: TAccountApp;\n /** Global config. */\n config?: TAccountConfig;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n versionCode: WriteReleaseManifestInstructionDataArgs['versionCode'];\n manifestLen: WriteReleaseManifestInstructionDataArgs['manifestLen'];\n offset: WriteReleaseManifestInstructionDataArgs['offset'];\n bytes: WriteReleaseManifestInstructionDataArgs['bytes'];\n};\n\nexport async function getWriteReleaseManifestInstructionAsync<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: WriteReleaseManifestAsyncInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountApp,\n TAccountConfig,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): Promise<\n WriteReleaseManifestInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>\n >\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n config: { value: input.config ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.config.value) {\n accounts.config.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([71, 85, 65, 82, 68, 73, 65, 78, 95, 67, 79, 78, 70, 73, 71])),\n ],\n });\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('config', accounts.config),\n getAccountMeta('systemProgram', accounts.systemProgram),\n ],\n data: getWriteReleaseManifestInstructionDataEncoder().encode(args as WriteReleaseManifestInstructionDataArgs),\n programAddress,\n } as WriteReleaseManifestInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>\n >);\n}\n\nexport type WriteReleaseManifestInput<\n TAccountFunder extends InstructionSignerInput = InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput = InstructionSignerInput,\n TAccountApp extends InstructionAccountInput = InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput = InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput = InstructionAccountInput,\n> = {\n /**\n * Tops up the app's rent for the manifest buffer on the write that starts a release. Must be\n * owned by the System Program.\n */\n funder: TAccountFunder;\n /** App authority or one of its developers. */\n authority: TAccountAuthority;\n /** The app. Grows by the manifest buffer on the write that starts a release. */\n app: TAccountApp;\n /** Global config. */\n config: TAccountConfig;\n /** For the rent transfer. */\n systemProgram?: TAccountSystemProgram;\n versionCode: WriteReleaseManifestInstructionDataArgs['versionCode'];\n manifestLen: WriteReleaseManifestInstructionDataArgs['manifestLen'];\n offset: WriteReleaseManifestInstructionDataArgs['offset'];\n bytes: WriteReleaseManifestInstructionDataArgs['bytes'];\n};\n\nexport function getWriteReleaseManifestInstruction<\n TAccountFunder extends InstructionSignerInput,\n TAccountAuthority extends InstructionSignerInput,\n TAccountApp extends InstructionAccountInput,\n TAccountConfig extends InstructionAccountInput,\n TAccountSystemProgram extends InstructionAccountInput,\n TProgramAddress extends Address = typeof GUARDIAN_PROGRAM_ADDRESS,\n>(\n input: WriteReleaseManifestInput<\n TAccountFunder,\n TAccountAuthority,\n TAccountApp,\n TAccountConfig,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): WriteReleaseManifestInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n\n // Original accounts.\n const originalAccounts = {\n funder: { value: input.funder ?? null, isSigner: true, isWritable: true },\n authority: { value: input.authority ?? null, isSigner: true, isWritable: false },\n app: { value: input.app ?? null, isSigner: false, isWritable: true },\n config: { value: input.config ?? null, isSigner: false, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('funder', accounts.funder),\n getAccountMeta('authority', accounts.authority),\n getAccountMeta('app', accounts.app),\n getAccountMeta('config', accounts.config),\n getAccountMeta('systemProgram', accounts.systemProgram),\n ],\n data: getWriteReleaseManifestInstructionDataEncoder().encode(args as WriteReleaseManifestInstructionDataArgs),\n programAddress,\n } as WriteReleaseManifestInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountFunder, InstructionAccountInputAddress<TAccountFunder>>,\n ResolvedInstructionAccountMeta<TAccountAuthority, InstructionAccountInputAddress<TAccountAuthority>>,\n ResolvedInstructionAccountMeta<TAccountApp, InstructionAccountInputAddress<TAccountApp>>,\n ResolvedInstructionAccountMeta<TAccountConfig, InstructionAccountInputAddress<TAccountConfig>>,\n ResolvedInstructionAccountMeta<TAccountSystemProgram, InstructionAccountInputAddress<TAccountSystemProgram>>\n >);\n}\n\nexport type ParsedWriteReleaseManifestInstruction<\n TProgram extends string = typeof GUARDIAN_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * Tops up the app's rent for the manifest buffer on the write that starts a release. Must be\n * owned by the System Program.\n */\n funder: TAccountMetas[0];\n /** App authority or one of its developers. */\n authority: TAccountMetas[1];\n /** The app. Grows by the manifest buffer on the write that starts a release. */\n app: TAccountMetas[2];\n /** Global config. */\n config: TAccountMetas[3];\n /** For the rent transfer. */\n systemProgram: TAccountMetas[4];\n };\n data: WriteReleaseManifestInstructionData;\n};\n\nexport function parseWriteReleaseManifestInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedWriteReleaseManifestInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 5) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 5,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n funder: getNextAccount(),\n authority: getNextAccount(),\n app: getNextAccount(),\n config: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getWriteReleaseManifestInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n getProgramDerivedAddress,\n getUtf8Encoder,\n type Address,\n type HasAddress,\n type ProgramDerivedAddress,\n} from '@solana/kit';\n\nexport async function findBondVaultPda(\n config: { programAddress?: Address | HasAddress | undefined } = {},\n): Promise<ProgramDerivedAddress> {\n const {\n programAddress:\n programAddressInput = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD' as Address<'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD'>,\n } = config;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n return await getProgramDerivedAddress({ programAddress, seeds: [getUtf8Encoder().encode('BOND_VAULT')] });\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n getProgramDerivedAddress,\n getUtf8Encoder,\n type Address,\n type HasAddress,\n type ProgramDerivedAddress,\n} from '@solana/kit';\n\nexport async function findGuardiansConfigPda(\n config: { programAddress?: Address | HasAddress | undefined } = {},\n): Promise<ProgramDerivedAddress> {\n const {\n programAddress:\n programAddressInput = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD' as Address<'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD'>,\n } = config;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n return await getProgramDerivedAddress({ programAddress, seeds: [getUtf8Encoder().encode('GUARDIAN_CONFIG')] });\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n getProgramDerivedAddress,\n getUtf8Encoder,\n type Address,\n type HasAddress,\n type ProgramDerivedAddress,\n} from '@solana/kit';\n\nexport async function findPendingRegistryPda(\n config: { programAddress?: Address | HasAddress | undefined } = {},\n): Promise<ProgramDerivedAddress> {\n const {\n programAddress:\n programAddressInput = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD' as Address<'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD'>,\n } = config;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n return await getProgramDerivedAddress({ programAddress, seeds: [getUtf8Encoder().encode('PENDING_REGISTRY')] });\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertIsInstructionWithAccounts,\n containsBytes,\n extendClient,\n fixEncoderSize,\n getBytesEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT,\n SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION,\n SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE,\n SolanaError,\n type Address,\n type ClientWithRpc,\n type ClientWithTransactionPlanning,\n type ClientWithTransactionSending,\n type ExtendedClient,\n type GetAccountInfoApi,\n type GetMultipleAccountsApi,\n type HasAddress,\n type Instruction,\n type InstructionWithData,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n addSelfFetchFunctions,\n addSelfPlanAndSendFunctions,\n type SelfFetchFunctions,\n type SelfPlanAndSendFunctions,\n} from '@solana/program-client-core';\nimport {\n getAppAccountCodec,\n getGuardiansConfigCodec,\n getPendingRegistryCodec,\n type AppAccount,\n type AppAccountArgs,\n type GuardiansConfig,\n type GuardiansConfigArgs,\n type PendingRegistry,\n type PendingRegistryArgs,\n} from '../accounts';\nimport {\n getAcceptAppAuthorityInstructionAsync,\n getAcceptConfigAuthorityInstructionAsync,\n getAddGuardianInstructionAsync,\n getCancelReleaseInstructionAsync,\n getExpireReleaseInstructionAsync,\n getInitializeConfigInstructionAsync,\n getProposeAppAuthorityInstructionAsync,\n getProposeConfigAuthorityInstructionAsync,\n getProposeReleaseInstructionAsync,\n getRegisterAppInstructionAsync,\n getRegisterGuardianInstructionAsync,\n getRemoveGuardianInstructionAsync,\n getRotateVoteAuthorityInstructionAsync,\n getSetAppDeveloperInstructionAsync,\n getUpdateConfigInstructionAsync,\n getVoteInstructionAsync,\n getWriteReleaseManifestInstructionAsync,\n parseAcceptAppAuthorityInstruction,\n parseAcceptConfigAuthorityInstruction,\n parseAddGuardianInstruction,\n parseCancelReleaseInstruction,\n parseExpireReleaseInstruction,\n parseInitializeConfigInstruction,\n parseProposeAppAuthorityInstruction,\n parseProposeConfigAuthorityInstruction,\n parseProposeReleaseInstruction,\n parseRegisterAppInstruction,\n parseRegisterGuardianInstruction,\n parseRemoveGuardianInstruction,\n parseRotateVoteAuthorityInstruction,\n parseSetAppDeveloperInstruction,\n parseUpdateConfigInstruction,\n parseVoteInstruction,\n parseWriteReleaseManifestInstruction,\n type AcceptAppAuthorityAsyncInput,\n type AcceptConfigAuthorityAsyncInput,\n type AddGuardianAsyncInput,\n type CancelReleaseAsyncInput,\n type ExpireReleaseAsyncInput,\n type InitializeConfigAsyncInput,\n type ParsedAcceptAppAuthorityInstruction,\n type ParsedAcceptConfigAuthorityInstruction,\n type ParsedAddGuardianInstruction,\n type ParsedCancelReleaseInstruction,\n type ParsedExpireReleaseInstruction,\n type ParsedInitializeConfigInstruction,\n type ParsedProposeAppAuthorityInstruction,\n type ParsedProposeConfigAuthorityInstruction,\n type ParsedProposeReleaseInstruction,\n type ParsedRegisterAppInstruction,\n type ParsedRegisterGuardianInstruction,\n type ParsedRemoveGuardianInstruction,\n type ParsedRotateVoteAuthorityInstruction,\n type ParsedSetAppDeveloperInstruction,\n type ParsedUpdateConfigInstruction,\n type ParsedVoteInstruction,\n type ParsedWriteReleaseManifestInstruction,\n type ProposeAppAuthorityAsyncInput,\n type ProposeConfigAuthorityAsyncInput,\n type ProposeReleaseAsyncInput,\n type RegisterAppAsyncInput,\n type RegisterGuardianAsyncInput,\n type RemoveGuardianAsyncInput,\n type RotateVoteAuthorityAsyncInput,\n type SetAppDeveloperAsyncInput,\n type UpdateConfigAsyncInput,\n type VoteAsyncInput,\n type WriteReleaseManifestAsyncInput,\n} from '../instructions';\nimport { findBondVaultPda, findGuardiansConfigPda, findPendingRegistryPda } from '../pdas';\n\nexport const GUARDIAN_PROGRAM_ADDRESS =\n 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD' as Address<'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD'>;\n\nexport enum GuardianAccount {\n AppAccount,\n GuardiansConfig,\n PendingRegistry,\n}\n\nexport function identifyGuardianAccount(account: { data: ReadonlyUint8Array } | ReadonlyUint8Array): GuardianAccount {\n const data = 'data' in account ? account.data : account;\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([189, 192, 243, 151, 141, 78, 227, 17])),\n 0,\n )\n ) {\n return GuardianAccount.AppAccount;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([96, 9, 56, 96, 215, 120, 26, 206])),\n 0,\n )\n ) {\n return GuardianAccount.GuardiansConfig;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([190, 252, 14, 196, 56, 47, 120, 61])),\n 0,\n )\n ) {\n return GuardianAccount.PendingRegistry;\n }\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, {\n accountData: data,\n programName: 'guardian',\n });\n}\n\nexport enum GuardianEvent {\n AppAuthorityAccepted,\n AppAuthorityProposed,\n AppDeveloperUpdated,\n AppRegistered,\n ConfigAuthorityAccepted,\n ConfigAuthorityProposed,\n ConfigInitialized,\n ConfigUpdated,\n GuardianAdded,\n GuardianRegistered,\n GuardianRemoved,\n GuardianVoteAuthorityRotated,\n ReleaseApproved,\n ReleaseCancelled,\n ReleaseExpired,\n ReleaseProposed,\n ReleaseRejected,\n VoteCast,\n}\n\nexport function identifyGuardianEvent(event: { data: ReadonlyUint8Array } | ReadonlyUint8Array): GuardianEvent {\n const data = 'data' in event ? event.data : event;\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([216, 100, 38, 168, 184, 157, 141, 247])),\n 0,\n )\n ) {\n return GuardianEvent.AppAuthorityAccepted;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([17, 143, 174, 4, 147, 110, 126, 84])),\n 0,\n )\n ) {\n return GuardianEvent.AppAuthorityProposed;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([132, 135, 205, 60, 48, 208, 44, 171])),\n 0,\n )\n ) {\n return GuardianEvent.AppDeveloperUpdated;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([99, 12, 19, 34, 85, 60, 170, 229])),\n 0,\n )\n ) {\n return GuardianEvent.AppRegistered;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([166, 249, 198, 239, 64, 193, 191, 242])),\n 0,\n )\n ) {\n return GuardianEvent.ConfigAuthorityAccepted;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([125, 29, 33, 186, 153, 16, 155, 229])),\n 0,\n )\n ) {\n return GuardianEvent.ConfigAuthorityProposed;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([181, 49, 200, 156, 19, 167, 178, 91])),\n 0,\n )\n ) {\n return GuardianEvent.ConfigInitialized;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([40, 241, 230, 122, 11, 19, 198, 194])),\n 0,\n )\n ) {\n return GuardianEvent.ConfigUpdated;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([151, 0, 228, 5, 239, 58, 162, 18])),\n 0,\n )\n ) {\n return GuardianEvent.GuardianAdded;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([255, 23, 109, 119, 11, 122, 209, 103])),\n 0,\n )\n ) {\n return GuardianEvent.GuardianRegistered;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([225, 27, 117, 56, 241, 196, 5, 56])),\n 0,\n )\n ) {\n return GuardianEvent.GuardianRemoved;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([182, 81, 245, 184, 174, 85, 224, 213])),\n 0,\n )\n ) {\n return GuardianEvent.GuardianVoteAuthorityRotated;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([246, 7, 17, 99, 160, 10, 151, 253])),\n 0,\n )\n ) {\n return GuardianEvent.ReleaseApproved;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([107, 100, 38, 206, 48, 27, 92, 178])),\n 0,\n )\n ) {\n return GuardianEvent.ReleaseCancelled;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([185, 185, 92, 34, 95, 198, 124, 51])),\n 0,\n )\n ) {\n return GuardianEvent.ReleaseExpired;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([245, 225, 27, 20, 64, 160, 146, 183])),\n 0,\n )\n ) {\n return GuardianEvent.ReleaseProposed;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([144, 93, 149, 105, 200, 85, 92, 126])),\n 0,\n )\n ) {\n return GuardianEvent.ReleaseRejected;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([39, 53, 195, 104, 188, 17, 225, 213])),\n 0,\n )\n ) {\n return GuardianEvent.VoteCast;\n }\n throw new Error('The provided event could not be identified as a guardian event.');\n}\n\nexport enum GuardianInstruction {\n AcceptAppAuthority,\n AcceptConfigAuthority,\n AddGuardian,\n CancelRelease,\n ExpireRelease,\n InitializeConfig,\n ProposeAppAuthority,\n ProposeConfigAuthority,\n ProposeRelease,\n RegisterApp,\n RegisterGuardian,\n RemoveGuardian,\n RotateVoteAuthority,\n SetAppDeveloper,\n UpdateConfig,\n Vote,\n WriteReleaseManifest,\n}\n\nexport function identifyGuardianInstruction(\n instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array,\n): GuardianInstruction {\n const data = 'data' in instruction ? instruction.data : instruction;\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([227, 109, 248, 178, 27, 2, 126, 21])),\n 0,\n )\n ) {\n return GuardianInstruction.AcceptAppAuthority;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([138, 34, 130, 16, 252, 207, 24, 90])),\n 0,\n )\n ) {\n return GuardianInstruction.AcceptConfigAuthority;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([167, 189, 170, 27, 74, 240, 201, 241])),\n 0,\n )\n ) {\n return GuardianInstruction.AddGuardian;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([109, 170, 172, 190, 125, 251, 1, 66])),\n 0,\n )\n ) {\n return GuardianInstruction.CancelRelease;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([174, 239, 151, 37, 202, 177, 207, 99])),\n 0,\n )\n ) {\n return GuardianInstruction.ExpireRelease;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([208, 127, 21, 1, 194, 190, 196, 70])),\n 0,\n )\n ) {\n return GuardianInstruction.InitializeConfig;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([147, 62, 16, 95, 39, 187, 25, 15])),\n 0,\n )\n ) {\n return GuardianInstruction.ProposeAppAuthority;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([31, 229, 9, 231, 45, 153, 123, 235])),\n 0,\n )\n ) {\n return GuardianInstruction.ProposeConfigAuthority;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([156, 43, 186, 24, 116, 44, 17, 71])),\n 0,\n )\n ) {\n return GuardianInstruction.ProposeRelease;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([5, 248, 20, 126, 12, 159, 9, 242])),\n 0,\n )\n ) {\n return GuardianInstruction.RegisterApp;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([21, 206, 243, 116, 97, 100, 230, 59])),\n 0,\n )\n ) {\n return GuardianInstruction.RegisterGuardian;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([72, 117, 160, 244, 155, 185, 71, 18])),\n 0,\n )\n ) {\n return GuardianInstruction.RemoveGuardian;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([153, 199, 84, 126, 148, 220, 80, 34])),\n 0,\n )\n ) {\n return GuardianInstruction.RotateVoteAuthority;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([53, 1, 26, 238, 175, 84, 152, 48])),\n 0,\n )\n ) {\n return GuardianInstruction.SetAppDeveloper;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([29, 158, 252, 191, 10, 83, 219, 99])),\n 0,\n )\n ) {\n return GuardianInstruction.UpdateConfig;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([227, 110, 155, 23, 136, 126, 172, 25])),\n 0,\n )\n ) {\n return GuardianInstruction.Vote;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([98, 30, 102, 216, 54, 58, 138, 114])),\n 0,\n )\n ) {\n return GuardianInstruction.WriteReleaseManifest;\n }\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, {\n instructionData: data,\n programName: 'guardian',\n });\n}\n\nexport type ParsedGuardianInstruction<TProgram extends string = 'GUARDsVUfAaydbPU6QGcpWRLUkExaULtaygwEtkdhZAD'> =\n | ({ instructionType: GuardianInstruction.AcceptAppAuthority } & ParsedAcceptAppAuthorityInstruction<TProgram>)\n | ({\n instructionType: GuardianInstruction.AcceptConfigAuthority;\n } & ParsedAcceptConfigAuthorityInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.AddGuardian } & ParsedAddGuardianInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.CancelRelease } & ParsedCancelReleaseInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.ExpireRelease } & ParsedExpireReleaseInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.InitializeConfig } & ParsedInitializeConfigInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.ProposeAppAuthority } & ParsedProposeAppAuthorityInstruction<TProgram>)\n | ({\n instructionType: GuardianInstruction.ProposeConfigAuthority;\n } & ParsedProposeConfigAuthorityInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.ProposeRelease } & ParsedProposeReleaseInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.RegisterApp } & ParsedRegisterAppInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.RegisterGuardian } & ParsedRegisterGuardianInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.RemoveGuardian } & ParsedRemoveGuardianInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.RotateVoteAuthority } & ParsedRotateVoteAuthorityInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.SetAppDeveloper } & ParsedSetAppDeveloperInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.UpdateConfig } & ParsedUpdateConfigInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.Vote } & ParsedVoteInstruction<TProgram>)\n | ({ instructionType: GuardianInstruction.WriteReleaseManifest } & ParsedWriteReleaseManifestInstruction<TProgram>);\n\nexport function parseGuardianInstruction<TProgram extends string>(\n instruction: Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array>,\n): ParsedGuardianInstruction<TProgram> {\n const instructionType = identifyGuardianInstruction(instruction);\n switch (instructionType) {\n case GuardianInstruction.AcceptAppAuthority: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.AcceptAppAuthority,\n ...parseAcceptAppAuthorityInstruction(instruction),\n };\n }\n case GuardianInstruction.AcceptConfigAuthority: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.AcceptConfigAuthority,\n ...parseAcceptConfigAuthorityInstruction(instruction),\n };\n }\n case GuardianInstruction.AddGuardian: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: GuardianInstruction.AddGuardian, ...parseAddGuardianInstruction(instruction) };\n }\n case GuardianInstruction.CancelRelease: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.CancelRelease,\n ...parseCancelReleaseInstruction(instruction),\n };\n }\n case GuardianInstruction.ExpireRelease: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.ExpireRelease,\n ...parseExpireReleaseInstruction(instruction),\n };\n }\n case GuardianInstruction.InitializeConfig: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.InitializeConfig,\n ...parseInitializeConfigInstruction(instruction),\n };\n }\n case GuardianInstruction.ProposeAppAuthority: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.ProposeAppAuthority,\n ...parseProposeAppAuthorityInstruction(instruction),\n };\n }\n case GuardianInstruction.ProposeConfigAuthority: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.ProposeConfigAuthority,\n ...parseProposeConfigAuthorityInstruction(instruction),\n };\n }\n case GuardianInstruction.ProposeRelease: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.ProposeRelease,\n ...parseProposeReleaseInstruction(instruction),\n };\n }\n case GuardianInstruction.RegisterApp: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: GuardianInstruction.RegisterApp, ...parseRegisterAppInstruction(instruction) };\n }\n case GuardianInstruction.RegisterGuardian: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.RegisterGuardian,\n ...parseRegisterGuardianInstruction(instruction),\n };\n }\n case GuardianInstruction.RemoveGuardian: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.RemoveGuardian,\n ...parseRemoveGuardianInstruction(instruction),\n };\n }\n case GuardianInstruction.RotateVoteAuthority: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.RotateVoteAuthority,\n ...parseRotateVoteAuthorityInstruction(instruction),\n };\n }\n case GuardianInstruction.SetAppDeveloper: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.SetAppDeveloper,\n ...parseSetAppDeveloperInstruction(instruction),\n };\n }\n case GuardianInstruction.UpdateConfig: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: GuardianInstruction.UpdateConfig, ...parseUpdateConfigInstruction(instruction) };\n }\n case GuardianInstruction.Vote: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: GuardianInstruction.Vote, ...parseVoteInstruction(instruction) };\n }\n case GuardianInstruction.WriteReleaseManifest: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: GuardianInstruction.WriteReleaseManifest,\n ...parseWriteReleaseManifestInstruction(instruction),\n };\n }\n default:\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, {\n instructionType: instructionType as string,\n programName: 'guardian',\n });\n }\n}\n\nexport type GuardianPlugin = {\n accounts: GuardianPluginAccounts;\n instructions: GuardianPluginInstructions;\n pdas: GuardianPluginPdas;\n identifyAccount: typeof identifyGuardianAccount;\n identifyInstruction: typeof identifyGuardianInstruction;\n parseInstruction: typeof parseGuardianInstruction;\n};\n\nexport type GuardianPluginAccounts = {\n appAccount: ReturnType<typeof getAppAccountCodec> & SelfFetchFunctions<AppAccountArgs, AppAccount>;\n guardiansConfig: ReturnType<typeof getGuardiansConfigCodec> &\n SelfFetchFunctions<GuardiansConfigArgs, GuardiansConfig>;\n pendingRegistry: ReturnType<typeof getPendingRegistryCodec> &\n SelfFetchFunctions<PendingRegistryArgs, PendingRegistry>;\n};\n\nexport type GuardianPluginInstructions = {\n acceptAppAuthority: (\n input: AcceptAppAuthorityAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAcceptAppAuthorityInstructionAsync> & SelfPlanAndSendFunctions;\n acceptConfigAuthority: (\n input: AcceptConfigAuthorityAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAcceptConfigAuthorityInstructionAsync> & SelfPlanAndSendFunctions;\n addGuardian: (\n input: AddGuardianAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAddGuardianInstructionAsync> & SelfPlanAndSendFunctions;\n cancelRelease: (\n input: CancelReleaseAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getCancelReleaseInstructionAsync> & SelfPlanAndSendFunctions;\n expireRelease: (\n input: ExpireReleaseAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getExpireReleaseInstructionAsync> & SelfPlanAndSendFunctions;\n initializeConfig: (\n input: InitializeConfigAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getInitializeConfigInstructionAsync> & SelfPlanAndSendFunctions;\n proposeAppAuthority: (\n input: ProposeAppAuthorityAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getProposeAppAuthorityInstructionAsync> & SelfPlanAndSendFunctions;\n proposeConfigAuthority: (\n input: ProposeConfigAuthorityAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getProposeConfigAuthorityInstructionAsync> & SelfPlanAndSendFunctions;\n proposeRelease: (\n input: ProposeReleaseAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getProposeReleaseInstructionAsync> & SelfPlanAndSendFunctions;\n registerApp: (\n input: RegisterAppAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getRegisterAppInstructionAsync> & SelfPlanAndSendFunctions;\n registerGuardian: (\n input: RegisterGuardianAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getRegisterGuardianInstructionAsync> & SelfPlanAndSendFunctions;\n removeGuardian: (\n input: RemoveGuardianAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getRemoveGuardianInstructionAsync> & SelfPlanAndSendFunctions;\n rotateVoteAuthority: (\n input: RotateVoteAuthorityAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getRotateVoteAuthorityInstructionAsync> & SelfPlanAndSendFunctions;\n setAppDeveloper: (\n input: SetAppDeveloperAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getSetAppDeveloperInstructionAsync> & SelfPlanAndSendFunctions;\n updateConfig: (\n input: UpdateConfigAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getUpdateConfigInstructionAsync> & SelfPlanAndSendFunctions;\n vote: (\n input: VoteAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getVoteInstructionAsync> & SelfPlanAndSendFunctions;\n writeReleaseManifest: (\n input: WriteReleaseManifestAsyncInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getWriteReleaseManifestInstructionAsync> & SelfPlanAndSendFunctions;\n};\n\nexport type GuardianPluginPdas = {\n guardiansConfig: typeof findGuardiansConfigPda;\n pendingRegistry: typeof findPendingRegistryPda;\n bondVault: typeof findBondVaultPda;\n};\n\nexport type GuardianPluginRequirements = ClientWithRpc<GetAccountInfoApi & GetMultipleAccountsApi> &\n ClientWithTransactionPlanning &\n ClientWithTransactionSending;\n\nexport function guardianProgram(config: { programAddress?: Address | HasAddress } = {}) {\n return <T extends GuardianPluginRequirements>(client: T): ExtendedClient<T, { guardian: GuardianPlugin }> => {\n return extendClient(client, {\n guardian: <GuardianPlugin>{\n accounts: {\n appAccount: addSelfFetchFunctions(client, getAppAccountCodec()),\n guardiansConfig: addSelfFetchFunctions(client, getGuardiansConfigCodec()),\n pendingRegistry: addSelfFetchFunctions(client, getPendingRegistryCodec()),\n },\n instructions: {\n acceptAppAuthority: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAcceptAppAuthorityInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n acceptConfigAuthority: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAcceptConfigAuthorityInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n addGuardian: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAddGuardianInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n cancelRelease: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getCancelReleaseInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n expireRelease: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getExpireReleaseInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n initializeConfig: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getInitializeConfigInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n proposeAppAuthority: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getProposeAppAuthorityInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n proposeConfigAuthority: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getProposeConfigAuthorityInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n proposeRelease: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getProposeReleaseInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n registerApp: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getRegisterAppInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n registerGuardian: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getRegisterGuardianInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n removeGuardian: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getRemoveGuardianInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n rotateVoteAuthority: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getRotateVoteAuthorityInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n setAppDeveloper: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getSetAppDeveloperInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n updateConfig: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getUpdateConfigInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n vote: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getVoteInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n writeReleaseManifest: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getWriteReleaseManifestInstructionAsync(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n },\n pdas: {\n guardiansConfig: pdaConfig =>\n findGuardiansConfigPda({ programAddress: pdaConfig?.programAddress ?? config.programAddress }),\n pendingRegistry: pdaConfig =>\n findPendingRegistryPda({ programAddress: pdaConfig?.programAddress ?? config.programAddress }),\n bondVault: pdaConfig =>\n findBondVaultPda({ programAddress: pdaConfig?.programAddress ?? config.programAddress }),\n },\n identifyAccount: identifyGuardianAccount,\n identifyInstruction: identifyGuardianInstruction,\n parseInstruction: parseGuardianInstruction,\n },\n });\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n isProgramError,\n type Address,\n type HasAddress,\n type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n type SolanaError,\n} from '@solana/kit';\nimport { GUARDIAN_PROGRAM_ADDRESS } from '../programs';\n\n/** IncorrectAuthority: Incorrect authority */\nexport const GUARDIAN_ERROR__INCORRECT_AUTHORITY = 0x1770; // 6000\n/** InvalidGuardian: Provided guardian is not in the guardian set */\nexport const GUARDIAN_ERROR__INVALID_GUARDIAN = 0x1771; // 6001\n/** UnauthorizedVoteAuthority: Signer is not a registered vote authority */\nexport const GUARDIAN_ERROR__UNAUTHORIZED_VOTE_AUTHORITY = 0x1772; // 6002\n/** GuardianNotPending: Guardian has not been admitted as pending */\nexport const GUARDIAN_ERROR__GUARDIAN_NOT_PENDING = 0x1773; // 6003\n/** KeyInUse: Key already belongs to a guardian, a pending guardian, or a vote authority */\nexport const GUARDIAN_ERROR__KEY_IN_USE = 0x1774; // 6004\n/** IncorrectBondDestination: Bond refund destination is not owned by the guardian */\nexport const GUARDIAN_ERROR__INCORRECT_BOND_DESTINATION = 0x1775; // 6005\n/** ReleaseAlreadyPending: A finalized release is already pending for this app */\nexport const GUARDIAN_ERROR__RELEASE_ALREADY_PENDING = 0x1776; // 6006\n/** NoPendingRelease: No release is pending for this app */\nexport const GUARDIAN_ERROR__NO_PENDING_RELEASE = 0x1777; // 6007\n/** ReleaseNotFinalized: The pending release upload is not finalized yet */\nexport const GUARDIAN_ERROR__RELEASE_NOT_FINALIZED = 0x1778; // 6008\n/** CannotCancelResolvedRelease: The release has resolved and can no longer be cancelled */\nexport const GUARDIAN_ERROR__CANNOT_CANCEL_RESOLVED_RELEASE = 0x1779; // 6009\n/** VersionCodeMismatch: Uploaded chunk or vote targets a different version code than the pending one */\nexport const GUARDIAN_ERROR__VERSION_CODE_MISMATCH = 0x177a; // 6010\n/** VersionCodeNotIncreasing: Version code must exceed the app's last resolved version code */\nexport const GUARDIAN_ERROR__VERSION_CODE_NOT_INCREASING = 0x177b; // 6011\n/** ManifestHashMismatch: The manifest hash does not match the pending release */\nexport const GUARDIAN_ERROR__MANIFEST_HASH_MISMATCH = 0x177c; // 6012\n/** ManifestTooLarge: Manifest exceeds the maximum length */\nexport const GUARDIAN_ERROR__MANIFEST_TOO_LARGE = 0x177d; // 6013\n/** VoteFindingsTooLarge: Vote findings exceed the maximum encoded length */\nexport const GUARDIAN_ERROR__VOTE_FINDINGS_TOO_LARGE = 0x177e; // 6014\n/** PolicyBundleNotAttested: The config has no policy bundle hash set, so a release cannot be finalized */\nexport const GUARDIAN_ERROR__POLICY_BUNDLE_NOT_ATTESTED = 0x177f; // 6015\n/** PolicyBundleMismatch: Vote names a different policy bundle than the pending release was finalized under */\nexport const GUARDIAN_ERROR__POLICY_BUNDLE_MISMATCH = 0x1780; // 6016\n/** InvalidPolicyBundleHash: Policy bundle hash must be non-zero */\nexport const GUARDIAN_ERROR__INVALID_POLICY_BUNDLE_HASH = 0x1781; // 6017\n/** VoteWindowOpen: The last resolved release is still taking late votes; propose once its vote window closes, every guardian has voted, or the guardian set changes */\nexport const GUARDIAN_ERROR__VOTE_WINDOW_OPEN = 0x1782; // 6018\n/** VoteWindowClosed: The vote window of this resolved release has closed */\nexport const GUARDIAN_ERROR__VOTE_WINDOW_CLOSED = 0x1783; // 6019\n/** AlreadyVoted: This guardian already voted on the resolved release */\nexport const GUARDIAN_ERROR__ALREADY_VOTED = 0x1784; // 6020\n/** GuardianSetChangedSinceQuorum: The guardian set changed after this release resolved, so it takes no late votes */\nexport const GUARDIAN_ERROR__GUARDIAN_SET_CHANGED_SINCE_QUORUM = 0x1785; // 6021\n/** TooManyGuardians: The guardian set is full */\nexport const GUARDIAN_ERROR__TOO_MANY_GUARDIANS = 0x1786; // 6022\n/** Overflow: Arithmetic overflow */\nexport const GUARDIAN_ERROR__OVERFLOW = 0x1787; // 6023\n/** InvalidVotingPeriod: The voting period must be at least one second */\nexport const GUARDIAN_ERROR__INVALID_VOTING_PERIOD = 0x1788; // 6024\n/** NoPendingConfigAuthority: No config authority transfer is pending */\nexport const GUARDIAN_ERROR__NO_PENDING_CONFIG_AUTHORITY = 0x1789; // 6025\n/** IncorrectPendingConfigAuthority: Signer is not the pending config authority */\nexport const GUARDIAN_ERROR__INCORRECT_PENDING_CONFIG_AUTHORITY = 0x178a; // 6026\n/** VotingDeadlinePassed: The release's voting deadline has passed */\nexport const GUARDIAN_ERROR__VOTING_DEADLINE_PASSED = 0x178b; // 6027\n/** ReleaseNotExpired: The release has not expired */\nexport const GUARDIAN_ERROR__RELEASE_NOT_EXPIRED = 0x178c; // 6028\n/** VersionCodeTooLarge: The version code is above Android's maximum */\nexport const GUARDIAN_ERROR__VERSION_CODE_TOO_LARGE = 0x178d; // 6029\n/** FunderNotWallet: The funder must be a wallet owned by the System Program */\nexport const GUARDIAN_ERROR__FUNDER_NOT_WALLET = 0x178e; // 6030\n/** TooManyDevelopers: The app already lists the most developer keys allowed */\nexport const GUARDIAN_ERROR__TOO_MANY_DEVELOPERS = 0x178f; // 6031\n/** CertificateNotSet: The release has no signing certificate, so it cannot be finalized */\nexport const GUARDIAN_ERROR__CERTIFICATE_NOT_SET = 0x1790; // 6032\n/** ManifestLengthMismatch: The manifest length differs from the upload in progress */\nexport const GUARDIAN_ERROR__MANIFEST_LENGTH_MISMATCH = 0x1791; // 6033\n/** ManifestWriteOutOfBounds: The chunk ends past the manifest buffer */\nexport const GUARDIAN_ERROR__MANIFEST_WRITE_OUT_OF_BOUNDS = 0x1792; // 6034\n/** NoPendingAppAuthority: No app authority transfer is pending */\nexport const GUARDIAN_ERROR__NO_PENDING_APP_AUTHORITY = 0x1793; // 6035\n/** IncorrectPendingAppAuthority: Signer is not the pending app authority */\nexport const GUARDIAN_ERROR__INCORRECT_PENDING_APP_AUTHORITY = 0x1794; // 6036\n\nexport type GuardianError =\n | typeof GUARDIAN_ERROR__ALREADY_VOTED\n | typeof GUARDIAN_ERROR__CANNOT_CANCEL_RESOLVED_RELEASE\n | typeof GUARDIAN_ERROR__CERTIFICATE_NOT_SET\n | typeof GUARDIAN_ERROR__FUNDER_NOT_WALLET\n | typeof GUARDIAN_ERROR__GUARDIAN_NOT_PENDING\n | typeof GUARDIAN_ERROR__GUARDIAN_SET_CHANGED_SINCE_QUORUM\n | typeof GUARDIAN_ERROR__INCORRECT_AUTHORITY\n | typeof GUARDIAN_ERROR__INCORRECT_BOND_DESTINATION\n | typeof GUARDIAN_ERROR__INCORRECT_PENDING_APP_AUTHORITY\n | typeof GUARDIAN_ERROR__INCORRECT_PENDING_CONFIG_AUTHORITY\n | typeof GUARDIAN_ERROR__INVALID_GUARDIAN\n | typeof GUARDIAN_ERROR__INVALID_POLICY_BUNDLE_HASH\n | typeof GUARDIAN_ERROR__INVALID_VOTING_PERIOD\n | typeof GUARDIAN_ERROR__KEY_IN_USE\n | typeof GUARDIAN_ERROR__MANIFEST_HASH_MISMATCH\n | typeof GUARDIAN_ERROR__MANIFEST_LENGTH_MISMATCH\n | typeof GUARDIAN_ERROR__MANIFEST_TOO_LARGE\n | typeof GUARDIAN_ERROR__MANIFEST_WRITE_OUT_OF_BOUNDS\n | typeof GUARDIAN_ERROR__NO_PENDING_APP_AUTHORITY\n | typeof GUARDIAN_ERROR__NO_PENDING_CONFIG_AUTHORITY\n | typeof GUARDIAN_ERROR__NO_PENDING_RELEASE\n | typeof GUARDIAN_ERROR__OVERFLOW\n | typeof GUARDIAN_ERROR__POLICY_BUNDLE_MISMATCH\n | typeof GUARDIAN_ERROR__POLICY_BUNDLE_NOT_ATTESTED\n | typeof GUARDIAN_ERROR__RELEASE_ALREADY_PENDING\n | typeof GUARDIAN_ERROR__RELEASE_NOT_EXPIRED\n | typeof GUARDIAN_ERROR__RELEASE_NOT_FINALIZED\n | typeof GUARDIAN_ERROR__TOO_MANY_DEVELOPERS\n | typeof GUARDIAN_ERROR__TOO_MANY_GUARDIANS\n | typeof GUARDIAN_ERROR__UNAUTHORIZED_VOTE_AUTHORITY\n | typeof GUARDIAN_ERROR__VERSION_CODE_MISMATCH\n | typeof GUARDIAN_ERROR__VERSION_CODE_NOT_INCREASING\n | typeof GUARDIAN_ERROR__VERSION_CODE_TOO_LARGE\n | typeof GUARDIAN_ERROR__VOTE_FINDINGS_TOO_LARGE\n | typeof GUARDIAN_ERROR__VOTE_WINDOW_CLOSED\n | typeof GUARDIAN_ERROR__VOTE_WINDOW_OPEN\n | typeof GUARDIAN_ERROR__VOTING_DEADLINE_PASSED;\n\nlet guardianErrorMessages: Record<GuardianError, string> | undefined;\nif (process.env['NODE_ENV'] !== 'production') {\n guardianErrorMessages = {\n [GUARDIAN_ERROR__ALREADY_VOTED]: `This guardian already voted on the resolved release`,\n [GUARDIAN_ERROR__CANNOT_CANCEL_RESOLVED_RELEASE]: `The release has resolved and can no longer be cancelled`,\n [GUARDIAN_ERROR__CERTIFICATE_NOT_SET]: `The release has no signing certificate, so it cannot be finalized`,\n [GUARDIAN_ERROR__FUNDER_NOT_WALLET]: `The funder must be a wallet owned by the System Program`,\n [GUARDIAN_ERROR__GUARDIAN_NOT_PENDING]: `Guardian has not been admitted as pending`,\n [GUARDIAN_ERROR__GUARDIAN_SET_CHANGED_SINCE_QUORUM]: `The guardian set changed after this release resolved, so it takes no late votes`,\n [GUARDIAN_ERROR__INCORRECT_AUTHORITY]: `Incorrect authority`,\n [GUARDIAN_ERROR__INCORRECT_BOND_DESTINATION]: `Bond refund destination is not owned by the guardian`,\n [GUARDIAN_ERROR__INCORRECT_PENDING_APP_AUTHORITY]: `Signer is not the pending app authority`,\n [GUARDIAN_ERROR__INCORRECT_PENDING_CONFIG_AUTHORITY]: `Signer is not the pending config authority`,\n [GUARDIAN_ERROR__INVALID_GUARDIAN]: `Provided guardian is not in the guardian set`,\n [GUARDIAN_ERROR__INVALID_POLICY_BUNDLE_HASH]: `Policy bundle hash must be non-zero`,\n [GUARDIAN_ERROR__INVALID_VOTING_PERIOD]: `The voting period must be at least one second`,\n [GUARDIAN_ERROR__KEY_IN_USE]: `Key already belongs to a guardian, a pending guardian, or a vote authority`,\n [GUARDIAN_ERROR__MANIFEST_HASH_MISMATCH]: `The manifest hash does not match the pending release`,\n [GUARDIAN_ERROR__MANIFEST_LENGTH_MISMATCH]: `The manifest length differs from the upload in progress`,\n [GUARDIAN_ERROR__MANIFEST_TOO_LARGE]: `Manifest exceeds the maximum length`,\n [GUARDIAN_ERROR__MANIFEST_WRITE_OUT_OF_BOUNDS]: `The chunk ends past the manifest buffer`,\n [GUARDIAN_ERROR__NO_PENDING_APP_AUTHORITY]: `No app authority transfer is pending`,\n [GUARDIAN_ERROR__NO_PENDING_CONFIG_AUTHORITY]: `No config authority transfer is pending`,\n [GUARDIAN_ERROR__NO_PENDING_RELEASE]: `No release is pending for this app`,\n [GUARDIAN_ERROR__OVERFLOW]: `Arithmetic overflow`,\n [GUARDIAN_ERROR__POLICY_BUNDLE_MISMATCH]: `Vote names a different policy bundle than the pending release was finalized under`,\n [GUARDIAN_ERROR__POLICY_BUNDLE_NOT_ATTESTED]: `The config has no policy bundle hash set, so a release cannot be finalized`,\n [GUARDIAN_ERROR__RELEASE_ALREADY_PENDING]: `A finalized release is already pending for this app`,\n [GUARDIAN_ERROR__RELEASE_NOT_EXPIRED]: `The release has not expired`,\n [GUARDIAN_ERROR__RELEASE_NOT_FINALIZED]: `The pending release upload is not finalized yet`,\n [GUARDIAN_ERROR__TOO_MANY_DEVELOPERS]: `The app already lists the most developer keys allowed`,\n [GUARDIAN_ERROR__TOO_MANY_GUARDIANS]: `The guardian set is full`,\n [GUARDIAN_ERROR__UNAUTHORIZED_VOTE_AUTHORITY]: `Signer is not a registered vote authority`,\n [GUARDIAN_ERROR__VERSION_CODE_MISMATCH]: `Uploaded chunk or vote targets a different version code than the pending one`,\n [GUARDIAN_ERROR__VERSION_CODE_NOT_INCREASING]: `Version code must exceed the app's last resolved version code`,\n [GUARDIAN_ERROR__VERSION_CODE_TOO_LARGE]: `The version code is above Android's maximum`,\n [GUARDIAN_ERROR__VOTE_FINDINGS_TOO_LARGE]: `Vote findings exceed the maximum encoded length`,\n [GUARDIAN_ERROR__VOTE_WINDOW_CLOSED]: `The vote window of this resolved release has closed`,\n [GUARDIAN_ERROR__VOTE_WINDOW_OPEN]: `The last resolved release is still taking late votes; propose once its vote window closes, every guardian has voted, or the guardian set changes`,\n [GUARDIAN_ERROR__VOTING_DEADLINE_PASSED]: `The release's voting deadline has passed`,\n };\n}\n\nexport function getGuardianErrorMessage(code: GuardianError): string {\n if (process.env['NODE_ENV'] !== 'production') {\n return (guardianErrorMessages as Record<GuardianError, string>)[code];\n }\n\n return 'Error message not available in production bundles.';\n}\n\nexport function isGuardianError<TProgramErrorCode extends GuardianError>(\n error: unknown,\n transactionMessage: { instructions: Record<number, { programAddress: Address }> },\n code?: TProgramErrorCode,\n config: { programAddress?: Address | HasAddress } = {},\n): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &\n Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {\n const programAddressInput = config.programAddress ?? GUARDIAN_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n return isProgramError<TProgramErrorCode>(error, transactionMessage, programAddress, code);\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const APP_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 216, 100, 38, 168, 184, 157, 141, 247,\n]);\n\nexport function getAppAuthorityAcceptedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(APP_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR);\n}\n\nexport type AppAuthorityAcceptedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** App authority before the transfer. */\n oldAuthority: Address;\n /** App authority after the transfer. */\n newAuthority: Address;\n};\n\nexport type AppAuthorityAcceptedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** App authority before the transfer. */\n oldAuthority: Address | HasAddress;\n /** App authority after the transfer. */\n newAuthority: Address | HasAddress;\n};\n\n/** Gets the encoder for {@link AppAuthorityAcceptedEventArgs} event data. */\nexport function getAppAuthorityAcceptedEventEncoder(): FixedSizeEncoder<AppAuthorityAcceptedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['oldAuthority', getAddressEncoder()],\n ['newAuthority', getAddressEncoder()],\n ]),\n [getConstantEncoder(APP_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link AppAuthorityAcceptedEvent} event data. */\nexport function getAppAuthorityAcceptedEventDecoder(): FixedSizeDecoder<AppAuthorityAcceptedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['oldAuthority', getAddressDecoder()],\n ['newAuthority', getAddressDecoder()],\n ]),\n [getConstantDecoder(APP_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link AppAuthorityAcceptedEvent} event data. */\nexport function getAppAuthorityAcceptedEventCodec(): FixedSizeCodec<\n AppAuthorityAcceptedEventArgs,\n AppAuthorityAcceptedEvent\n> {\n return combineCodec(getAppAuthorityAcceptedEventEncoder(), getAppAuthorityAcceptedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link AppAuthorityAcceptedEvent} event data. */\nexport function parseAppAuthorityAcceptedEvent(data: ReadonlyUint8Array | Uint8Array): AppAuthorityAcceptedEvent {\n if (containsBytes(data, APP_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR, 0)) {\n return getAppAuthorityAcceptedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"AppAuthorityAcceptedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const APP_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 17, 143, 174, 4, 147, 110, 126, 84,\n]);\n\nexport function getAppAuthorityProposedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(APP_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR);\n}\n\nexport type AppAuthorityProposedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** App authority that made the proposal. */\n authority: Address;\n /** Key that can accept, or zero if the proposal was cancelled. */\n proposed: Address;\n};\n\nexport type AppAuthorityProposedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** App authority that made the proposal. */\n authority: Address | HasAddress;\n /** Key that can accept, or zero if the proposal was cancelled. */\n proposed: Address | HasAddress;\n};\n\n/** Gets the encoder for {@link AppAuthorityProposedEventArgs} event data. */\nexport function getAppAuthorityProposedEventEncoder(): FixedSizeEncoder<AppAuthorityProposedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ['proposed', getAddressEncoder()],\n ]),\n [getConstantEncoder(APP_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link AppAuthorityProposedEvent} event data. */\nexport function getAppAuthorityProposedEventDecoder(): FixedSizeDecoder<AppAuthorityProposedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ['proposed', getAddressDecoder()],\n ]),\n [getConstantDecoder(APP_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link AppAuthorityProposedEvent} event data. */\nexport function getAppAuthorityProposedEventCodec(): FixedSizeCodec<\n AppAuthorityProposedEventArgs,\n AppAuthorityProposedEvent\n> {\n return combineCodec(getAppAuthorityProposedEventEncoder(), getAppAuthorityProposedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link AppAuthorityProposedEvent} event data. */\nexport function parseAppAuthorityProposedEvent(data: ReadonlyUint8Array | Uint8Array): AppAuthorityProposedEvent {\n if (containsBytes(data, APP_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR, 0)) {\n return getAppAuthorityProposedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"AppAuthorityProposedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBooleanDecoder,\n getBooleanEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const APP_DEVELOPER_UPDATED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 132, 135, 205, 60, 48, 208, 44, 171,\n]);\n\nexport function getAppDeveloperUpdatedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(APP_DEVELOPER_UPDATED_EVENT_DISCRIMINATOR);\n}\n\nexport type AppDeveloperUpdatedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** The developer key. */\n developer: Address;\n /** `true` if the key was added, `false` if removed. */\n allowed: boolean;\n};\n\nexport type AppDeveloperUpdatedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** The developer key. */\n developer: Address | HasAddress;\n /** `true` if the key was added, `false` if removed. */\n allowed: boolean;\n};\n\n/** Gets the encoder for {@link AppDeveloperUpdatedEventArgs} event data. */\nexport function getAppDeveloperUpdatedEventEncoder(): FixedSizeEncoder<AppDeveloperUpdatedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['developer', getAddressEncoder()],\n ['allowed', getBooleanEncoder()],\n ]),\n [getConstantEncoder(APP_DEVELOPER_UPDATED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link AppDeveloperUpdatedEvent} event data. */\nexport function getAppDeveloperUpdatedEventDecoder(): FixedSizeDecoder<AppDeveloperUpdatedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['developer', getAddressDecoder()],\n ['allowed', getBooleanDecoder()],\n ]),\n [getConstantDecoder(APP_DEVELOPER_UPDATED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link AppDeveloperUpdatedEvent} event data. */\nexport function getAppDeveloperUpdatedEventCodec(): FixedSizeCodec<\n AppDeveloperUpdatedEventArgs,\n AppDeveloperUpdatedEvent\n> {\n return combineCodec(getAppDeveloperUpdatedEventEncoder(), getAppDeveloperUpdatedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link AppDeveloperUpdatedEvent} event data. */\nexport function parseAppDeveloperUpdatedEvent(data: ReadonlyUint8Array | Uint8Array): AppDeveloperUpdatedEvent {\n if (containsBytes(data, APP_DEVELOPER_UPDATED_EVENT_DISCRIMINATOR, 0)) {\n return getAppDeveloperUpdatedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"AppDeveloperUpdatedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const APP_REGISTERED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 99, 12, 19, 34, 85, 60, 170, 229,\n]);\n\nexport function getAppRegisteredEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(APP_REGISTERED_EVENT_DISCRIMINATOR);\n}\n\nexport type AppRegisteredEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The new app account. */\n app: Address;\n /** Key that controls the app. */\n authority: Address;\n /** Display name. */\n name: string;\n};\n\nexport type AppRegisteredEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The new app account. */\n app: Address | HasAddress;\n /** Key that controls the app. */\n authority: Address | HasAddress;\n /** Display name. */\n name: string;\n};\n\n/** Gets the encoder for {@link AppRegisteredEventArgs} event data. */\nexport function getAppRegisteredEventEncoder(): Encoder<AppRegisteredEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n ]),\n [getConstantEncoder(APP_REGISTERED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link AppRegisteredEvent} event data. */\nexport function getAppRegisteredEventDecoder(): Decoder<AppRegisteredEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n ]),\n [getConstantDecoder(APP_REGISTERED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link AppRegisteredEvent} event data. */\nexport function getAppRegisteredEventCodec(): Codec<AppRegisteredEventArgs, AppRegisteredEvent> {\n return combineCodec(getAppRegisteredEventEncoder(), getAppRegisteredEventDecoder());\n}\n\n/** Parses the provided bytes into {@link AppRegisteredEvent} event data. */\nexport function parseAppRegisteredEvent(data: ReadonlyUint8Array | Uint8Array): AppRegisteredEvent {\n if (containsBytes(data, APP_REGISTERED_EVENT_DISCRIMINATOR, 0)) {\n return getAppRegisteredEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"AppRegisteredEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const CONFIG_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 166, 249, 198, 239, 64, 193, 191, 242,\n]);\n\nexport function getConfigAuthorityAcceptedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(CONFIG_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR);\n}\n\nexport type ConfigAuthorityAcceptedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** Config authority before the transfer. */\n oldAuthority: Address;\n /** Config authority after the transfer. */\n newAuthority: Address;\n};\n\nexport type ConfigAuthorityAcceptedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** Config authority before the transfer. */\n oldAuthority: Address | HasAddress;\n /** Config authority after the transfer. */\n newAuthority: Address | HasAddress;\n};\n\n/** Gets the encoder for {@link ConfigAuthorityAcceptedEventArgs} event data. */\nexport function getConfigAuthorityAcceptedEventEncoder(): FixedSizeEncoder<ConfigAuthorityAcceptedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['oldAuthority', getAddressEncoder()],\n ['newAuthority', getAddressEncoder()],\n ]),\n [getConstantEncoder(CONFIG_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ConfigAuthorityAcceptedEvent} event data. */\nexport function getConfigAuthorityAcceptedEventDecoder(): FixedSizeDecoder<ConfigAuthorityAcceptedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['oldAuthority', getAddressDecoder()],\n ['newAuthority', getAddressDecoder()],\n ]),\n [getConstantDecoder(CONFIG_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ConfigAuthorityAcceptedEvent} event data. */\nexport function getConfigAuthorityAcceptedEventCodec(): FixedSizeCodec<\n ConfigAuthorityAcceptedEventArgs,\n ConfigAuthorityAcceptedEvent\n> {\n return combineCodec(getConfigAuthorityAcceptedEventEncoder(), getConfigAuthorityAcceptedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ConfigAuthorityAcceptedEvent} event data. */\nexport function parseConfigAuthorityAcceptedEvent(data: ReadonlyUint8Array | Uint8Array): ConfigAuthorityAcceptedEvent {\n if (containsBytes(data, CONFIG_AUTHORITY_ACCEPTED_EVENT_DISCRIMINATOR, 0)) {\n return getConfigAuthorityAcceptedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ConfigAuthorityAcceptedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const CONFIG_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 125, 29, 33, 186, 153, 16, 155, 229,\n]);\n\nexport function getConfigAuthorityProposedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(CONFIG_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR);\n}\n\nexport type ConfigAuthorityProposedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** Config authority that made the proposal. */\n authority: Address;\n /** Key that can accept, or zero if the proposal was cancelled. */\n proposed: Address;\n};\n\nexport type ConfigAuthorityProposedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** Config authority that made the proposal. */\n authority: Address | HasAddress;\n /** Key that can accept, or zero if the proposal was cancelled. */\n proposed: Address | HasAddress;\n};\n\n/** Gets the encoder for {@link ConfigAuthorityProposedEventArgs} event data. */\nexport function getConfigAuthorityProposedEventEncoder(): FixedSizeEncoder<ConfigAuthorityProposedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['authority', getAddressEncoder()],\n ['proposed', getAddressEncoder()],\n ]),\n [getConstantEncoder(CONFIG_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ConfigAuthorityProposedEvent} event data. */\nexport function getConfigAuthorityProposedEventDecoder(): FixedSizeDecoder<ConfigAuthorityProposedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['authority', getAddressDecoder()],\n ['proposed', getAddressDecoder()],\n ]),\n [getConstantDecoder(CONFIG_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ConfigAuthorityProposedEvent} event data. */\nexport function getConfigAuthorityProposedEventCodec(): FixedSizeCodec<\n ConfigAuthorityProposedEventArgs,\n ConfigAuthorityProposedEvent\n> {\n return combineCodec(getConfigAuthorityProposedEventEncoder(), getConfigAuthorityProposedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ConfigAuthorityProposedEvent} event data. */\nexport function parseConfigAuthorityProposedEvent(data: ReadonlyUint8Array | Uint8Array): ConfigAuthorityProposedEvent {\n if (containsBytes(data, CONFIG_AUTHORITY_PROPOSED_EVENT_DISCRIMINATOR, 0)) {\n return getConfigAuthorityProposedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ConfigAuthorityProposedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const CONFIG_INITIALIZED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 181, 49, 200, 156, 19, 167, 178, 91,\n]);\n\nexport function getConfigInitializedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(CONFIG_INITIALIZED_EVENT_DISCRIMINATOR);\n}\n\nexport type ConfigInitializedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** The config authority. */\n authority: Address;\n /** Bond mint. */\n bondMint: Address;\n /** Seconds after quorum during which guardians that haven't voted can still cast a late vote. */\n voteWindow: number;\n /** Seconds from finalize to a release's voting deadline. */\n votingPeriod: number;\n};\n\nexport type ConfigInitializedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** The config authority. */\n authority: Address | HasAddress;\n /** Bond mint. */\n bondMint: Address | HasAddress;\n /** Seconds after quorum during which guardians that haven't voted can still cast a late vote. */\n voteWindow: number;\n /** Seconds from finalize to a release's voting deadline. */\n votingPeriod: number;\n};\n\n/** Gets the encoder for {@link ConfigInitializedEventArgs} event data. */\nexport function getConfigInitializedEventEncoder(): FixedSizeEncoder<ConfigInitializedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['authority', getAddressEncoder()],\n ['bondMint', getAddressEncoder()],\n ['voteWindow', getU32Encoder()],\n ['votingPeriod', getU32Encoder()],\n ]),\n [getConstantEncoder(CONFIG_INITIALIZED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ConfigInitializedEvent} event data. */\nexport function getConfigInitializedEventDecoder(): FixedSizeDecoder<ConfigInitializedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['authority', getAddressDecoder()],\n ['bondMint', getAddressDecoder()],\n ['voteWindow', getU32Decoder()],\n ['votingPeriod', getU32Decoder()],\n ]),\n [getConstantDecoder(CONFIG_INITIALIZED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ConfigInitializedEvent} event data. */\nexport function getConfigInitializedEventCodec(): FixedSizeCodec<ConfigInitializedEventArgs, ConfigInitializedEvent> {\n return combineCodec(getConfigInitializedEventEncoder(), getConfigInitializedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ConfigInitializedEvent} event data. */\nexport function parseConfigInitializedEvent(data: ReadonlyUint8Array | Uint8Array): ConfigInitializedEvent {\n if (containsBytes(data, CONFIG_INITIALIZED_EVENT_DISCRIMINATOR, 0)) {\n return getConfigInitializedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ConfigInitializedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const CONFIG_UPDATED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 40, 241, 230, 122, 11, 19, 198, 194,\n]);\n\nexport function getConfigUpdatedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(CONFIG_UPDATED_EVENT_DISCRIMINATOR);\n}\n\nexport type ConfigUpdatedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** Bond per registration, in base units of the bond mint. */\n bondAmount: bigint;\n /**\n * Fingerprint of the policy bundle guardians must run (sha256 of the borsh-encoded bundle), or\n * zero if unset.\n */\n policyBundleHash: ReadonlyUint8Array;\n /** Seconds after quorum during which guardians that haven't voted can still cast a late vote. */\n voteWindow: number;\n /** Seconds from finalize to a release's voting deadline. */\n votingPeriod: number;\n};\n\nexport type ConfigUpdatedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** Bond per registration, in base units of the bond mint. */\n bondAmount: number | bigint;\n /**\n * Fingerprint of the policy bundle guardians must run (sha256 of the borsh-encoded bundle), or\n * zero if unset.\n */\n policyBundleHash: ReadonlyUint8Array;\n /** Seconds after quorum during which guardians that haven't voted can still cast a late vote. */\n voteWindow: number;\n /** Seconds from finalize to a release's voting deadline. */\n votingPeriod: number;\n};\n\n/** Gets the encoder for {@link ConfigUpdatedEventArgs} event data. */\nexport function getConfigUpdatedEventEncoder(): FixedSizeEncoder<ConfigUpdatedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['bondAmount', getU64Encoder()],\n ['policyBundleHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['voteWindow', getU32Encoder()],\n ['votingPeriod', getU32Encoder()],\n ]),\n [getConstantEncoder(CONFIG_UPDATED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ConfigUpdatedEvent} event data. */\nexport function getConfigUpdatedEventDecoder(): FixedSizeDecoder<ConfigUpdatedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['bondAmount', getU64Decoder()],\n ['policyBundleHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['voteWindow', getU32Decoder()],\n ['votingPeriod', getU32Decoder()],\n ]),\n [getConstantDecoder(CONFIG_UPDATED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ConfigUpdatedEvent} event data. */\nexport function getConfigUpdatedEventCodec(): FixedSizeCodec<ConfigUpdatedEventArgs, ConfigUpdatedEvent> {\n return combineCodec(getConfigUpdatedEventEncoder(), getConfigUpdatedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ConfigUpdatedEvent} event data. */\nexport function parseConfigUpdatedEvent(data: ReadonlyUint8Array | Uint8Array): ConfigUpdatedEvent {\n if (containsBytes(data, CONFIG_UPDATED_EVENT_DISCRIMINATOR, 0)) {\n return getConfigUpdatedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ConfigUpdatedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const GUARDIAN_ADDED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 151, 0, 228, 5, 239, 58, 162, 18,\n]);\n\nexport function getGuardianAddedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(GUARDIAN_ADDED_EVENT_DISCRIMINATOR);\n}\n\nexport type GuardianAddedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** The pending guardian's authority key. */\n guardian: Address;\n};\n\nexport type GuardianAddedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** The pending guardian's authority key. */\n guardian: Address | HasAddress;\n};\n\n/** Gets the encoder for {@link GuardianAddedEventArgs} event data. */\nexport function getGuardianAddedEventEncoder(): FixedSizeEncoder<GuardianAddedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['guardian', getAddressEncoder()],\n ]),\n [getConstantEncoder(GUARDIAN_ADDED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link GuardianAddedEvent} event data. */\nexport function getGuardianAddedEventDecoder(): FixedSizeDecoder<GuardianAddedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['guardian', getAddressDecoder()],\n ]),\n [getConstantDecoder(GUARDIAN_ADDED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link GuardianAddedEvent} event data. */\nexport function getGuardianAddedEventCodec(): FixedSizeCodec<GuardianAddedEventArgs, GuardianAddedEvent> {\n return combineCodec(getGuardianAddedEventEncoder(), getGuardianAddedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link GuardianAddedEvent} event data. */\nexport function parseGuardianAddedEvent(data: ReadonlyUint8Array | Uint8Array): GuardianAddedEvent {\n if (containsBytes(data, GUARDIAN_ADDED_EVENT_DISCRIMINATOR, 0)) {\n return getGuardianAddedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"GuardianAddedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const GUARDIAN_REGISTERED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 255, 23, 109, 119, 11, 122, 209, 103,\n]);\n\nexport function getGuardianRegisteredEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(GUARDIAN_REGISTERED_EVENT_DISCRIMINATOR);\n}\n\nexport type GuardianRegisteredEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** The guardian's authority key. */\n guardian: Address;\n /** Key that signs the guardian's votes. */\n voteAuthority: Address;\n /** Bond posted, in base units of the bond mint. */\n bond: bigint;\n /** Guardian-set nonce after this change. */\n updateNonce: number;\n};\n\nexport type GuardianRegisteredEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** The guardian's authority key. */\n guardian: Address | HasAddress;\n /** Key that signs the guardian's votes. */\n voteAuthority: Address | HasAddress;\n /** Bond posted, in base units of the bond mint. */\n bond: number | bigint;\n /** Guardian-set nonce after this change. */\n updateNonce: number;\n};\n\n/** Gets the encoder for {@link GuardianRegisteredEventArgs} event data. */\nexport function getGuardianRegisteredEventEncoder(): FixedSizeEncoder<GuardianRegisteredEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['guardian', getAddressEncoder()],\n ['voteAuthority', getAddressEncoder()],\n ['bond', getU64Encoder()],\n ['updateNonce', getU32Encoder()],\n ]),\n [getConstantEncoder(GUARDIAN_REGISTERED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link GuardianRegisteredEvent} event data. */\nexport function getGuardianRegisteredEventDecoder(): FixedSizeDecoder<GuardianRegisteredEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['guardian', getAddressDecoder()],\n ['voteAuthority', getAddressDecoder()],\n ['bond', getU64Decoder()],\n ['updateNonce', getU32Decoder()],\n ]),\n [getConstantDecoder(GUARDIAN_REGISTERED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link GuardianRegisteredEvent} event data. */\nexport function getGuardianRegisteredEventCodec(): FixedSizeCodec<\n GuardianRegisteredEventArgs,\n GuardianRegisteredEvent\n> {\n return combineCodec(getGuardianRegisteredEventEncoder(), getGuardianRegisteredEventDecoder());\n}\n\n/** Parses the provided bytes into {@link GuardianRegisteredEvent} event data. */\nexport function parseGuardianRegisteredEvent(data: ReadonlyUint8Array | Uint8Array): GuardianRegisteredEvent {\n if (containsBytes(data, GUARDIAN_REGISTERED_EVENT_DISCRIMINATOR, 0)) {\n return getGuardianRegisteredEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"GuardianRegisteredEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const GUARDIAN_REMOVED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 225, 27, 117, 56, 241, 196, 5, 56,\n]);\n\nexport function getGuardianRemovedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(GUARDIAN_REMOVED_EVENT_DISCRIMINATOR);\n}\n\nexport type GuardianRemovedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** Authority key of the removed guardian. */\n guardian: Address;\n /** Bond returned, in base units of the bond mint. Zero for a guardian that never registered. */\n refunded: bigint;\n /** Guardian-set nonce after this change. Unchanged if the guardian never registered. */\n updateNonce: number;\n};\n\nexport type GuardianRemovedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** Authority key of the removed guardian. */\n guardian: Address | HasAddress;\n /** Bond returned, in base units of the bond mint. Zero for a guardian that never registered. */\n refunded: number | bigint;\n /** Guardian-set nonce after this change. Unchanged if the guardian never registered. */\n updateNonce: number;\n};\n\n/** Gets the encoder for {@link GuardianRemovedEventArgs} event data. */\nexport function getGuardianRemovedEventEncoder(): FixedSizeEncoder<GuardianRemovedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['guardian', getAddressEncoder()],\n ['refunded', getU64Encoder()],\n ['updateNonce', getU32Encoder()],\n ]),\n [getConstantEncoder(GUARDIAN_REMOVED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link GuardianRemovedEvent} event data. */\nexport function getGuardianRemovedEventDecoder(): FixedSizeDecoder<GuardianRemovedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['guardian', getAddressDecoder()],\n ['refunded', getU64Decoder()],\n ['updateNonce', getU32Decoder()],\n ]),\n [getConstantDecoder(GUARDIAN_REMOVED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link GuardianRemovedEvent} event data. */\nexport function getGuardianRemovedEventCodec(): FixedSizeCodec<GuardianRemovedEventArgs, GuardianRemovedEvent> {\n return combineCodec(getGuardianRemovedEventEncoder(), getGuardianRemovedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link GuardianRemovedEvent} event data. */\nexport function parseGuardianRemovedEvent(data: ReadonlyUint8Array | Uint8Array): GuardianRemovedEvent {\n if (containsBytes(data, GUARDIAN_REMOVED_EVENT_DISCRIMINATOR, 0)) {\n return getGuardianRemovedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"GuardianRemovedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const GUARDIAN_VOTE_AUTHORITY_ROTATED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 182, 81, 245, 184, 174, 85, 224, 213,\n]);\n\nexport function getGuardianVoteAuthorityRotatedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(GUARDIAN_VOTE_AUTHORITY_ROTATED_EVENT_DISCRIMINATOR);\n}\n\nexport type GuardianVoteAuthorityRotatedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: bigint;\n /** The guardian's authority key. */\n guardian: Address;\n /** Vote authority before the rotation. */\n oldVoteAuthority: Address;\n /** Vote authority after the rotation. */\n newVoteAuthority: Address;\n};\n\nexport type GuardianVoteAuthorityRotatedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the config's event sequence. */\n seq: number | bigint;\n /** The guardian's authority key. */\n guardian: Address | HasAddress;\n /** Vote authority before the rotation. */\n oldVoteAuthority: Address | HasAddress;\n /** Vote authority after the rotation. */\n newVoteAuthority: Address | HasAddress;\n};\n\n/** Gets the encoder for {@link GuardianVoteAuthorityRotatedEventArgs} event data. */\nexport function getGuardianVoteAuthorityRotatedEventEncoder(): FixedSizeEncoder<GuardianVoteAuthorityRotatedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['guardian', getAddressEncoder()],\n ['oldVoteAuthority', getAddressEncoder()],\n ['newVoteAuthority', getAddressEncoder()],\n ]),\n [getConstantEncoder(GUARDIAN_VOTE_AUTHORITY_ROTATED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link GuardianVoteAuthorityRotatedEvent} event data. */\nexport function getGuardianVoteAuthorityRotatedEventDecoder(): FixedSizeDecoder<GuardianVoteAuthorityRotatedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['guardian', getAddressDecoder()],\n ['oldVoteAuthority', getAddressDecoder()],\n ['newVoteAuthority', getAddressDecoder()],\n ]),\n [getConstantDecoder(GUARDIAN_VOTE_AUTHORITY_ROTATED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link GuardianVoteAuthorityRotatedEvent} event data. */\nexport function getGuardianVoteAuthorityRotatedEventCodec(): FixedSizeCodec<\n GuardianVoteAuthorityRotatedEventArgs,\n GuardianVoteAuthorityRotatedEvent\n> {\n return combineCodec(getGuardianVoteAuthorityRotatedEventEncoder(), getGuardianVoteAuthorityRotatedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link GuardianVoteAuthorityRotatedEvent} event data. */\nexport function parseGuardianVoteAuthorityRotatedEvent(\n data: ReadonlyUint8Array | Uint8Array,\n): GuardianVoteAuthorityRotatedEvent {\n if (containsBytes(data, GUARDIAN_VOTE_AUTHORITY_ROTATED_EVENT_DISCRIMINATOR, 0)) {\n return getGuardianVoteAuthorityRotatedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"GuardianVoteAuthorityRotatedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n type Codec,\n type Decoder,\n type Encoder,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n getReleaseResolutionDecoder,\n getReleaseResolutionEncoder,\n type ReleaseResolution,\n type ReleaseResolutionArgs,\n} from '../types';\n\nexport const RELEASE_APPROVED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 246, 7, 17, 99, 160, 10, 151, 253,\n]);\n\nexport function getReleaseApprovedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(RELEASE_APPROVED_EVENT_DISCRIMINATOR);\n}\n\nexport type ReleaseApprovedEvent = {\n /** The release as it resolved. */\n resolution: ReleaseResolution;\n};\n\nexport type ReleaseApprovedEventArgs = {\n /** The release as it resolved. */\n resolution: ReleaseResolutionArgs;\n};\n\n/** Gets the encoder for {@link ReleaseApprovedEventArgs} event data. */\nexport function getReleaseApprovedEventEncoder(): Encoder<ReleaseApprovedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['resolution', getReleaseResolutionEncoder()]]), [\n getConstantEncoder(RELEASE_APPROVED_EVENT_DISCRIMINATOR),\n ]);\n}\n\n/** Gets the decoder for {@link ReleaseApprovedEvent} event data. */\nexport function getReleaseApprovedEventDecoder(): Decoder<ReleaseApprovedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['resolution', getReleaseResolutionDecoder()]]), [\n getConstantDecoder(RELEASE_APPROVED_EVENT_DISCRIMINATOR),\n ]);\n}\n\n/** Gets the codec for {@link ReleaseApprovedEvent} event data. */\nexport function getReleaseApprovedEventCodec(): Codec<ReleaseApprovedEventArgs, ReleaseApprovedEvent> {\n return combineCodec(getReleaseApprovedEventEncoder(), getReleaseApprovedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReleaseApprovedEvent} event data. */\nexport function parseReleaseApprovedEvent(data: ReadonlyUint8Array | Uint8Array): ReleaseApprovedEvent {\n if (containsBytes(data, RELEASE_APPROVED_EVENT_DISCRIMINATOR, 0)) {\n return getReleaseApprovedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ReleaseApprovedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const RELEASE_CANCELLED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 107, 100, 38, 206, 48, 27, 92, 178,\n]);\n\nexport function getReleaseCancelledEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(RELEASE_CANCELLED_EVENT_DISCRIMINATOR);\n}\n\nexport type ReleaseCancelledEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** Version code of the cancelled release. */\n versionCode: number;\n};\n\nexport type ReleaseCancelledEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** Version code of the cancelled release. */\n versionCode: number;\n};\n\n/** Gets the encoder for {@link ReleaseCancelledEventArgs} event data. */\nexport function getReleaseCancelledEventEncoder(): FixedSizeEncoder<ReleaseCancelledEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['versionCode', getU32Encoder()],\n ]),\n [getConstantEncoder(RELEASE_CANCELLED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ReleaseCancelledEvent} event data. */\nexport function getReleaseCancelledEventDecoder(): FixedSizeDecoder<ReleaseCancelledEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['versionCode', getU32Decoder()],\n ]),\n [getConstantDecoder(RELEASE_CANCELLED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ReleaseCancelledEvent} event data. */\nexport function getReleaseCancelledEventCodec(): FixedSizeCodec<ReleaseCancelledEventArgs, ReleaseCancelledEvent> {\n return combineCodec(getReleaseCancelledEventEncoder(), getReleaseCancelledEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReleaseCancelledEvent} event data. */\nexport function parseReleaseCancelledEvent(data: ReadonlyUint8Array | Uint8Array): ReleaseCancelledEvent {\n if (containsBytes(data, RELEASE_CANCELLED_EVENT_DISCRIMINATOR, 0)) {\n return getReleaseCancelledEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ReleaseCancelledEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const RELEASE_EXPIRED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 185, 185, 92, 34, 95, 198, 124, 51,\n]);\n\nexport function getReleaseExpiredEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(RELEASE_EXPIRED_EVENT_DISCRIMINATOR);\n}\n\nexport type ReleaseExpiredEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** Version code of the expired release. */\n versionCode: number;\n};\n\nexport type ReleaseExpiredEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** Version code of the expired release. */\n versionCode: number;\n};\n\n/** Gets the encoder for {@link ReleaseExpiredEventArgs} event data. */\nexport function getReleaseExpiredEventEncoder(): FixedSizeEncoder<ReleaseExpiredEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['versionCode', getU32Encoder()],\n ]),\n [getConstantEncoder(RELEASE_EXPIRED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ReleaseExpiredEvent} event data. */\nexport function getReleaseExpiredEventDecoder(): FixedSizeDecoder<ReleaseExpiredEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['versionCode', getU32Decoder()],\n ]),\n [getConstantDecoder(RELEASE_EXPIRED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ReleaseExpiredEvent} event data. */\nexport function getReleaseExpiredEventCodec(): FixedSizeCodec<ReleaseExpiredEventArgs, ReleaseExpiredEvent> {\n return combineCodec(getReleaseExpiredEventEncoder(), getReleaseExpiredEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReleaseExpiredEvent} event data. */\nexport function parseReleaseExpiredEvent(data: ReadonlyUint8Array | Uint8Array): ReleaseExpiredEvent {\n if (containsBytes(data, RELEASE_EXPIRED_EVENT_DISCRIMINATOR, 0)) {\n return getReleaseExpiredEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ReleaseExpiredEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const RELEASE_PROPOSED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 245, 225, 27, 20, 64, 160, 146, 183,\n]);\n\nexport function getReleaseProposedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(RELEASE_PROPOSED_EVENT_DISCRIMINATOR);\n}\n\nexport type ReleaseProposedEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** Version code of the finalized release. */\n versionCode: number;\n /** The config's policy bundle hash at finalize. Votes must match it. */\n policyBundleHash: ReadonlyUint8Array;\n};\n\nexport type ReleaseProposedEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** Version code of the finalized release. */\n versionCode: number;\n /** The config's policy bundle hash at finalize. Votes must match it. */\n policyBundleHash: ReadonlyUint8Array;\n};\n\n/** Gets the encoder for {@link ReleaseProposedEventArgs} event data. */\nexport function getReleaseProposedEventEncoder(): FixedSizeEncoder<ReleaseProposedEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['versionCode', getU32Encoder()],\n ['policyBundleHash', fixEncoderSize(getBytesEncoder(), 32)],\n ]),\n [getConstantEncoder(RELEASE_PROPOSED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link ReleaseProposedEvent} event data. */\nexport function getReleaseProposedEventDecoder(): FixedSizeDecoder<ReleaseProposedEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['versionCode', getU32Decoder()],\n ['policyBundleHash', fixDecoderSize(getBytesDecoder(), 32)],\n ]),\n [getConstantDecoder(RELEASE_PROPOSED_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link ReleaseProposedEvent} event data. */\nexport function getReleaseProposedEventCodec(): FixedSizeCodec<ReleaseProposedEventArgs, ReleaseProposedEvent> {\n return combineCodec(getReleaseProposedEventEncoder(), getReleaseProposedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReleaseProposedEvent} event data. */\nexport function parseReleaseProposedEvent(data: ReadonlyUint8Array | Uint8Array): ReleaseProposedEvent {\n if (containsBytes(data, RELEASE_PROPOSED_EVENT_DISCRIMINATOR, 0)) {\n return getReleaseProposedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ReleaseProposedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixEncoderSize,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n type Codec,\n type Decoder,\n type Encoder,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n getReleaseResolutionDecoder,\n getReleaseResolutionEncoder,\n type ReleaseResolution,\n type ReleaseResolutionArgs,\n} from '../types';\n\nexport const RELEASE_REJECTED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 144, 93, 149, 105, 200, 85, 92, 126,\n]);\n\nexport function getReleaseRejectedEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(RELEASE_REJECTED_EVENT_DISCRIMINATOR);\n}\n\nexport type ReleaseRejectedEvent = {\n /** The release as it resolved. */\n resolution: ReleaseResolution;\n};\n\nexport type ReleaseRejectedEventArgs = {\n /** The release as it resolved. */\n resolution: ReleaseResolutionArgs;\n};\n\n/** Gets the encoder for {@link ReleaseRejectedEventArgs} event data. */\nexport function getReleaseRejectedEventEncoder(): Encoder<ReleaseRejectedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['resolution', getReleaseResolutionEncoder()]]), [\n getConstantEncoder(RELEASE_REJECTED_EVENT_DISCRIMINATOR),\n ]);\n}\n\n/** Gets the decoder for {@link ReleaseRejectedEvent} event data. */\nexport function getReleaseRejectedEventDecoder(): Decoder<ReleaseRejectedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['resolution', getReleaseResolutionDecoder()]]), [\n getConstantDecoder(RELEASE_REJECTED_EVENT_DISCRIMINATOR),\n ]);\n}\n\n/** Gets the codec for {@link ReleaseRejectedEvent} event data. */\nexport function getReleaseRejectedEventCodec(): Codec<ReleaseRejectedEventArgs, ReleaseRejectedEvent> {\n return combineCodec(getReleaseRejectedEventEncoder(), getReleaseRejectedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReleaseRejectedEvent} event data. */\nexport function parseReleaseRejectedEvent(data: ReadonlyUint8Array | Uint8Array): ReleaseRejectedEvent {\n if (containsBytes(data, RELEASE_REJECTED_EVENT_DISCRIMINATOR, 0)) {\n return getReleaseRejectedEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"ReleaseRejectedEvent\" event discriminators.');\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n containsBytes,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getBooleanDecoder,\n getBooleanEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getConstantDecoder,\n getConstantEncoder,\n getHiddenPrefixDecoder,\n getHiddenPrefixEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport { getVoteFindingDecoder, getVoteFindingEncoder, type VoteFinding, type VoteFindingArgs } from '../types';\n\nexport const VOTE_CAST_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([39, 53, 195, 104, 188, 17, 225, 213]);\n\nexport function getVoteCastEventDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(VOTE_CAST_EVENT_DISCRIMINATOR);\n}\n\nexport type VoteCastEvent = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: bigint;\n /** The app account. */\n app: Address;\n /** Version code the vote is for. */\n versionCode: number;\n /** Authority key of the voting guardian. */\n guardian: Address;\n /** `true` to approve, `false` to reject. */\n approve: boolean;\n /** Fingerprint of the policy bundle the guardian ran (sha256 of the borsh-encoded bundle). */\n policyBundleHash: ReadonlyUint8Array;\n /** The guardian's findings under that bundle. */\n findings: Array<VoteFinding>;\n};\n\nexport type VoteCastEventArgs = {\n /** This event's `VERSION`. */\n version: number;\n /** Position in the app's event sequence. */\n seq: number | bigint;\n /** The app account. */\n app: Address | HasAddress;\n /** Version code the vote is for. */\n versionCode: number;\n /** Authority key of the voting guardian. */\n guardian: Address | HasAddress;\n /** `true` to approve, `false` to reject. */\n approve: boolean;\n /** Fingerprint of the policy bundle the guardian ran (sha256 of the borsh-encoded bundle). */\n policyBundleHash: ReadonlyUint8Array;\n /** The guardian's findings under that bundle. */\n findings: Array<VoteFindingArgs>;\n};\n\n/** Gets the encoder for {@link VoteCastEventArgs} event data. */\nexport function getVoteCastEventEncoder(): Encoder<VoteCastEventArgs> {\n return getHiddenPrefixEncoder(\n getStructEncoder([\n ['version', getU8Encoder()],\n ['seq', getU64Encoder()],\n ['app', getAddressEncoder()],\n ['versionCode', getU32Encoder()],\n ['guardian', getAddressEncoder()],\n ['approve', getBooleanEncoder()],\n ['policyBundleHash', fixEncoderSize(getBytesEncoder(), 32)],\n ['findings', getArrayEncoder(getVoteFindingEncoder())],\n ]),\n [getConstantEncoder(VOTE_CAST_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the decoder for {@link VoteCastEvent} event data. */\nexport function getVoteCastEventDecoder(): Decoder<VoteCastEvent> {\n return getHiddenPrefixDecoder(\n getStructDecoder([\n ['version', getU8Decoder()],\n ['seq', getU64Decoder()],\n ['app', getAddressDecoder()],\n ['versionCode', getU32Decoder()],\n ['guardian', getAddressDecoder()],\n ['approve', getBooleanDecoder()],\n ['policyBundleHash', fixDecoderSize(getBytesDecoder(), 32)],\n ['findings', getArrayDecoder(getVoteFindingDecoder())],\n ]),\n [getConstantDecoder(VOTE_CAST_EVENT_DISCRIMINATOR)],\n );\n}\n\n/** Gets the codec for {@link VoteCastEvent} event data. */\nexport function getVoteCastEventCodec(): Codec<VoteCastEventArgs, VoteCastEvent> {\n return combineCodec(getVoteCastEventEncoder(), getVoteCastEventDecoder());\n}\n\n/** Parses the provided bytes into {@link VoteCastEvent} event data. */\nexport function parseVoteCastEvent(data: ReadonlyUint8Array | Uint8Array): VoteCastEvent {\n if (containsBytes(data, VOTE_CAST_EVENT_DISCRIMINATOR, 0)) {\n return getVoteCastEventDecoder().decode(data);\n }\n throw new Error('The provided data does not match the \"VoteCastEvent\" event discriminators.');\n}\n","import {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n type Codec,\n combineCodec,\n createDecoder,\n type Decoder,\n type Encoder,\n fixCodecSize,\n getArrayCodec,\n getBytesCodec,\n getConstantCodec,\n getHiddenPrefixCodec,\n getNullableEncoder,\n getStructCodec,\n getU32Codec,\n getU32Decoder,\n getU32Encoder,\n getU8Decoder,\n getUtf8Decoder,\n getUtf8Encoder,\n type ReadonlyUint8Array,\n transformCodec,\n} from '@solana/kit';\n\n/** An off-chain file and the sha256 its bytes must match. */\nexport type Artifact = {\n /** Where to fetch the file. */\n uri: string;\n /** sha256 the fetched bytes must match, 32 bytes. */\n sha256: ReadonlyUint8Array;\n};\n\n/**\n * The release manifest a publisher uploads with `write_release_manifest` and guardians vote on.\n * `__kind` is the schema version. The encoding is specified in `docs/manifest.md`. Different from\n * `ReleaseManifest`, the program's account record of a proposed release, its manifest bytes, and\n * its votes.\n */\nexport type Manifest = { __kind: 'V1' } & ManifestV1;\n\n/** Schema version 1 of a {@link Manifest}. */\nexport type ManifestV1 = {\n /** Android `versionCode`. Must equal the release's on-chain `version_code`. */\n versionCode: number;\n /** Android package name, e.g. `com.example.app`. */\n package: string;\n /** Android `versionName`. */\n versionName: string;\n /** Android `minSdkVersion`. */\n minSdk: number;\n /** Android permissions the APK requests. */\n permissions: string[];\n /** The APK. */\n apk: Artifact;\n /** URL of the terms and conditions. */\n terms: string;\n /** URL of the privacy policy. */\n privacy: string;\n /** sha256 of the APK's signing certificate, 32 bytes. Must equal the release's on-chain `certificate_sha256`. */\n certificateSha256: ReadonlyUint8Array;\n /** The publisher's website URL, or `null`. */\n publisherSite: string | null;\n};\n\n/**\n * Manifest bytes per `write_release_manifest` transaction, leaving headroom in a 1232-byte legacy\n * transaction with two signers.\n */\nexport const DEFAULT_MANIFEST_CHUNK = 800;\n\n/** One `write_release_manifest` upload: `bytes` go at byte `offset` of the encoded manifest. */\nexport type ManifestChunk = {\n offset: number;\n bytes: ReadonlyUint8Array;\n};\n\n/**\n * Splits an encoded manifest into upload chunks of at most `chunkSize` bytes, in order, each with\n * its byte offset. An empty manifest gives one empty chunk, so a write still starts its release.\n * Throws if `chunkSize` is not a positive integer.\n */\nexport function getManifestChunks(\n manifest: ReadonlyUint8Array,\n chunkSize: number = DEFAULT_MANIFEST_CHUNK,\n): ManifestChunk[] {\n if (!Number.isInteger(chunkSize) || chunkSize <= 0) {\n throw new Error(`chunk size must be a positive integer, got ${chunkSize}`);\n }\n if (manifest.length === 0) return [{ offset: 0, bytes: manifest }];\n const chunks: ManifestChunk[] = [];\n for (let offset = 0; offset < manifest.length; offset += chunkSize) {\n chunks.push({ offset, bytes: manifest.subarray(offset, offset + chunkSize) });\n }\n return chunks;\n}\n\n/**\n * The sha256 of an encoded manifest, which `propose_release` takes as `manifestHash`. Finalizing\n * fails with `ManifestHashMismatch` unless the uploaded bytes hash to it.\n */\nexport async function getManifestHash(manifest: ReadonlyUint8Array): Promise<Uint8Array> {\n return new Uint8Array(await crypto.subtle.digest('SHA-256', new Uint8Array(manifest)));\n}\n\nconst SCHEMA_V1 = new Uint8Array([1]);\n\n/** Encodes a {@link Manifest}. See {@link getManifestCodec}. */\nexport function getManifestEncoder(): Encoder<Manifest> {\n return getManifestCodec();\n}\n\n/** Decodes a {@link Manifest}. See {@link getManifestCodec}. */\nexport function getManifestDecoder(): Decoder<Manifest> {\n return getManifestCodec();\n}\n\n/**\n * The borsh encoding of a {@link Manifest}, the bytes `write_release_manifest` uploads and the\n * on-chain manifest hash covers. Like the Rust decoder in `tools/manifest`, decoding throws on an\n * unknown schema version, an option tag other than 0 or 1, invalid UTF-8, a truncated field, or\n * trailing bytes, so each manifest has one encoding.\n */\nexport function getManifestCodec(): Codec<Manifest> {\n const v1 = getHiddenPrefixCodec(\n getStructCodec([\n ['versionCode', getU32Codec()],\n ['package', getStringCodec()],\n ['versionName', getStringCodec()],\n ['minSdk', getU32Codec()],\n ['permissions', getArrayCodec(getStringCodec())],\n [\n 'apk',\n getStructCodec([\n ['uri', getStringCodec()],\n ['sha256', getDigestCodec()],\n ]),\n ],\n ['terms', getStringCodec()],\n ['privacy', getStringCodec()],\n ['certificateSha256', getDigestCodec()],\n [\n 'publisherSite',\n combineCodec(getNullableEncoder(getStringCodec()), getStrictNullableDecoder(getStringCodec())),\n ],\n ]),\n [getConstantCodec(SCHEMA_V1)],\n );\n const manifest = transformCodec(\n v1,\n ({ __kind: _kind, ...fields }: Manifest) => fields,\n (fields): Manifest => ({ __kind: 'V1', ...fields }),\n );\n return combineCodec(manifest, rejectTrailingBytes(manifest));\n}\n\nfunction getStringCodec(): Codec<string> {\n return combineCodec(\n addEncoderSizePrefix(getUtf8Encoder({ fatal: true }), getU32Encoder()),\n addDecoderSizePrefix(\n getUtf8Decoder({ fatal: true, ignoreBOM: true, removeNullCharacters: false }),\n getU32Decoder(),\n ),\n );\n}\n\nfunction getDigestCodec(): Codec<ReadonlyUint8Array> {\n return fixCodecSize(getBytesCodec(), 32);\n}\n\nfunction getStrictNullableDecoder<T>(item: Decoder<T>): Decoder<T | null> {\n return createDecoder({\n read(bytes, offset) {\n const [tag, next] = getU8Decoder().read(bytes, offset);\n if (tag === 0) return [null, next];\n if (tag === 1) return item.read(bytes, next);\n throw new Error(`invalid option tag ${tag} at byte ${offset}`);\n },\n });\n}\n\nfunction rejectTrailingBytes<T>(decoder: Decoder<T>): Decoder<T> {\n return createDecoder({\n read(bytes, offset) {\n const [value, end] = decoder.read(bytes, offset);\n if (end !== bytes.length) throw new Error(`${bytes.length - end} trailing bytes after the manifest`);\n return [value, end];\n },\n });\n}\n","import type { ReadonlyUint8Array } from '@solana/kit';\n\nimport type { AppAccount, GuardiansConfig, ReleaseManifest } from './generated';\n\n/** The release in `app`'s pending slot, or `null` when the slot is empty. */\nexport function getPendingRelease(app: Pick<AppAccount, 'pendingRelease'>): ReleaseManifest | null {\n return app.pendingRelease.__kind === 'Pending' ? app.pendingRelease.fields[0] : null;\n}\n\n/** A resolved release that still takes late votes, which holds the app's next release. */\nexport type LateVoteWindow = {\n /** Cluster unix time, in seconds, at which the window closes. */\n closesAt: bigint;\n /** Votes cast so far, including late ones. */\n votesCast: number;\n /** Guardians in the set the release resolved under. */\n guardians: number;\n};\n\n/**\n * The late-vote window `pending` is in at cluster time `now` (unix seconds), or `null` when it\n * takes no more late votes. While it is open, the program refuses the app's next\n * `write_release_manifest` and `propose_release` with `VoteWindowOpen`. A window is open while\n * `now` is before `quorumTs + config.voteWindow`, the guardian set hasn't changed since the\n * release's round, and some guardian hasn't voted.\n */\nexport function getLateVoteWindow(\n pending: ReleaseManifest | null,\n config: Pick<GuardiansConfig, 'guardians' | 'updateNonce' | 'voteWindow'>,\n now: bigint,\n): LateVoteWindow | null {\n if (!pending?.resolved) {\n return null;\n }\n const closesAt = pending.quorumTs + BigInt(config.voteWindow);\n const open =\n now < closesAt && pending.guardianNonce === config.updateNonce && pending.votes.size < config.guardians.size;\n return open ? { closesAt, votesCast: pending.votes.size, guardians: config.guardians.size } : null;\n}\n\n/** What proposing a version takes next, per {@link getReleaseProposalStep}. */\nexport type ReleaseProposalStep =\n /**\n * Write the manifest, then propose it. `written` is the buffer an unfinished upload of the same\n * version and length left, which the writes may build on; `null` when the upload starts fresh.\n */\n | { kind: 'write'; written: ReadonlyUint8Array | null }\n /**\n * Cancel the release in the slot first: an older version's unresolved round or unfinished\n * upload, or an unfinished upload of this version with another length. Only the app authority\n * may cancel.\n */\n | { kind: 'cancelFirst' }\n /** The version is at or below the app's last resolved version, so it can't be proposed. */\n | { kind: 'spent' }\n /**\n * The version is already proposed, or a newer version holds the slot, as a round or an\n * unfinished upload. The app authority could cancel the newer one, but a proposal never\n * displaces a newer version.\n */\n | { kind: 'underReview'; pendingVersionCode: number }\n /** The last release still takes late votes; propose after the window closes. */\n | { kind: 'waitForLateVotes'; window: LateVoteWindow };\n\n/**\n * What proposing `versionCode`, with a manifest of `manifestLength` bytes, takes next under `app`\n * (`null` before it is registered). `clock` (the guardian config and cluster time) decides\n * whether a resolved release still holds the slot, and is needed only when the app has one.\n */\nexport function getReleaseProposalStep(\n app: Pick<AppAccount, 'lastResolvedVersion' | 'pendingRelease'> | null,\n versionCode: number,\n manifestLength: number,\n clock: { config: Pick<GuardiansConfig, 'guardians' | 'updateNonce' | 'voteWindow'>; now: bigint } | null,\n): ReleaseProposalStep {\n if (!app) {\n return { kind: 'write', written: null };\n }\n if (versionCode <= app.lastResolvedVersion) {\n return { kind: 'spent' };\n }\n const pending = getPendingRelease(app);\n if (!pending) {\n return { kind: 'write', written: null };\n }\n if (pending.resolved) {\n if (!clock) {\n throw new Error('The guardian config and cluster time are needed when a resolved release holds the slot');\n }\n const window = getLateVoteWindow(pending, clock.config, clock.now);\n return window ? { kind: 'waitForLateVotes', window } : { kind: 'write', written: null };\n }\n if (versionCode < pending.versionCode || (versionCode === pending.versionCode && pending.finalized)) {\n return { kind: 'underReview', pendingVersionCode: pending.versionCode };\n }\n if (versionCode > pending.versionCode || pending.data.length !== manifestLength) {\n return { kind: 'cancelFirst' };\n }\n return { kind: 'write', written: pending.data };\n}\n"]}