@ar.io/sdk 4.0.0-solana.8 → 4.0.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.
- package/README.md +721 -673
- package/lib/esm/cli/cli.js +28 -152
- package/lib/esm/cli/commands/antCommands.js +5 -66
- package/lib/esm/cli/commands/arnsPurchaseCommands.js +7 -28
- package/lib/esm/cli/commands/escrowCommands.js +23 -4
- package/lib/esm/cli/commands/gatewayWriteCommands.js +15 -8
- package/lib/esm/cli/commands/pruneCommands.js +14 -26
- package/lib/esm/cli/commands/readCommands.js +12 -1
- package/lib/esm/cli/options.js +2 -75
- package/lib/esm/cli/utils.js +96 -209
- package/lib/esm/common/ant-registry.js +12 -160
- package/lib/esm/common/ant.js +40 -1208
- package/lib/esm/common/faucet.js +17 -6
- package/lib/esm/common/index.js +0 -4
- package/lib/esm/common/io.js +13 -1441
- package/lib/esm/constants.js +0 -18
- package/lib/esm/solana/ant-readable.js +391 -54
- package/lib/esm/solana/ant-registry-readable.js +15 -0
- package/lib/esm/solana/ant-registry-writeable.js +19 -4
- package/lib/esm/solana/ant-writeable.js +43 -11
- package/lib/esm/solana/ata.js +15 -0
- package/lib/esm/solana/canonical-message.js +45 -9
- package/lib/esm/solana/clusters.js +71 -22
- package/lib/esm/solana/constants.js +21 -5
- package/lib/esm/solana/delegation-math.js +49 -0
- package/lib/esm/solana/deserialize.js +263 -727
- package/lib/esm/solana/escrow.js +145 -103
- package/lib/esm/solana/events.js +20 -199
- package/lib/esm/solana/funding-plan.js +19 -2
- package/lib/esm/solana/index.js +53 -12
- package/lib/esm/solana/instruction.js +15 -0
- package/lib/esm/solana/io-readable.js +510 -58
- package/lib/esm/solana/io-writeable.js +1198 -197
- package/lib/esm/solana/json-rpc.js +20 -4
- package/lib/esm/solana/metadata.js +15 -0
- package/lib/esm/solana/mpl-core.js +55 -5
- package/lib/esm/solana/pda.js +15 -0
- package/lib/esm/solana/predict-prescribed-observers.js +110 -0
- package/lib/esm/solana/retry.js +117 -0
- package/lib/esm/solana/rpc-circuit-breaker.js +258 -0
- package/lib/esm/solana/send.js +258 -3
- package/lib/esm/solana/spawn-ant.js +16 -2
- package/lib/esm/types/ant.js +8 -8
- package/lib/esm/types/io.js +0 -10
- package/lib/esm/utils/ant.js +0 -64
- package/lib/esm/utils/index.js +0 -3
- package/lib/esm/version.js +1 -1
- package/lib/types/cli/commands/antCommands.d.ts +6 -9
- package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +27 -13
- package/lib/types/cli/commands/escrowCommands.d.ts +6 -0
- package/lib/types/cli/commands/gatewayWriteCommands.d.ts +12 -11
- package/lib/types/cli/commands/pruneCommands.d.ts +11 -11
- package/lib/types/cli/commands/readCommands.d.ts +25 -22
- package/lib/types/cli/commands/transfer.d.ts +9 -9
- package/lib/types/cli/options.d.ts +0 -57
- package/lib/types/cli/types.d.ts +6 -14
- package/lib/types/cli/utils.d.ts +34 -32
- package/lib/types/common/ant-registry.d.ts +35 -74
- package/lib/types/common/ant.d.ts +52 -570
- package/lib/types/common/faucet.d.ts +20 -8
- package/lib/types/common/index.d.ts +0 -3
- package/lib/types/common/io.d.ts +56 -288
- package/lib/types/constants.d.ts +0 -17
- package/lib/types/solana/ant-readable.d.ts +65 -6
- package/lib/types/solana/ant-registry-readable.d.ts +17 -2
- package/lib/types/solana/ant-registry-writeable.d.ts +20 -5
- package/lib/types/solana/ant-writeable.d.ts +39 -24
- package/lib/types/solana/ata.d.ts +15 -0
- package/lib/types/solana/canonical-message.d.ts +44 -5
- package/lib/types/solana/clusters.d.ts +68 -21
- package/lib/types/solana/constants.d.ts +16 -0
- package/lib/types/solana/delegation-math.d.ts +25 -0
- package/lib/types/solana/deserialize.d.ts +28 -198
- package/lib/types/solana/escrow.d.ts +128 -51
- package/lib/types/solana/events.d.ts +26 -144
- package/lib/types/solana/funding-plan.d.ts +15 -0
- package/lib/types/solana/index.d.ts +27 -3
- package/lib/types/solana/instruction.d.ts +15 -0
- package/lib/types/solana/io-readable.d.ts +185 -46
- package/lib/types/solana/io-writeable.d.ts +450 -77
- package/lib/types/solana/json-rpc.d.ts +15 -0
- package/lib/types/solana/metadata.d.ts +15 -0
- package/lib/types/solana/mpl-core.d.ts +44 -0
- package/lib/types/solana/predict-prescribed-observers.d.ts +28 -0
- package/lib/types/solana/retry.d.ts +62 -0
- package/lib/types/solana/rpc-circuit-breaker.d.ts +78 -0
- package/lib/types/solana/send.d.ts +80 -2
- package/lib/types/solana/spawn-ant.d.ts +15 -0
- package/lib/types/solana/types.d.ts +15 -0
- package/lib/types/types/ant-registry.d.ts +4 -4
- package/lib/types/types/ant.d.ts +92 -92
- package/lib/types/types/common.d.ts +18 -74
- package/lib/types/types/faucet.d.ts +2 -2
- package/lib/types/types/io.d.ts +189 -158
- package/lib/types/types/token.d.ts +0 -12
- package/lib/types/utils/ant.d.ts +1 -12
- package/lib/types/utils/index.d.ts +0 -3
- package/lib/types/version.d.ts +1 -1
- package/package.json +28 -38
- package/lib/esm/common/ant-versions.js +0 -87
- package/lib/esm/common/arweave.js +0 -21
- package/lib/esm/common/contracts/ao-process.js +0 -218
- package/lib/esm/common/hyperbeam/hb.js +0 -169
- package/lib/esm/common/marketplace.js +0 -669
- package/lib/esm/common/turbo.js +0 -215
- package/lib/esm/node/index.js +0 -20
- package/lib/esm/solana/generated/ant/events/aclEntryAddedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/aclEntryRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/antMetadataUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/antReconciledEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/antTransferredEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/attributesClearedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/attributesSyncedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/controllerAddedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/controllerRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/index.js +0 -16
- package/lib/esm/solana/generated/ant/events/recordMetadataPrunedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordMetadataRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordMetadataUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordSetEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordTransferredEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowCancelledEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowClaimedEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowDepositedEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/index.js +0 -5
- package/lib/esm/solana/generated/arns/events/demandFactorUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/index.js +0 -13
- package/lib/esm/solana/generated/arns/events/leaseExtendedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/namePurchasedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameReassignedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameReleasedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameReservedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameUnreservedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameUpgradedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/namesPrunedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/reservedNameClaimedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/returnedNamePurchasedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/undernameIncreasedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/configUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/coreMigrationFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/index.js +0 -14
- package/lib/esm/solana/generated/core/events/primaryNameRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/primaryNameRequestExpiredEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/primaryNameRequestedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/primaryNameSetEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/supplyFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/transferEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultExtendedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultIncreasedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultReleasedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultRevokedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/allowlistToggledEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegateAllowlistedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegationClosedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegationDecreasedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegationEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochClosedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochDistributedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochPrescribedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochWeightsTalliedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochsToggledEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/fundingPlanAppliedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/garMigrationFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayJoinedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayLeavingEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayPrunedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/index.js +0 -31
- package/lib/esm/solana/generated/gar/events/instantWithdrawalEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/observationSubmittedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/observerAddressUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/operatorStakeIncreasedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/redelegationEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/residueVaultCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/rewardsCompoundedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/stakePaymentEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalCancelledEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalClaimedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalPaymentEvent.js +0 -21
- package/lib/esm/solana/generated/mpl-core/accounts/assetV1.js +0 -42
- package/lib/esm/solana/generated/mpl-core/accounts/collectionV1.js +0 -42
- package/lib/esm/solana/generated/mpl-core/accounts/hashedAssetV1.js +0 -45
- package/lib/esm/solana/generated/mpl-core/accounts/index.js +0 -12
- package/lib/esm/solana/generated/mpl-core/accounts/pluginHeaderV1.js +0 -45
- package/lib/esm/solana/generated/mpl-core/accounts/pluginRegistryV1.js +0 -42
- package/lib/esm/solana/generated/mpl-core/errors/index.js +0 -8
- package/lib/esm/solana/generated/mpl-core/errors/mplCore.js +0 -136
- package/lib/esm/solana/generated/mpl-core/index.js +0 -8
- package/lib/esm/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/addPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/burnCollectionV1.js +0 -49
- package/lib/esm/solana/generated/mpl-core/instructions/burnV1.js +0 -49
- package/lib/esm/solana/generated/mpl-core/instructions/collect.js +0 -42
- package/lib/esm/solana/generated/mpl-core/instructions/compressV1.js +0 -50
- package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV2.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/createV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/createV2.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/decompressV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/executeV1.js +0 -56
- package/lib/esm/solana/generated/mpl-core/instructions/index.js +0 -40
- package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/removePluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/transferV1.js +0 -49
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +0 -45
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionV1.js +0 -52
- package/lib/esm/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updatePluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateV2.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/program-address.js +0 -1
- package/lib/esm/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/addBlocker.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/agentIdentity.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/agentIdentityInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/appData.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/appDataInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/appDataUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/attribute.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/attributes.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/authority.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/autograph.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/autographSignature.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/bubblegumV2.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/burnDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/closeGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/compressionProof.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/creator.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/dataSection.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/dataSectionInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/dataState.js +0 -23
- package/lib/esm/solana/generated/mpl-core/types/edition.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/externalCheckResult.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapter.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterKey.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterType.js +0 -28
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalRegistryRecord.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/externalValidationResult.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/extraAccount.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/freezeDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/freezeExecute.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/groups.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/hashablePluginSchema.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/hashedAssetSchema.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/hookableLifecycleEvent.js +0 -26
- package/lib/esm/solana/generated/mpl-core/types/immutableMetadata.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/index.js +0 -89
- package/lib/esm/solana/generated/mpl-core/types/key.js +0 -28
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHook.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedAppData.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedDataKey.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHook.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/masterEdition.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/oracle.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/oracleInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/oracleUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/oracleValidation.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/permanentBurnDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/permanentFreezeDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/permanentFreezeExecute.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/permanentTransferDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/plugin.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/pluginAuthorityPair.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/pluginType.js +0 -40
- package/lib/esm/solana/generated/mpl-core/types/registryRecord.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/relationshipKind.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/royalties.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/ruleSet.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/seed.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/transferDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/updateAuthority.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/updateDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/updateGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/updateType.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/validationResult.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/validationResultsOffset.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/verifiedCreators.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +0 -17
- package/lib/esm/utils/ao.js +0 -421
- package/lib/esm/utils/arweave.js +0 -271
- package/lib/esm/utils/processes.js +0 -167
- package/lib/esm/web/index.js +0 -20
- package/lib/types/common/ant-versions.d.ts +0 -39
- package/lib/types/common/arweave.d.ts +0 -17
- package/lib/types/common/contracts/ao-process.d.ts +0 -33
- package/lib/types/common/hyperbeam/hb.d.ts +0 -88
- package/lib/types/common/marketplace.d.ts +0 -556
- package/lib/types/common/turbo.d.ts +0 -61
- package/lib/types/node/index.d.ts +0 -20
- package/lib/types/solana/generated/ant/events/aclEntryAddedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/aclEntryRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/antMetadataUpdatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant/events/antReconciledEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant/events/antTransferredEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/attributesClearedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/attributesSyncedEvent.d.ts +0 -24
- package/lib/types/solana/generated/ant/events/controllerAddedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/controllerRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/index.d.ts +0 -15
- package/lib/types/solana/generated/ant/events/recordMetadataPrunedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/recordMetadataRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/recordMetadataUpdatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant/events/recordRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/recordSetEvent.d.ts +0 -34
- package/lib/types/solana/generated/ant/events/recordTransferredEvent.d.ts +0 -30
- package/lib/types/solana/generated/ant-escrow/events/escrowCancelledEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant-escrow/events/escrowClaimedEvent.d.ts +0 -32
- package/lib/types/solana/generated/ant-escrow/events/escrowDepositedEvent.d.ts +0 -36
- package/lib/types/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant-escrow/events/index.d.ts +0 -4
- package/lib/types/solana/generated/arns/events/demandFactorUpdatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/index.d.ts +0 -12
- package/lib/types/solana/generated/arns/events/leaseExtendedEvent.d.ts +0 -32
- package/lib/types/solana/generated/arns/events/namePurchasedEvent.d.ts +0 -34
- package/lib/types/solana/generated/arns/events/nameReassignedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/nameReleasedEvent.d.ts +0 -24
- package/lib/types/solana/generated/arns/events/nameReservedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/nameUnreservedEvent.d.ts +0 -24
- package/lib/types/solana/generated/arns/events/nameUpgradedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/namesPrunedEvent.d.ts +0 -26
- package/lib/types/solana/generated/arns/events/reservedNameClaimedEvent.d.ts +0 -24
- package/lib/types/solana/generated/arns/events/returnedNamePurchasedEvent.d.ts +0 -32
- package/lib/types/solana/generated/arns/events/undernameIncreasedEvent.d.ts +0 -32
- package/lib/types/solana/generated/core/events/configUpdatedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/coreMigrationFinalizedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/index.d.ts +0 -13
- package/lib/types/solana/generated/core/events/primaryNameRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/primaryNameRequestExpiredEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/primaryNameRequestedEvent.d.ts +0 -30
- package/lib/types/solana/generated/core/events/primaryNameSetEvent.d.ts +0 -24
- package/lib/types/solana/generated/core/events/supplyFinalizedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/transferEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/vaultCreatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/core/events/vaultExtendedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/vaultIncreasedEvent.d.ts +0 -28
- package/lib/types/solana/generated/core/events/vaultReleasedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/vaultRevokedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/allowlistToggledEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/delegateAllowlistedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/delegationClosedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/delegationDecreasedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/delegationEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/epochClosedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/epochCreatedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/epochDistributedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/epochPrescribedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/epochWeightsTalliedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/epochsToggledEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/fundingPlanAppliedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/garMigrationFinalizedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/gatewayFinalizedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/gatewayJoinedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/gatewayLeavingEvent.d.ts +0 -22
- package/lib/types/solana/generated/gar/events/gatewayPrunedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/gatewaySettingsUpdatedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/index.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/instantWithdrawalEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/observationSubmittedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/observerAddressUpdatedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/operatorStakeIncreasedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/redelegationEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/residueVaultCreatedEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/rewardsCompoundedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/stakePaymentEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/withdrawalCancelledEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/withdrawalClaimedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/withdrawalCreatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/withdrawalPaymentEvent.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/accounts/assetV1.d.ts +0 -37
- package/lib/types/solana/generated/mpl-core/accounts/collectionV1.d.ts +0 -37
- package/lib/types/solana/generated/mpl-core/accounts/hashedAssetV1.d.ts +0 -30
- package/lib/types/solana/generated/mpl-core/accounts/index.d.ts +0 -12
- package/lib/types/solana/generated/mpl-core/accounts/pluginHeaderV1.d.ts +0 -30
- package/lib/types/solana/generated/mpl-core/accounts/pluginRegistryV1.d.ts +0 -31
- package/lib/types/solana/generated/mpl-core/errors/index.d.ts +0 -8
- package/lib/types/solana/generated/mpl-core/errors/mplCore.d.ts +0 -133
- package/lib/types/solana/generated/mpl-core/index.d.ts +0 -8
- package/lib/types/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/addCollectionPluginV1.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/addPluginV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/burnCollectionV1.d.ts +0 -52
- package/lib/types/solana/generated/mpl-core/instructions/burnV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/collect.d.ts +0 -39
- package/lib/types/solana/generated/mpl-core/instructions/compressV1.d.ts +0 -55
- package/lib/types/solana/generated/mpl-core/instructions/createCollectionV1.d.ts +0 -58
- package/lib/types/solana/generated/mpl-core/instructions/createCollectionV2.d.ts +0 -61
- package/lib/types/solana/generated/mpl-core/instructions/createV1.d.ts +0 -77
- package/lib/types/solana/generated/mpl-core/instructions/createV2.d.ts +0 -80
- package/lib/types/solana/generated/mpl-core/instructions/decompressV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/executeV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/index.d.ts +0 -40
- package/lib/types/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/removeCollectionPluginV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/removePluginV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/transferV1.d.ts +0 -64
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionInfoV1.d.ts +0 -47
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionPluginV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionV1.d.ts +0 -62
- package/lib/types/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/updatePluginV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/updateV1.d.ts +0 -66
- package/lib/types/solana/generated/mpl-core/instructions/updateV2.d.ts +0 -70
- package/lib/types/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.d.ts +0 -67
- package/lib/types/solana/generated/mpl-core/program-address.d.ts +0 -7
- package/lib/types/solana/generated/mpl-core/types/addAssetsToGroupV1Args.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/addBlocker.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/addGroupsToGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/agentIdentity.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/agentIdentityInitInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/agentIdentityUpdateInfo.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/appData.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/appDataInitInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/appDataUpdateInfo.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/attribute.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/attributes.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/authority.d.ts +0 -29
- package/lib/types/solana/generated/mpl-core/types/autograph.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/autographSignature.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/bubblegumV2.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/burnDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/closeGroupV1Args.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/compressionProof.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/creator.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/dataSection.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/dataSectionInitInfo.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/dataSectionUpdateInfo.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/dataState.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/edition.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/externalCheckResult.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapter.d.ts +0 -66
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.d.ts +0 -66
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterKey.d.ts +0 -64
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterSchema.d.ts +0 -17
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterType.d.ts +0 -21
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/types/externalRegistryRecord.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/externalValidationResult.d.ts +0 -17
- package/lib/types/solana/generated/mpl-core/types/extraAccount.d.ts +0 -86
- package/lib/types/solana/generated/mpl-core/types/freezeDelegate.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/freezeExecute.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/groups.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/hashablePluginSchema.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/hashedAssetSchema.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/hookableLifecycleEvent.d.ts +0 -19
- package/lib/types/solana/generated/mpl-core/types/immutableMetadata.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/index.d.ts +0 -89
- package/lib/types/solana/generated/mpl-core/types/key.d.ts +0 -21
- package/lib/types/solana/generated/mpl-core/types/lifecycleHook.d.ts +0 -24
- package/lib/types/solana/generated/mpl-core/types/lifecycleHookInitInfo.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/linkedAppData.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/linkedAppDataInitInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/linkedDataKey.d.ts +0 -31
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHook.d.ts +0 -24
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/masterEdition.d.ts +0 -21
- package/lib/types/solana/generated/mpl-core/types/oracle.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/oracleInitInfo.d.ts +0 -26
- package/lib/types/solana/generated/mpl-core/types/oracleUpdateInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/oracleValidation.d.ts +0 -35
- package/lib/types/solana/generated/mpl-core/types/permanentBurnDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/permanentFreezeDelegate.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/permanentFreezeExecute.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/permanentTransferDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/plugin.d.ts +0 -150
- package/lib/types/solana/generated/mpl-core/types/pluginAuthorityPair.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/pluginType.d.ts +0 -33
- package/lib/types/solana/generated/mpl-core/types/registryRecord.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/relationshipKind.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/royalties.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/ruleSet.d.ts +0 -27
- package/lib/types/solana/generated/mpl-core/types/seed.d.ts +0 -36
- package/lib/types/solana/generated/mpl-core/types/transferDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/updateAuthority.d.ts +0 -27
- package/lib/types/solana/generated/mpl-core/types/updateDelegate.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/updateGroupV1Args.d.ts +0 -19
- package/lib/types/solana/generated/mpl-core/types/updateType.d.ts +0 -17
- package/lib/types/solana/generated/mpl-core/types/validationResult.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/validationResultsOffset.d.ts +0 -33
- package/lib/types/solana/generated/mpl-core/types/verifiedCreators.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/verifiedCreatorsSignature.d.ts +0 -16
- package/lib/types/utils/ao.d.ts +0 -80
- package/lib/types/utils/arweave.d.ts +0 -79
- package/lib/types/utils/processes.d.ts +0 -39
- package/lib/types/web/index.d.ts +0 -20
package/lib/esm/solana/escrow.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
1
16
|
/**
|
|
2
17
|
* Solana ANT-escrow and Token-escrow clients — `ario-ant-escrow` program.
|
|
3
18
|
*
|
|
@@ -16,11 +31,10 @@
|
|
|
16
31
|
* Borsh codec, and account-meta wiring derived from the on-chain IDL.
|
|
17
32
|
*/
|
|
18
33
|
import { fetchMaybeEscrowAnt, fetchMaybeEscrowToken, getCancelDepositInstruction, getCancelTokenDepositInstruction, getCancelVaultDepositInstruction, getClaimAntArweaveAttestedInstruction, getClaimAntEthereumInstruction, getClaimTokensArweaveAttestedInstruction, getClaimTokensEthereumInstruction, getClaimVaultArweaveAttestedInstruction, getClaimVaultEthereumInstruction, getDepositAntInstruction, getDepositTokensInstruction, getDepositVaultInstruction, getUpdateRecipientInstruction, getUpdateTokenRecipientInstruction, getUpdateVaultRecipientInstruction, } from '@ar.io/solana-contracts/ant-escrow';
|
|
19
|
-
import { fetchMaybeVaultCounter, getVaultedTransferInstructionAsync, } from '@ar.io/solana-contracts/core';
|
|
20
34
|
import { Logger } from '../common/logger.js';
|
|
21
35
|
import { getAssociatedTokenAddressKit } from './ata.js';
|
|
22
36
|
import { ARIO_ANT_ESCROW_PROGRAM_ID, ARIO_CORE_PROGRAM_ID, ESCROW_ARWEAVE_PUBKEY_LEN, ESCROW_ASSET_TYPE_VAULT, ESCROW_ETHEREUM_PUBKEY_LEN, ESCROW_PROTOCOL_ARWEAVE, ESCROW_PROTOCOL_ETHEREUM, } from './constants.js';
|
|
23
|
-
import { getEscrowAntPDA, getEscrowTokenPDA, getEscrowVaultPDA,
|
|
37
|
+
import { getEscrowAntPDA, getEscrowTokenPDA, getEscrowVaultPDA, } from './pda.js';
|
|
24
38
|
import { sendAndConfirm } from './send.js';
|
|
25
39
|
/** Map the Codama-generated `EscrowAnt` raw decoded type to our public
|
|
26
40
|
* `EscrowAntState` with protocol enum + active-prefix pubkey slice. */
|
|
@@ -275,6 +289,55 @@ export class ANTEscrow {
|
|
|
275
289
|
}
|
|
276
290
|
}
|
|
277
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Forward clock-skew buffer (seconds) added to `vault_end_timestamp` before
|
|
294
|
+
* the SDK considers a vault claimable. The SDK reads wall-clock time
|
|
295
|
+
* (`Date.now()`) while the on-chain gate reads Solana cluster time, and
|
|
296
|
+
* the two can disagree by several seconds. The buffer biases every skew
|
|
297
|
+
* race into the *friendly* direction: the SDK rejects when the chain
|
|
298
|
+
* would actually accept (user retries 30s later, succeeds), never the
|
|
299
|
+
* reverse (user submits a doomed tx and sees the raw on-chain error).
|
|
300
|
+
*
|
|
301
|
+
* 30s is conservative — Solana cluster clock typically drifts <2s vs
|
|
302
|
+
* wall clock — but matches the order of magnitude of the previously-used
|
|
303
|
+
* `60s` introspection tolerance in the removed `vault_introspect` module.
|
|
304
|
+
*/
|
|
305
|
+
export const CLOCK_SKEW_TOLERANCE_SECONDS = 30n;
|
|
306
|
+
/**
|
|
307
|
+
* Returns `true` when a vault escrow is past its unlock timestamp by at
|
|
308
|
+
* least {@link CLOCK_SKEW_TOLERANCE_SECONDS}. Non-throwing companion to
|
|
309
|
+
* {@link assertVaultClaimable} for UI gating (e.g. enabling/disabling a
|
|
310
|
+
* Submit button without showing an error).
|
|
311
|
+
*/
|
|
312
|
+
export function isVaultClaimable(escrow) {
|
|
313
|
+
const nowSeconds = BigInt(Math.floor(Date.now() / 1000));
|
|
314
|
+
return nowSeconds >= escrow.vaultEndTimestamp + CLOCK_SKEW_TOLERANCE_SECONDS;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Pre-flight the on-chain `VaultStillLocked` gate (ADR-022): refuse to build
|
|
318
|
+
* a claim tx while the vault is still locked, with a small forward
|
|
319
|
+
* {@link CLOCK_SKEW_TOLERANCE_SECONDS} buffer so wall/cluster clock skew
|
|
320
|
+
* biases into the friendly direction. Surfaces the unlock timestamp so
|
|
321
|
+
* callers / UIs can show "claimable after <date>" instead of a doomed tx.
|
|
322
|
+
*
|
|
323
|
+
* Exported for unit-testability; not part of the public SDK surface — call the
|
|
324
|
+
* high-level `claimVaultArweave` / `claimVaultEthereum` instead, which invoke
|
|
325
|
+
* this guard internally.
|
|
326
|
+
*
|
|
327
|
+
* @internal
|
|
328
|
+
*/
|
|
329
|
+
export function assertVaultClaimable(escrow) {
|
|
330
|
+
if (!isVaultClaimable(escrow)) {
|
|
331
|
+
const unlockIso = new Date(Number(escrow.vaultEndTimestamp) * 1000).toISOString();
|
|
332
|
+
throw new Error(`Vault escrow is still locked until ${unlockIso} ` +
|
|
333
|
+
`(vault_end_timestamp=${escrow.vaultEndTimestamp}; ` +
|
|
334
|
+
`the SDK adds a ${CLOCK_SKEW_TOLERANCE_SECONDS}s clock-skew buffer ` +
|
|
335
|
+
`before allowing a claim). Active (still-locked) vault claims are ` +
|
|
336
|
+
`rejected on-chain with VaultStillLocked (ADR-022) — wait until ` +
|
|
337
|
+
`after the unlock timestamp + buffer, then claim again to receive ` +
|
|
338
|
+
`the tokens liquid.`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
278
341
|
/** Map the Codama-generated `EscrowToken` raw decoded type to our public
|
|
279
342
|
* `EscrowTokenState` with protocol enum + active-prefix pubkey slice. */
|
|
280
343
|
function toEscrowTokenState(raw) {
|
|
@@ -537,100 +600,125 @@ export class TokenEscrow {
|
|
|
537
600
|
}, { programAddress: this.programId });
|
|
538
601
|
}
|
|
539
602
|
/**
|
|
540
|
-
*
|
|
603
|
+
* **Use {@link claimVaultArweaveIx} instead** — this single-send wrapper
|
|
604
|
+
* cannot work end-to-end for the Arweave attested vault-claim path,
|
|
605
|
+
* because the on-chain `claim_vault_arweave_attested` handler requires
|
|
606
|
+
* an Ed25519Program native sigverify ix at idx-1 of the claim ix
|
|
607
|
+
* (introspected via `instructions_sysvar`). That sigverify ix carries
|
|
608
|
+
* the attestor's Ed25519 signature over the canonical claim message
|
|
609
|
+
* and is built by the *integrator* (who calls the off-chain attestor
|
|
610
|
+
* service for the signature, per ADR-017) — the SDK has no attestor
|
|
611
|
+
* URL or client to do this for the caller.
|
|
541
612
|
*
|
|
542
|
-
*
|
|
543
|
-
*
|
|
544
|
-
*
|
|
545
|
-
*
|
|
546
|
-
* sibling instruction in the same transaction.
|
|
613
|
+
* Calling this method instead of composing via
|
|
614
|
+
* {@link claimVaultArweaveIx} will hit `MissingAttestation` on-chain.
|
|
615
|
+
* It is kept only for ABI continuity; new code must use
|
|
616
|
+
* {@link claimVaultArweaveIx} and prepend the attestor sigverify ix.
|
|
547
617
|
*
|
|
548
|
-
*
|
|
549
|
-
* the sibling `vaulted_transfer` ix automatically when the vault is still
|
|
550
|
-
* active — callers do not need to construct it themselves.
|
|
618
|
+
* @deprecated cannot succeed alone — see {@link claimVaultArweaveIx}.
|
|
551
619
|
*/
|
|
552
|
-
async claimVaultArweave(
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
620
|
+
async claimVaultArweave(_args) {
|
|
621
|
+
throw new Error('claimVaultArweave cannot complete the Arweave attested vault-claim ' +
|
|
622
|
+
'in a single SDK call: the on-chain handler requires an ' +
|
|
623
|
+
'Ed25519Program sigverify ix at idx-1 of the claim ix, which ' +
|
|
624
|
+
'must carry the attestor service’s signature over the canonical ' +
|
|
625
|
+
'claim message (ADR-017). The SDK does not know your attestor URL. ' +
|
|
626
|
+
'Use claimVaultArweaveIx() instead and bundle the sigverify ix ' +
|
|
627
|
+
'yourself: ' +
|
|
628
|
+
'[createAtaIx?, ed25519SigverifyIx, claimVaultArweaveIx, ...]. ' +
|
|
629
|
+
'See ar-io-solana-escrow-app/src/pages/ClaimPage.tsx for the ' +
|
|
630
|
+
'reference composition, and ADR-022 / VaultStillLocked for the ' +
|
|
631
|
+
'still-locked rejection (use isVaultClaimable() to pre-flight).');
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Build a `claim_vault_arweave_attested` instruction (without sending).
|
|
635
|
+
* Mirror of {@link claimTokensArweaveIx} for the vault-claim path:
|
|
636
|
+
* returns the bare claim ix so the caller can prepend the attestor's
|
|
637
|
+
* Ed25519Program sigverify ix and submit the bundle in one tx.
|
|
638
|
+
*
|
|
639
|
+
* The on-chain handler:
|
|
640
|
+
* - Reads the preceding Ed25519Program native sigverify ix from
|
|
641
|
+
* `instructions_sysvar` to confirm the attestor signed the canonical
|
|
642
|
+
* claim message.
|
|
643
|
+
* - Rejects with `VaultStillLocked` if `clock < vault_end_timestamp`
|
|
644
|
+
* (ADR-022). Callers should pre-flight with {@link isVaultClaimable}
|
|
645
|
+
* (non-throwing) or {@link assertVaultClaimable} (throws with the
|
|
646
|
+
* unlock timestamp) before composing the tx.
|
|
647
|
+
* - On the expired path, transfers the escrowed amount liquid to
|
|
648
|
+
* `claimantTokenAccount` and closes the escrow PDA.
|
|
649
|
+
*
|
|
650
|
+
* Composition (frontend pattern):
|
|
651
|
+
* ```ts
|
|
652
|
+
* const escrow = await tokenEscrow.requireVaultEscrow(depositor, assetId);
|
|
653
|
+
* assertVaultClaimable(escrow); // pre-flight
|
|
654
|
+
* const canonical = canonicalMessage({ ... }); // build message
|
|
655
|
+
* const attestation = await attestor.attest({ ... }); // attestor service
|
|
656
|
+
* const ed25519Ix = buildEd25519SigverifyIx(
|
|
657
|
+
* attestation.attestorPubkey, attestation.signature, canonical,
|
|
658
|
+
* );
|
|
659
|
+
* const claimIx = await tokenEscrow.claimVaultArweaveIx({
|
|
660
|
+
* depositor, assetId, claimant, claimantTokenAccount,
|
|
661
|
+
* escrowTokenAccount, messageNonce: escrow.nonce,
|
|
662
|
+
* });
|
|
663
|
+
* // Idempotent-create the claimant ATA if it's the canonical derivation.
|
|
664
|
+
* await sendTx([createAtaIx?, ed25519Ix, claimIx]);
|
|
665
|
+
* ```
|
|
666
|
+
*/
|
|
667
|
+
async claimVaultArweaveIx(args) {
|
|
668
|
+
if (args.messageNonce.length !== 32) {
|
|
669
|
+
throw new Error('messageNonce must be 32 bytes');
|
|
556
670
|
}
|
|
557
|
-
const signer = this.requireSigner('
|
|
671
|
+
const signer = this.requireSigner('claimVaultArweaveIx');
|
|
558
672
|
const [escrowPda] = await getEscrowVaultPDA(args.depositor, args.assetId, this.programId);
|
|
559
|
-
|
|
560
|
-
// builder — the on-chain `claim_vault_arweave_attested` ix verifies
|
|
561
|
-
// the attestor's Ed25519 signature via instruction-introspection
|
|
562
|
-
// of a preceding sigverify ix. See doc on `claimArweaveIx`.
|
|
563
|
-
const claimIx = getClaimVaultArweaveAttestedInstruction({
|
|
673
|
+
return getClaimVaultArweaveAttestedInstruction({
|
|
564
674
|
escrow: escrowPda,
|
|
565
675
|
escrowTokenAccount: args.escrowTokenAccount,
|
|
566
676
|
claimantTokenAccount: args.claimantTokenAccount,
|
|
567
|
-
payerTokenAccount: args.payerTokenAccount,
|
|
568
677
|
claimant: args.claimant,
|
|
569
678
|
depositor: args.depositor,
|
|
570
679
|
payer: signer,
|
|
571
|
-
messageNonce:
|
|
680
|
+
messageNonce: args.messageNonce,
|
|
572
681
|
}, { programAddress: this.programId });
|
|
573
|
-
const ixs = await this.maybeBundleVaultedTransfer(escrow, args, claimIx);
|
|
574
|
-
return this.send(ixs, 400_000);
|
|
575
682
|
}
|
|
576
683
|
/**
|
|
577
684
|
* Submit an Ethereum ECDSA signature to release escrowed vault tokens. See
|
|
578
|
-
* {@link claimVaultArweave}
|
|
579
|
-
*
|
|
685
|
+
* {@link claimVaultArweave} — same lock semantics: vaults are only claimable
|
|
686
|
+
* after `vault_end_timestamp`; active (still-locked) claims throw pre-flight
|
|
687
|
+
* and are rejected on-chain with `VaultStillLocked` (ADR-022 / BD-107).
|
|
580
688
|
*/
|
|
581
689
|
async claimVaultEthereum(args) {
|
|
582
690
|
const escrow = await this.requireVaultEscrow(args.depositor, args.assetId);
|
|
583
691
|
if (escrow.recipientProtocol !== 'ethereum') {
|
|
584
692
|
throw new Error(`escrow recipient is ${escrow.recipientProtocol}, not ethereum`);
|
|
585
693
|
}
|
|
694
|
+
assertVaultClaimable(escrow);
|
|
586
695
|
const signer = this.requireSigner('claimVaultEthereum');
|
|
587
696
|
const [escrowPda] = await getEscrowVaultPDA(args.depositor, args.assetId, this.programId);
|
|
588
697
|
const claimIx = getClaimVaultEthereumInstruction({
|
|
589
698
|
escrow: escrowPda,
|
|
590
699
|
escrowTokenAccount: args.escrowTokenAccount,
|
|
591
700
|
claimantTokenAccount: args.claimantTokenAccount,
|
|
592
|
-
payerTokenAccount: args.payerTokenAccount,
|
|
593
701
|
claimant: args.claimant,
|
|
594
702
|
depositor: args.depositor,
|
|
595
703
|
payer: signer,
|
|
596
704
|
messageNonce: escrow.nonce,
|
|
597
705
|
signature: args.signature,
|
|
598
706
|
}, { programAddress: this.programId });
|
|
599
|
-
const
|
|
707
|
+
const createClaimantAtaIx = await this._createClaimantAtaIfCanonical(args.claimant, args.claimantTokenAccount, escrow.arioMint);
|
|
708
|
+
const ixs = createClaimantAtaIx
|
|
709
|
+
? [createClaimantAtaIx, claimIx]
|
|
710
|
+
: [claimIx];
|
|
600
711
|
return this.send(ixs);
|
|
601
712
|
}
|
|
602
713
|
/**
|
|
603
|
-
* If the vault escrow is still locked (`vaultEndTimestamp` in the future),
|
|
604
|
-
* return `[claimIx, vaultedTransferIx]` so the on-chain claim handler can
|
|
605
|
-
* see the sibling (via `instructions_sysvar`) and re-vault tokens for the
|
|
606
|
-
* claimant. If the vault has expired, just `[claimIx]` — the on-chain
|
|
607
|
-
* handler delivers tokens directly to `claimantTokenAccount`.
|
|
608
|
-
*
|
|
609
|
-
* **Ordering matters at runtime**: `claim` must execute first so it can
|
|
610
|
-
* move tokens `escrow → payerTokenAccount`. `vaulted_transfer` then pulls
|
|
611
|
-
* from `payerTokenAccount` into the new vault. Reversing the order makes
|
|
612
|
-
* `vaulted_transfer` fail with `insufficient funds` because nothing has
|
|
613
|
-
* funded `payerTokenAccount` yet. The introspection check in
|
|
614
|
-
* `vault_introspect::verify_vaulted_transfer_in_tx` is presence-based
|
|
615
|
-
* (reads `instructions_sysvar`) so the *sibling* ordering doesn't matter
|
|
616
|
-
* for the check itself — only for atomic execution.
|
|
617
|
-
*
|
|
618
|
-
* `lockDurationSeconds` is set to the SDK-local `remaining` value. The
|
|
619
|
-
* on-chain handler accepts `lock_duration >= remaining_at_execution - 60s`
|
|
620
|
-
* (see the introspection function's tolerance), so any modest clock skew
|
|
621
|
-
* between client and chain is absorbed.
|
|
622
|
-
*/
|
|
623
714
|
/**
|
|
624
715
|
* Idempotent-create the claimant's canonical ATA when needed.
|
|
625
716
|
*
|
|
626
|
-
* The
|
|
627
|
-
* `claimantTokenAccount`
|
|
628
|
-
*
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
* even though the active path doesn't write to it. Either way: if the
|
|
632
|
-
* claimant is a fresh wallet that has never held this mint, the ATA
|
|
633
|
-
* doesn't exist and the tx fails with `AccountNotInitialized` (#3012).
|
|
717
|
+
* The claim handler delivers liquid tokens directly to
|
|
718
|
+
* `claimantTokenAccount` (post-ADR-022 there's only the liquid path for
|
|
719
|
+
* vaults). If the claimant is a fresh wallet that has never held this
|
|
720
|
+
* mint, the ATA doesn't exist and the tx fails with `AccountNotInitialized`
|
|
721
|
+
* (#3012).
|
|
634
722
|
*
|
|
635
723
|
* Returns `null` when the caller passed a non-canonical
|
|
636
724
|
* `claimantTokenAccount` (manually-created non-ATA token account,
|
|
@@ -643,52 +731,6 @@ export class TokenEscrow {
|
|
|
643
731
|
const signer = this.requireSigner('createClaimantAtaIfCanonical');
|
|
644
732
|
return buildCreateAtaIdempotentIx(signer.address, canonical, claimant, mint);
|
|
645
733
|
}
|
|
646
|
-
async maybeBundleVaultedTransfer(escrow, args, claimIx) {
|
|
647
|
-
const nowSeconds = BigInt(Math.floor(Date.now() / 1000));
|
|
648
|
-
const remaining = escrow.vaultEndTimestamp - nowSeconds;
|
|
649
|
-
if (remaining <= 0n) {
|
|
650
|
-
// Expired vault → claim handler delivers liquid to claimantTokenAccount.
|
|
651
|
-
// Idempotent-create that ATA if it's the canonical derivation so a
|
|
652
|
-
// first-time recipient just works.
|
|
653
|
-
const createClaimantAtaIx = await this._createClaimantAtaIfCanonical(args.claimant, args.claimantTokenAccount, escrow.arioMint);
|
|
654
|
-
return createClaimantAtaIx ? [createClaimantAtaIx, claimIx] : [claimIx];
|
|
655
|
-
}
|
|
656
|
-
const signer = this.requireSigner('maybeBundleVaultedTransfer');
|
|
657
|
-
const nextId = await this.getNextVaultId(args.claimant);
|
|
658
|
-
const [vaultPda] = await getVaultPDA(args.claimant, nextId, this.coreProgram);
|
|
659
|
-
const vaultATA = await getAssociatedTokenAddressKit(escrow.arioMint, vaultPda, true);
|
|
660
|
-
// Active-vault path: `claim_vault_*` still validates the claimant ATA
|
|
661
|
-
// at account-load-time (Anchor `Account<TokenAccount>` constraint),
|
|
662
|
-
// even though no liquid is written to it. Idempotent-create so a fresh
|
|
663
|
-
// claimant doesn't fail the ix with AccountNotInitialized (#3012).
|
|
664
|
-
const createClaimantAtaIx = await this._createClaimantAtaIfCanonical(args.claimant, args.claimantTokenAccount, escrow.arioMint);
|
|
665
|
-
// The new vault PDA's ATA must exist before `vaulted_transfer` reads it
|
|
666
|
-
// (else `AccountNotInitialized` #3012). Idempotent so a retry after a
|
|
667
|
-
// partial-failure tx is safe. Placed after the claim ix to preserve
|
|
668
|
-
// the "claim first" tx ordering invariant.
|
|
669
|
-
const createVaultAtaIx = buildCreateAtaIdempotentIx(signer.address, vaultATA, vaultPda, escrow.arioMint);
|
|
670
|
-
const vaultedIx = await getVaultedTransferInstructionAsync({
|
|
671
|
-
vault: vaultPda,
|
|
672
|
-
senderTokenAccount: args.payerTokenAccount,
|
|
673
|
-
vaultTokenAccount: vaultATA,
|
|
674
|
-
recipient: args.claimant,
|
|
675
|
-
sender: signer,
|
|
676
|
-
amount: escrow.amount,
|
|
677
|
-
lockDurationSeconds: remaining,
|
|
678
|
-
revocable: escrow.vaultRevocable,
|
|
679
|
-
}, { programAddress: this.coreProgram });
|
|
680
|
-
const head = createClaimantAtaIx ? [createClaimantAtaIx] : [];
|
|
681
|
-
return [...head, claimIx, createVaultAtaIx, vaultedIx];
|
|
682
|
-
}
|
|
683
|
-
/** Read the recipient's `VaultCounter.nextId`, defaulting to 0n if the
|
|
684
|
-
* counter PDA hasn't been initialised yet (first vault for that owner). */
|
|
685
|
-
async getNextVaultId(owner) {
|
|
686
|
-
const [counterPda] = await getVaultCounterPDA(owner, this.coreProgram);
|
|
687
|
-
const account = await fetchMaybeVaultCounter(this.rpc, counterPda, {
|
|
688
|
-
commitment: this.commitment,
|
|
689
|
-
});
|
|
690
|
-
return account.exists ? account.data.nextId : 0n;
|
|
691
|
-
}
|
|
692
734
|
// -------------------------------------------------------------------
|
|
693
735
|
// Write — cancel
|
|
694
736
|
// -------------------------------------------------------------------
|
package/lib/esm/solana/events.js
CHANGED
|
@@ -1,210 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `sha256("event:<EventName>")[..8]`.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
8
7
|
*
|
|
9
|
-
*
|
|
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
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19
9
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* the
|
|
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.
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
29
15
|
*/
|
|
30
|
-
import { getBase64Encoder, } 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
|
-
const PROGRAM_DATA_PREFIX = 'Program data: ';
|
|
42
|
-
let DISPATCH = null;
|
|
43
|
-
function buildDispatch() {
|
|
44
|
-
const table = new Map();
|
|
45
|
-
const groups = [
|
|
46
|
-
[ARIO_CORE_PROGRAM_ADDRESS, coreEvents],
|
|
47
|
-
[ARIO_GAR_PROGRAM_ADDRESS, garEvents],
|
|
48
|
-
[ARIO_ARNS_PROGRAM_ADDRESS, arnsEvents],
|
|
49
|
-
[ARIO_ANT_PROGRAM_ADDRESS, antEvents],
|
|
50
|
-
[ARIO_ANT_ESCROW_PROGRAM_ADDRESS, escrowEvents],
|
|
51
|
-
];
|
|
52
|
-
for (const [programId, mod] of groups) {
|
|
53
|
-
for (const [exportName, exportValue] of Object.entries(mod)) {
|
|
54
|
-
// Discriminators export as `EVENT_NAME_DISCRIMINATOR` constants of
|
|
55
|
-
// type Uint8Array. The matching decoder is `getEventNameDecoder`.
|
|
56
|
-
if (!exportName.endsWith('_DISCRIMINATOR') ||
|
|
57
|
-
!(exportValue instanceof Uint8Array)) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
// Recover the event PascalCase name from the SCREAMING_SNAKE
|
|
61
|
-
// discriminator constant: TRANSFER_EVENT_DISCRIMINATOR → TransferEvent
|
|
62
|
-
const eventName = screamingSnakeToPascal(exportName.slice(0, -'_DISCRIMINATOR'.length));
|
|
63
|
-
const decoderKey = `get${eventName}Decoder`;
|
|
64
|
-
const decoderFactory = mod[decoderKey];
|
|
65
|
-
if (typeof decoderFactory !== 'function') {
|
|
66
|
-
// Should never happen — codegen always emits both consts together —
|
|
67
|
-
// but skip defensively rather than crash at import time.
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const decoder = decoderFactory.call(null);
|
|
71
|
-
const hex = bytesToHex(exportValue);
|
|
72
|
-
table.set(hex, {
|
|
73
|
-
name: eventName,
|
|
74
|
-
programId,
|
|
75
|
-
decode: (blob) => decoder.decode(blob),
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return table;
|
|
80
|
-
}
|
|
81
|
-
function dispatch() {
|
|
82
|
-
if (DISPATCH === null)
|
|
83
|
-
DISPATCH = buildDispatch();
|
|
84
|
-
return DISPATCH;
|
|
85
|
-
}
|
|
86
|
-
export function parseEventsFromLogs(logs, filter) {
|
|
87
|
-
const table = dispatch();
|
|
88
|
-
const stack = [];
|
|
89
|
-
const out = [];
|
|
90
|
-
for (const line of logs) {
|
|
91
|
-
// Track CPI nesting via the standard Solana log format:
|
|
92
|
-
// "Program <pubkey> invoke [N]"
|
|
93
|
-
// "Program <pubkey> success"
|
|
94
|
-
// "Program <pubkey> failed: ..."
|
|
95
|
-
const invoke = line.match(/^Program ([A-HJ-NP-Za-km-z1-9]{32,44}) invoke \[\d+\]$/);
|
|
96
|
-
if (invoke) {
|
|
97
|
-
stack.push(invoke[1]);
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
const ended = line.match(/^Program ([A-HJ-NP-Za-km-z1-9]{32,44}) (success|failed:.*)$/);
|
|
101
|
-
if (ended) {
|
|
102
|
-
// Pop the matching stack frame. Solana guarantees these are
|
|
103
|
-
// properly nested.
|
|
104
|
-
const top = stack.length > 0 ? stack[stack.length - 1] : undefined;
|
|
105
|
-
if (top === ended[1])
|
|
106
|
-
stack.pop();
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
if (!line.startsWith(PROGRAM_DATA_PREFIX))
|
|
110
|
-
continue;
|
|
111
|
-
const blob = decodeBase64(line.slice(PROGRAM_DATA_PREFIX.length).trim());
|
|
112
|
-
if (blob === null || blob.length < 8)
|
|
113
|
-
continue;
|
|
114
|
-
const hex = bytesToHex(blob.subarray(0, 8));
|
|
115
|
-
const entry = table.get(hex);
|
|
116
|
-
if (!entry)
|
|
117
|
-
continue;
|
|
118
|
-
// Use the program at the top of the stack as the emitter. If for
|
|
119
|
-
// some reason the stack is empty (malformed logs), fall back to
|
|
120
|
-
// the dispatch entry's programId (matches the discriminator's
|
|
121
|
-
// declared owner).
|
|
122
|
-
const programId = stack.length > 0 ? stack[stack.length - 1] : entry.programId;
|
|
123
|
-
const data = entry.decode(blob);
|
|
124
|
-
out.push({ programId, name: entry.name, data });
|
|
125
|
-
}
|
|
126
|
-
if (filter !== undefined) {
|
|
127
|
-
return out.filter((e) => e.name === filter);
|
|
128
|
-
}
|
|
129
|
-
return out;
|
|
130
|
-
}
|
|
131
16
|
/**
|
|
132
|
-
*
|
|
17
|
+
* AR.IO Solana event decoders — STUB.
|
|
133
18
|
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* always log).
|
|
19
|
+
* The local event codegen pipeline has been removed. Event decoders will be
|
|
20
|
+
* restored once `@ar.io/solana-contracts` publishes them. Until then, the
|
|
21
|
+
* parse functions return empty arrays and the union types are `never`.
|
|
138
22
|
*/
|
|
139
|
-
export
|
|
140
|
-
|
|
141
|
-
const tx = await rpc
|
|
142
|
-
.getTransaction(signature, {
|
|
143
|
-
commitment,
|
|
144
|
-
maxSupportedTransactionVersion: 0,
|
|
145
|
-
encoding: 'json',
|
|
146
|
-
})
|
|
147
|
-
.send();
|
|
148
|
-
const logs = tx?.meta?.logMessages ?? [];
|
|
149
|
-
return parseEventsFromLogs(logs);
|
|
150
|
-
}
|
|
151
|
-
// ---------------------------------------------------------------------------
|
|
152
|
-
// Type guards — sugar so `if (isNamePurchasedEvent(ev)) { ev.data.cost ... }`
|
|
153
|
-
// narrows correctly without writing `ev.name === 'NamePurchasedEvent'`.
|
|
154
|
-
// One per event would be 73 lines of boilerplate; we expose a
|
|
155
|
-
// generic `isEvent<N>(ev, name)` instead. Consumers can wrap if they
|
|
156
|
-
// want a specific named guard.
|
|
157
|
-
// ---------------------------------------------------------------------------
|
|
158
|
-
/**
|
|
159
|
-
* Generic type-narrowing predicate for any event name.
|
|
160
|
-
*
|
|
161
|
-
* ```ts
|
|
162
|
-
* for (const ev of events) {
|
|
163
|
-
* if (isEvent(ev, 'NamePurchasedEvent')) {
|
|
164
|
-
* // ev.data is typed as NamePurchasedEvent here
|
|
165
|
-
* console.log(ev.data.buyer, ev.data.cost);
|
|
166
|
-
* }
|
|
167
|
-
* }
|
|
168
|
-
* ```
|
|
169
|
-
*/
|
|
170
|
-
export function isEvent(ev, name) {
|
|
171
|
-
return ev.name === name;
|
|
172
|
-
}
|
|
173
|
-
// ---------------------------------------------------------------------------
|
|
174
|
-
// Internal helpers (not exported)
|
|
175
|
-
// ---------------------------------------------------------------------------
|
|
176
|
-
function bytesToHex(bytes) {
|
|
177
|
-
let s = '';
|
|
178
|
-
for (const b of bytes)
|
|
179
|
-
s += b.toString(16).padStart(2, '0');
|
|
180
|
-
return s;
|
|
23
|
+
export function parseEventsFromLogs(_logs) {
|
|
24
|
+
return [];
|
|
181
25
|
}
|
|
182
|
-
function
|
|
183
|
-
|
|
184
|
-
return s
|
|
185
|
-
.split('_')
|
|
186
|
-
.filter((p) => p.length > 0)
|
|
187
|
-
.map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())
|
|
188
|
-
.join('');
|
|
26
|
+
export async function parseTransactionEvents(_rpc, _signature, _opts) {
|
|
27
|
+
return [];
|
|
189
28
|
}
|
|
190
|
-
function
|
|
191
|
-
|
|
192
|
-
// representation; for raw decoding we use Buffer when running on Node
|
|
193
|
-
// (the SDK targets Node 18+) and atob otherwise. Wrap it so callers
|
|
194
|
-
// get a predictable Uint8Array regardless of runtime.
|
|
195
|
-
try {
|
|
196
|
-
if (typeof Buffer !== 'undefined') {
|
|
197
|
-
return new Uint8Array(Buffer.from(b64, 'base64'));
|
|
198
|
-
}
|
|
199
|
-
// Browser path — atob returns a binary string we then unpack.
|
|
200
|
-
const bin = atob(b64);
|
|
201
|
-
const out = new Uint8Array(bin.length);
|
|
202
|
-
for (let i = 0; i < bin.length; i++)
|
|
203
|
-
out[i] = bin.charCodeAt(i);
|
|
204
|
-
return out;
|
|
205
|
-
}
|
|
206
|
-
catch {
|
|
207
|
-
void getBase64Encoder; // keep the import alive for future kit-native variants
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
29
|
+
export function isEvent(ev, _name) {
|
|
30
|
+
return ev.name === _name;
|
|
210
31
|
}
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
1
16
|
/**
|
|
2
17
|
* Multi-source, multi-gateway funding plan builder + executor for the AR.IO
|
|
3
18
|
* Solana SDK.
|
|
@@ -552,6 +567,7 @@ async function fetchUserWithdrawals(rpc, owner, garProgram) {
|
|
|
552
567
|
// 106..107 is_protected: bool — BD-102: protected min-stake exit
|
|
553
568
|
// vaults are skipped (cannot fund-from)
|
|
554
569
|
// 107..108 bump: u8
|
|
570
|
+
// 108..111 version: SchemaVersion { major, minor, patch }
|
|
555
571
|
try {
|
|
556
572
|
const result = await rpc
|
|
557
573
|
.getProgramAccounts(garProgram, {
|
|
@@ -559,7 +575,7 @@ async function fetchUserWithdrawals(rpc, owner, garProgram) {
|
|
|
559
575
|
{
|
|
560
576
|
memcmp: { offset: 8n, bytes: owner, encoding: 'base58' },
|
|
561
577
|
},
|
|
562
|
-
{ dataSize: BigInt(8 + 32 + 8 + 32 + 8 + 8 + 8 + 1 + 1 + 1 + 1) },
|
|
578
|
+
{ dataSize: BigInt(8 + 32 + 8 + 32 + 8 + 8 + 8 + 1 + 1 + 1 + 1 + 3) },
|
|
563
579
|
],
|
|
564
580
|
encoding: 'base64',
|
|
565
581
|
})
|
|
@@ -607,6 +623,7 @@ async function fetchUserDelegations(rpc, owner, garProgram) {
|
|
|
607
623
|
// 80..88 start_timestamp: i64
|
|
608
624
|
// 88..104 reward_debt: u128
|
|
609
625
|
// 104..105 bump: u8
|
|
626
|
+
// 105..108 version: SchemaVersion { major, minor, patch }
|
|
610
627
|
try {
|
|
611
628
|
const result = await rpc
|
|
612
629
|
.getProgramAccounts(garProgram, {
|
|
@@ -614,7 +631,7 @@ async function fetchUserDelegations(rpc, owner, garProgram) {
|
|
|
614
631
|
{
|
|
615
632
|
memcmp: { offset: 40n, bytes: owner, encoding: 'base58' },
|
|
616
633
|
},
|
|
617
|
-
{ dataSize: BigInt(8 + 32 + 32 + 8 + 8 + 16 + 1) },
|
|
634
|
+
{ dataSize: BigInt(8 + 32 + 32 + 8 + 8 + 16 + 1 + 3) },
|
|
618
635
|
],
|
|
619
636
|
encoding: 'base64',
|
|
620
637
|
})
|