@ar.io/sdk 3.24.0 → 4.0.0-solana.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +143 -23
- package/lib/esm/cli/cli.js +200 -40
- package/lib/esm/cli/commands/antCommands.js +40 -14
- package/lib/esm/cli/commands/arnsPurchaseCommands.js +46 -7
- package/lib/esm/cli/commands/escrowCommands.js +208 -0
- package/lib/esm/cli/commands/gatewayWriteCommands.js +132 -22
- package/lib/esm/cli/commands/pruneCommands.js +166 -0
- package/lib/esm/cli/commands/readCommands.js +10 -2
- package/lib/esm/cli/commands/transfer.js +6 -6
- package/lib/esm/cli/options.js +141 -2
- package/lib/esm/cli/utils.js +280 -39
- package/lib/esm/common/ant-registry.js +25 -3
- package/lib/esm/common/ant.js +50 -5
- package/lib/esm/common/contracts/ao-process.js +4 -6
- package/lib/esm/common/io.js +41 -0
- package/lib/esm/common/marketplace.js +24 -79
- package/lib/esm/constants.js +13 -1
- package/lib/esm/solana/ant-readable.js +387 -0
- package/lib/esm/solana/ant-registry-readable.js +118 -0
- package/lib/esm/solana/ant-registry-writeable.js +457 -0
- package/lib/esm/solana/ant-writeable.js +352 -0
- package/lib/esm/solana/ata.js +55 -0
- package/lib/esm/solana/canonical-message.js +92 -0
- package/lib/esm/solana/clusters.js +62 -0
- package/lib/esm/solana/constants.js +130 -0
- package/lib/esm/solana/delegation-math.js +63 -0
- package/lib/esm/solana/deserialize.js +1182 -0
- package/lib/esm/solana/escrow.js +797 -0
- package/lib/esm/solana/events.js +210 -0
- package/lib/esm/solana/funding-plan.js +682 -0
- package/lib/esm/solana/generated/ant/events/aclEntryAddedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/aclEntryRemovedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/antMetadataUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/antReconciledEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/antTransferredEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/attributesClearedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/attributesSyncedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/controllerAddedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/controllerRemovedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/index.js +16 -0
- package/lib/esm/solana/generated/ant/events/recordMetadataPrunedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/recordMetadataRemovedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/recordMetadataUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/recordRemovedEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/recordSetEvent.js +21 -0
- package/lib/esm/solana/generated/ant/events/recordTransferredEvent.js +21 -0
- package/lib/esm/solana/generated/ant-escrow/events/escrowCancelledEvent.js +21 -0
- package/lib/esm/solana/generated/ant-escrow/events/escrowClaimedEvent.js +21 -0
- package/lib/esm/solana/generated/ant-escrow/events/escrowDepositedEvent.js +21 -0
- package/lib/esm/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/ant-escrow/events/index.js +5 -0
- package/lib/esm/solana/generated/arns/events/demandFactorUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/index.js +13 -0
- package/lib/esm/solana/generated/arns/events/leaseExtendedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/namePurchasedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/nameReassignedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/nameReleasedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/nameReservedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/nameUnreservedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/nameUpgradedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/namesPrunedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/reservedNameClaimedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/returnedNamePurchasedEvent.js +21 -0
- package/lib/esm/solana/generated/arns/events/undernameIncreasedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/configUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/coreMigrationFinalizedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/index.js +14 -0
- package/lib/esm/solana/generated/core/events/primaryNameRemovedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/primaryNameRequestExpiredEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/primaryNameRequestedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/primaryNameSetEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/supplyFinalizedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/transferEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/vaultCreatedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/vaultExtendedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/vaultIncreasedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/vaultReleasedEvent.js +21 -0
- package/lib/esm/solana/generated/core/events/vaultRevokedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/allowlistToggledEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/delegateAllowlistedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/delegationClosedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/delegationDecreasedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/delegationEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/epochClosedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/epochCreatedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/epochDistributedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/epochPrescribedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/epochWeightsTalliedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/epochsToggledEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/fundingPlanAppliedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/garMigrationFinalizedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/gatewayFinalizedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/gatewayJoinedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/gatewayLeavingEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/gatewayPrunedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/index.js +31 -0
- package/lib/esm/solana/generated/gar/events/instantWithdrawalEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/observationSubmittedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/observerAddressUpdatedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/operatorStakeIncreasedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/redelegationEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/residueVaultCreatedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/rewardsCompoundedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/stakePaymentEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/withdrawalCancelledEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/withdrawalClaimedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/withdrawalCreatedEvent.js +21 -0
- package/lib/esm/solana/generated/gar/events/withdrawalPaymentEvent.js +21 -0
- package/lib/esm/solana/generated/mpl-core/accounts/assetV1.js +42 -0
- package/lib/esm/solana/generated/mpl-core/accounts/collectionV1.js +42 -0
- package/lib/esm/solana/generated/mpl-core/accounts/hashedAssetV1.js +45 -0
- package/lib/esm/solana/generated/mpl-core/accounts/index.js +12 -0
- package/lib/esm/solana/generated/mpl-core/accounts/pluginHeaderV1.js +45 -0
- package/lib/esm/solana/generated/mpl-core/accounts/pluginRegistryV1.js +42 -0
- package/lib/esm/solana/generated/mpl-core/errors/index.js +8 -0
- package/lib/esm/solana/generated/mpl-core/errors/mplCore.js +136 -0
- package/lib/esm/solana/generated/mpl-core/index.js +8 -0
- package/lib/esm/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/addPluginV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/burnCollectionV1.js +49 -0
- package/lib/esm/solana/generated/mpl-core/instructions/burnV1.js +49 -0
- package/lib/esm/solana/generated/mpl-core/instructions/collect.js +42 -0
- package/lib/esm/solana/generated/mpl-core/instructions/compressV1.js +50 -0
- package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV2.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/createV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/createV2.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/decompressV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/executeV1.js +56 -0
- package/lib/esm/solana/generated/mpl-core/instructions/index.js +40 -0
- package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/removePluginV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/transferV1.js +49 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +45 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionV1.js +52 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updatePluginV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/updateV2.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +53 -0
- package/lib/esm/solana/generated/mpl-core/program-address.js +1 -0
- package/lib/esm/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/addBlocker.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/agentIdentity.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/agentIdentityInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/appData.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/appDataInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/appDataUpdateInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/attribute.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/attributes.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/authority.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/autograph.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/autographSignature.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/bubblegumV2.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/burnDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/closeGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/compressionProof.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/creator.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/dataSection.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/dataSectionInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/dataState.js +23 -0
- package/lib/esm/solana/generated/mpl-core/types/edition.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/externalCheckResult.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapter.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterKey.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterType.js +28 -0
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/externalRegistryRecord.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/externalValidationResult.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/extraAccount.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/freezeDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/freezeExecute.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/groups.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/hashablePluginSchema.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/hashedAssetSchema.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/hookableLifecycleEvent.js +26 -0
- package/lib/esm/solana/generated/mpl-core/types/immutableMetadata.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/index.js +89 -0
- package/lib/esm/solana/generated/mpl-core/types/key.js +28 -0
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHook.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedAppData.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedDataKey.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHook.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/masterEdition.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/oracle.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/oracleInitInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/oracleUpdateInfo.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/oracleValidation.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/permanentBurnDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/permanentFreezeDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/permanentFreezeExecute.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/permanentTransferDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/plugin.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/pluginAuthorityPair.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/pluginType.js +40 -0
- package/lib/esm/solana/generated/mpl-core/types/registryRecord.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/relationshipKind.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/royalties.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/ruleSet.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/seed.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/transferDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/updateAuthority.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/updateDelegate.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/updateGroupV1Args.js +17 -0
- package/lib/esm/solana/generated/mpl-core/types/updateType.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/validationResult.js +25 -0
- package/lib/esm/solana/generated/mpl-core/types/validationResultsOffset.js +24 -0
- package/lib/esm/solana/generated/mpl-core/types/verifiedCreators.js +18 -0
- package/lib/esm/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +17 -0
- package/lib/esm/solana/index.js +85 -0
- package/lib/esm/solana/instruction.js +24 -0
- package/lib/esm/solana/io-readable.js +1752 -0
- package/lib/esm/solana/io-writeable.js +2215 -0
- package/lib/esm/solana/json-rpc.js +74 -0
- package/lib/esm/solana/metadata.js +66 -0
- package/lib/esm/solana/mpl-core.js +142 -0
- package/lib/esm/solana/pda.js +317 -0
- package/lib/esm/solana/send.js +117 -0
- package/lib/esm/solana/spawn-ant.js +210 -0
- package/lib/esm/solana/types.js +1 -0
- package/lib/esm/types/ant.js +19 -7
- package/lib/esm/types/io.js +8 -1
- package/lib/esm/utils/ant.js +1 -0
- package/lib/esm/utils/ao.js +1 -0
- package/lib/esm/version.js +1 -1
- package/lib/types/cli/commands/antCommands.d.ts +2 -7
- package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +12 -0
- package/lib/types/cli/commands/escrowCommands.d.ts +62 -0
- package/lib/types/cli/commands/pruneCommands.d.ts +31 -0
- package/lib/types/cli/commands/readCommands.d.ts +2 -0
- package/lib/types/cli/options.d.ts +112 -0
- package/lib/types/cli/types.d.ts +6 -0
- package/lib/types/cli/utils.d.ts +43 -5
- package/lib/types/common/ant-registry.d.ts +41 -0
- package/lib/types/common/ant.d.ts +35 -2
- package/lib/types/common/contracts/ao-process.d.ts +2 -16
- package/lib/types/common/io.d.ts +42 -2
- package/lib/types/common/marketplace.d.ts +2 -14
- package/lib/types/constants.d.ts +11 -1
- package/lib/types/solana/ant-readable.d.ts +121 -0
- package/lib/types/solana/ant-registry-readable.d.ts +90 -0
- package/lib/types/solana/ant-registry-writeable.d.ts +234 -0
- package/lib/types/solana/ant-writeable.d.ts +162 -0
- package/lib/types/solana/ata.d.ts +29 -0
- package/lib/types/solana/canonical-message.d.ts +82 -0
- package/lib/types/solana/clusters.d.ts +62 -0
- package/lib/types/solana/constants.d.ts +103 -0
- package/lib/types/solana/delegation-math.d.ts +20 -0
- package/lib/types/solana/deserialize.d.ts +440 -0
- package/lib/types/solana/escrow.d.ts +403 -0
- package/lib/types/solana/events.d.ts +156 -0
- package/lib/types/solana/funding-plan.d.ts +210 -0
- package/lib/types/solana/generated/ant/events/aclEntryAddedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/aclEntryRemovedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/antMetadataUpdatedEvent.d.ts +28 -0
- package/lib/types/solana/generated/ant/events/antReconciledEvent.d.ts +28 -0
- package/lib/types/solana/generated/ant/events/antTransferredEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/attributesClearedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/attributesSyncedEvent.d.ts +24 -0
- package/lib/types/solana/generated/ant/events/controllerAddedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/controllerRemovedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/index.d.ts +15 -0
- package/lib/types/solana/generated/ant/events/recordMetadataPrunedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/recordMetadataRemovedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/recordMetadataUpdatedEvent.d.ts +28 -0
- package/lib/types/solana/generated/ant/events/recordRemovedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant/events/recordSetEvent.d.ts +34 -0
- package/lib/types/solana/generated/ant/events/recordTransferredEvent.d.ts +30 -0
- package/lib/types/solana/generated/ant-escrow/events/escrowCancelledEvent.d.ts +28 -0
- package/lib/types/solana/generated/ant-escrow/events/escrowClaimedEvent.d.ts +32 -0
- package/lib/types/solana/generated/ant-escrow/events/escrowDepositedEvent.d.ts +36 -0
- package/lib/types/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.d.ts +26 -0
- package/lib/types/solana/generated/ant-escrow/events/index.d.ts +4 -0
- package/lib/types/solana/generated/arns/events/demandFactorUpdatedEvent.d.ts +28 -0
- package/lib/types/solana/generated/arns/events/index.d.ts +12 -0
- package/lib/types/solana/generated/arns/events/leaseExtendedEvent.d.ts +32 -0
- package/lib/types/solana/generated/arns/events/namePurchasedEvent.d.ts +34 -0
- package/lib/types/solana/generated/arns/events/nameReassignedEvent.d.ts +28 -0
- package/lib/types/solana/generated/arns/events/nameReleasedEvent.d.ts +24 -0
- package/lib/types/solana/generated/arns/events/nameReservedEvent.d.ts +28 -0
- package/lib/types/solana/generated/arns/events/nameUnreservedEvent.d.ts +24 -0
- package/lib/types/solana/generated/arns/events/nameUpgradedEvent.d.ts +28 -0
- package/lib/types/solana/generated/arns/events/namesPrunedEvent.d.ts +26 -0
- package/lib/types/solana/generated/arns/events/reservedNameClaimedEvent.d.ts +24 -0
- package/lib/types/solana/generated/arns/events/returnedNamePurchasedEvent.d.ts +32 -0
- package/lib/types/solana/generated/arns/events/undernameIncreasedEvent.d.ts +32 -0
- package/lib/types/solana/generated/core/events/configUpdatedEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/coreMigrationFinalizedEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/index.d.ts +13 -0
- package/lib/types/solana/generated/core/events/primaryNameRemovedEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/primaryNameRequestExpiredEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/primaryNameRequestedEvent.d.ts +30 -0
- package/lib/types/solana/generated/core/events/primaryNameSetEvent.d.ts +24 -0
- package/lib/types/solana/generated/core/events/supplyFinalizedEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/transferEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/vaultCreatedEvent.d.ts +28 -0
- package/lib/types/solana/generated/core/events/vaultExtendedEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/vaultIncreasedEvent.d.ts +28 -0
- package/lib/types/solana/generated/core/events/vaultReleasedEvent.d.ts +26 -0
- package/lib/types/solana/generated/core/events/vaultRevokedEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/allowlistToggledEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/delegateAllowlistedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/delegationClosedEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/delegationDecreasedEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/delegationEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/epochClosedEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/epochCreatedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/epochDistributedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/epochPrescribedEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/epochWeightsTalliedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/epochsToggledEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/fundingPlanAppliedEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/garMigrationFinalizedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/gatewayFinalizedEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/gatewayJoinedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/gatewayLeavingEvent.d.ts +22 -0
- package/lib/types/solana/generated/gar/events/gatewayPrunedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/gatewaySettingsUpdatedEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/index.d.ts +30 -0
- package/lib/types/solana/generated/gar/events/instantWithdrawalEvent.d.ts +30 -0
- package/lib/types/solana/generated/gar/events/observationSubmittedEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/observerAddressUpdatedEvent.d.ts +24 -0
- package/lib/types/solana/generated/gar/events/operatorStakeIncreasedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/redelegationEvent.d.ts +30 -0
- package/lib/types/solana/generated/gar/events/residueVaultCreatedEvent.d.ts +30 -0
- package/lib/types/solana/generated/gar/events/rewardsCompoundedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/stakePaymentEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/withdrawalCancelledEvent.d.ts +30 -0
- package/lib/types/solana/generated/gar/events/withdrawalClaimedEvent.d.ts +26 -0
- package/lib/types/solana/generated/gar/events/withdrawalCreatedEvent.d.ts +28 -0
- package/lib/types/solana/generated/gar/events/withdrawalPaymentEvent.d.ts +28 -0
- package/lib/types/solana/generated/mpl-core/accounts/assetV1.d.ts +37 -0
- package/lib/types/solana/generated/mpl-core/accounts/collectionV1.d.ts +37 -0
- package/lib/types/solana/generated/mpl-core/accounts/hashedAssetV1.d.ts +30 -0
- package/lib/types/solana/generated/mpl-core/accounts/index.d.ts +12 -0
- package/lib/types/solana/generated/mpl-core/accounts/pluginHeaderV1.d.ts +30 -0
- package/lib/types/solana/generated/mpl-core/accounts/pluginRegistryV1.d.ts +31 -0
- package/lib/types/solana/generated/mpl-core/errors/index.d.ts +8 -0
- package/lib/types/solana/generated/mpl-core/errors/mplCore.d.ts +133 -0
- package/lib/types/solana/generated/mpl-core/index.d.ts +8 -0
- package/lib/types/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.d.ts +56 -0
- package/lib/types/solana/generated/mpl-core/instructions/addCollectionPluginV1.d.ts +59 -0
- package/lib/types/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/addPluginV1.d.ts +63 -0
- package/lib/types/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.d.ts +59 -0
- package/lib/types/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.d.ts +63 -0
- package/lib/types/solana/generated/mpl-core/instructions/burnCollectionV1.d.ts +52 -0
- package/lib/types/solana/generated/mpl-core/instructions/burnV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/collect.d.ts +39 -0
- package/lib/types/solana/generated/mpl-core/instructions/compressV1.d.ts +55 -0
- package/lib/types/solana/generated/mpl-core/instructions/createCollectionV1.d.ts +58 -0
- package/lib/types/solana/generated/mpl-core/instructions/createCollectionV2.d.ts +61 -0
- package/lib/types/solana/generated/mpl-core/instructions/createV1.d.ts +77 -0
- package/lib/types/solana/generated/mpl-core/instructions/createV2.d.ts +80 -0
- package/lib/types/solana/generated/mpl-core/instructions/decompressV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/executeV1.d.ts +63 -0
- package/lib/types/solana/generated/mpl-core/instructions/index.d.ts +40 -0
- package/lib/types/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.d.ts +56 -0
- package/lib/types/solana/generated/mpl-core/instructions/removeCollectionPluginV1.d.ts +56 -0
- package/lib/types/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/removePluginV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.d.ts +56 -0
- package/lib/types/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/transferV1.d.ts +64 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.d.ts +59 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionInfoV1.d.ts +47 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionPluginV1.d.ts +56 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionV1.d.ts +62 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.d.ts +63 -0
- package/lib/types/solana/generated/mpl-core/instructions/updatePluginV1.d.ts +60 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateV1.d.ts +66 -0
- package/lib/types/solana/generated/mpl-core/instructions/updateV2.d.ts +70 -0
- package/lib/types/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.d.ts +63 -0
- package/lib/types/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.d.ts +67 -0
- package/lib/types/solana/generated/mpl-core/program-address.d.ts +7 -0
- package/lib/types/solana/generated/mpl-core/types/addAssetsToGroupV1Args.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/addBlocker.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/addGroupsToGroupV1Args.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/agentIdentity.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/agentIdentityInitInfo.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/agentIdentityUpdateInfo.d.ts +20 -0
- package/lib/types/solana/generated/mpl-core/types/appData.d.ts +20 -0
- package/lib/types/solana/generated/mpl-core/types/appDataInitInfo.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/appDataUpdateInfo.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/attribute.d.ts +16 -0
- package/lib/types/solana/generated/mpl-core/types/attributes.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/authority.d.ts +29 -0
- package/lib/types/solana/generated/mpl-core/types/autograph.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/autographSignature.d.ts +16 -0
- package/lib/types/solana/generated/mpl-core/types/bubblegumV2.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/burnDelegate.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/closeGroupV1Args.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/compressionProof.d.ts +28 -0
- package/lib/types/solana/generated/mpl-core/types/creator.d.ts +16 -0
- package/lib/types/solana/generated/mpl-core/types/dataSection.d.ts +20 -0
- package/lib/types/solana/generated/mpl-core/types/dataSectionInitInfo.d.ts +20 -0
- package/lib/types/solana/generated/mpl-core/types/dataSectionUpdateInfo.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/dataState.d.ts +16 -0
- package/lib/types/solana/generated/mpl-core/types/edition.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/externalCheckResult.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapter.d.ts +66 -0
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.d.ts +66 -0
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterKey.d.ts +64 -0
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterSchema.d.ts +17 -0
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterType.d.ts +21 -0
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.d.ts +59 -0
- package/lib/types/solana/generated/mpl-core/types/externalRegistryRecord.d.ts +28 -0
- package/lib/types/solana/generated/mpl-core/types/externalValidationResult.d.ts +17 -0
- package/lib/types/solana/generated/mpl-core/types/extraAccount.d.ts +86 -0
- package/lib/types/solana/generated/mpl-core/types/freezeDelegate.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/freezeExecute.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/groups.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/hashablePluginSchema.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/hashedAssetSchema.d.ts +16 -0
- package/lib/types/solana/generated/mpl-core/types/hookableLifecycleEvent.d.ts +19 -0
- package/lib/types/solana/generated/mpl-core/types/immutableMetadata.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/index.d.ts +89 -0
- package/lib/types/solana/generated/mpl-core/types/key.d.ts +21 -0
- package/lib/types/solana/generated/mpl-core/types/lifecycleHook.d.ts +24 -0
- package/lib/types/solana/generated/mpl-core/types/lifecycleHookInitInfo.d.ts +28 -0
- package/lib/types/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/linkedAppData.d.ts +20 -0
- package/lib/types/solana/generated/mpl-core/types/linkedAppDataInitInfo.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/linkedDataKey.d.ts +31 -0
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHook.d.ts +24 -0
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.d.ts +28 -0
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/masterEdition.d.ts +21 -0
- package/lib/types/solana/generated/mpl-core/types/oracle.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/oracleInitInfo.d.ts +26 -0
- package/lib/types/solana/generated/mpl-core/types/oracleUpdateInfo.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/oracleValidation.d.ts +35 -0
- package/lib/types/solana/generated/mpl-core/types/permanentBurnDelegate.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/permanentFreezeDelegate.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/permanentFreezeExecute.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/permanentTransferDelegate.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/plugin.d.ts +150 -0
- package/lib/types/solana/generated/mpl-core/types/pluginAuthorityPair.d.ts +20 -0
- package/lib/types/solana/generated/mpl-core/types/pluginType.d.ts +33 -0
- package/lib/types/solana/generated/mpl-core/types/registryRecord.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/relationshipKind.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/royalties.d.ts +22 -0
- package/lib/types/solana/generated/mpl-core/types/ruleSet.d.ts +27 -0
- package/lib/types/solana/generated/mpl-core/types/seed.d.ts +36 -0
- package/lib/types/solana/generated/mpl-core/types/transferDelegate.d.ts +13 -0
- package/lib/types/solana/generated/mpl-core/types/updateAuthority.d.ts +27 -0
- package/lib/types/solana/generated/mpl-core/types/updateDelegate.d.ts +15 -0
- package/lib/types/solana/generated/mpl-core/types/updateGroupV1Args.d.ts +19 -0
- package/lib/types/solana/generated/mpl-core/types/updateType.d.ts +17 -0
- package/lib/types/solana/generated/mpl-core/types/validationResult.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/validationResultsOffset.d.ts +33 -0
- package/lib/types/solana/generated/mpl-core/types/verifiedCreators.d.ts +18 -0
- package/lib/types/solana/generated/mpl-core/types/verifiedCreatorsSignature.d.ts +16 -0
- package/lib/types/solana/index.d.ts +63 -0
- package/lib/types/solana/instruction.d.ts +24 -0
- package/lib/types/solana/io-readable.d.ts +360 -0
- package/lib/types/solana/io-writeable.d.ts +533 -0
- package/lib/types/solana/json-rpc.d.ts +32 -0
- package/lib/types/solana/metadata.d.ts +69 -0
- package/lib/types/solana/mpl-core.d.ts +76 -0
- package/lib/types/solana/pda.d.ts +95 -0
- package/lib/types/solana/send.d.ts +16 -0
- package/lib/types/solana/spawn-ant.d.ts +130 -0
- package/lib/types/solana/types.d.ts +67 -0
- package/lib/types/types/ant-registry.d.ts +39 -0
- package/lib/types/types/ant.d.ts +22 -4
- package/lib/types/types/io.d.ts +56 -1
- package/lib/types/version.d.ts +1 -1
- package/package.json +33 -16
- package/lib/cjs/cli/cli.js +0 -822
- package/lib/cjs/cli/commands/antCommands.js +0 -113
- package/lib/cjs/cli/commands/arnsPurchaseCommands.js +0 -212
- package/lib/cjs/cli/commands/gatewayWriteCommands.js +0 -210
- package/lib/cjs/cli/commands/readCommands.js +0 -215
- package/lib/cjs/cli/commands/transfer.js +0 -159
- package/lib/cjs/cli/options.js +0 -470
- package/lib/cjs/cli/types.js +0 -2
- package/lib/cjs/cli/utils.js +0 -639
- package/lib/cjs/common/ant-registry.js +0 -155
- package/lib/cjs/common/ant-versions.js +0 -93
- package/lib/cjs/common/ant.js +0 -1182
- package/lib/cjs/common/arweave.js +0 -27
- package/lib/cjs/common/contracts/ao-process.js +0 -224
- package/lib/cjs/common/error.js +0 -64
- package/lib/cjs/common/faucet.js +0 -150
- package/lib/cjs/common/hyperbeam/hb.js +0 -173
- package/lib/cjs/common/index.js +0 -42
- package/lib/cjs/common/io.js +0 -1423
- package/lib/cjs/common/logger.js +0 -83
- package/lib/cjs/common/loggers/winston.js +0 -68
- package/lib/cjs/common/marketplace.js +0 -731
- package/lib/cjs/common/turbo.js +0 -223
- package/lib/cjs/constants.js +0 -41
- package/lib/cjs/node/index.js +0 -39
- package/lib/cjs/package.json +0 -1
- package/lib/cjs/types/ant-registry.js +0 -2
- package/lib/cjs/types/ant.js +0 -168
- package/lib/cjs/types/common.js +0 -2
- package/lib/cjs/types/faucet.js +0 -2
- package/lib/cjs/types/index.js +0 -37
- package/lib/cjs/types/io.js +0 -51
- package/lib/cjs/types/token.js +0 -116
- package/lib/cjs/utils/ant.js +0 -108
- package/lib/cjs/utils/ao.js +0 -432
- package/lib/cjs/utils/arweave.js +0 -285
- package/lib/cjs/utils/base64.js +0 -62
- package/lib/cjs/utils/hash.js +0 -56
- package/lib/cjs/utils/index.js +0 -38
- package/lib/cjs/utils/json.js +0 -26
- package/lib/cjs/utils/processes.js +0 -173
- package/lib/cjs/utils/random.js +0 -30
- package/lib/cjs/utils/schema.js +0 -15
- package/lib/cjs/utils/url.js +0 -37
- package/lib/cjs/version.js +0 -20
- package/lib/cjs/web/index.js +0 -41
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana ANT-escrow and Token-escrow clients — `ario-ant-escrow` program.
|
|
3
|
+
*
|
|
4
|
+
* ANTEscrow holds a Metaplex Core ANT NFT in trustless custody and
|
|
5
|
+
* releases it after on-chain verification of an Arweave RSA-PSS-4096 or
|
|
6
|
+
* Ethereum ECDSA signature over a canonical claim message.
|
|
7
|
+
*
|
|
8
|
+
* TokenEscrow holds ARIO SPL tokens (liquid or vaulted) in trustless
|
|
9
|
+
* custody with the same multi-protocol claim flow.
|
|
10
|
+
*
|
|
11
|
+
* Design: `docs/ANT_ESCROW_DESIGN.md` (account model, canonical message
|
|
12
|
+
* format, threat model). Plan: `docs/ANT_ESCROW_IMPLEMENTATION_PLAN.md`.
|
|
13
|
+
*
|
|
14
|
+
* All instruction encoding is delegated to the Codama-generated builders
|
|
15
|
+
* in `./generated/ant-escrow/instructions/` — they own the discriminator,
|
|
16
|
+
* Borsh codec, and account-meta wiring derived from the on-chain IDL.
|
|
17
|
+
*/
|
|
18
|
+
import { type Address, type Commitment, type Instruction, type TransactionSigner } from '@solana/kit';
|
|
19
|
+
import type { ILogger } from '../common/logger.js';
|
|
20
|
+
import type { SolanaRpc, SolanaRpcSubscriptions } from './types.js';
|
|
21
|
+
export type EscrowProtocol = 'arweave' | 'ethereum';
|
|
22
|
+
export interface EscrowAntState {
|
|
23
|
+
version: number;
|
|
24
|
+
bump: number;
|
|
25
|
+
depositor: Address;
|
|
26
|
+
antMint: Address;
|
|
27
|
+
recipientProtocol: EscrowProtocol;
|
|
28
|
+
recipientPubkey: Uint8Array;
|
|
29
|
+
nonce: Uint8Array;
|
|
30
|
+
depositSlot: bigint;
|
|
31
|
+
}
|
|
32
|
+
export interface ANTEscrowConfig {
|
|
33
|
+
rpc: SolanaRpc;
|
|
34
|
+
rpcSubscriptions?: SolanaRpcSubscriptions;
|
|
35
|
+
signer?: TransactionSigner;
|
|
36
|
+
programId?: Address;
|
|
37
|
+
/**
|
|
38
|
+
* ario-core program id, used by `TokenEscrow` to build the sibling
|
|
39
|
+
* `vaulted_transfer` instruction when claiming an active (still-locked)
|
|
40
|
+
* vault escrow. Defaults to {@link ARIO_CORE_PROGRAM_ID}.
|
|
41
|
+
*/
|
|
42
|
+
coreProgram?: Address;
|
|
43
|
+
commitment?: Commitment;
|
|
44
|
+
logger?: ILogger;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Solana-backed client for the trustless ANT-escrow program. All write
|
|
48
|
+
* methods require both `rpcSubscriptions` and `signer`; read methods
|
|
49
|
+
* only need `rpc`.
|
|
50
|
+
*/
|
|
51
|
+
export declare class ANTEscrow {
|
|
52
|
+
protected readonly rpc: SolanaRpc;
|
|
53
|
+
protected readonly rpcSubscriptions?: SolanaRpcSubscriptions;
|
|
54
|
+
protected readonly signer?: TransactionSigner;
|
|
55
|
+
readonly programId: Address;
|
|
56
|
+
protected readonly commitment: Commitment;
|
|
57
|
+
protected readonly logger: ILogger;
|
|
58
|
+
constructor(config: ANTEscrowConfig);
|
|
59
|
+
static init(config: ANTEscrowConfig): ANTEscrow;
|
|
60
|
+
/** Fetch the on-chain `EscrowAnt` for an ANT mint, or `null` if no
|
|
61
|
+
* active escrow exists. Uses the Codama-generated decoder. */
|
|
62
|
+
get(antMint: Address): Promise<EscrowAntState | null>;
|
|
63
|
+
/** Address of the EscrowAnt PDA for an ANT mint (no RPC call). */
|
|
64
|
+
getPda(antMint: Address): Promise<Address>;
|
|
65
|
+
/**
|
|
66
|
+
* Lock an ANT into escrow. The signer (depositor) must currently own
|
|
67
|
+
* the asset; mpl-core's TransferV1 CPI enforces this.
|
|
68
|
+
*
|
|
69
|
+
* `recipient.publicKey` length must match `recipient.protocol`:
|
|
70
|
+
* - `'arweave'` → 512-byte RSA-4096 modulus (the JWK `n` field)
|
|
71
|
+
* - `'ethereum'` → 20-byte address
|
|
72
|
+
*/
|
|
73
|
+
deposit(args: {
|
|
74
|
+
antMint: Address;
|
|
75
|
+
recipient: {
|
|
76
|
+
protocol: EscrowProtocol;
|
|
77
|
+
publicKey: Uint8Array;
|
|
78
|
+
};
|
|
79
|
+
}): Promise<string>;
|
|
80
|
+
depositIx(args: {
|
|
81
|
+
antMint: Address;
|
|
82
|
+
recipient: {
|
|
83
|
+
protocol: EscrowProtocol;
|
|
84
|
+
publicKey: Uint8Array;
|
|
85
|
+
};
|
|
86
|
+
}, depositor: TransactionSigner): Promise<Instruction>;
|
|
87
|
+
/**
|
|
88
|
+
* Re-target the escrow at a new recipient identity. Rotates the
|
|
89
|
+
* on-chain nonce, invalidating any in-flight claim signatures bound
|
|
90
|
+
* to the prior recipient.
|
|
91
|
+
*/
|
|
92
|
+
updateRecipient(args: {
|
|
93
|
+
antMint: Address;
|
|
94
|
+
newRecipient: {
|
|
95
|
+
protocol: EscrowProtocol;
|
|
96
|
+
publicKey: Uint8Array;
|
|
97
|
+
};
|
|
98
|
+
}): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Pull an escrowed ANT back to the depositor. Closes the escrow PDA
|
|
101
|
+
* and refunds rent.
|
|
102
|
+
*/
|
|
103
|
+
cancel(args: {
|
|
104
|
+
antMint: Address;
|
|
105
|
+
}): Promise<string>;
|
|
106
|
+
/**
|
|
107
|
+
* Submit an Arweave RSA-PSS-4096 signature to release the ANT.
|
|
108
|
+
* Anyone can submit (the fee payer = `signer`); only `claimant`
|
|
109
|
+
* receives the ANT, and only the original `depositor` receives rent.
|
|
110
|
+
*/
|
|
111
|
+
claimArweave(args: {
|
|
112
|
+
antMint: Address;
|
|
113
|
+
claimant: Address;
|
|
114
|
+
signature: Uint8Array;
|
|
115
|
+
saltLen?: number;
|
|
116
|
+
}): Promise<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Build the ANT-claim-via-Arweave-attested instruction.
|
|
119
|
+
*
|
|
120
|
+
* **API note**: this method previously took user-side RSA-PSS params
|
|
121
|
+
* (`signature`, `saltLen`, `messageNonce`). The on-chain ix was
|
|
122
|
+
* renamed to `claim_ant_arweave_attested` (canonical contracts
|
|
123
|
+
* `ar-io-solana-contracts` PR-19+): verification is now via
|
|
124
|
+
* instruction-introspection of a preceding Ed25519 sigverify ix
|
|
125
|
+
* issued by the off-chain attestor (see
|
|
126
|
+
* `migration/attestor/`). Those data args are no longer fed to the
|
|
127
|
+
* builder. Callers MUST prepend the attestor's sigverify ix to the
|
|
128
|
+
* transaction or it will fail on-chain. A higher-level helper that
|
|
129
|
+
* fetches the attestor's signature and assembles the full tx is
|
|
130
|
+
* tracked as a follow-up.
|
|
131
|
+
*
|
|
132
|
+
* @deprecated Args `signature`, `saltLen`, `messageNonce` are
|
|
133
|
+
* ignored. Use the new attested flow.
|
|
134
|
+
*/
|
|
135
|
+
claimArweaveIx(args: {
|
|
136
|
+
antMint: Address;
|
|
137
|
+
claimant: Address;
|
|
138
|
+
/** @deprecated unused — superseded by attestor sigverify ix */
|
|
139
|
+
signature?: Uint8Array;
|
|
140
|
+
/** @deprecated unused — superseded by attestor sigverify ix */
|
|
141
|
+
saltLen?: number;
|
|
142
|
+
depositor: Address;
|
|
143
|
+
/** 32-byte nonce from the on-chain Escrow PDA; still part of the
|
|
144
|
+
* canonical claim payload that the attestor signs. */
|
|
145
|
+
messageNonce: Uint8Array;
|
|
146
|
+
}): Promise<Instruction>;
|
|
147
|
+
/** Submit an Ethereum ECDSA secp256k1 + EIP-191 signature. */
|
|
148
|
+
claimEthereum(args: {
|
|
149
|
+
antMint: Address;
|
|
150
|
+
claimant: Address;
|
|
151
|
+
signature: Uint8Array;
|
|
152
|
+
}): Promise<string>;
|
|
153
|
+
claimEthereumIx(args: {
|
|
154
|
+
antMint: Address;
|
|
155
|
+
claimant: Address;
|
|
156
|
+
signature: Uint8Array;
|
|
157
|
+
depositor: Address;
|
|
158
|
+
messageNonce: Uint8Array;
|
|
159
|
+
}): Promise<Instruction>;
|
|
160
|
+
private send;
|
|
161
|
+
private requireSigner;
|
|
162
|
+
private requireEscrow;
|
|
163
|
+
private assertPubkeyLen;
|
|
164
|
+
}
|
|
165
|
+
export type EscrowAssetType = 'token' | 'vault';
|
|
166
|
+
export interface EscrowTokenState {
|
|
167
|
+
version: number;
|
|
168
|
+
bump: number;
|
|
169
|
+
depositor: Address;
|
|
170
|
+
assetType: EscrowAssetType;
|
|
171
|
+
amount: bigint;
|
|
172
|
+
arioMint: Address;
|
|
173
|
+
assetId: Uint8Array;
|
|
174
|
+
recipientProtocol: EscrowProtocol;
|
|
175
|
+
recipientPubkey: Uint8Array;
|
|
176
|
+
nonce: Uint8Array;
|
|
177
|
+
depositSlot: bigint;
|
|
178
|
+
vaultEndTimestamp: bigint;
|
|
179
|
+
vaultRevocable: boolean;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Solana-backed client for the trustless token/vault escrow program. All
|
|
183
|
+
* write methods require both `rpcSubscriptions` and `signer`; read methods
|
|
184
|
+
* only need `rpc`.
|
|
185
|
+
*
|
|
186
|
+
* Uses the same config shape as {@link ANTEscrow}.
|
|
187
|
+
*/
|
|
188
|
+
export declare class TokenEscrow {
|
|
189
|
+
protected readonly rpc: SolanaRpc;
|
|
190
|
+
protected readonly rpcSubscriptions?: SolanaRpcSubscriptions;
|
|
191
|
+
protected readonly signer?: TransactionSigner;
|
|
192
|
+
readonly programId: Address;
|
|
193
|
+
readonly coreProgram: Address;
|
|
194
|
+
protected readonly commitment: Commitment;
|
|
195
|
+
protected readonly logger: ILogger;
|
|
196
|
+
constructor(config: ANTEscrowConfig);
|
|
197
|
+
static init(config: ANTEscrowConfig): TokenEscrow;
|
|
198
|
+
/**
|
|
199
|
+
* Fetch the on-chain `EscrowToken` for a depositor and asset ID, or
|
|
200
|
+
* `null` if no active escrow exists. Uses the Codama-generated decoder.
|
|
201
|
+
*/
|
|
202
|
+
get(depositor: Address, assetId: Uint8Array): Promise<EscrowTokenState | null>;
|
|
203
|
+
/**
|
|
204
|
+
* Fetch the on-chain `EscrowToken` for a vault escrow, or `null` if
|
|
205
|
+
* no active escrow exists.
|
|
206
|
+
*/
|
|
207
|
+
getVault(depositor: Address, assetId: Uint8Array): Promise<EscrowTokenState | null>;
|
|
208
|
+
/** Address of the EscrowToken PDA (no RPC call). */
|
|
209
|
+
getTokenPda(depositor: Address, assetId: Uint8Array): Promise<Address>;
|
|
210
|
+
/** Address of the EscrowVault PDA (no RPC call). */
|
|
211
|
+
getVaultPda(depositor: Address, assetId: Uint8Array): Promise<Address>;
|
|
212
|
+
/**
|
|
213
|
+
* Deposit liquid ARIO tokens into escrow for a designated Arweave or
|
|
214
|
+
* Ethereum recipient. Prepends a create-ATA-idempotent instruction for
|
|
215
|
+
* the escrow PDA's token account in the same transaction.
|
|
216
|
+
*/
|
|
217
|
+
depositTokens(args: {
|
|
218
|
+
assetId: Uint8Array;
|
|
219
|
+
amount: bigint;
|
|
220
|
+
arioMint: Address;
|
|
221
|
+
depositorTokenAccount: Address;
|
|
222
|
+
recipient: {
|
|
223
|
+
protocol: EscrowProtocol;
|
|
224
|
+
publicKey: Uint8Array;
|
|
225
|
+
};
|
|
226
|
+
}): Promise<string>;
|
|
227
|
+
/**
|
|
228
|
+
* Deposit ARIO tokens into escrow as a vaulted (time-locked) position.
|
|
229
|
+
* Same as `depositTokens` but additionally records the lock duration
|
|
230
|
+
* and revocability flag. Uses the vault PDA seed.
|
|
231
|
+
*/
|
|
232
|
+
depositVault(args: {
|
|
233
|
+
assetId: Uint8Array;
|
|
234
|
+
amount: bigint;
|
|
235
|
+
arioMint: Address;
|
|
236
|
+
lockDurationSeconds: bigint;
|
|
237
|
+
revocable: boolean;
|
|
238
|
+
depositorTokenAccount: Address;
|
|
239
|
+
recipient: {
|
|
240
|
+
protocol: EscrowProtocol;
|
|
241
|
+
publicKey: Uint8Array;
|
|
242
|
+
};
|
|
243
|
+
}): Promise<string>;
|
|
244
|
+
/**
|
|
245
|
+
* Submit an Arweave RSA-PSS-4096 signature to release escrowed tokens.
|
|
246
|
+
* Anyone can submit (fee payer = `signer`); only `claimant` receives
|
|
247
|
+
* the tokens, and `depositor` receives rent.
|
|
248
|
+
*/
|
|
249
|
+
claimTokensArweave(args: {
|
|
250
|
+
depositor: Address;
|
|
251
|
+
assetId: Uint8Array;
|
|
252
|
+
claimant: Address;
|
|
253
|
+
claimantTokenAccount: Address;
|
|
254
|
+
escrowTokenAccount: Address;
|
|
255
|
+
signature: Uint8Array;
|
|
256
|
+
saltLen?: number;
|
|
257
|
+
}): Promise<string>;
|
|
258
|
+
/**
|
|
259
|
+
* @deprecated Args `signature`, `saltLen`, `messageNonce` are ignored.
|
|
260
|
+
* Use the new attested flow — see `claimArweaveIx` doc.
|
|
261
|
+
*/
|
|
262
|
+
claimTokensArweaveIx(args: {
|
|
263
|
+
depositor: Address;
|
|
264
|
+
assetId: Uint8Array;
|
|
265
|
+
claimant: Address;
|
|
266
|
+
claimantTokenAccount: Address;
|
|
267
|
+
escrowTokenAccount: Address;
|
|
268
|
+
/** @deprecated unused — superseded by attestor sigverify ix */
|
|
269
|
+
signature?: Uint8Array;
|
|
270
|
+
/** @deprecated unused — superseded by attestor sigverify ix */
|
|
271
|
+
saltLen?: number;
|
|
272
|
+
/** 32-byte nonce from the on-chain Escrow PDA. */
|
|
273
|
+
messageNonce: Uint8Array;
|
|
274
|
+
}): Promise<Instruction>;
|
|
275
|
+
/**
|
|
276
|
+
* Submit an Ethereum ECDSA secp256k1 + EIP-191 signature to release
|
|
277
|
+
* escrowed tokens.
|
|
278
|
+
*/
|
|
279
|
+
claimTokensEthereum(args: {
|
|
280
|
+
depositor: Address;
|
|
281
|
+
assetId: Uint8Array;
|
|
282
|
+
claimant: Address;
|
|
283
|
+
claimantTokenAccount: Address;
|
|
284
|
+
escrowTokenAccount: Address;
|
|
285
|
+
signature: Uint8Array;
|
|
286
|
+
}): Promise<string>;
|
|
287
|
+
claimTokensEthereumIx(args: {
|
|
288
|
+
depositor: Address;
|
|
289
|
+
assetId: Uint8Array;
|
|
290
|
+
claimant: Address;
|
|
291
|
+
claimantTokenAccount: Address;
|
|
292
|
+
escrowTokenAccount: Address;
|
|
293
|
+
signature: Uint8Array;
|
|
294
|
+
messageNonce: Uint8Array;
|
|
295
|
+
}): Promise<Instruction>;
|
|
296
|
+
/**
|
|
297
|
+
* Submit an Arweave RSA-PSS-4096 signature to release escrowed vault tokens.
|
|
298
|
+
*
|
|
299
|
+
* The on-chain handler routes by vault state via instructions-sysvar
|
|
300
|
+
* introspection: an expired vault sends tokens straight to
|
|
301
|
+
* `claimantTokenAccount`; an active (still-locked) vault routes them to
|
|
302
|
+
* `payerTokenAccount` and requires a matching `ario_core::vaulted_transfer`
|
|
303
|
+
* sibling instruction in the same transaction.
|
|
304
|
+
*
|
|
305
|
+
* This method auto-detects the path from `vaultEndTimestamp` and bundles
|
|
306
|
+
* the sibling `vaulted_transfer` ix automatically when the vault is still
|
|
307
|
+
* active — callers do not need to construct it themselves.
|
|
308
|
+
*/
|
|
309
|
+
claimVaultArweave(args: {
|
|
310
|
+
depositor: Address;
|
|
311
|
+
assetId: Uint8Array;
|
|
312
|
+
claimant: Address;
|
|
313
|
+
claimantTokenAccount: Address;
|
|
314
|
+
escrowTokenAccount: Address;
|
|
315
|
+
payerTokenAccount: Address;
|
|
316
|
+
signature: Uint8Array;
|
|
317
|
+
saltLen?: number;
|
|
318
|
+
}): Promise<string>;
|
|
319
|
+
/**
|
|
320
|
+
* Submit an Ethereum ECDSA signature to release escrowed vault tokens. See
|
|
321
|
+
* {@link claimVaultArweave} for the expired/active vault routing semantics.
|
|
322
|
+
* Auto-bundles the sibling `vaulted_transfer` ix for active vaults.
|
|
323
|
+
*/
|
|
324
|
+
claimVaultEthereum(args: {
|
|
325
|
+
depositor: Address;
|
|
326
|
+
assetId: Uint8Array;
|
|
327
|
+
claimant: Address;
|
|
328
|
+
claimantTokenAccount: Address;
|
|
329
|
+
escrowTokenAccount: Address;
|
|
330
|
+
payerTokenAccount: Address;
|
|
331
|
+
signature: Uint8Array;
|
|
332
|
+
}): Promise<string>;
|
|
333
|
+
/**
|
|
334
|
+
* If the vault escrow is still locked (`vaultEndTimestamp` in the future),
|
|
335
|
+
* return `[claimIx, vaultedTransferIx]` so the on-chain claim handler can
|
|
336
|
+
* see the sibling (via `instructions_sysvar`) and re-vault tokens for the
|
|
337
|
+
* claimant. If the vault has expired, just `[claimIx]` — the on-chain
|
|
338
|
+
* handler delivers tokens directly to `claimantTokenAccount`.
|
|
339
|
+
*
|
|
340
|
+
* **Ordering matters at runtime**: `claim` must execute first so it can
|
|
341
|
+
* move tokens `escrow → payerTokenAccount`. `vaulted_transfer` then pulls
|
|
342
|
+
* from `payerTokenAccount` into the new vault. Reversing the order makes
|
|
343
|
+
* `vaulted_transfer` fail with `insufficient funds` because nothing has
|
|
344
|
+
* funded `payerTokenAccount` yet. The introspection check in
|
|
345
|
+
* `vault_introspect::verify_vaulted_transfer_in_tx` is presence-based
|
|
346
|
+
* (reads `instructions_sysvar`) so the *sibling* ordering doesn't matter
|
|
347
|
+
* for the check itself — only for atomic execution.
|
|
348
|
+
*
|
|
349
|
+
* `lockDurationSeconds` is set to the SDK-local `remaining` value. The
|
|
350
|
+
* on-chain handler accepts `lock_duration >= remaining_at_execution - 60s`
|
|
351
|
+
* (see the introspection function's tolerance), so any modest clock skew
|
|
352
|
+
* between client and chain is absorbed.
|
|
353
|
+
*/
|
|
354
|
+
/**
|
|
355
|
+
* Idempotent-create the claimant's canonical ATA when needed.
|
|
356
|
+
*
|
|
357
|
+
* The on-chain claim handler delivers liquid tokens directly to
|
|
358
|
+
* `claimantTokenAccount` for expired vaults AND for token escrows.
|
|
359
|
+
* For active vaults, the `claim_vault_*` Anchor Accounts struct still
|
|
360
|
+
* declares `claimant_token_account: Account<TokenAccount>`, which forces
|
|
361
|
+
* Anchor's account-load-time validation to require the account exist
|
|
362
|
+
* even though the active path doesn't write to it. Either way: if the
|
|
363
|
+
* claimant is a fresh wallet that has never held this mint, the ATA
|
|
364
|
+
* doesn't exist and the tx fails with `AccountNotInitialized` (#3012).
|
|
365
|
+
*
|
|
366
|
+
* Returns `null` when the caller passed a non-canonical
|
|
367
|
+
* `claimantTokenAccount` (manually-created non-ATA token account,
|
|
368
|
+
* presumably already exists — caller's responsibility).
|
|
369
|
+
*/
|
|
370
|
+
private _createClaimantAtaIfCanonical;
|
|
371
|
+
private maybeBundleVaultedTransfer;
|
|
372
|
+
/** Read the recipient's `VaultCounter.nextId`, defaulting to 0n if the
|
|
373
|
+
* counter PDA hasn't been initialised yet (first vault for that owner). */
|
|
374
|
+
private getNextVaultId;
|
|
375
|
+
/**
|
|
376
|
+
* Cancel a token or vault escrow deposit and return the tokens to the
|
|
377
|
+
* depositor. Only callable by the original depositor.
|
|
378
|
+
*/
|
|
379
|
+
cancel(args: {
|
|
380
|
+
assetId: Uint8Array;
|
|
381
|
+
assetType: EscrowAssetType;
|
|
382
|
+
depositorTokenAccount: Address;
|
|
383
|
+
escrowTokenAccount: Address;
|
|
384
|
+
}): Promise<string>;
|
|
385
|
+
/**
|
|
386
|
+
* Re-target the escrow at a new recipient identity. Rotates the
|
|
387
|
+
* on-chain nonce, invalidating any in-flight claim signatures.
|
|
388
|
+
*/
|
|
389
|
+
updateRecipient(args: {
|
|
390
|
+
assetId: Uint8Array;
|
|
391
|
+
assetType: EscrowAssetType;
|
|
392
|
+
newRecipient: {
|
|
393
|
+
protocol: EscrowProtocol;
|
|
394
|
+
publicKey: Uint8Array;
|
|
395
|
+
};
|
|
396
|
+
}): Promise<string>;
|
|
397
|
+
private send;
|
|
398
|
+
private requireSigner;
|
|
399
|
+
private requireTokenEscrow;
|
|
400
|
+
private requireVaultEscrow;
|
|
401
|
+
private assertPubkeyLen;
|
|
402
|
+
private assertAssetIdLen;
|
|
403
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AR.IO Solana event decoders — consumer-facing API.
|
|
3
|
+
*
|
|
4
|
+
* Anchor `#[event]` emits surface as `Program data: <base64>` log lines
|
|
5
|
+
* inside the surrounding instruction's logs. The base64 blob is
|
|
6
|
+
* `[discriminator(8) || borsh_payload]`, where the discriminator is
|
|
7
|
+
* `sha256("event:<EventName>")[..8]`.
|
|
8
|
+
*
|
|
9
|
+
* This module wraps the per-program codecs in
|
|
10
|
+
* `sdk/src/solana/generated/<program>/events/` (auto-emitted by
|
|
11
|
+
* `sdk/scripts/events-codegen.mjs`) into:
|
|
12
|
+
* - a discriminated union `AnyEvent` covering every event the
|
|
13
|
+
* AR.IO contracts emit
|
|
14
|
+
* - per-program union types for filtering
|
|
15
|
+
* - log-walking utilities that route `Program data:` lines back to
|
|
16
|
+
* the program that emitted them (so events emitted from a CPI'd
|
|
17
|
+
* handler get attributed to the correct program)
|
|
18
|
+
* - a typed `parseTransactionEvents(rpc, signature)` helper
|
|
19
|
+
*
|
|
20
|
+
* Event payloads are returned with `bigint` for u64 / i64 fields and
|
|
21
|
+
* `Address` for pubkey fields, matching the rest of the kit-native
|
|
22
|
+
* SDK. To narrow on a specific event, use the `name` discriminator or
|
|
23
|
+
* the per-event type guards exported alongside the union.
|
|
24
|
+
*
|
|
25
|
+
* Live event subscription (websocket / Helius / Geyser) is out of
|
|
26
|
+
* scope here — this module is the decoder layer that all those
|
|
27
|
+
* mechanisms can build on. See `parseTransactionEvents` for the
|
|
28
|
+
* pull-based model.
|
|
29
|
+
*/
|
|
30
|
+
import { type Rpc, type Signature, type SolanaRpcApi } from '@solana/kit';
|
|
31
|
+
import { ARIO_ANT_PROGRAM_ADDRESS } from '@ar.io/solana-contracts/ant';
|
|
32
|
+
import { ARIO_ANT_ESCROW_PROGRAM_ADDRESS } from '@ar.io/solana-contracts/ant-escrow';
|
|
33
|
+
import { ARIO_ARNS_PROGRAM_ADDRESS } from '@ar.io/solana-contracts/arns';
|
|
34
|
+
import { ARIO_CORE_PROGRAM_ADDRESS } from '@ar.io/solana-contracts/core';
|
|
35
|
+
import { ARIO_GAR_PROGRAM_ADDRESS } from '@ar.io/solana-contracts/gar';
|
|
36
|
+
import * as escrowEvents from './generated/ant-escrow/events/index.js';
|
|
37
|
+
import * as antEvents from './generated/ant/events/index.js';
|
|
38
|
+
import * as arnsEvents from './generated/arns/events/index.js';
|
|
39
|
+
import * as coreEvents from './generated/core/events/index.js';
|
|
40
|
+
import * as garEvents from './generated/gar/events/index.js';
|
|
41
|
+
/** Maps event-name → decoded payload type, per program. */
|
|
42
|
+
type CoreEventByName = {
|
|
43
|
+
[K in keyof typeof coreEvents as K extends `get${infer N}Decoder` ? N : never]: typeof coreEvents extends Record<`get${string & K}Decoder`, () => infer D> ? D extends {
|
|
44
|
+
decode(b: Uint8Array): infer P;
|
|
45
|
+
} ? P : never : never;
|
|
46
|
+
};
|
|
47
|
+
type GarEventByName = {
|
|
48
|
+
[K in keyof typeof garEvents as K extends `get${infer N}Decoder` ? N : never]: typeof garEvents extends Record<`get${string & K}Decoder`, () => infer D> ? D extends {
|
|
49
|
+
decode(b: Uint8Array): infer P;
|
|
50
|
+
} ? P : never : never;
|
|
51
|
+
};
|
|
52
|
+
type ArnsEventByName = {
|
|
53
|
+
[K in keyof typeof arnsEvents as K extends `get${infer N}Decoder` ? N : never]: typeof arnsEvents extends Record<`get${string & K}Decoder`, () => infer D> ? D extends {
|
|
54
|
+
decode(b: Uint8Array): infer P;
|
|
55
|
+
} ? P : never : never;
|
|
56
|
+
};
|
|
57
|
+
type AntEventByName = {
|
|
58
|
+
[K in keyof typeof antEvents as K extends `get${infer N}Decoder` ? N : never]: typeof antEvents extends Record<`get${string & K}Decoder`, () => infer D> ? D extends {
|
|
59
|
+
decode(b: Uint8Array): infer P;
|
|
60
|
+
} ? P : never : never;
|
|
61
|
+
};
|
|
62
|
+
type EscrowEventByName = {
|
|
63
|
+
[K in keyof typeof escrowEvents as K extends `get${infer N}Decoder` ? N : never]: typeof escrowEvents extends Record<`get${string & K}Decoder`, () => infer D> ? D extends {
|
|
64
|
+
decode(b: Uint8Array): infer P;
|
|
65
|
+
} ? P : never : never;
|
|
66
|
+
};
|
|
67
|
+
/** Per-program decoded-event union (each variant tagged by `name`). */
|
|
68
|
+
export type AnyArioCoreEvent = {
|
|
69
|
+
[K in keyof CoreEventByName]: {
|
|
70
|
+
programId: typeof ARIO_CORE_PROGRAM_ADDRESS;
|
|
71
|
+
name: K;
|
|
72
|
+
data: CoreEventByName[K];
|
|
73
|
+
};
|
|
74
|
+
}[keyof CoreEventByName];
|
|
75
|
+
export type AnyArioGarEvent = {
|
|
76
|
+
[K in keyof GarEventByName]: {
|
|
77
|
+
programId: typeof ARIO_GAR_PROGRAM_ADDRESS;
|
|
78
|
+
name: K;
|
|
79
|
+
data: GarEventByName[K];
|
|
80
|
+
};
|
|
81
|
+
}[keyof GarEventByName];
|
|
82
|
+
export type AnyArioArnsEvent = {
|
|
83
|
+
[K in keyof ArnsEventByName]: {
|
|
84
|
+
programId: typeof ARIO_ARNS_PROGRAM_ADDRESS;
|
|
85
|
+
name: K;
|
|
86
|
+
data: ArnsEventByName[K];
|
|
87
|
+
};
|
|
88
|
+
}[keyof ArnsEventByName];
|
|
89
|
+
export type AnyArioAntEvent = {
|
|
90
|
+
[K in keyof AntEventByName]: {
|
|
91
|
+
programId: typeof ARIO_ANT_PROGRAM_ADDRESS;
|
|
92
|
+
name: K;
|
|
93
|
+
data: AntEventByName[K];
|
|
94
|
+
};
|
|
95
|
+
}[keyof AntEventByName];
|
|
96
|
+
export type AnyArioAntEscrowEvent = {
|
|
97
|
+
[K in keyof EscrowEventByName]: {
|
|
98
|
+
programId: typeof ARIO_ANT_ESCROW_PROGRAM_ADDRESS;
|
|
99
|
+
name: K;
|
|
100
|
+
data: EscrowEventByName[K];
|
|
101
|
+
};
|
|
102
|
+
}[keyof EscrowEventByName];
|
|
103
|
+
/** Top-level union covering every event from every AR.IO program. */
|
|
104
|
+
export type AnyEvent = AnyArioCoreEvent | AnyArioGarEvent | AnyArioArnsEvent | AnyArioAntEvent | AnyArioAntEscrowEvent;
|
|
105
|
+
/** All event-name strings that can appear as `AnyEvent.name`. */
|
|
106
|
+
export type EventName = AnyEvent['name'];
|
|
107
|
+
/**
|
|
108
|
+
* Parse every AR.IO event from a transaction's `log_messages` array.
|
|
109
|
+
*
|
|
110
|
+
* The logs are walked top-down. We track the current program by
|
|
111
|
+
* pushing on `Program <id> invoke [N]` and popping on `Program <id>
|
|
112
|
+
* success` / `failed`. Each `Program data: <base64>` line is attributed
|
|
113
|
+
* to the program at the top of the stack — so a `StakePaymentEvent`
|
|
114
|
+
* emitted by ario-gar from inside an ario-arns CPI is correctly
|
|
115
|
+
* attributed to ario-gar.
|
|
116
|
+
*
|
|
117
|
+
* Lines whose discriminator doesn't match any known AR.IO event are
|
|
118
|
+
* silently skipped — they may be from another program in the same tx
|
|
119
|
+
* (e.g., SPL Token's debit/credit logs aren't event emissions, but
|
|
120
|
+
* other Anchor programs in the same tx might emit unrelated events).
|
|
121
|
+
*
|
|
122
|
+
* Failed instructions inside a tx still emit logs up to the failure
|
|
123
|
+
* point. We don't filter those out — caller can cross-reference the
|
|
124
|
+
* tx's `meta.err` if it cares.
|
|
125
|
+
*/
|
|
126
|
+
export declare function parseEventsFromLogs(logs: readonly string[]): AnyEvent[];
|
|
127
|
+
export declare function parseEventsFromLogs<N extends EventName>(logs: readonly string[], filter: N): Array<Extract<AnyEvent, {
|
|
128
|
+
name: N;
|
|
129
|
+
}>>;
|
|
130
|
+
/**
|
|
131
|
+
* Fetch a transaction by signature and return its decoded events.
|
|
132
|
+
*
|
|
133
|
+
* Uses `getTransaction` with `maxSupportedTransactionVersion: 0` and
|
|
134
|
+
* `commitment: 'confirmed'` by default. Returns `[]` if the tx is
|
|
135
|
+
* still pending, missing, or had no logs (rare — Anchor programs
|
|
136
|
+
* always log).
|
|
137
|
+
*/
|
|
138
|
+
export declare function parseTransactionEvents(rpc: Rpc<SolanaRpcApi>, signature: Signature, opts?: {
|
|
139
|
+
commitment?: 'processed' | 'confirmed' | 'finalized';
|
|
140
|
+
}): Promise<AnyEvent[]>;
|
|
141
|
+
/**
|
|
142
|
+
* Generic type-narrowing predicate for any event name.
|
|
143
|
+
*
|
|
144
|
+
* ```ts
|
|
145
|
+
* for (const ev of events) {
|
|
146
|
+
* if (isEvent(ev, 'NamePurchasedEvent')) {
|
|
147
|
+
* // ev.data is typed as NamePurchasedEvent here
|
|
148
|
+
* console.log(ev.data.buyer, ev.data.cost);
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
export declare function isEvent<N extends EventName>(ev: AnyEvent, name: N): ev is Extract<AnyEvent, {
|
|
154
|
+
name: N;
|
|
155
|
+
}>;
|
|
156
|
+
export {};
|