@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
package/lib/esm/cli/options.js
CHANGED
|
@@ -53,6 +53,69 @@ export const optionMap = {
|
|
|
53
53
|
alias: '--hyperbeam-url <hyperbeamUrl>',
|
|
54
54
|
description: 'The URL for a custom hyperbeam node',
|
|
55
55
|
},
|
|
56
|
+
ao: {
|
|
57
|
+
alias: '--ao',
|
|
58
|
+
description: 'Use the legacy AO backend instead of Solana',
|
|
59
|
+
type: 'boolean',
|
|
60
|
+
},
|
|
61
|
+
rpcUrl: {
|
|
62
|
+
alias: '--rpc-url <rpcUrl>',
|
|
63
|
+
description: 'Solana RPC URL (defaults to mainnet-beta)',
|
|
64
|
+
},
|
|
65
|
+
antProgramId: {
|
|
66
|
+
alias: '--ant-program-id <antProgramId>',
|
|
67
|
+
description: 'Override the ario-ant program id (Solana backend). Defaults to the SDK-bundled mainnet id; ' +
|
|
68
|
+
'set this when querying localnet/devnet (see migration/localnet/out/localnet.env -> ARIO_ANT_PROGRAM_ID).',
|
|
69
|
+
},
|
|
70
|
+
coreProgramId: {
|
|
71
|
+
alias: '--core-program-id <coreProgramId>',
|
|
72
|
+
description: 'Override the ario-core program id (Solana backend). See ARIO_CORE_PROGRAM_ID in localnet.env.',
|
|
73
|
+
},
|
|
74
|
+
garProgramId: {
|
|
75
|
+
alias: '--gar-program-id <garProgramId>',
|
|
76
|
+
description: 'Override the ario-gar program id (Solana backend). See ARIO_GAR_PROGRAM_ID in localnet.env.',
|
|
77
|
+
},
|
|
78
|
+
arnsProgramId: {
|
|
79
|
+
alias: '--arns-program-id <arnsProgramId>',
|
|
80
|
+
description: 'Override the ario-arns program id (Solana backend). See ARIO_ARNS_PROGRAM_ID in localnet.env.',
|
|
81
|
+
},
|
|
82
|
+
escrowProgramId: {
|
|
83
|
+
alias: '--escrow-program-id <escrowProgramId>',
|
|
84
|
+
description: 'Override the ario-ant-escrow program id. Defaults to the SDK-bundled placeholder; ' +
|
|
85
|
+
'set when running against a deployed devnet/mainnet instance.',
|
|
86
|
+
},
|
|
87
|
+
ant: {
|
|
88
|
+
alias: '--ant <antMint>',
|
|
89
|
+
description: 'The Metaplex Core ANT mint pubkey (base58)',
|
|
90
|
+
},
|
|
91
|
+
recipientArweave: {
|
|
92
|
+
alias: '--recipient-arweave <jwkFile>',
|
|
93
|
+
description: 'Path to an Arweave JWK file. The "n" field (RSA-4096 modulus) is used as the escrow recipient identity.',
|
|
94
|
+
},
|
|
95
|
+
recipientEthereum: {
|
|
96
|
+
alias: '--recipient-ethereum <0xAddress>',
|
|
97
|
+
description: 'A 0x-prefixed Ethereum address to use as the escrow recipient identity.',
|
|
98
|
+
},
|
|
99
|
+
newRecipientArweave: {
|
|
100
|
+
alias: '--new-recipient-arweave <jwkFile>',
|
|
101
|
+
description: 'New Arweave JWK file (for `escrow update-recipient`).',
|
|
102
|
+
},
|
|
103
|
+
newRecipientEthereum: {
|
|
104
|
+
alias: '--new-recipient-ethereum <0xAddress>',
|
|
105
|
+
description: 'New Ethereum address (for `escrow update-recipient`).',
|
|
106
|
+
},
|
|
107
|
+
signatureFile: {
|
|
108
|
+
alias: '--signature-file <path>',
|
|
109
|
+
description: 'Path to a binary signature file (512 bytes for Arweave PSS, 65 bytes for Ethereum r||s||v).',
|
|
110
|
+
},
|
|
111
|
+
saltLen: {
|
|
112
|
+
alias: '--salt-len <bytes>',
|
|
113
|
+
description: 'PSS salt length (Arweave only; defaults to 32, the wallet-default).',
|
|
114
|
+
},
|
|
115
|
+
claimant: {
|
|
116
|
+
alias: '--claimant <pubkey>',
|
|
117
|
+
description: 'Solana pubkey that will receive the ANT on claim.',
|
|
118
|
+
},
|
|
56
119
|
cuUrl: {
|
|
57
120
|
alias: '--cu-url <cuUrl>',
|
|
58
121
|
description: 'The URL for a custom compute unit',
|
|
@@ -236,7 +299,11 @@ export const optionMap = {
|
|
|
236
299
|
},
|
|
237
300
|
transactionId: {
|
|
238
301
|
alias: '--transaction-id <transactionId>',
|
|
239
|
-
description: 'The
|
|
302
|
+
description: 'The content target (Arweave TX ID, IPFS CID, etc.)',
|
|
303
|
+
},
|
|
304
|
+
targetProtocol: {
|
|
305
|
+
alias: '--target-protocol <targetProtocol>',
|
|
306
|
+
description: 'Storage protocol for the target: "arweave" (default) or "ipfs"',
|
|
240
307
|
},
|
|
241
308
|
ttlSeconds: {
|
|
242
309
|
alias: '--ttl-seconds <ttlSeconds>',
|
|
@@ -275,7 +342,31 @@ export const optionMap = {
|
|
|
275
342
|
},
|
|
276
343
|
fundFrom: {
|
|
277
344
|
alias: '--fund-from <fundFrom>',
|
|
278
|
-
description: '
|
|
345
|
+
description: 'Funding source: balance | stakes | withdrawal | plan | any | turbo. ' +
|
|
346
|
+
"'stakes' requires --gateway-address (uses delegation; add --fund-as-operator " +
|
|
347
|
+
"for operator stake). 'withdrawal' requires --withdrawal-id. 'plan' / 'any' " +
|
|
348
|
+
'use the multi-source funding plan (see --funding-plan-json or auto-discover).',
|
|
349
|
+
},
|
|
350
|
+
gatewayAddress: {
|
|
351
|
+
alias: '--gateway-address <gatewayAddress>',
|
|
352
|
+
description: 'Gateway operator address for funding from stakes. Required when --fund-from is "stakes"',
|
|
353
|
+
},
|
|
354
|
+
fundAsOperator: {
|
|
355
|
+
alias: '--fund-as-operator',
|
|
356
|
+
description: 'Fund from operator stake instead of delegation (default: delegation)',
|
|
357
|
+
type: 'boolean',
|
|
358
|
+
},
|
|
359
|
+
withdrawalId: {
|
|
360
|
+
alias: '--withdrawal-id <withdrawalId>',
|
|
361
|
+
description: 'Withdrawal vault id (u64) — required when --fund-from is "withdrawal" (Solana). ' +
|
|
362
|
+
'Find with `ar.io listMyWithdrawals` or query Withdrawal PDAs directly.',
|
|
363
|
+
},
|
|
364
|
+
fundingPlanJson: {
|
|
365
|
+
alias: '--funding-plan-json <json>',
|
|
366
|
+
description: 'Explicit funding plan as JSON: [{"kind":"balance","amount":"100"},...]. ' +
|
|
367
|
+
"Used when --fund-from is 'plan' or 'any' to bypass auto-discovery. " +
|
|
368
|
+
"kind is 'balance' | 'delegation' | 'operatorStake' | 'withdrawal'; " +
|
|
369
|
+
'amount is a string-encoded mARIO bigint. Sum must equal the operation cost.',
|
|
279
370
|
},
|
|
280
371
|
revokable: {
|
|
281
372
|
alias: '--revokable',
|
|
@@ -307,6 +398,10 @@ export const optionMap = {
|
|
|
307
398
|
alias: '--module <module>',
|
|
308
399
|
description: 'The module ID to use for spawning the ANT process',
|
|
309
400
|
},
|
|
401
|
+
metadataUri: {
|
|
402
|
+
alias: '--metadata-uri <metadataUri>',
|
|
403
|
+
description: 'Solana spawn-ant only: URI baked into the Metaplex Core asset (e.g. "ar://<txid>" or "https://<gateway>/raw/<txid>"). Build the JSON with `buildAntMetadata` from `@ar.io/sdk/solana` and upload via Turbo. See sdk/scripts/devnet-validation/populate-ant.ts.',
|
|
404
|
+
},
|
|
310
405
|
token: {
|
|
311
406
|
alias: '-t, --token <type>',
|
|
312
407
|
description: 'Crypto token type for wallet or action',
|
|
@@ -326,6 +421,35 @@ export const optionMap = {
|
|
|
326
421
|
description: 'Reassign all affiliated names to the new process',
|
|
327
422
|
type: 'boolean',
|
|
328
423
|
},
|
|
424
|
+
// -----------------------------------------------------------------
|
|
425
|
+
// Prune / cleanup flags (Solana-only — see pruneCommands.ts)
|
|
426
|
+
// -----------------------------------------------------------------
|
|
427
|
+
gateway: {
|
|
428
|
+
alias: '--gateway <gateway>',
|
|
429
|
+
description: 'The gateway operator address (prune / finalize commands)',
|
|
430
|
+
},
|
|
431
|
+
delegator: {
|
|
432
|
+
alias: '--delegator <delegator>',
|
|
433
|
+
description: 'The delegator address (close-empty-delegation)',
|
|
434
|
+
},
|
|
435
|
+
observer: {
|
|
436
|
+
alias: '--observer <observer>',
|
|
437
|
+
description: 'The observer address (close-observation)',
|
|
438
|
+
},
|
|
439
|
+
max: {
|
|
440
|
+
alias: '--max <max>',
|
|
441
|
+
description: 'Per-tx batch size (1-255, u8) for prune-expired-names / prune-returned-names',
|
|
442
|
+
},
|
|
443
|
+
arnsRecords: {
|
|
444
|
+
alias: '--arns-records <arnsRecords...>',
|
|
445
|
+
description: 'Explicit ArnsRecord PDAs to prune. Default: discover via getExpiredArnsRecords.',
|
|
446
|
+
type: 'array',
|
|
447
|
+
},
|
|
448
|
+
returnedNames: {
|
|
449
|
+
alias: '--returned-names <returnedNames...>',
|
|
450
|
+
description: 'Explicit ReturnedName PDAs to prune. Default: discover via getExpiredReturnedNames.',
|
|
451
|
+
type: 'array',
|
|
452
|
+
},
|
|
329
453
|
};
|
|
330
454
|
export const walletOptions = [
|
|
331
455
|
optionMap.walletFile,
|
|
@@ -342,12 +466,22 @@ export const globalOptions = [
|
|
|
342
466
|
optionMap.arioProcessId,
|
|
343
467
|
optionMap.cuUrl,
|
|
344
468
|
optionMap.hyperbeamUrl,
|
|
469
|
+
optionMap.ao,
|
|
470
|
+
optionMap.rpcUrl,
|
|
471
|
+
optionMap.antProgramId,
|
|
472
|
+
optionMap.coreProgramId,
|
|
473
|
+
optionMap.garProgramId,
|
|
474
|
+
optionMap.arnsProgramId,
|
|
345
475
|
];
|
|
346
476
|
export const writeActionOptions = [optionMap.skipConfirmation, optionMap.tags];
|
|
347
477
|
export const arnsPurchaseOptions = [
|
|
348
478
|
...writeActionOptions,
|
|
349
479
|
optionMap.name,
|
|
350
480
|
optionMap.fundFrom,
|
|
481
|
+
optionMap.gatewayAddress,
|
|
482
|
+
optionMap.fundAsOperator,
|
|
483
|
+
optionMap.withdrawalId,
|
|
484
|
+
optionMap.fundingPlanJson,
|
|
351
485
|
optionMap.paidBy,
|
|
352
486
|
optionMap.paymentUrl,
|
|
353
487
|
optionMap.referrer,
|
|
@@ -437,10 +571,15 @@ export const antStateOptions = [
|
|
|
437
571
|
optionMap.ttlSeconds,
|
|
438
572
|
optionMap.logo,
|
|
439
573
|
optionMap.module,
|
|
574
|
+
// Required for Solana spawn-ant; ignored by AO. Without this entry,
|
|
575
|
+
// Commander rejects --metadata-uri as an unknown option even though
|
|
576
|
+
// spawnSolanaANTFromOptions in utils.ts reads it as `(options as any).metadataUri`.
|
|
577
|
+
optionMap.metadataUri,
|
|
440
578
|
];
|
|
441
579
|
export const setAntBaseNameOptions = [
|
|
442
580
|
optionMap.processId,
|
|
443
581
|
optionMap.transactionId,
|
|
582
|
+
optionMap.targetProtocol,
|
|
444
583
|
optionMap.ttlSeconds,
|
|
445
584
|
optionMap.owner,
|
|
446
585
|
optionMap.displayName,
|
package/lib/esm/cli/utils.js
CHANGED
|
@@ -14,26 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { readFileSync } from 'fs';
|
|
17
|
-
/**
|
|
18
|
-
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
|
19
|
-
*
|
|
20
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
21
|
-
* you may not use this file except in compliance with the License.
|
|
22
|
-
* You may obtain a copy of the License at
|
|
23
|
-
*
|
|
24
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
25
|
-
*
|
|
26
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
27
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
28
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
29
|
-
* See the License for the specific language governing permissions and
|
|
30
|
-
* limitations under the License.
|
|
31
|
-
*/
|
|
32
17
|
import { EthereumSigner } from '@dha-team/arbundles';
|
|
33
18
|
import { connect } from '@permaweb/aoconnect';
|
|
19
|
+
import { address, createKeyPairSignerFromBytes, createSolanaRpc, createSolanaRpcSubscriptions, } from '@solana/kit';
|
|
20
|
+
import bs58 from 'bs58';
|
|
34
21
|
import { program } from 'commander';
|
|
35
22
|
import prompts from 'prompts';
|
|
36
|
-
import { ANT, ANTRegistry, ANT_REGISTRY_ID, ANT_REGISTRY_TESTNET_ID, AOProcess, ARIO, ARIOToken, ARIO_DEVNET_PROCESS_ID, ARIO_MAINNET_PROCESS_ID, ARIO_TESTNET_PROCESS_ID, ArweaveSigner,
|
|
23
|
+
import { ANT, ANTRegistry, ANT_REGISTRY_ID, ANT_REGISTRY_TESTNET_ID, AOProcess, ARIO, ARIOToken, ARIO_DEVNET_PROCESS_ID, ARIO_MAINNET_PROCESS_ID, ARIO_TESTNET_PROCESS_ID, ArweaveSigner, Logger, createAoSigner, fromB64Url, fundFromOptions, initANTStateForAddress, isValidFundFrom, isValidIntent, mARIOToken, sha256B64Url, validIntents, } from '../node/index.js';
|
|
37
24
|
import { globalOptions } from './options.js';
|
|
38
25
|
export const defaultTtlSecondsCLI = 3600;
|
|
39
26
|
export function stringifyJsonForCLIDisplay(json) {
|
|
@@ -141,19 +128,46 @@ function aoProcessFromOptions(options) {
|
|
|
141
128
|
}
|
|
142
129
|
export function readARIOFromOptions(options) {
|
|
143
130
|
setLoggerIfDebug(options);
|
|
131
|
+
if (options.ao) {
|
|
132
|
+
return ARIO.init({
|
|
133
|
+
hyperbeamUrl: options.hyperbeamUrl,
|
|
134
|
+
process: aoProcessFromOptions({
|
|
135
|
+
cuUrl: 'http://localhost:6363',
|
|
136
|
+
...options,
|
|
137
|
+
}),
|
|
138
|
+
paymentUrl: options.paymentUrl,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
144
142
|
return ARIO.init({
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
143
|
+
backend: 'solana',
|
|
144
|
+
rpc: createSolanaRpc(rpcUrl),
|
|
145
|
+
...(options.coreProgramId
|
|
146
|
+
? { coreProgramId: address(options.coreProgramId) }
|
|
147
|
+
: {}),
|
|
148
|
+
...(options.garProgramId
|
|
149
|
+
? { garProgramId: address(options.garProgramId) }
|
|
150
|
+
: {}),
|
|
151
|
+
...(options.arnsProgramId
|
|
152
|
+
? { arnsProgramId: address(options.arnsProgramId) }
|
|
153
|
+
: {}),
|
|
151
154
|
});
|
|
152
155
|
}
|
|
153
|
-
export function readANTRegistryFromOptions(options) {
|
|
156
|
+
export async function readANTRegistryFromOptions(options) {
|
|
157
|
+
setLoggerIfDebug(options);
|
|
158
|
+
if (options.ao) {
|
|
159
|
+
return ANTRegistry.init({
|
|
160
|
+
process: aoProcessFromOptions(options),
|
|
161
|
+
hyperbeamUrl: options.hyperbeamUrl,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
154
165
|
return ANTRegistry.init({
|
|
155
|
-
|
|
156
|
-
|
|
166
|
+
backend: 'solana',
|
|
167
|
+
rpc: createSolanaRpc(rpcUrl),
|
|
168
|
+
...(options.antProgramId
|
|
169
|
+
? { antProgramId: address(options.antProgramId) }
|
|
170
|
+
: {}),
|
|
157
171
|
});
|
|
158
172
|
}
|
|
159
173
|
export function contractSignerFromOptions(options) {
|
|
@@ -181,17 +195,85 @@ export function requiredContractSignerFromOptions(options) {
|
|
|
181
195
|
export function requiredAoSignerFromOptions(options) {
|
|
182
196
|
return createAoSigner(requiredContractSignerFromOptions(options).signer);
|
|
183
197
|
}
|
|
184
|
-
|
|
185
|
-
|
|
198
|
+
/** Derive a WS URL from an HTTP/HTTPS RPC URL by swapping the scheme. */
|
|
199
|
+
function wsUrlFromRpcUrl(rpcUrl) {
|
|
200
|
+
// Surfpool and `solana-test-validator` follow Solana's well-known localhost
|
|
201
|
+
// convention: HTTP RPC on 8899 and WebSocket on 8900 (a separate port).
|
|
202
|
+
// Public RPCs (mainnet/devnet/testnet) put both on the same port (443/443),
|
|
203
|
+
// so a naive `http→ws` swap works there but breaks against any local
|
|
204
|
+
// validator. Bump the port iff we recognise the localhost+8899 pair.
|
|
205
|
+
let url;
|
|
206
|
+
try {
|
|
207
|
+
url = new URL(rpcUrl);
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return rpcUrl.replace(/^http/, 'ws');
|
|
211
|
+
}
|
|
212
|
+
const isLocalhost = url.hostname === 'localhost' ||
|
|
213
|
+
url.hostname === '127.0.0.1' ||
|
|
214
|
+
url.hostname === '0.0.0.0';
|
|
215
|
+
if (isLocalhost && url.port === '8899') {
|
|
216
|
+
url.port = '8900';
|
|
217
|
+
}
|
|
218
|
+
url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
219
|
+
return url.toString().replace(/\/$/, '');
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Load a Solana KeyPairSigner from --private-key (base58) or --wallet-file
|
|
223
|
+
* (JSON array of bytes). Throws with a helpful message if neither is set.
|
|
224
|
+
*/
|
|
225
|
+
async function loadSolanaSignerFromOptions(options) {
|
|
226
|
+
let secretKey;
|
|
227
|
+
if (options.privateKey) {
|
|
228
|
+
secretKey = bs58.decode(options.privateKey);
|
|
229
|
+
}
|
|
230
|
+
else if (options.walletFile) {
|
|
231
|
+
const raw = readFileSync(options.walletFile, 'utf-8');
|
|
232
|
+
secretKey = new Uint8Array(JSON.parse(raw));
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
throw new Error('Solana write operations require a signer.\n' +
|
|
236
|
+
'Provide a Solana keypair with --wallet-file <path-to-keypair.json> ' +
|
|
237
|
+
'or --private-key <base58-encoded-key>');
|
|
238
|
+
}
|
|
239
|
+
return createKeyPairSignerFromBytes(secretKey);
|
|
240
|
+
}
|
|
241
|
+
export async function writeARIOFromOptions(options) {
|
|
186
242
|
setLoggerIfDebug(options);
|
|
243
|
+
if (options.ao) {
|
|
244
|
+
const { signer, signerAddress } = requiredContractSignerFromOptions(options);
|
|
245
|
+
return {
|
|
246
|
+
ario: ARIO.init({
|
|
247
|
+
process: aoProcessFromOptions(options),
|
|
248
|
+
signer,
|
|
249
|
+
paymentUrl: options.paymentUrl,
|
|
250
|
+
hyperbeamUrl: options.hyperbeamUrl,
|
|
251
|
+
}),
|
|
252
|
+
signerAddress,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
256
|
+
const signer = await loadSolanaSignerFromOptions(options);
|
|
187
257
|
return {
|
|
188
258
|
ario: ARIO.init({
|
|
189
|
-
|
|
259
|
+
backend: 'solana',
|
|
260
|
+
rpc: createSolanaRpc(rpcUrl),
|
|
261
|
+
rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
|
|
190
262
|
signer,
|
|
191
|
-
|
|
192
|
-
|
|
263
|
+
// Forward program-id overrides to mirror `readARIOFromOptions` so
|
|
264
|
+
// localnet / devnet writes target the deployed program IDs instead of
|
|
265
|
+
// silently falling back to the SDK's mainnet defaults.
|
|
266
|
+
...(options.coreProgramId
|
|
267
|
+
? { coreProgramId: address(options.coreProgramId) }
|
|
268
|
+
: {}),
|
|
269
|
+
...(options.garProgramId
|
|
270
|
+
? { garProgramId: address(options.garProgramId) }
|
|
271
|
+
: {}),
|
|
272
|
+
...(options.arnsProgramId
|
|
273
|
+
? { arnsProgramId: address(options.arnsProgramId) }
|
|
274
|
+
: {}),
|
|
193
275
|
}),
|
|
194
|
-
signerAddress,
|
|
276
|
+
signerAddress: signer.address,
|
|
195
277
|
};
|
|
196
278
|
}
|
|
197
279
|
export function formatARIOWithCommas(value) {
|
|
@@ -453,18 +535,43 @@ function ANTProcessFromOptions(options) {
|
|
|
453
535
|
}),
|
|
454
536
|
});
|
|
455
537
|
}
|
|
456
|
-
export function readANTFromOptions(options) {
|
|
538
|
+
export async function readANTFromOptions(options) {
|
|
539
|
+
if (options.ao) {
|
|
540
|
+
return ANT.init({
|
|
541
|
+
process: ANTProcessFromOptions(options),
|
|
542
|
+
hyperbeamUrl: options.hyperbeamUrl,
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
457
546
|
return ANT.init({
|
|
458
|
-
|
|
459
|
-
|
|
547
|
+
backend: 'solana',
|
|
548
|
+
processId: requiredProcessIdFromOptions(options),
|
|
549
|
+
rpc: createSolanaRpc(rpcUrl),
|
|
550
|
+
...(options.antProgramId
|
|
551
|
+
? { antProgramId: address(options.antProgramId) }
|
|
552
|
+
: {}),
|
|
460
553
|
});
|
|
461
554
|
}
|
|
462
|
-
export function writeANTFromOptions(options, signer) {
|
|
463
|
-
|
|
555
|
+
export async function writeANTFromOptions(options, signer) {
|
|
556
|
+
if (options.ao) {
|
|
557
|
+
signer ??= requiredContractSignerFromOptions(options).signer;
|
|
558
|
+
return ANT.init({
|
|
559
|
+
process: ANTProcessFromOptions(options),
|
|
560
|
+
signer,
|
|
561
|
+
hyperbeamUrl: options.hyperbeamUrl,
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
565
|
+
const kitSigner = await loadSolanaSignerFromOptions(options);
|
|
464
566
|
return ANT.init({
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
567
|
+
backend: 'solana',
|
|
568
|
+
processId: requiredProcessIdFromOptions(options),
|
|
569
|
+
rpc: createSolanaRpc(rpcUrl),
|
|
570
|
+
rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
|
|
571
|
+
signer: kitSigner,
|
|
572
|
+
...(options.antProgramId
|
|
573
|
+
? { antProgramId: address(options.antProgramId) }
|
|
574
|
+
: {}),
|
|
468
575
|
});
|
|
469
576
|
}
|
|
470
577
|
export function booleanFromOptions(options, key) {
|
|
@@ -527,6 +634,60 @@ export function getANTStateFromOptions(options) {
|
|
|
527
634
|
: defaultTtlSecondsCLI,
|
|
528
635
|
});
|
|
529
636
|
}
|
|
637
|
+
/**
|
|
638
|
+
* Spawn a fresh ANT on Solana from CLI options.
|
|
639
|
+
*
|
|
640
|
+
* Resolves the signer the same way `writeARIOFromOptions` does (KeyPairSigner
|
|
641
|
+
* from `--wallet-file` or `--private-key`), then bundles MPL Core `CreateV1` +
|
|
642
|
+
* `ario_ant::initialize` into a single transaction. The signer's address
|
|
643
|
+
* becomes the ANT owner on chain — no separate `--address` is required.
|
|
644
|
+
*
|
|
645
|
+
* Maps the CLI's AO-shaped options (`--name`, `--ticker`, `--description`,
|
|
646
|
+
* `--keywords`, `--logo`, `--target` for the @ record tx id) onto the Solana
|
|
647
|
+
* `InitializeAntParams` payload. AO-only state fields like `controllers` and
|
|
648
|
+
* `balances` are intentionally dropped — they don't exist on Solana.
|
|
649
|
+
*/
|
|
650
|
+
export async function spawnSolanaANTFromOptions(options) {
|
|
651
|
+
setLoggerIfDebug(options);
|
|
652
|
+
const { spawnSolanaANT } = await import('../solana/spawn-ant.js');
|
|
653
|
+
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
654
|
+
const kitSigner = await loadSolanaSignerFromOptions(options);
|
|
655
|
+
const name = options.name ?? `ANT-${kitSigner.address.slice(0, 8)}`;
|
|
656
|
+
// ANT NFT metadata URI — required so the asset renders correctly in
|
|
657
|
+
// marketplaces. Caller must upload a JSON metadata file (build via
|
|
658
|
+
// `buildAntMetadata` from `@ar.io/sdk/solana`, host on Arweave via Turbo
|
|
659
|
+
// or any other gateway) and pass the resulting URI here.
|
|
660
|
+
const metadataUri = options.metadataUri;
|
|
661
|
+
if (!metadataUri || typeof metadataUri !== 'string') {
|
|
662
|
+
throw new Error('spawn-ant: --metadata-uri is required.\n\n' +
|
|
663
|
+
'Build the JSON metadata with `buildAntMetadata` from `@ar.io/sdk/solana`,\n' +
|
|
664
|
+
'upload it to Arweave (free for files under 100 KiB via @ardrive/turbo-sdk\n' +
|
|
665
|
+
'with a `HexSolanaSigner`), then pass the resulting URI:\n' +
|
|
666
|
+
' --metadata-uri "ar://<txid>" (canonical AR.IO scheme)\n' +
|
|
667
|
+
' --metadata-uri "https://<gateway>/raw/<txid>" (immediate render)\n\n' +
|
|
668
|
+
'See sdk/scripts/devnet-validation/populate-ant.ts for an end-to-end example.');
|
|
669
|
+
}
|
|
670
|
+
return spawnSolanaANT({
|
|
671
|
+
rpc: createSolanaRpc(rpcUrl),
|
|
672
|
+
rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
|
|
673
|
+
signer: kitSigner,
|
|
674
|
+
state: {
|
|
675
|
+
name,
|
|
676
|
+
uri: metadataUri,
|
|
677
|
+
ticker: options.ticker,
|
|
678
|
+
description: options.description,
|
|
679
|
+
keywords: options.keywords,
|
|
680
|
+
logo: options.logo,
|
|
681
|
+
// `--target` is the AO convention for the @ record's tx id (see
|
|
682
|
+
// initANTStateForAddress). Reuse it on Solana so the CLI surface stays
|
|
683
|
+
// identical between backends.
|
|
684
|
+
transactionId: options.target,
|
|
685
|
+
},
|
|
686
|
+
...(options.antProgramId
|
|
687
|
+
? { antProgramId: address(options.antProgramId) }
|
|
688
|
+
: {}),
|
|
689
|
+
});
|
|
690
|
+
}
|
|
530
691
|
export function getTokenCostParamsFromOptions(o) {
|
|
531
692
|
o.intent ??= 'Buy-Name';
|
|
532
693
|
o.type ??= 'lease';
|
|
@@ -557,6 +718,86 @@ export function fundFromFromOptions(o) {
|
|
|
557
718
|
export function referrerFromOptions(o) {
|
|
558
719
|
return o.referrer;
|
|
559
720
|
}
|
|
721
|
+
/** Parse `--withdrawal-id` from CLI options into a bigint. */
|
|
722
|
+
export function withdrawalIdFromOptions(o) {
|
|
723
|
+
if (o.withdrawalId === undefined)
|
|
724
|
+
return undefined;
|
|
725
|
+
try {
|
|
726
|
+
return BigInt(o.withdrawalId);
|
|
727
|
+
}
|
|
728
|
+
catch {
|
|
729
|
+
throw new Error(`Invalid --withdrawal-id: '${o.withdrawalId}' is not a valid u64 integer`);
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
/**
|
|
733
|
+
* Parse `--funding-plan-json` into a `FundingSourceSpec[]`. Validates each
|
|
734
|
+
* entry's `kind` against the on-chain enum and parses `amount` as a bigint.
|
|
735
|
+
* Each Delegation/OperatorStake entry MAY carry a `gateway` field (base58
|
|
736
|
+
* Solana address) — required when the plan spans multiple gateways.
|
|
737
|
+
*
|
|
738
|
+
* Format examples:
|
|
739
|
+
* '[{"kind":"balance","amount":"100"},{"kind":"withdrawal","amount":"500"}]'
|
|
740
|
+
* '[{"kind":"delegation","amount":"100","gateway":"Gw1..."},{"kind":"delegation","amount":"50","gateway":"Gw2..."}]'
|
|
741
|
+
*
|
|
742
|
+
* Returns undefined when the flag isn't set; throws Error on malformed JSON
|
|
743
|
+
* or unknown kinds.
|
|
744
|
+
*/
|
|
745
|
+
export function fundingPlanFromOptions(o) {
|
|
746
|
+
if (!o.fundingPlanJson)
|
|
747
|
+
return undefined;
|
|
748
|
+
let parsed;
|
|
749
|
+
try {
|
|
750
|
+
parsed = JSON.parse(o.fundingPlanJson);
|
|
751
|
+
}
|
|
752
|
+
catch (err) {
|
|
753
|
+
throw new Error(`--funding-plan-json is not valid JSON: ${err.message}`);
|
|
754
|
+
}
|
|
755
|
+
if (!Array.isArray(parsed)) {
|
|
756
|
+
throw new Error('--funding-plan-json must be a JSON array');
|
|
757
|
+
}
|
|
758
|
+
const validKinds = new Set([
|
|
759
|
+
'balance',
|
|
760
|
+
'delegation',
|
|
761
|
+
'operatorStake',
|
|
762
|
+
'withdrawal',
|
|
763
|
+
]);
|
|
764
|
+
return parsed.map((entry, idx) => {
|
|
765
|
+
if (typeof entry !== 'object' ||
|
|
766
|
+
entry === null ||
|
|
767
|
+
typeof entry.kind !== 'string' ||
|
|
768
|
+
typeof entry.amount !== 'string') {
|
|
769
|
+
throw new Error(`--funding-plan-json[${idx}] must be { kind: string, amount: string, gateway?: string }`);
|
|
770
|
+
}
|
|
771
|
+
const e = entry;
|
|
772
|
+
if (!validKinds.has(e.kind)) {
|
|
773
|
+
throw new Error(`--funding-plan-json[${idx}].kind must be one of ${[...validKinds].join(', ')} (got '${e.kind}')`);
|
|
774
|
+
}
|
|
775
|
+
let amount;
|
|
776
|
+
try {
|
|
777
|
+
amount = BigInt(e.amount);
|
|
778
|
+
}
|
|
779
|
+
catch {
|
|
780
|
+
throw new Error(`--funding-plan-json[${idx}].amount '${e.amount}' is not a valid u64`);
|
|
781
|
+
}
|
|
782
|
+
if (amount <= 0n) {
|
|
783
|
+
throw new Error(`--funding-plan-json[${idx}].amount must be > 0 (got ${e.amount})`);
|
|
784
|
+
}
|
|
785
|
+
const out = {
|
|
786
|
+
kind: e.kind,
|
|
787
|
+
amount,
|
|
788
|
+
};
|
|
789
|
+
if (e.gateway !== undefined) {
|
|
790
|
+
if (typeof e.gateway !== 'string') {
|
|
791
|
+
throw new Error(`--funding-plan-json[${idx}].gateway must be a base58 Solana address`);
|
|
792
|
+
}
|
|
793
|
+
if (e.kind !== 'delegation' && e.kind !== 'operatorStake') {
|
|
794
|
+
throw new Error(`--funding-plan-json[${idx}].gateway is only valid for kind 'delegation' or 'operatorStake' (got '${e.kind}')`);
|
|
795
|
+
}
|
|
796
|
+
out.gateway = e.gateway;
|
|
797
|
+
}
|
|
798
|
+
return out;
|
|
799
|
+
});
|
|
800
|
+
}
|
|
560
801
|
export function assertLockLengthInRange(lockLengthMs, assertMin = true) {
|
|
561
802
|
const minLockLengthMs = 1209600000; // 14 days
|
|
562
803
|
const maxLockLengthMs = 378432000000; // ~12 years
|
|
@@ -20,10 +20,32 @@ import { AOProcess, InvalidContractConfigurationError } from './index.js';
|
|
|
20
20
|
import { Logger } from './logger.js';
|
|
21
21
|
export class ANTRegistry {
|
|
22
22
|
static init(config) {
|
|
23
|
-
if (config
|
|
24
|
-
return
|
|
23
|
+
if (config && 'backend' in config && config.backend === 'solana') {
|
|
24
|
+
return (async () => {
|
|
25
|
+
if ('signer' in config) {
|
|
26
|
+
const { SolanaANTRegistryWriteable } = await import('../solana/ant-registry-writeable.js');
|
|
27
|
+
return new SolanaANTRegistryWriteable({
|
|
28
|
+
rpc: config.rpc,
|
|
29
|
+
signer: config.signer,
|
|
30
|
+
commitment: config.commitment,
|
|
31
|
+
logger: config.logger,
|
|
32
|
+
antProgramId: config.antProgramId,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const { SolanaANTRegistryReadable } = await import('../solana/ant-registry-readable.js');
|
|
36
|
+
return new SolanaANTRegistryReadable({
|
|
37
|
+
rpc: config.rpc,
|
|
38
|
+
commitment: config.commitment,
|
|
39
|
+
logger: config.logger,
|
|
40
|
+
antProgramId: config.antProgramId,
|
|
41
|
+
});
|
|
42
|
+
})();
|
|
43
|
+
}
|
|
44
|
+
const aoConfig = config;
|
|
45
|
+
if (aoConfig !== undefined && 'signer' in aoConfig) {
|
|
46
|
+
return new AoANTRegistryWriteable(aoConfig);
|
|
25
47
|
}
|
|
26
|
-
return new AoANTRegistryReadable(
|
|
48
|
+
return new AoANTRegistryReadable(aoConfig);
|
|
27
49
|
}
|
|
28
50
|
}
|
|
29
51
|
export class AoANTRegistryReadable {
|
package/lib/esm/common/ant.js
CHANGED
|
@@ -32,10 +32,14 @@ export class ANT {
|
|
|
32
32
|
static get versions() {
|
|
33
33
|
return ANTVersions.init();
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
static async spawn(params) {
|
|
36
|
+
if (params && params.backend === 'solana') {
|
|
37
|
+
const { spawnSolanaANT } = await import('../solana/spawn-ant.js');
|
|
38
|
+
const { backend: _backend, ...rest } = params;
|
|
39
|
+
return spawnSolanaANT(rest);
|
|
40
|
+
}
|
|
41
|
+
return spawnANT(params);
|
|
42
|
+
}
|
|
39
43
|
/**
|
|
40
44
|
* Fork an ANT to a new process.
|
|
41
45
|
*
|
|
@@ -188,7 +192,48 @@ export class ANT {
|
|
|
188
192
|
return { forkedProcessId, reassignedNames, failedReassignedNames };
|
|
189
193
|
}
|
|
190
194
|
static init(config) {
|
|
191
|
-
|
|
195
|
+
// Solana backend — async, loads transport lazily to keep AO-only bundles small
|
|
196
|
+
if ('backend' in config && config.backend === 'solana') {
|
|
197
|
+
return (async () => {
|
|
198
|
+
const { SolanaANTReadable } = await import('../solana/ant-readable.js');
|
|
199
|
+
const { SolanaANTWriteable } = await import('../solana/ant-writeable.js');
|
|
200
|
+
// ADR-016 / BD-100: when no explicit `antProgramId` is passed,
|
|
201
|
+
// resolve it from the asset's `ANT Program` Attributes-plugin
|
|
202
|
+
// entry. Without this auto-detection, third-party (BYO-ANT)
|
|
203
|
+
// assets would silently mis-derive PDAs through the canonical
|
|
204
|
+
// default. Users who already know the program (e.g. immediately
|
|
205
|
+
// after `ANT.spawn`) can short-circuit by passing it explicitly.
|
|
206
|
+
let antProgramId = config.antProgramId;
|
|
207
|
+
if (!antProgramId) {
|
|
208
|
+
const { fetchAntProgramFromAsset } = await import('../solana/mpl-core.js');
|
|
209
|
+
const { ARIO_ANT_PROGRAM_ID } = await import('../solana/constants.js');
|
|
210
|
+
const { address } = await import('@solana/kit');
|
|
211
|
+
const detected = await fetchAntProgramFromAsset(config.rpc, address(config.processId), { commitment: config.commitment ?? 'confirmed' });
|
|
212
|
+
antProgramId = detected ?? ARIO_ANT_PROGRAM_ID;
|
|
213
|
+
}
|
|
214
|
+
if (config.signer) {
|
|
215
|
+
if (!config.rpcSubscriptions) {
|
|
216
|
+
throw new Error('ANT.init({ backend: "solana", signer }) requires rpcSubscriptions for transaction confirmation.');
|
|
217
|
+
}
|
|
218
|
+
return new SolanaANTWriteable({
|
|
219
|
+
rpc: config.rpc,
|
|
220
|
+
rpcSubscriptions: config.rpcSubscriptions,
|
|
221
|
+
processId: config.processId,
|
|
222
|
+
signer: config.signer,
|
|
223
|
+
commitment: config.commitment,
|
|
224
|
+
antProgramId,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
return new SolanaANTReadable({
|
|
228
|
+
rpc: config.rpc,
|
|
229
|
+
processId: config.processId,
|
|
230
|
+
commitment: config.commitment,
|
|
231
|
+
antProgramId,
|
|
232
|
+
});
|
|
233
|
+
})();
|
|
234
|
+
}
|
|
235
|
+
// AO backend (stays sync)
|
|
236
|
+
if ('signer' in config) {
|
|
192
237
|
return new AoANTWriteable(config);
|
|
193
238
|
}
|
|
194
239
|
return new AoANTReadable(config);
|