@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,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for JSON-RPC reads against {@link SolanaRpc} that return a
|
|
3
|
+
* web3.js-shaped `AccountInfo` (Buffer-backed `data`, plain Address strings).
|
|
4
|
+
* Used by the ACL/AntRegistry path so the deserializers can stay agnostic of
|
|
5
|
+
* the RPC client's response shape.
|
|
6
|
+
*/
|
|
7
|
+
import { address } from '@solana/kit';
|
|
8
|
+
/**
|
|
9
|
+
* Map an arbitrary commitment string to one of kit's three supported tiers.
|
|
10
|
+
* Anything we don't recognise (or `undefined`) falls back to `confirmed`,
|
|
11
|
+
* which is the project-wide default for read paths.
|
|
12
|
+
*/
|
|
13
|
+
function toKitCommitment(commitment) {
|
|
14
|
+
if (commitment === 'finalized' ||
|
|
15
|
+
commitment === 'confirmed' ||
|
|
16
|
+
commitment === 'processed') {
|
|
17
|
+
return commitment;
|
|
18
|
+
}
|
|
19
|
+
return 'confirmed';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Fetch a single account and decode its data into a Buffer-backed shape that
|
|
23
|
+
* looks like the legacy `web3.js` `AccountInfo`. Returns `null` if the account
|
|
24
|
+
* doesn't exist (so callers can handle "missing PDA" without try/catch).
|
|
25
|
+
*/
|
|
26
|
+
export async function getAccountInfoLegacy(rpc, pda, commitment) {
|
|
27
|
+
const res = await rpc
|
|
28
|
+
.getAccountInfo(pda, {
|
|
29
|
+
encoding: 'base64',
|
|
30
|
+
commitment: toKitCommitment(commitment),
|
|
31
|
+
})
|
|
32
|
+
.send();
|
|
33
|
+
if (!res.value)
|
|
34
|
+
return null;
|
|
35
|
+
const [dataB64] = res.value.data;
|
|
36
|
+
return {
|
|
37
|
+
data: Buffer.from(dataB64, 'base64'),
|
|
38
|
+
owner: address(res.value.owner),
|
|
39
|
+
lamports: Number(res.value.lamports),
|
|
40
|
+
executable: res.value.executable,
|
|
41
|
+
rentEpoch: 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fetch multiple accounts in a single RPC round-trip and decode each into
|
|
46
|
+
* the legacy `AccountInfo` shape. Missing accounts come back as `null`,
|
|
47
|
+
* preserving 1:1 alignment with the input `pdas` array.
|
|
48
|
+
*
|
|
49
|
+
* Used by paginated readers (ACL pages, etc.) to load all sibling pages
|
|
50
|
+
* via `getMultipleAccountsInfo` rather than firing N parallel
|
|
51
|
+
* `getAccountInfo` calls.
|
|
52
|
+
*/
|
|
53
|
+
export async function getMultipleAccountsInfoLegacy(rpc, pdas, commitment) {
|
|
54
|
+
if (pdas.length === 0)
|
|
55
|
+
return [];
|
|
56
|
+
const res = await rpc
|
|
57
|
+
.getMultipleAccounts(pdas, {
|
|
58
|
+
encoding: 'base64',
|
|
59
|
+
commitment: toKitCommitment(commitment),
|
|
60
|
+
})
|
|
61
|
+
.send();
|
|
62
|
+
return res.value.map((acct) => {
|
|
63
|
+
if (!acct)
|
|
64
|
+
return null;
|
|
65
|
+
const [dataB64] = acct.data;
|
|
66
|
+
return {
|
|
67
|
+
data: Buffer.from(dataB64, 'base64'),
|
|
68
|
+
owner: address(acct.owner),
|
|
69
|
+
lamports: Number(acct.lamports),
|
|
70
|
+
executable: acct.executable,
|
|
71
|
+
rentEpoch: 0,
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metaplex-standard JSON metadata builder for AR.IO ANT NFTs.
|
|
3
|
+
*
|
|
4
|
+
* The Core asset's `uri` field on chain points at a JSON file with this
|
|
5
|
+
* shape; marketplaces and DAS providers fetch + parse it for their
|
|
6
|
+
* inline name/image/description display. The 3 ArNS traits (`ArNS Name`,
|
|
7
|
+
* `Type`, `Undername Limit`) live in the on-chain Attributes plugin, NOT
|
|
8
|
+
* in this JSON — see ADR-012.
|
|
9
|
+
*
|
|
10
|
+
* This helper produces the exact same JSON shape as the migration import
|
|
11
|
+
* (`migration/import/src/metadata.ts::buildAntMetadata`); the two paths
|
|
12
|
+
* MUST stay in lock-step or migrated and freshly-spawned ANTs will
|
|
13
|
+
* render differently in marketplace UIs. A regression test in
|
|
14
|
+
* `spawn-ant.test.ts` asserts byte-equality between the two for matching
|
|
15
|
+
* inputs.
|
|
16
|
+
*
|
|
17
|
+
* Pure function. No network, no Turbo, no dependencies. Caller handles
|
|
18
|
+
* uploading the resulting JSON to Arweave (e.g. via `@ardrive/turbo-sdk`
|
|
19
|
+
* with a `HexSolanaSigner` — free for files under 100 KiB) and passes the
|
|
20
|
+
* resulting `ar://${txid}` to `spawnSolanaANT`'s `state.uri`.
|
|
21
|
+
*/
|
|
22
|
+
// Re-export the SDK-canonical AR.IO logo TX ID + ar:// protocol from the
|
|
23
|
+
// shared constants module so this metadata builder stays in lock-step with
|
|
24
|
+
// the rest of the SDK + the migration import package's JSON output.
|
|
25
|
+
export { ARIO_LOGO_TX_ID, AR_IO_PROTOCOL as AR_PROTOCOL, } from '../constants.js';
|
|
26
|
+
import { ARIO_LOGO_TX_ID, AR_IO_PROTOCOL as AR_PROTOCOL, } from '../constants.js';
|
|
27
|
+
function makeUri(txId, gateway) {
|
|
28
|
+
return gateway ? `https://${gateway}/raw/${txId}` : `${AR_PROTOCOL}${txId}`;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build ANT NFT JSON metadata.
|
|
32
|
+
*
|
|
33
|
+
* Output is byte-identical to the migration import's `buildAntMetadata`
|
|
34
|
+
* for matching inputs. Defaults to `ar://` URLs (ADR-012 canonical); pass
|
|
35
|
+
* `gateway` to opt into https URLs.
|
|
36
|
+
*/
|
|
37
|
+
export function buildAntMetadata(params) {
|
|
38
|
+
const logoTxId = params.logoTxId || ARIO_LOGO_TX_ID;
|
|
39
|
+
const ticker = params.ticker || 'ANT';
|
|
40
|
+
const arnsName = params.arnsName;
|
|
41
|
+
const gateway = params.gateway;
|
|
42
|
+
const description = params.description ||
|
|
43
|
+
(arnsName
|
|
44
|
+
? `Arweave Name Token for ${arnsName}.ar.io`
|
|
45
|
+
: 'Arweave Name Token');
|
|
46
|
+
const logoUri = makeUri(logoTxId, gateway);
|
|
47
|
+
const metadata = {
|
|
48
|
+
name: arnsName || params.name,
|
|
49
|
+
symbol: ticker,
|
|
50
|
+
description,
|
|
51
|
+
image: logoUri,
|
|
52
|
+
properties: {
|
|
53
|
+
files: [{ uri: logoUri, type: 'image/png' }],
|
|
54
|
+
// Metaplex standard categories are image|video|audio|vr|html. The
|
|
55
|
+
// semantic "this is an ANT for an ArNS domain" is conveyed by the
|
|
56
|
+
// on-chain Attributes plugin (Type=lease/permabuy), not this JSON.
|
|
57
|
+
category: 'image',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
if (arnsName) {
|
|
61
|
+
metadata.external_url = gateway
|
|
62
|
+
? `https://${arnsName}.ar.io`
|
|
63
|
+
: `${AR_PROTOCOL}${arnsName}`;
|
|
64
|
+
}
|
|
65
|
+
return metadata;
|
|
66
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reader for the on-chain Metaplex Core asset (`AssetV1` + plugin chain).
|
|
3
|
+
*
|
|
4
|
+
* The codama-generated decoders in `generated/mpl-core` only cover the
|
|
5
|
+
* fixed-shape header section (`AssetV1`, `PluginHeaderV1`, etc.) — they
|
|
6
|
+
* don't know how to follow the variable-offset registry chain to a
|
|
7
|
+
* specific plugin payload. This module fills that gap with a small
|
|
8
|
+
* walker that:
|
|
9
|
+
*
|
|
10
|
+
* 1. decodes the `AssetV1` prefix (key + owner + update authority +
|
|
11
|
+
* name + uri + seq);
|
|
12
|
+
* 2. follows the `PluginHeaderV1.pluginRegistryOffset` to the
|
|
13
|
+
* `PluginRegistryV1`;
|
|
14
|
+
* 3. iterates registry records to find the requested plugin variant;
|
|
15
|
+
* 4. decodes the `Plugin` enum at the registry record's offset.
|
|
16
|
+
*
|
|
17
|
+
* The same walk lives on-chain in `programs/ario-arns/src/state/mod.rs`
|
|
18
|
+
* (`read_mpl_core_attribute`) and `programs/ario-core/src/mpl_core.rs`
|
|
19
|
+
* (`read_ant_program`). The three implementations are pinned against
|
|
20
|
+
* each other by the migration import's edge-case fixtures and unit
|
|
21
|
+
* tests at all three layers.
|
|
22
|
+
*
|
|
23
|
+
* Reading is best-effort: any parse failure returns `null` rather than
|
|
24
|
+
* throwing, so callers can fall back to canonical defaults
|
|
25
|
+
* (e.g. `ARIO_ANT_PROGRAM_ID`) when an asset was minted without the
|
|
26
|
+
* `ANT Program` attribute or has a layout the walker doesn't recognise.
|
|
27
|
+
*/
|
|
28
|
+
import { fetchEncodedAccount, } from '@solana/kit';
|
|
29
|
+
import { getAssetV1Decoder } from './generated/mpl-core/accounts/assetV1.js';
|
|
30
|
+
import { getPluginHeaderV1Decoder } from './generated/mpl-core/accounts/pluginHeaderV1.js';
|
|
31
|
+
import { getPluginRegistryV1Decoder } from './generated/mpl-core/accounts/pluginRegistryV1.js';
|
|
32
|
+
import { getPluginDecoder } from './generated/mpl-core/types/plugin.js';
|
|
33
|
+
import { PluginType } from './generated/mpl-core/types/pluginType.js';
|
|
34
|
+
/**
|
|
35
|
+
* On-chain trait keys. Marketplaces and DAS indexers query these by
|
|
36
|
+
* exact string match — keep in lock-step with:
|
|
37
|
+
* - `migration/import/src/phases/phase2-ants.ts`
|
|
38
|
+
* - `programs/ario-arns/src/mpl_core_cpi.rs::TRAIT_KEY_*`
|
|
39
|
+
* - `programs/ario-core/src/mpl_core.rs::TRAIT_KEY_ANT_PROGRAM`
|
|
40
|
+
*/
|
|
41
|
+
export const TRAIT_KEY_ARNS_NAME = 'ArNS Name';
|
|
42
|
+
export const TRAIT_KEY_TYPE = 'Type';
|
|
43
|
+
export const TRAIT_KEY_UNDERNAME_LIMIT = 'Undername Limit';
|
|
44
|
+
export const TRAIT_KEY_ANT_PROGRAM = 'ANT Program';
|
|
45
|
+
/**
|
|
46
|
+
* Read a single attribute value from a Metaplex Core asset's Attributes
|
|
47
|
+
* plugin. Returns `null` when the asset has no plugin section, has no
|
|
48
|
+
* Attributes plugin, the requested key is absent, or any layer of the
|
|
49
|
+
* walk fails to decode. This is a best-effort lookup — callers should
|
|
50
|
+
* use a canonical default rather than treating absence as an error.
|
|
51
|
+
*
|
|
52
|
+
* `data` is the raw account data (post-discriminator? no — MPL Core
|
|
53
|
+
* doesn't use the 8-byte Anchor discriminator, the asset is the
|
|
54
|
+
* account's full data starting from the `Key` enum byte).
|
|
55
|
+
*/
|
|
56
|
+
export function readAttribute(data, key) {
|
|
57
|
+
try {
|
|
58
|
+
// ── 1. Asset header (variable size — name and uri are length-prefixed).
|
|
59
|
+
const [, afterAsset] = getAssetV1Decoder().read(data, 0);
|
|
60
|
+
// No plugin section → no attributes.
|
|
61
|
+
if (afterAsset >= data.length)
|
|
62
|
+
return null;
|
|
63
|
+
// ── 2. PluginHeaderV1: 9 bytes (1-byte key + u64 registry offset).
|
|
64
|
+
const [pluginHeader] = getPluginHeaderV1Decoder().read(data, afterAsset);
|
|
65
|
+
const registryOffset = Number(pluginHeader.pluginRegistryOffset);
|
|
66
|
+
if (registryOffset >= data.length)
|
|
67
|
+
return null;
|
|
68
|
+
// ── 3. PluginRegistryV1: list of (pluginType, authority, offset).
|
|
69
|
+
const [registry] = getPluginRegistryV1Decoder().read(data, registryOffset);
|
|
70
|
+
for (const record of registry.registry) {
|
|
71
|
+
// `pluginType` is the kit-decoded numeric `PluginType` enum value
|
|
72
|
+
// (e.g. `PluginType.Attributes === 6`). The matching `Plugin`
|
|
73
|
+
// payload at `record.offset` is a discriminated union whose
|
|
74
|
+
// `__kind` is the string variant name — so we use the numeric
|
|
75
|
+
// enum here and the string tag below.
|
|
76
|
+
if (record.pluginType !== PluginType.Attributes)
|
|
77
|
+
continue;
|
|
78
|
+
const [plugin] = getPluginDecoder().read(data, Number(record.offset));
|
|
79
|
+
if (plugin.__kind !== 'Attributes')
|
|
80
|
+
continue;
|
|
81
|
+
const attrs = plugin.fields[0].attributeList;
|
|
82
|
+
const found = attrs.find((a) => a.key === key);
|
|
83
|
+
return found ? found.value : null;
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Any decode failure (truncated buffer, unknown plugin variant, etc.)
|
|
89
|
+
// — treat as "no override" and let the caller fall back.
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convenience wrapper: fetch the asset account and parse its
|
|
95
|
+
* `ANT Program` attribute. Returns `null` when the account doesn't
|
|
96
|
+
* exist, has no `ANT Program` trait, or the value can't be parsed —
|
|
97
|
+
* callers should fall back to the canonical `ARIO_ANT_PROGRAM_ID`.
|
|
98
|
+
*
|
|
99
|
+
* Importing this here (rather than wiring it directly into the resolver
|
|
100
|
+
* paths) lets `ant-readable.ts` keep its constructor synchronous and
|
|
101
|
+
* have a separate async `fromAsset(rpc, mint)` factory that does the
|
|
102
|
+
* lookup once and caches the result.
|
|
103
|
+
*/
|
|
104
|
+
export async function fetchAntProgramFromAsset(rpc, mint, config) {
|
|
105
|
+
const account = await fetchEncodedAccount(rpc, mint, config);
|
|
106
|
+
if (!account.exists)
|
|
107
|
+
return null;
|
|
108
|
+
const value = readAttribute(account.data, TRAIT_KEY_ANT_PROGRAM);
|
|
109
|
+
if (value === null)
|
|
110
|
+
return null;
|
|
111
|
+
// The ANT Program attribute is a base58-encoded program address.
|
|
112
|
+
// We don't validate length here — the kit `Address` brand is
|
|
113
|
+
// structural and downstream `getProgramDerivedAddress` will reject
|
|
114
|
+
// malformed values. Returning `null` on missing keeps the call site
|
|
115
|
+
// simple ("found a value or didn't"); a malformed value is a holder
|
|
116
|
+
// self-grief that surfaces at the next PDA derivation.
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Fetch the current owner of an MPL Core asset. Returns `null` when the
|
|
121
|
+
* account doesn't exist or the AssetV1 layout can't be decoded.
|
|
122
|
+
*
|
|
123
|
+
* Used by `SolanaARIOWriteable` to decide whether to bundle
|
|
124
|
+
* `ant.sync_attributes` into a buy / manage tx. The Attributes plugin's
|
|
125
|
+
* `BasePluginAuthority` is `Owner`, so only the current asset holder
|
|
126
|
+
* can sign the inner CPI; if the caller isn't the holder, bundling
|
|
127
|
+
* would abort the whole tx (BD-095 — non-holder ArNS lease management
|
|
128
|
+
* must continue to succeed; the actual ANT owner can call the public
|
|
129
|
+
* `syncAttributes` later to converge state).
|
|
130
|
+
*/
|
|
131
|
+
export async function fetchMplCoreOwner(rpc, mint, config) {
|
|
132
|
+
const account = await fetchEncodedAccount(rpc, mint, config);
|
|
133
|
+
if (!account.exists)
|
|
134
|
+
return null;
|
|
135
|
+
try {
|
|
136
|
+
const [asset] = getAssetV1Decoder().read(account.data, 0);
|
|
137
|
+
return asset.owner;
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
2
|
+
/**
|
|
3
|
+
* PDA derivation helpers for AR.IO Solana programs.
|
|
4
|
+
*
|
|
5
|
+
* Each function derives the on-chain address for a given account type,
|
|
6
|
+
* mirroring the seeds defined in the Anchor programs.
|
|
7
|
+
*
|
|
8
|
+
* All helpers are async — kit's `getProgramDerivedAddress` is async because
|
|
9
|
+
* it may perform bump-seed search off the main thread in some environments.
|
|
10
|
+
*/
|
|
11
|
+
import { getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
|
|
12
|
+
import { ACL_CONFIG_SEED, ACL_PAGE_SEED, ALLOWLIST_SEED, ANT_CONFIG_SEED, ANT_CONTROLLERS_SEED, ANT_RECORD_META_SEED, ANT_RECORD_SEED, ARIO_ANT_ESCROW_PROGRAM_ID, ARIO_ANT_PROGRAM_ID, ARIO_ARNS_PROGRAM_ID, ARIO_CONFIG_SEED, ARIO_CORE_PROGRAM_ID, ARIO_GAR_PROGRAM_ID, ARNS_RECORD_SEED, ARNS_REGISTRY_SEED, ARNS_SETTINGS_SEED, BALANCE_SEED, DELEGATION_SEED, DEMAND_FACTOR_SEED, EPOCH_SEED, EPOCH_SETTINGS_SEED, ESCROW_ANT_SEED, ESCROW_TOKEN_SEED, ESCROW_VAULT_SEED, GAR_SETTINGS_SEED, GATEWAY_REGISTRY_SEED, GATEWAY_SEED, OBSERVATION_SEED, OBSERVER_LOOKUP_SEED, PRIMARY_NAME_REQUEST_SEED, PRIMARY_NAME_REVERSE_SEED, PRIMARY_NAME_SEED, REDELEGATION_SEED, RESERVED_NAME_SEED, RETURNED_NAME_SEED, VAULT_COUNTER_SEED, VAULT_SEED, WITHDRAWAL_COUNTER_SEED, WITHDRAWAL_SEED, } from './constants.js';
|
|
13
|
+
const addressEncoder = getAddressEncoder();
|
|
14
|
+
/**
|
|
15
|
+
* Hash a variable-length name for use as PDA seed.
|
|
16
|
+
* Matches Rust: hash(name.to_lowercase().as_bytes())
|
|
17
|
+
*/
|
|
18
|
+
export function hashName(name) {
|
|
19
|
+
return createHash('sha256')
|
|
20
|
+
.update(name.toLowerCase())
|
|
21
|
+
.digest()
|
|
22
|
+
.subarray(0, 32);
|
|
23
|
+
}
|
|
24
|
+
// =========================================
|
|
25
|
+
// ario-core PDAs
|
|
26
|
+
// =========================================
|
|
27
|
+
export async function getArioConfigPDA(programId = ARIO_CORE_PROGRAM_ID) {
|
|
28
|
+
return getProgramDerivedAddress({
|
|
29
|
+
programAddress: programId,
|
|
30
|
+
seeds: [ARIO_CONFIG_SEED],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export async function getBalancePDA(owner, programId = ARIO_CORE_PROGRAM_ID) {
|
|
34
|
+
return getProgramDerivedAddress({
|
|
35
|
+
programAddress: programId,
|
|
36
|
+
seeds: [BALANCE_SEED, addressEncoder.encode(owner)],
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export async function getVaultPDA(owner, vaultId, programId = ARIO_CORE_PROGRAM_ID) {
|
|
40
|
+
const idBuf = Buffer.alloc(8);
|
|
41
|
+
idBuf.writeBigUInt64LE(BigInt(vaultId));
|
|
42
|
+
return getProgramDerivedAddress({
|
|
43
|
+
programAddress: programId,
|
|
44
|
+
seeds: [VAULT_SEED, addressEncoder.encode(owner), idBuf],
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export async function getVaultCounterPDA(owner, programId = ARIO_CORE_PROGRAM_ID) {
|
|
48
|
+
return getProgramDerivedAddress({
|
|
49
|
+
programAddress: programId,
|
|
50
|
+
seeds: [VAULT_COUNTER_SEED, addressEncoder.encode(owner)],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export async function getPrimaryNamePDA(owner, programId = ARIO_CORE_PROGRAM_ID) {
|
|
54
|
+
return getProgramDerivedAddress({
|
|
55
|
+
programAddress: programId,
|
|
56
|
+
seeds: [PRIMARY_NAME_SEED, addressEncoder.encode(owner)],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export async function getPrimaryNameRequestPDA(initiator, programId = ARIO_CORE_PROGRAM_ID) {
|
|
60
|
+
return getProgramDerivedAddress({
|
|
61
|
+
programAddress: programId,
|
|
62
|
+
seeds: [PRIMARY_NAME_REQUEST_SEED, addressEncoder.encode(initiator)],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export async function getPrimaryNameReversePDA(name, programId = ARIO_CORE_PROGRAM_ID) {
|
|
66
|
+
return getProgramDerivedAddress({
|
|
67
|
+
programAddress: programId,
|
|
68
|
+
seeds: [PRIMARY_NAME_REVERSE_SEED, hashName(name)],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// =========================================
|
|
72
|
+
// ario-gar PDAs
|
|
73
|
+
// =========================================
|
|
74
|
+
export async function getGatewayRegistryPDA(programId = ARIO_GAR_PROGRAM_ID) {
|
|
75
|
+
return getProgramDerivedAddress({
|
|
76
|
+
programAddress: programId,
|
|
77
|
+
seeds: [GATEWAY_REGISTRY_SEED],
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export async function getGarSettingsPDA(programId = ARIO_GAR_PROGRAM_ID) {
|
|
81
|
+
return getProgramDerivedAddress({
|
|
82
|
+
programAddress: programId,
|
|
83
|
+
seeds: [GAR_SETTINGS_SEED],
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
export async function getGatewayPDA(operator, programId = ARIO_GAR_PROGRAM_ID) {
|
|
87
|
+
return getProgramDerivedAddress({
|
|
88
|
+
programAddress: programId,
|
|
89
|
+
seeds: [GATEWAY_SEED, addressEncoder.encode(operator)],
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export async function getDelegationPDA(gateway, delegator, programId = ARIO_GAR_PROGRAM_ID) {
|
|
93
|
+
return getProgramDerivedAddress({
|
|
94
|
+
programAddress: programId,
|
|
95
|
+
seeds: [
|
|
96
|
+
DELEGATION_SEED,
|
|
97
|
+
addressEncoder.encode(gateway),
|
|
98
|
+
addressEncoder.encode(delegator),
|
|
99
|
+
],
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
export async function getWithdrawalPDA(owner, withdrawalId, programId = ARIO_GAR_PROGRAM_ID) {
|
|
103
|
+
const idBuf = Buffer.alloc(8);
|
|
104
|
+
idBuf.writeBigUInt64LE(BigInt(withdrawalId));
|
|
105
|
+
return getProgramDerivedAddress({
|
|
106
|
+
programAddress: programId,
|
|
107
|
+
seeds: [WITHDRAWAL_SEED, addressEncoder.encode(owner), idBuf],
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
export async function getWithdrawalCounterPDA(owner, programId = ARIO_GAR_PROGRAM_ID) {
|
|
111
|
+
return getProgramDerivedAddress({
|
|
112
|
+
programAddress: programId,
|
|
113
|
+
seeds: [WITHDRAWAL_COUNTER_SEED, addressEncoder.encode(owner)],
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
export async function getAllowlistPDA(gateway, delegate, programId = ARIO_GAR_PROGRAM_ID) {
|
|
117
|
+
return getProgramDerivedAddress({
|
|
118
|
+
programAddress: programId,
|
|
119
|
+
seeds: [
|
|
120
|
+
ALLOWLIST_SEED,
|
|
121
|
+
addressEncoder.encode(gateway),
|
|
122
|
+
addressEncoder.encode(delegate),
|
|
123
|
+
],
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
export async function getEpochPDA(epochIndex, programId = ARIO_GAR_PROGRAM_ID) {
|
|
127
|
+
const indexBuf = Buffer.alloc(8);
|
|
128
|
+
indexBuf.writeBigUInt64LE(BigInt(epochIndex));
|
|
129
|
+
return getProgramDerivedAddress({
|
|
130
|
+
programAddress: programId,
|
|
131
|
+
seeds: [EPOCH_SEED, indexBuf],
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
export async function getEpochSettingsPDA(programId = ARIO_GAR_PROGRAM_ID) {
|
|
135
|
+
return getProgramDerivedAddress({
|
|
136
|
+
programAddress: programId,
|
|
137
|
+
seeds: [EPOCH_SETTINGS_SEED],
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
export async function getRedelegationRecordPDA(delegator, programId = ARIO_GAR_PROGRAM_ID) {
|
|
141
|
+
return getProgramDerivedAddress({
|
|
142
|
+
programAddress: programId,
|
|
143
|
+
seeds: [REDELEGATION_SEED, addressEncoder.encode(delegator)],
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
export async function getObservationPDA(epochIndex, observer, programId = ARIO_GAR_PROGRAM_ID) {
|
|
147
|
+
const indexBuf = Buffer.alloc(8);
|
|
148
|
+
indexBuf.writeBigUInt64LE(BigInt(epochIndex));
|
|
149
|
+
return getProgramDerivedAddress({
|
|
150
|
+
programAddress: programId,
|
|
151
|
+
seeds: [OBSERVATION_SEED, indexBuf, addressEncoder.encode(observer)],
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
export async function getObserverLookupPDA(observerAddress, programId = ARIO_GAR_PROGRAM_ID) {
|
|
155
|
+
return getProgramDerivedAddress({
|
|
156
|
+
programAddress: programId,
|
|
157
|
+
seeds: [OBSERVER_LOOKUP_SEED, addressEncoder.encode(observerAddress)],
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
// =========================================
|
|
161
|
+
// ario-arns PDAs
|
|
162
|
+
// =========================================
|
|
163
|
+
export async function getArnsRegistryPDA(programId = ARIO_ARNS_PROGRAM_ID) {
|
|
164
|
+
return getProgramDerivedAddress({
|
|
165
|
+
programAddress: programId,
|
|
166
|
+
seeds: [ARNS_REGISTRY_SEED],
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
export async function getArnsSettingsPDA(programId = ARIO_ARNS_PROGRAM_ID) {
|
|
170
|
+
return getProgramDerivedAddress({
|
|
171
|
+
programAddress: programId,
|
|
172
|
+
seeds: [ARNS_SETTINGS_SEED],
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
export async function getArnsRecordPDA(name, programId = ARIO_ARNS_PROGRAM_ID) {
|
|
176
|
+
return getProgramDerivedAddress({
|
|
177
|
+
programAddress: programId,
|
|
178
|
+
seeds: [ARNS_RECORD_SEED, hashName(name)],
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Derive ArNS record PDA from a raw 32-byte name hash.
|
|
183
|
+
* Used when resolving prescribed name hashes from Epoch data.
|
|
184
|
+
*/
|
|
185
|
+
export async function getArnsRecordPDAFromHash(nameHash, programId = ARIO_ARNS_PROGRAM_ID) {
|
|
186
|
+
return getProgramDerivedAddress({
|
|
187
|
+
programAddress: programId,
|
|
188
|
+
seeds: [ARNS_RECORD_SEED, nameHash],
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
export async function getReservedNamePDA(name, programId = ARIO_ARNS_PROGRAM_ID) {
|
|
192
|
+
return getProgramDerivedAddress({
|
|
193
|
+
programAddress: programId,
|
|
194
|
+
seeds: [RESERVED_NAME_SEED, hashName(name)],
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
export async function getReturnedNamePDA(name, programId = ARIO_ARNS_PROGRAM_ID) {
|
|
198
|
+
return getProgramDerivedAddress({
|
|
199
|
+
programAddress: programId,
|
|
200
|
+
seeds: [RETURNED_NAME_SEED, hashName(name)],
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
export async function getDemandFactorPDA(programId = ARIO_ARNS_PROGRAM_ID) {
|
|
204
|
+
return getProgramDerivedAddress({
|
|
205
|
+
programAddress: programId,
|
|
206
|
+
seeds: [DEMAND_FACTOR_SEED],
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// =========================================
|
|
210
|
+
// ario-ant PDAs
|
|
211
|
+
// =========================================
|
|
212
|
+
export async function getAntConfigPDA(mint, programId = ARIO_ANT_PROGRAM_ID) {
|
|
213
|
+
return getProgramDerivedAddress({
|
|
214
|
+
programAddress: programId,
|
|
215
|
+
seeds: [ANT_CONFIG_SEED, addressEncoder.encode(mint)],
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
export async function getAntControllersPDA(mint, programId = ARIO_ANT_PROGRAM_ID) {
|
|
219
|
+
return getProgramDerivedAddress({
|
|
220
|
+
programAddress: programId,
|
|
221
|
+
seeds: [ANT_CONTROLLERS_SEED, addressEncoder.encode(mint)],
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
export async function getAntRecordPDA(mint, undername, programId = ARIO_ANT_PROGRAM_ID) {
|
|
225
|
+
const nameHash = createHash('sha256')
|
|
226
|
+
.update(undername.toLowerCase())
|
|
227
|
+
.digest()
|
|
228
|
+
.subarray(0, 32);
|
|
229
|
+
return getProgramDerivedAddress({
|
|
230
|
+
programAddress: programId,
|
|
231
|
+
seeds: [ANT_RECORD_SEED, addressEncoder.encode(mint), nameHash],
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
export async function getAntRecordMetadataPDA(mint, undername, programId = ARIO_ANT_PROGRAM_ID) {
|
|
235
|
+
const nameHash = createHash('sha256')
|
|
236
|
+
.update(undername.toLowerCase())
|
|
237
|
+
.digest()
|
|
238
|
+
.subarray(0, 32);
|
|
239
|
+
return getProgramDerivedAddress({
|
|
240
|
+
programAddress: programId,
|
|
241
|
+
seeds: [ANT_RECORD_META_SEED, addressEncoder.encode(mint), nameHash],
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Derive the `AclConfig` head PDA for a given wallet address.
|
|
246
|
+
*
|
|
247
|
+
* Seeds: `["acl_config", user]` under the ario-ant program.
|
|
248
|
+
*
|
|
249
|
+
* See ADR-012 (docs/DECISIONS.md): `AclConfig` is the head record for a
|
|
250
|
+
* user's paginated ACL. It tracks `page_count` (how many `AclPage` PDAs
|
|
251
|
+
* exist) and `total_entries` (sum across pages). Frontends point-read
|
|
252
|
+
* this once, then fan out to each `AclPage` via `getMultipleAccountsInfo`.
|
|
253
|
+
*/
|
|
254
|
+
export async function getAclConfigPDA(user, programId = ARIO_ANT_PROGRAM_ID) {
|
|
255
|
+
return getProgramDerivedAddress({
|
|
256
|
+
programAddress: programId,
|
|
257
|
+
seeds: [ACL_CONFIG_SEED, addressEncoder.encode(user)],
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Derive an `AclPage` PDA for a given user + page index.
|
|
262
|
+
*
|
|
263
|
+
* Seeds: `["acl_page", user, page_idx_le]` where `page_idx_le` is the
|
|
264
|
+
* 8-byte little-endian encoding of `u64` (matches the contract).
|
|
265
|
+
*
|
|
266
|
+
* Each page address is content-derivable from `(user, page_idx)`, so any
|
|
267
|
+
* single page can be loaded in O(1) without scanning sibling pages.
|
|
268
|
+
*/
|
|
269
|
+
export async function getAclPagePDA(user, pageIdx, programId = ARIO_ANT_PROGRAM_ID) {
|
|
270
|
+
const idxBuf = Buffer.alloc(8);
|
|
271
|
+
idxBuf.writeBigUInt64LE(BigInt(pageIdx));
|
|
272
|
+
return getProgramDerivedAddress({
|
|
273
|
+
programAddress: programId,
|
|
274
|
+
seeds: [ACL_PAGE_SEED, addressEncoder.encode(user), idxBuf],
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
// =========================================
|
|
278
|
+
// ario-ant-escrow PDAs
|
|
279
|
+
// =========================================
|
|
280
|
+
/**
|
|
281
|
+
* Derive the EscrowAnt PDA for a given ANT mint. Exactly one escrow per
|
|
282
|
+
* ANT — re-deriving the address tells you whether an escrow already
|
|
283
|
+
* exists (look up the account and check `data.length`).
|
|
284
|
+
*
|
|
285
|
+
* Seeds: ["escrow_ant", ant_mint]
|
|
286
|
+
* Source: contracts/programs/ario-ant-escrow/src/state.rs::ESCROW_ANT_SEED
|
|
287
|
+
*/
|
|
288
|
+
export async function getEscrowAntPDA(antMint, programId = ARIO_ANT_ESCROW_PROGRAM_ID) {
|
|
289
|
+
return getProgramDerivedAddress({
|
|
290
|
+
programAddress: programId,
|
|
291
|
+
seeds: [ESCROW_ANT_SEED, addressEncoder.encode(antMint)],
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Derive the EscrowToken PDA for a given depositor and asset ID.
|
|
296
|
+
*
|
|
297
|
+
* Seeds: ["escrow_token", depositor, asset_id]
|
|
298
|
+
* Source: contracts/programs/ario-ant-escrow/src/state.rs::ESCROW_TOKEN_SEED
|
|
299
|
+
*/
|
|
300
|
+
export async function getEscrowTokenPDA(depositor, assetId, programId = ARIO_ANT_ESCROW_PROGRAM_ID) {
|
|
301
|
+
return getProgramDerivedAddress({
|
|
302
|
+
programAddress: programId,
|
|
303
|
+
seeds: [ESCROW_TOKEN_SEED, addressEncoder.encode(depositor), assetId],
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Derive the EscrowVault PDA for a given depositor and asset ID.
|
|
308
|
+
*
|
|
309
|
+
* Seeds: ["escrow_vault", depositor, asset_id]
|
|
310
|
+
* Source: contracts/programs/ario-ant-escrow/src/state.rs::ESCROW_VAULT_SEED
|
|
311
|
+
*/
|
|
312
|
+
export async function getEscrowVaultPDA(depositor, assetId, programId = ARIO_ANT_ESCROW_PROGRAM_ID) {
|
|
313
|
+
return getProgramDerivedAddress({
|
|
314
|
+
programAddress: programId,
|
|
315
|
+
seeds: [ESCROW_VAULT_SEED, addressEncoder.encode(depositor), assetId],
|
|
316
|
+
});
|
|
317
|
+
}
|