@ar.io/sdk 4.0.0-solana.9 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +721 -673
- package/lib/esm/cli/cli.js +28 -152
- package/lib/esm/cli/commands/antCommands.js +5 -66
- package/lib/esm/cli/commands/arnsPurchaseCommands.js +7 -28
- package/lib/esm/cli/commands/escrowCommands.js +23 -4
- package/lib/esm/cli/commands/gatewayWriteCommands.js +15 -8
- package/lib/esm/cli/commands/pruneCommands.js +14 -26
- package/lib/esm/cli/commands/readCommands.js +12 -1
- package/lib/esm/cli/options.js +2 -75
- package/lib/esm/cli/utils.js +96 -209
- package/lib/esm/common/ant-registry.js +12 -160
- package/lib/esm/common/ant.js +40 -1208
- package/lib/esm/common/faucet.js +17 -6
- package/lib/esm/common/index.js +0 -4
- package/lib/esm/common/io.js +13 -1441
- package/lib/esm/constants.js +0 -18
- package/lib/esm/solana/ant-readable.js +391 -54
- package/lib/esm/solana/ant-registry-readable.js +15 -0
- package/lib/esm/solana/ant-registry-writeable.js +19 -4
- package/lib/esm/solana/ant-writeable.js +43 -11
- package/lib/esm/solana/ata.js +15 -0
- package/lib/esm/solana/canonical-message.js +45 -9
- package/lib/esm/solana/clusters.js +69 -22
- package/lib/esm/solana/constants.js +21 -5
- package/lib/esm/solana/delegation-math.js +49 -0
- package/lib/esm/solana/deserialize.js +263 -727
- package/lib/esm/solana/escrow.js +145 -103
- package/lib/esm/solana/events.js +20 -199
- package/lib/esm/solana/funding-plan.js +19 -2
- package/lib/esm/solana/index.js +53 -12
- package/lib/esm/solana/instruction.js +15 -0
- package/lib/esm/solana/io-readable.js +510 -58
- package/lib/esm/solana/io-writeable.js +1179 -183
- package/lib/esm/solana/json-rpc.js +20 -4
- package/lib/esm/solana/metadata.js +15 -0
- package/lib/esm/solana/mpl-core.js +55 -5
- package/lib/esm/solana/pda.js +15 -0
- package/lib/esm/solana/predict-prescribed-observers.js +110 -0
- package/lib/esm/solana/retry.js +117 -0
- package/lib/esm/solana/rpc-circuit-breaker.js +258 -0
- package/lib/esm/solana/send.js +258 -3
- package/lib/esm/solana/spawn-ant.js +16 -2
- package/lib/esm/types/ant.js +8 -8
- package/lib/esm/types/io.js +0 -10
- package/lib/esm/utils/ant.js +0 -64
- package/lib/esm/utils/index.js +0 -3
- package/lib/esm/version.js +1 -1
- package/lib/types/cli/commands/antCommands.d.ts +6 -9
- package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +27 -13
- package/lib/types/cli/commands/escrowCommands.d.ts +6 -0
- package/lib/types/cli/commands/gatewayWriteCommands.d.ts +12 -11
- package/lib/types/cli/commands/pruneCommands.d.ts +11 -11
- package/lib/types/cli/commands/readCommands.d.ts +25 -22
- package/lib/types/cli/commands/transfer.d.ts +9 -9
- package/lib/types/cli/options.d.ts +0 -57
- package/lib/types/cli/types.d.ts +6 -14
- package/lib/types/cli/utils.d.ts +34 -32
- package/lib/types/common/ant-registry.d.ts +35 -74
- package/lib/types/common/ant.d.ts +52 -570
- package/lib/types/common/faucet.d.ts +20 -8
- package/lib/types/common/index.d.ts +0 -3
- package/lib/types/common/io.d.ts +56 -288
- package/lib/types/constants.d.ts +0 -17
- package/lib/types/solana/ant-readable.d.ts +65 -6
- package/lib/types/solana/ant-registry-readable.d.ts +17 -2
- package/lib/types/solana/ant-registry-writeable.d.ts +20 -5
- package/lib/types/solana/ant-writeable.d.ts +39 -24
- package/lib/types/solana/ata.d.ts +15 -0
- package/lib/types/solana/canonical-message.d.ts +44 -5
- package/lib/types/solana/clusters.d.ts +68 -21
- package/lib/types/solana/constants.d.ts +16 -0
- package/lib/types/solana/delegation-math.d.ts +25 -0
- package/lib/types/solana/deserialize.d.ts +28 -198
- package/lib/types/solana/escrow.d.ts +128 -51
- package/lib/types/solana/events.d.ts +26 -144
- package/lib/types/solana/funding-plan.d.ts +15 -0
- package/lib/types/solana/index.d.ts +27 -3
- package/lib/types/solana/instruction.d.ts +15 -0
- package/lib/types/solana/io-readable.d.ts +185 -46
- package/lib/types/solana/io-writeable.d.ts +450 -77
- package/lib/types/solana/json-rpc.d.ts +15 -0
- package/lib/types/solana/metadata.d.ts +15 -0
- package/lib/types/solana/mpl-core.d.ts +44 -0
- package/lib/types/solana/predict-prescribed-observers.d.ts +28 -0
- package/lib/types/solana/retry.d.ts +62 -0
- package/lib/types/solana/rpc-circuit-breaker.d.ts +78 -0
- package/lib/types/solana/send.d.ts +80 -2
- package/lib/types/solana/spawn-ant.d.ts +15 -0
- package/lib/types/solana/types.d.ts +15 -0
- package/lib/types/types/ant-registry.d.ts +4 -4
- package/lib/types/types/ant.d.ts +92 -92
- package/lib/types/types/common.d.ts +18 -74
- package/lib/types/types/faucet.d.ts +2 -2
- package/lib/types/types/io.d.ts +189 -158
- package/lib/types/types/token.d.ts +0 -12
- package/lib/types/utils/ant.d.ts +1 -12
- package/lib/types/utils/index.d.ts +0 -3
- package/lib/types/version.d.ts +1 -1
- package/package.json +23 -37
- package/lib/esm/common/ant-versions.js +0 -87
- package/lib/esm/common/arweave.js +0 -21
- package/lib/esm/common/contracts/ao-process.js +0 -218
- package/lib/esm/common/hyperbeam/hb.js +0 -169
- package/lib/esm/common/marketplace.js +0 -669
- package/lib/esm/common/turbo.js +0 -215
- package/lib/esm/node/index.js +0 -20
- package/lib/esm/solana/generated/ant/events/aclEntryAddedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/aclEntryRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/antMetadataUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/antReconciledEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/antTransferredEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/attributesClearedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/attributesSyncedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/controllerAddedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/controllerRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/index.js +0 -16
- package/lib/esm/solana/generated/ant/events/recordMetadataPrunedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordMetadataRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordMetadataUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordSetEvent.js +0 -21
- package/lib/esm/solana/generated/ant/events/recordTransferredEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowCancelledEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowClaimedEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowDepositedEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/ant-escrow/events/index.js +0 -5
- package/lib/esm/solana/generated/arns/events/demandFactorUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/index.js +0 -13
- package/lib/esm/solana/generated/arns/events/leaseExtendedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/namePurchasedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameReassignedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameReleasedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameReservedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameUnreservedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/nameUpgradedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/namesPrunedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/reservedNameClaimedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/returnedNamePurchasedEvent.js +0 -21
- package/lib/esm/solana/generated/arns/events/undernameIncreasedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/configUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/coreMigrationFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/index.js +0 -14
- package/lib/esm/solana/generated/core/events/primaryNameRemovedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/primaryNameRequestExpiredEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/primaryNameRequestedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/primaryNameSetEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/supplyFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/transferEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultExtendedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultIncreasedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultReleasedEvent.js +0 -21
- package/lib/esm/solana/generated/core/events/vaultRevokedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/allowlistToggledEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegateAllowlistedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegationClosedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegationDecreasedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/delegationEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochClosedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochDistributedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochPrescribedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochWeightsTalliedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/epochsToggledEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/fundingPlanAppliedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/garMigrationFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayFinalizedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayJoinedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayLeavingEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewayPrunedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/index.js +0 -31
- package/lib/esm/solana/generated/gar/events/instantWithdrawalEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/observationSubmittedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/observerAddressUpdatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/operatorStakeIncreasedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/redelegationEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/residueVaultCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/rewardsCompoundedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/stakePaymentEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalCancelledEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalClaimedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalCreatedEvent.js +0 -21
- package/lib/esm/solana/generated/gar/events/withdrawalPaymentEvent.js +0 -21
- package/lib/esm/solana/generated/mpl-core/accounts/assetV1.js +0 -42
- package/lib/esm/solana/generated/mpl-core/accounts/collectionV1.js +0 -42
- package/lib/esm/solana/generated/mpl-core/accounts/hashedAssetV1.js +0 -45
- package/lib/esm/solana/generated/mpl-core/accounts/index.js +0 -12
- package/lib/esm/solana/generated/mpl-core/accounts/pluginHeaderV1.js +0 -45
- package/lib/esm/solana/generated/mpl-core/accounts/pluginRegistryV1.js +0 -42
- package/lib/esm/solana/generated/mpl-core/errors/index.js +0 -8
- package/lib/esm/solana/generated/mpl-core/errors/mplCore.js +0 -136
- package/lib/esm/solana/generated/mpl-core/index.js +0 -8
- package/lib/esm/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/addPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/burnCollectionV1.js +0 -49
- package/lib/esm/solana/generated/mpl-core/instructions/burnV1.js +0 -49
- package/lib/esm/solana/generated/mpl-core/instructions/collect.js +0 -42
- package/lib/esm/solana/generated/mpl-core/instructions/compressV1.js +0 -50
- package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV2.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/createV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/createV2.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/decompressV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/executeV1.js +0 -56
- package/lib/esm/solana/generated/mpl-core/instructions/index.js +0 -40
- package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/removePluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/transferV1.js +0 -49
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +0 -45
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionV1.js +0 -52
- package/lib/esm/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updatePluginV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/updateV2.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +0 -53
- package/lib/esm/solana/generated/mpl-core/program-address.js +0 -1
- package/lib/esm/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/addBlocker.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/agentIdentity.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/agentIdentityInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/appData.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/appDataInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/appDataUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/attribute.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/attributes.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/authority.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/autograph.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/autographSignature.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/bubblegumV2.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/burnDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/closeGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/compressionProof.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/creator.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/dataSection.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/dataSectionInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/dataState.js +0 -23
- package/lib/esm/solana/generated/mpl-core/types/edition.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/externalCheckResult.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapter.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterKey.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterType.js +0 -28
- package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/externalRegistryRecord.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/externalValidationResult.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/extraAccount.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/freezeDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/freezeExecute.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/groups.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/hashablePluginSchema.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/hashedAssetSchema.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/hookableLifecycleEvent.js +0 -26
- package/lib/esm/solana/generated/mpl-core/types/immutableMetadata.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/index.js +0 -89
- package/lib/esm/solana/generated/mpl-core/types/key.js +0 -28
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHook.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedAppData.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedDataKey.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHook.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/masterEdition.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/oracle.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/oracleInitInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/oracleUpdateInfo.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/oracleValidation.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/permanentBurnDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/permanentFreezeDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/permanentFreezeExecute.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/permanentTransferDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/plugin.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/pluginAuthorityPair.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/pluginType.js +0 -40
- package/lib/esm/solana/generated/mpl-core/types/registryRecord.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/relationshipKind.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/royalties.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/ruleSet.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/seed.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/transferDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/updateAuthority.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/updateDelegate.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/updateGroupV1Args.js +0 -17
- package/lib/esm/solana/generated/mpl-core/types/updateType.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/validationResult.js +0 -25
- package/lib/esm/solana/generated/mpl-core/types/validationResultsOffset.js +0 -24
- package/lib/esm/solana/generated/mpl-core/types/verifiedCreators.js +0 -18
- package/lib/esm/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +0 -17
- package/lib/esm/utils/ao.js +0 -421
- package/lib/esm/utils/arweave.js +0 -271
- package/lib/esm/utils/processes.js +0 -167
- package/lib/esm/web/index.js +0 -20
- package/lib/types/common/ant-versions.d.ts +0 -39
- package/lib/types/common/arweave.d.ts +0 -17
- package/lib/types/common/contracts/ao-process.d.ts +0 -33
- package/lib/types/common/hyperbeam/hb.d.ts +0 -88
- package/lib/types/common/marketplace.d.ts +0 -556
- package/lib/types/common/turbo.d.ts +0 -61
- package/lib/types/node/index.d.ts +0 -20
- package/lib/types/solana/generated/ant/events/aclEntryAddedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/aclEntryRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/antMetadataUpdatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant/events/antReconciledEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant/events/antTransferredEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/attributesClearedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/attributesSyncedEvent.d.ts +0 -24
- package/lib/types/solana/generated/ant/events/controllerAddedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/controllerRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/index.d.ts +0 -15
- package/lib/types/solana/generated/ant/events/recordMetadataPrunedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/recordMetadataRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/recordMetadataUpdatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant/events/recordRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant/events/recordSetEvent.d.ts +0 -34
- package/lib/types/solana/generated/ant/events/recordTransferredEvent.d.ts +0 -30
- package/lib/types/solana/generated/ant-escrow/events/escrowCancelledEvent.d.ts +0 -28
- package/lib/types/solana/generated/ant-escrow/events/escrowClaimedEvent.d.ts +0 -32
- package/lib/types/solana/generated/ant-escrow/events/escrowDepositedEvent.d.ts +0 -36
- package/lib/types/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.d.ts +0 -26
- package/lib/types/solana/generated/ant-escrow/events/index.d.ts +0 -4
- package/lib/types/solana/generated/arns/events/demandFactorUpdatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/index.d.ts +0 -12
- package/lib/types/solana/generated/arns/events/leaseExtendedEvent.d.ts +0 -32
- package/lib/types/solana/generated/arns/events/namePurchasedEvent.d.ts +0 -34
- package/lib/types/solana/generated/arns/events/nameReassignedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/nameReleasedEvent.d.ts +0 -24
- package/lib/types/solana/generated/arns/events/nameReservedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/nameUnreservedEvent.d.ts +0 -24
- package/lib/types/solana/generated/arns/events/nameUpgradedEvent.d.ts +0 -28
- package/lib/types/solana/generated/arns/events/namesPrunedEvent.d.ts +0 -26
- package/lib/types/solana/generated/arns/events/reservedNameClaimedEvent.d.ts +0 -24
- package/lib/types/solana/generated/arns/events/returnedNamePurchasedEvent.d.ts +0 -32
- package/lib/types/solana/generated/arns/events/undernameIncreasedEvent.d.ts +0 -32
- package/lib/types/solana/generated/core/events/configUpdatedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/coreMigrationFinalizedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/index.d.ts +0 -13
- package/lib/types/solana/generated/core/events/primaryNameRemovedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/primaryNameRequestExpiredEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/primaryNameRequestedEvent.d.ts +0 -30
- package/lib/types/solana/generated/core/events/primaryNameSetEvent.d.ts +0 -24
- package/lib/types/solana/generated/core/events/supplyFinalizedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/transferEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/vaultCreatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/core/events/vaultExtendedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/vaultIncreasedEvent.d.ts +0 -28
- package/lib/types/solana/generated/core/events/vaultReleasedEvent.d.ts +0 -26
- package/lib/types/solana/generated/core/events/vaultRevokedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/allowlistToggledEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/delegateAllowlistedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/delegationClosedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/delegationDecreasedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/delegationEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/epochClosedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/epochCreatedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/epochDistributedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/epochPrescribedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/epochWeightsTalliedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/epochsToggledEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/fundingPlanAppliedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/garMigrationFinalizedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/gatewayFinalizedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/gatewayJoinedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/gatewayLeavingEvent.d.ts +0 -22
- package/lib/types/solana/generated/gar/events/gatewayPrunedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/gatewaySettingsUpdatedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/index.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/instantWithdrawalEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/observationSubmittedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/observerAddressUpdatedEvent.d.ts +0 -24
- package/lib/types/solana/generated/gar/events/operatorStakeIncreasedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/redelegationEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/residueVaultCreatedEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/rewardsCompoundedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/stakePaymentEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/withdrawalCancelledEvent.d.ts +0 -30
- package/lib/types/solana/generated/gar/events/withdrawalClaimedEvent.d.ts +0 -26
- package/lib/types/solana/generated/gar/events/withdrawalCreatedEvent.d.ts +0 -28
- package/lib/types/solana/generated/gar/events/withdrawalPaymentEvent.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/accounts/assetV1.d.ts +0 -37
- package/lib/types/solana/generated/mpl-core/accounts/collectionV1.d.ts +0 -37
- package/lib/types/solana/generated/mpl-core/accounts/hashedAssetV1.d.ts +0 -30
- package/lib/types/solana/generated/mpl-core/accounts/index.d.ts +0 -12
- package/lib/types/solana/generated/mpl-core/accounts/pluginHeaderV1.d.ts +0 -30
- package/lib/types/solana/generated/mpl-core/accounts/pluginRegistryV1.d.ts +0 -31
- package/lib/types/solana/generated/mpl-core/errors/index.d.ts +0 -8
- package/lib/types/solana/generated/mpl-core/errors/mplCore.d.ts +0 -133
- package/lib/types/solana/generated/mpl-core/index.d.ts +0 -8
- package/lib/types/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/addCollectionPluginV1.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/addPluginV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/burnCollectionV1.d.ts +0 -52
- package/lib/types/solana/generated/mpl-core/instructions/burnV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/collect.d.ts +0 -39
- package/lib/types/solana/generated/mpl-core/instructions/compressV1.d.ts +0 -55
- package/lib/types/solana/generated/mpl-core/instructions/createCollectionV1.d.ts +0 -58
- package/lib/types/solana/generated/mpl-core/instructions/createCollectionV2.d.ts +0 -61
- package/lib/types/solana/generated/mpl-core/instructions/createV1.d.ts +0 -77
- package/lib/types/solana/generated/mpl-core/instructions/createV2.d.ts +0 -80
- package/lib/types/solana/generated/mpl-core/instructions/decompressV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/executeV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/index.d.ts +0 -40
- package/lib/types/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/removeCollectionPluginV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/removePluginV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/transferV1.d.ts +0 -64
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionInfoV1.d.ts +0 -47
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionPluginV1.d.ts +0 -56
- package/lib/types/solana/generated/mpl-core/instructions/updateCollectionV1.d.ts +0 -62
- package/lib/types/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/updatePluginV1.d.ts +0 -60
- package/lib/types/solana/generated/mpl-core/instructions/updateV1.d.ts +0 -66
- package/lib/types/solana/generated/mpl-core/instructions/updateV2.d.ts +0 -70
- package/lib/types/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.d.ts +0 -63
- package/lib/types/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.d.ts +0 -67
- package/lib/types/solana/generated/mpl-core/program-address.d.ts +0 -7
- package/lib/types/solana/generated/mpl-core/types/addAssetsToGroupV1Args.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/addBlocker.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/addGroupsToGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/agentIdentity.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/agentIdentityInitInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/agentIdentityUpdateInfo.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/appData.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/appDataInitInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/appDataUpdateInfo.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/attribute.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/attributes.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/authority.d.ts +0 -29
- package/lib/types/solana/generated/mpl-core/types/autograph.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/autographSignature.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/bubblegumV2.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/burnDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/closeGroupV1Args.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/compressionProof.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/creator.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/dataSection.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/dataSectionInitInfo.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/dataSectionUpdateInfo.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/dataState.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/edition.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/externalCheckResult.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapter.d.ts +0 -66
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.d.ts +0 -66
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterKey.d.ts +0 -64
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterSchema.d.ts +0 -17
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterType.d.ts +0 -21
- package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.d.ts +0 -59
- package/lib/types/solana/generated/mpl-core/types/externalRegistryRecord.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/externalValidationResult.d.ts +0 -17
- package/lib/types/solana/generated/mpl-core/types/extraAccount.d.ts +0 -86
- package/lib/types/solana/generated/mpl-core/types/freezeDelegate.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/freezeExecute.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/groups.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/hashablePluginSchema.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/hashedAssetSchema.d.ts +0 -16
- package/lib/types/solana/generated/mpl-core/types/hookableLifecycleEvent.d.ts +0 -19
- package/lib/types/solana/generated/mpl-core/types/immutableMetadata.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/index.d.ts +0 -89
- package/lib/types/solana/generated/mpl-core/types/key.d.ts +0 -21
- package/lib/types/solana/generated/mpl-core/types/lifecycleHook.d.ts +0 -24
- package/lib/types/solana/generated/mpl-core/types/lifecycleHookInitInfo.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/linkedAppData.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/linkedAppDataInitInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/linkedDataKey.d.ts +0 -31
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHook.d.ts +0 -24
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.d.ts +0 -28
- package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/masterEdition.d.ts +0 -21
- package/lib/types/solana/generated/mpl-core/types/oracle.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/oracleInitInfo.d.ts +0 -26
- package/lib/types/solana/generated/mpl-core/types/oracleUpdateInfo.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/oracleValidation.d.ts +0 -35
- package/lib/types/solana/generated/mpl-core/types/permanentBurnDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/permanentFreezeDelegate.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/permanentFreezeExecute.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/permanentTransferDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/plugin.d.ts +0 -150
- package/lib/types/solana/generated/mpl-core/types/pluginAuthorityPair.d.ts +0 -20
- package/lib/types/solana/generated/mpl-core/types/pluginType.d.ts +0 -33
- package/lib/types/solana/generated/mpl-core/types/registryRecord.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/relationshipKind.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/royalties.d.ts +0 -22
- package/lib/types/solana/generated/mpl-core/types/ruleSet.d.ts +0 -27
- package/lib/types/solana/generated/mpl-core/types/seed.d.ts +0 -36
- package/lib/types/solana/generated/mpl-core/types/transferDelegate.d.ts +0 -13
- package/lib/types/solana/generated/mpl-core/types/updateAuthority.d.ts +0 -27
- package/lib/types/solana/generated/mpl-core/types/updateDelegate.d.ts +0 -15
- package/lib/types/solana/generated/mpl-core/types/updateGroupV1Args.d.ts +0 -19
- package/lib/types/solana/generated/mpl-core/types/updateType.d.ts +0 -17
- package/lib/types/solana/generated/mpl-core/types/validationResult.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/validationResultsOffset.d.ts +0 -33
- package/lib/types/solana/generated/mpl-core/types/verifiedCreators.d.ts +0 -18
- package/lib/types/solana/generated/mpl-core/types/verifiedCreatorsSignature.d.ts +0 -16
- package/lib/types/utils/ao.d.ts +0 -80
- package/lib/types/utils/arweave.d.ts +0 -79
- package/lib/types/utils/processes.d.ts +0 -39
- package/lib/types/web/index.d.ts +0 -20
package/lib/esm/cli/utils.js
CHANGED
|
@@ -14,13 +14,17 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { readFileSync } from 'fs';
|
|
17
|
-
import {
|
|
18
|
-
import { connect } from '@permaweb/aoconnect';
|
|
19
|
-
import { address, createKeyPairSignerFromBytes, createSolanaRpc, createSolanaRpcSubscriptions, } from '@solana/kit';
|
|
17
|
+
import { address, createKeyPairSignerFromBytes, createSolanaRpcSubscriptions, } from '@solana/kit';
|
|
20
18
|
import bs58 from 'bs58';
|
|
21
19
|
import { program } from 'commander';
|
|
22
20
|
import prompts from 'prompts';
|
|
23
|
-
import {
|
|
21
|
+
import { ANTRegistry } from '../common/ant-registry.js';
|
|
22
|
+
import { ANT } from '../common/ant.js';
|
|
23
|
+
import { ARIO } from '../common/io.js';
|
|
24
|
+
import { Logger } from '../common/logger.js';
|
|
25
|
+
import { createCircuitBreakerRpc, defaultFallbackUrl, } from '../solana/rpc-circuit-breaker.js';
|
|
26
|
+
import { fundFromOptions, isValidFundFrom, isValidIntent, validIntents, } from '../types/io.js';
|
|
27
|
+
import { ARIOToken, mARIOToken } from '../types/token.js';
|
|
24
28
|
import { globalOptions } from './options.js';
|
|
25
29
|
export const defaultTtlSecondsCLI = 3600;
|
|
26
30
|
export function stringifyJsonForCLIDisplay(json) {
|
|
@@ -68,46 +72,6 @@ export function makeCommand({ description, name, options = [], action, }) {
|
|
|
68
72
|
}
|
|
69
73
|
return appliedCommand;
|
|
70
74
|
}
|
|
71
|
-
export function arioProcessIdFromOptions({ arioProcessId, devnet, testnet, }) {
|
|
72
|
-
if (arioProcessId !== undefined) {
|
|
73
|
-
return arioProcessId;
|
|
74
|
-
}
|
|
75
|
-
if (devnet) {
|
|
76
|
-
return ARIO_DEVNET_PROCESS_ID;
|
|
77
|
-
}
|
|
78
|
-
if (testnet) {
|
|
79
|
-
return ARIO_TESTNET_PROCESS_ID;
|
|
80
|
-
}
|
|
81
|
-
return ARIO_MAINNET_PROCESS_ID;
|
|
82
|
-
}
|
|
83
|
-
export function antRegistryIdFromOptions({ antRegistryProcessId, testnet, }) {
|
|
84
|
-
if (antRegistryProcessId !== undefined) {
|
|
85
|
-
return antRegistryProcessId;
|
|
86
|
-
}
|
|
87
|
-
if (testnet) {
|
|
88
|
-
return ANT_REGISTRY_TESTNET_ID;
|
|
89
|
-
}
|
|
90
|
-
return ANT_REGISTRY_ID;
|
|
91
|
-
}
|
|
92
|
-
function walletFromOptions({ privateKey, walletFile, }) {
|
|
93
|
-
if (privateKey !== undefined) {
|
|
94
|
-
return JSON.parse(privateKey);
|
|
95
|
-
}
|
|
96
|
-
if (walletFile !== undefined) {
|
|
97
|
-
return JSON.parse(readFileSync(walletFile, 'utf-8'));
|
|
98
|
-
}
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
export function requiredJwkFromOptions(options) {
|
|
102
|
-
const jwk = walletFromOptions(options);
|
|
103
|
-
if (jwk === undefined) {
|
|
104
|
-
throw new Error('No JWK provided for signing!\nPlease provide a stringified JWK with `--private-key` or the file path of a jwk.json file with `--wallet-file`');
|
|
105
|
-
}
|
|
106
|
-
return jwk;
|
|
107
|
-
}
|
|
108
|
-
export function jwkToAddress(jwk) {
|
|
109
|
-
return sha256B64Url(fromB64Url(jwk.n));
|
|
110
|
-
}
|
|
111
75
|
function setLoggerIfDebug(options) {
|
|
112
76
|
if (options.debug) {
|
|
113
77
|
Logger.default.setLogLevel('debug');
|
|
@@ -117,31 +81,11 @@ export function getLoggerFromOptions(options) {
|
|
|
117
81
|
setLoggerIfDebug(options);
|
|
118
82
|
return Logger.default;
|
|
119
83
|
}
|
|
120
|
-
function aoProcessFromOptions(options) {
|
|
121
|
-
return new AOProcess({
|
|
122
|
-
processId: arioProcessIdFromOptions(options),
|
|
123
|
-
ao: connect({
|
|
124
|
-
MODE: 'legacy',
|
|
125
|
-
CU_URL: options.cuUrl,
|
|
126
|
-
}),
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
84
|
export function readARIOFromOptions(options) {
|
|
130
85
|
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
86
|
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
142
87
|
return ARIO.init({
|
|
143
|
-
|
|
144
|
-
rpc: createSolanaRpc(rpcUrl),
|
|
88
|
+
rpc: createCliRpc(rpcUrl),
|
|
145
89
|
...(options.coreProgramId
|
|
146
90
|
? { coreProgramId: address(options.coreProgramId) }
|
|
147
91
|
: {}),
|
|
@@ -155,46 +99,14 @@ export function readARIOFromOptions(options) {
|
|
|
155
99
|
}
|
|
156
100
|
export async function readANTRegistryFromOptions(options) {
|
|
157
101
|
setLoggerIfDebug(options);
|
|
158
|
-
if (options.ao) {
|
|
159
|
-
return ANTRegistry.init({
|
|
160
|
-
process: aoProcessFromOptions(options),
|
|
161
|
-
hyperbeamUrl: options.hyperbeamUrl,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
102
|
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
165
103
|
return ANTRegistry.init({
|
|
166
|
-
|
|
167
|
-
rpc: createSolanaRpc(rpcUrl),
|
|
104
|
+
rpc: createCliRpc(rpcUrl),
|
|
168
105
|
...(options.antProgramId
|
|
169
106
|
? { antProgramId: address(options.antProgramId) }
|
|
170
107
|
: {}),
|
|
171
108
|
});
|
|
172
109
|
}
|
|
173
|
-
export function contractSignerFromOptions(options) {
|
|
174
|
-
const wallet = walletFromOptions(options);
|
|
175
|
-
if (wallet === undefined) {
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
|
-
const token = options.token ?? 'arweave';
|
|
179
|
-
if (token === 'ethereum') {
|
|
180
|
-
const signer = new EthereumSigner(wallet);
|
|
181
|
-
// For EthereumSigner, we need to convert the JWK to a string
|
|
182
|
-
return { signer, signerAddress: signer.publicKey.toString('hex') };
|
|
183
|
-
}
|
|
184
|
-
// TODO: Support other wallet types
|
|
185
|
-
const signer = new ArweaveSigner(wallet);
|
|
186
|
-
return { signer, signerAddress: jwkToAddress(wallet) };
|
|
187
|
-
}
|
|
188
|
-
export function requiredContractSignerFromOptions(options) {
|
|
189
|
-
const contractSigner = contractSignerFromOptions(options);
|
|
190
|
-
if (contractSigner === undefined) {
|
|
191
|
-
throw new Error('No signer provided for signing!\nPlease provide a stringified JWK or Ethereum private key with `--private-key` or the file path of an arweave.jwk.json or eth.private.key.txt file with `--wallet-file`');
|
|
192
|
-
}
|
|
193
|
-
return contractSigner;
|
|
194
|
-
}
|
|
195
|
-
export function requiredAoSignerFromOptions(options) {
|
|
196
|
-
return createAoSigner(requiredContractSignerFromOptions(options).signer);
|
|
197
|
-
}
|
|
198
110
|
/** Derive a WS URL from an HTTP/HTTPS RPC URL by swapping the scheme. */
|
|
199
111
|
function wsUrlFromRpcUrl(rpcUrl) {
|
|
200
112
|
// Surfpool and `solana-test-validator` follow Solana's well-known localhost
|
|
@@ -218,6 +130,16 @@ function wsUrlFromRpcUrl(rpcUrl) {
|
|
|
218
130
|
url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
219
131
|
return url.toString().replace(/\/$/, '');
|
|
220
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Create a {@link SolanaRpc} wrapped with a circuit-breaker that falls back to
|
|
135
|
+
* the cluster's public RPC when the primary endpoint becomes unhealthy.
|
|
136
|
+
*/
|
|
137
|
+
function createCliRpc(rpcUrl) {
|
|
138
|
+
return createCircuitBreakerRpc({
|
|
139
|
+
primaryUrl: rpcUrl,
|
|
140
|
+
fallbackUrl: defaultFallbackUrl(rpcUrl),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
221
143
|
/**
|
|
222
144
|
* Load a Solana KeyPairSigner from --private-key (base58) or --wallet-file
|
|
223
145
|
* (JSON array of bytes). Throws with a helpful message if neither is set.
|
|
@@ -240,29 +162,15 @@ async function loadSolanaSignerFromOptions(options) {
|
|
|
240
162
|
}
|
|
241
163
|
export async function writeARIOFromOptions(options) {
|
|
242
164
|
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
165
|
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
256
166
|
const signer = await loadSolanaSignerFromOptions(options);
|
|
257
167
|
return {
|
|
258
168
|
ario: ARIO.init({
|
|
259
|
-
|
|
260
|
-
rpc: createSolanaRpc(rpcUrl),
|
|
169
|
+
rpc: createCliRpc(rpcUrl),
|
|
261
170
|
rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
|
|
262
171
|
signer,
|
|
263
|
-
// Forward program-id overrides
|
|
264
|
-
//
|
|
265
|
-
// silently falling back to the SDK's mainnet defaults.
|
|
172
|
+
// Forward program-id overrides so localnet / devnet writes target the
|
|
173
|
+
// deployed program IDs instead of falling back to mainnet defaults.
|
|
266
174
|
...(options.coreProgramId
|
|
267
175
|
? { coreProgramId: address(options.coreProgramId) }
|
|
268
176
|
: {}),
|
|
@@ -287,14 +195,51 @@ export function formatARIOWithCommas(value) {
|
|
|
287
195
|
export function formatMARIOToARIOWithCommas(value) {
|
|
288
196
|
return formatARIOWithCommas(value.toARIO());
|
|
289
197
|
}
|
|
290
|
-
/**
|
|
198
|
+
/**
|
|
199
|
+
* Resolve the wallet address from CLI options. Priority order:
|
|
200
|
+
* 1. `--address <addr>` — used verbatim.
|
|
201
|
+
* 2. `--wallet-file <path-to-keypair.json>` — derive the Solana pubkey
|
|
202
|
+
* from the keypair file (last 32 bytes of the 64-byte secret-key
|
|
203
|
+
* array are the public key; base58-encode them).
|
|
204
|
+
* 3. `--private-key <base58-secret>` — base58-decode the secret, take
|
|
205
|
+
* the trailing 32 bytes as the pubkey. Matches the keypair-file
|
|
206
|
+
* path; kept aligned with `loadSolanaSignerFromOptions` so cost
|
|
207
|
+
* / funding lookups work even when the user authenticates with
|
|
208
|
+
* only a private key.
|
|
209
|
+
*
|
|
210
|
+
* Returns `undefined` when none of those is set. Use
|
|
211
|
+
* `requiredAddressFromOptions` for callers that must have an address.
|
|
212
|
+
*/
|
|
291
213
|
export function addressFromOptions(options) {
|
|
292
214
|
if (options.address !== undefined) {
|
|
293
215
|
return options.address;
|
|
294
216
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
217
|
+
if (options.walletFile !== undefined) {
|
|
218
|
+
try {
|
|
219
|
+
const raw = readFileSync(options.walletFile, 'utf-8');
|
|
220
|
+
const bytes = new Uint8Array(JSON.parse(raw));
|
|
221
|
+
// Solana keypair JSON files are a 64-byte Uint8Array: first 32 bytes
|
|
222
|
+
// are the seed/secret, last 32 bytes are the Ed25519 public key.
|
|
223
|
+
if (bytes.length !== 64) {
|
|
224
|
+
throw new Error(`Wallet file is ${bytes.length} bytes — expected 64-byte Solana keypair JSON`);
|
|
225
|
+
}
|
|
226
|
+
return bs58.encode(bytes.slice(32));
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
throw new Error(`Failed to read Solana pubkey from --wallet-file '${options.walletFile}': ${err.message}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (options.privateKey !== undefined) {
|
|
233
|
+
try {
|
|
234
|
+
const bytes = bs58.decode(options.privateKey);
|
|
235
|
+
if (bytes.length !== 64) {
|
|
236
|
+
throw new Error(`Decoded private key is ${bytes.length} bytes — expected 64 (32-byte secret + 32-byte pubkey)`);
|
|
237
|
+
}
|
|
238
|
+
return bs58.encode(bytes.slice(32));
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
throw new Error(`Failed to derive Solana pubkey from --private-key: ${err.message}`);
|
|
242
|
+
}
|
|
298
243
|
}
|
|
299
244
|
return undefined;
|
|
300
245
|
}
|
|
@@ -303,7 +248,7 @@ export function requiredAddressFromOptions(options) {
|
|
|
303
248
|
if (address !== undefined) {
|
|
304
249
|
return address;
|
|
305
250
|
}
|
|
306
|
-
throw new Error('No address provided. Use --address or --
|
|
251
|
+
throw new Error('No address provided. Use --address, --wallet-file, or --private-key');
|
|
307
252
|
}
|
|
308
253
|
const defaultCliPaginationLimit = 10; // more friendly UX than 100
|
|
309
254
|
export function paginationParamsFromOptions(options) {
|
|
@@ -385,44 +330,8 @@ export function customTagsFromOptions(options) {
|
|
|
385
330
|
tags,
|
|
386
331
|
};
|
|
387
332
|
}
|
|
388
|
-
export function servicesFromOptions(services) {
|
|
389
|
-
if (services === undefined || services === null || services === '') {
|
|
390
|
-
return undefined;
|
|
391
|
-
}
|
|
392
|
-
try {
|
|
393
|
-
const parsed = JSON.parse(services);
|
|
394
|
-
// Validate structure
|
|
395
|
-
if (!parsed.bundlers || !Array.isArray(parsed.bundlers)) {
|
|
396
|
-
throw new Error('Services must have a "bundlers" array');
|
|
397
|
-
}
|
|
398
|
-
if (parsed.bundlers.length > 20) {
|
|
399
|
-
throw new Error('Maximum 20 bundlers allowed');
|
|
400
|
-
}
|
|
401
|
-
// Validate each bundler
|
|
402
|
-
for (const bundler of parsed.bundlers) {
|
|
403
|
-
if (!bundler.fqdn || typeof bundler.fqdn !== 'string') {
|
|
404
|
-
throw new Error('Each bundler must have a valid "fqdn" string');
|
|
405
|
-
}
|
|
406
|
-
if (typeof bundler.port !== 'number' ||
|
|
407
|
-
bundler.port < 0 ||
|
|
408
|
-
bundler.port > 65535) {
|
|
409
|
-
throw new Error('Each bundler must have a valid "port" (0-65535)');
|
|
410
|
-
}
|
|
411
|
-
if (bundler.protocol !== 'https') {
|
|
412
|
-
throw new Error('Each bundler protocol must be "https"');
|
|
413
|
-
}
|
|
414
|
-
if (!bundler.path || typeof bundler.path !== 'string') {
|
|
415
|
-
throw new Error('Each bundler must have a valid "path" string');
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
return parsed;
|
|
419
|
-
}
|
|
420
|
-
catch (error) {
|
|
421
|
-
throw new Error(`Invalid services JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
333
|
export function gatewaySettingsFromOptions(options) {
|
|
425
|
-
const { allowDelegatedStaking, autoStake, delegateRewardShareRatio, fqdn, label, minDelegatedStake, note, observerAddress, port, properties, allowedDelegates,
|
|
334
|
+
const { allowDelegatedStaking, autoStake, delegateRewardShareRatio, fqdn, label, minDelegatedStake, note, observerAddress, port, properties, allowedDelegates, } = options;
|
|
426
335
|
return {
|
|
427
336
|
observerAddress,
|
|
428
337
|
allowDelegatedStaking,
|
|
@@ -437,7 +346,6 @@ export function gatewaySettingsFromOptions(options) {
|
|
|
437
346
|
note,
|
|
438
347
|
port: port !== undefined ? +port : undefined,
|
|
439
348
|
properties,
|
|
440
|
-
services: servicesFromOptions(services),
|
|
441
349
|
};
|
|
442
350
|
}
|
|
443
351
|
export function requiredTargetAndQuantityFromOptions(options) {
|
|
@@ -526,47 +434,22 @@ export function requiredProcessIdFromOptions(o) {
|
|
|
526
434
|
}
|
|
527
435
|
return o.processId;
|
|
528
436
|
}
|
|
529
|
-
function ANTProcessFromOptions(options) {
|
|
530
|
-
return new AOProcess({
|
|
531
|
-
processId: requiredProcessIdFromOptions(options),
|
|
532
|
-
ao: connect({
|
|
533
|
-
MODE: 'legacy',
|
|
534
|
-
CU_URL: options.cuUrl,
|
|
535
|
-
}),
|
|
536
|
-
});
|
|
537
|
-
}
|
|
538
437
|
export async function readANTFromOptions(options) {
|
|
539
|
-
if (options.ao) {
|
|
540
|
-
return ANT.init({
|
|
541
|
-
process: ANTProcessFromOptions(options),
|
|
542
|
-
hyperbeamUrl: options.hyperbeamUrl,
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
438
|
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
546
439
|
return ANT.init({
|
|
547
|
-
backend: 'solana',
|
|
548
440
|
processId: requiredProcessIdFromOptions(options),
|
|
549
|
-
rpc:
|
|
441
|
+
rpc: createCliRpc(rpcUrl),
|
|
550
442
|
...(options.antProgramId
|
|
551
443
|
? { antProgramId: address(options.antProgramId) }
|
|
552
444
|
: {}),
|
|
553
445
|
});
|
|
554
446
|
}
|
|
555
|
-
export async function writeANTFromOptions(options
|
|
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
|
-
}
|
|
447
|
+
export async function writeANTFromOptions(options) {
|
|
564
448
|
const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
|
|
565
449
|
const kitSigner = await loadSolanaSignerFromOptions(options);
|
|
566
450
|
return ANT.init({
|
|
567
|
-
backend: 'solana',
|
|
568
451
|
processId: requiredProcessIdFromOptions(options),
|
|
569
|
-
rpc:
|
|
452
|
+
rpc: createCliRpc(rpcUrl),
|
|
570
453
|
rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
|
|
571
454
|
signer: kitSigner,
|
|
572
455
|
...(options.antProgramId
|
|
@@ -619,21 +502,6 @@ export function requiredPositiveIntegerFromOptions(options, key) {
|
|
|
619
502
|
}
|
|
620
503
|
return value;
|
|
621
504
|
}
|
|
622
|
-
export function getANTStateFromOptions(options) {
|
|
623
|
-
return initANTStateForAddress({
|
|
624
|
-
owner: requiredAddressFromOptions(options),
|
|
625
|
-
targetId: options.target,
|
|
626
|
-
controllers: options.controllers,
|
|
627
|
-
description: options.description,
|
|
628
|
-
ticker: options.ticker,
|
|
629
|
-
name: options.name,
|
|
630
|
-
keywords: options.keywords,
|
|
631
|
-
logo: options.logo,
|
|
632
|
-
ttlSeconds: options.ttlSeconds !== undefined
|
|
633
|
-
? +options.ttlSeconds
|
|
634
|
-
: defaultTtlSecondsCLI,
|
|
635
|
-
});
|
|
636
|
-
}
|
|
637
505
|
/**
|
|
638
506
|
* Spawn a fresh ANT on Solana from CLI options.
|
|
639
507
|
*
|
|
@@ -642,10 +510,9 @@ export function getANTStateFromOptions(options) {
|
|
|
642
510
|
* `ario_ant::initialize` into a single transaction. The signer's address
|
|
643
511
|
* becomes the ANT owner on chain — no separate `--address` is required.
|
|
644
512
|
*
|
|
645
|
-
* Maps the
|
|
513
|
+
* Maps the user-facing options (`--name`, `--ticker`, `--description`,
|
|
646
514
|
* `--keywords`, `--logo`, `--target` for the @ record tx id) onto the Solana
|
|
647
|
-
* `InitializeAntParams` payload.
|
|
648
|
-
* `balances` are intentionally dropped — they don't exist on Solana.
|
|
515
|
+
* `InitializeAntParams` payload.
|
|
649
516
|
*/
|
|
650
517
|
export async function spawnSolanaANTFromOptions(options) {
|
|
651
518
|
setLoggerIfDebug(options);
|
|
@@ -668,7 +535,7 @@ export async function spawnSolanaANTFromOptions(options) {
|
|
|
668
535
|
'See sdk/scripts/devnet-validation/populate-ant.ts for an end-to-end example.');
|
|
669
536
|
}
|
|
670
537
|
return spawnSolanaANT({
|
|
671
|
-
rpc:
|
|
538
|
+
rpc: createCliRpc(rpcUrl),
|
|
672
539
|
rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
|
|
673
540
|
signer: kitSigner,
|
|
674
541
|
state: {
|
|
@@ -678,9 +545,7 @@ export async function spawnSolanaANTFromOptions(options) {
|
|
|
678
545
|
description: options.description,
|
|
679
546
|
keywords: options.keywords,
|
|
680
547
|
logo: options.logo,
|
|
681
|
-
// `--target`
|
|
682
|
-
// initANTStateForAddress). Reuse it on Solana so the CLI surface stays
|
|
683
|
-
// identical between backends.
|
|
548
|
+
// `--target` carries the @ record's tx id for the initial record.
|
|
684
549
|
transactionId: options.target,
|
|
685
550
|
},
|
|
686
551
|
...(options.antProgramId
|
|
@@ -718,16 +583,25 @@ export function fundFromFromOptions(o) {
|
|
|
718
583
|
export function referrerFromOptions(o) {
|
|
719
584
|
return o.referrer;
|
|
720
585
|
}
|
|
586
|
+
/** Largest value representable by an unsigned 64-bit integer (2^64 - 1). */
|
|
587
|
+
const U64_MAX = (1n << 64n) - 1n;
|
|
721
588
|
/** Parse `--withdrawal-id` from CLI options into a bigint. */
|
|
722
589
|
export function withdrawalIdFromOptions(o) {
|
|
723
590
|
if (o.withdrawalId === undefined)
|
|
724
591
|
return undefined;
|
|
592
|
+
let id;
|
|
725
593
|
try {
|
|
726
|
-
|
|
594
|
+
id = BigInt(o.withdrawalId);
|
|
727
595
|
}
|
|
728
596
|
catch {
|
|
729
597
|
throw new Error(`Invalid --withdrawal-id: '${o.withdrawalId}' is not a valid u64 integer`);
|
|
730
598
|
}
|
|
599
|
+
// The on-chain seed encoder treats the id as a u64; reject out-of-range
|
|
600
|
+
// values here with a clear message instead of a downstream encoder error.
|
|
601
|
+
if (id < 0n || id > U64_MAX) {
|
|
602
|
+
throw new Error(`Invalid --withdrawal-id: '${o.withdrawalId}' is outside u64 range (0..${U64_MAX})`);
|
|
603
|
+
}
|
|
604
|
+
return id;
|
|
731
605
|
}
|
|
732
606
|
/**
|
|
733
607
|
* Parse `--funding-plan-json` into a `FundingSourceSpec[]`. Validates each
|
|
@@ -782,6 +656,9 @@ export function fundingPlanFromOptions(o) {
|
|
|
782
656
|
if (amount <= 0n) {
|
|
783
657
|
throw new Error(`--funding-plan-json[${idx}].amount must be > 0 (got ${e.amount})`);
|
|
784
658
|
}
|
|
659
|
+
if (amount > U64_MAX) {
|
|
660
|
+
throw new Error(`--funding-plan-json[${idx}].amount '${e.amount}' exceeds u64 max (${U64_MAX})`);
|
|
661
|
+
}
|
|
785
662
|
const out = {
|
|
786
663
|
kind: e.kind,
|
|
787
664
|
amount,
|
|
@@ -793,6 +670,16 @@ export function fundingPlanFromOptions(o) {
|
|
|
793
670
|
if (e.kind !== 'delegation' && e.kind !== 'operatorStake') {
|
|
794
671
|
throw new Error(`--funding-plan-json[${idx}].gateway is only valid for kind 'delegation' or 'operatorStake' (got '${e.kind}')`);
|
|
795
672
|
}
|
|
673
|
+
// The gateway is going to be used: confirm it actually decodes as a
|
|
674
|
+
// base58 Solana address. `address()` throws on malformed input, so a
|
|
675
|
+
// bad string fails the CLI here rather than deep in instruction
|
|
676
|
+
// building.
|
|
677
|
+
try {
|
|
678
|
+
address(e.gateway);
|
|
679
|
+
}
|
|
680
|
+
catch {
|
|
681
|
+
throw new Error(`--funding-plan-json[${idx}].gateway '${e.gateway}' is not a valid base58 Solana address`);
|
|
682
|
+
}
|
|
796
683
|
out.gateway = e.gateway;
|
|
797
684
|
}
|
|
798
685
|
return out;
|
|
@@ -1,171 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { ANT_REGISTRY_ID } from '../constants.js';
|
|
17
|
-
import { isProcessConfiguration, isProcessIdConfiguration, } from '../types/index.js';
|
|
18
|
-
import { createAoSigner } from '../utils/ao.js';
|
|
19
|
-
import { AOProcess, InvalidContractConfigurationError } from './index.js';
|
|
20
|
-
import { Logger } from './logger.js';
|
|
21
1
|
export class ANTRegistry {
|
|
22
2
|
static init(config) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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({
|
|
3
|
+
return (async () => {
|
|
4
|
+
if ('signer' in config) {
|
|
5
|
+
const { SolanaANTRegistryWriteable } = await import('../solana/ant-registry-writeable.js');
|
|
6
|
+
return new SolanaANTRegistryWriteable({
|
|
37
7
|
rpc: config.rpc,
|
|
8
|
+
signer: config.signer,
|
|
38
9
|
commitment: config.commitment,
|
|
39
10
|
logger: config.logger,
|
|
40
11
|
antProgramId: config.antProgramId,
|
|
41
12
|
});
|
|
42
|
-
})();
|
|
43
|
-
}
|
|
44
|
-
const aoConfig = config;
|
|
45
|
-
if (aoConfig !== undefined && 'signer' in aoConfig) {
|
|
46
|
-
return new AoANTRegistryWriteable(aoConfig);
|
|
47
|
-
}
|
|
48
|
-
return new AoANTRegistryReadable(aoConfig);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export class AoANTRegistryReadable {
|
|
52
|
-
process;
|
|
53
|
-
hyperbeamUrl;
|
|
54
|
-
checkHyperBeamPromise;
|
|
55
|
-
logger;
|
|
56
|
-
constructor(config) {
|
|
57
|
-
this.logger = config?.logger ?? Logger.default;
|
|
58
|
-
if (config === undefined || Object.keys(config).length === 0) {
|
|
59
|
-
this.process = new AOProcess({
|
|
60
|
-
processId: ANT_REGISTRY_ID,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
else if (isProcessConfiguration(config)) {
|
|
64
|
-
this.process = config.process;
|
|
65
|
-
}
|
|
66
|
-
else if (isProcessIdConfiguration(config)) {
|
|
67
|
-
this.process = new AOProcess({
|
|
68
|
-
processId: config.processId,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
throw new InvalidContractConfigurationError();
|
|
73
|
-
}
|
|
74
|
-
if (config?.hyperbeamUrl !== undefined) {
|
|
75
|
-
this.hyperbeamUrl = new URL(config.hyperbeamUrl).toString();
|
|
76
|
-
this.checkHyperBeamPromise = this.checkHyperBeamCompatibility();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Check if the process is HyperBeam compatible. If so, we'll use the HyperBeam node to fetch the state.
|
|
81
|
-
*
|
|
82
|
-
* @returns {Promise<boolean>} True if the process is HyperBeam compatible, false otherwise.
|
|
83
|
-
*/
|
|
84
|
-
async checkHyperBeamCompatibility() {
|
|
85
|
-
if (this.hyperbeamUrl === undefined) {
|
|
86
|
-
return Promise.resolve(false);
|
|
87
|
-
}
|
|
88
|
-
if (this.checkHyperBeamPromise !== undefined) {
|
|
89
|
-
return this.checkHyperBeamPromise;
|
|
90
|
-
}
|
|
91
|
-
this.logger.debug('Checking HyperBeam compatibility');
|
|
92
|
-
this.checkHyperBeamPromise = fetch(
|
|
93
|
-
// use /now to force a refresh of the cache state, then compute when calling it for keys
|
|
94
|
-
`${this.hyperbeamUrl.toString()}${this.process.processId}~process@1.0/now/cache/acl`, {
|
|
95
|
-
method: 'HEAD',
|
|
96
|
-
signal: AbortSignal.timeout(5000), // 5 second timeout
|
|
97
|
-
})
|
|
98
|
-
.then((res) => {
|
|
99
|
-
if (res.ok) {
|
|
100
|
-
this.logger.debug('HyperBeam compatible');
|
|
101
|
-
return true;
|
|
102
13
|
}
|
|
103
|
-
|
|
104
|
-
return
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
14
|
+
const { SolanaANTRegistryReadable } = await import('../solana/ant-registry-readable.js');
|
|
15
|
+
return new SolanaANTRegistryReadable({
|
|
16
|
+
rpc: config.rpc,
|
|
17
|
+
commitment: config.commitment,
|
|
18
|
+
logger: config.logger,
|
|
19
|
+
antProgramId: config.antProgramId,
|
|
109
20
|
});
|
|
110
|
-
|
|
111
|
-
});
|
|
112
|
-
return this.checkHyperBeamPromise;
|
|
113
|
-
}
|
|
114
|
-
// Should we rename this to "getANTsByAddress"? seems more clear, though not same as handler name
|
|
115
|
-
async accessControlList({ address, }) {
|
|
116
|
-
if (await this.checkHyperBeamCompatibility()) {
|
|
117
|
-
let retries = 0;
|
|
118
|
-
while (retries < 3) {
|
|
119
|
-
try {
|
|
120
|
-
this.logger.debug('Fetching ant registry acl for address from hyperbeam', address);
|
|
121
|
-
const res = await fetch(`${this.hyperbeamUrl?.toString()}${this.process.processId}~process@1.0/compute/cache/acl/${address}/serialize~json@1.0`);
|
|
122
|
-
if (res.status !== 200) {
|
|
123
|
-
this.logger.debug('Failed to fetch ant registry acl for address from hyperbeam', address, res.status, res.statusText);
|
|
124
|
-
throw new Error(`Failed to fetch ant registry acl for address ${address}: ${res?.statusText ?? 'Unknown error'}`);
|
|
125
|
-
}
|
|
126
|
-
this.logger.debug('Fetched ant registry acl for address from hyperbeam', address);
|
|
127
|
-
const json = (await res.json());
|
|
128
|
-
return {
|
|
129
|
-
Owned: json.Owned,
|
|
130
|
-
Controlled: json.Controlled,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
catch (_error) {
|
|
134
|
-
retries++;
|
|
135
|
-
this.logger.debug('Failed to fetch ant registry acl for address from hyperbeam', address, retries);
|
|
136
|
-
await new Promise((resolve) => setTimeout(resolve, 1000 * retries ** 2));
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
this.logger.debug('Fetching ant registry acl for address from process', address);
|
|
141
|
-
return this.process.read({
|
|
142
|
-
tags: [
|
|
143
|
-
{ name: 'Action', value: 'Access-Control-List' },
|
|
144
|
-
{ name: 'Address', value: address },
|
|
145
|
-
],
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
/*
|
|
149
|
-
* This is the same as accessControlList, but with a cleaner DX to make it clearer
|
|
150
|
-
* that we're fetching the list of ANTs owned or controlled by an address.
|
|
151
|
-
*/
|
|
152
|
-
async getAntsForAddress({ address, }) {
|
|
153
|
-
return this.accessControlList({ address });
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
export class AoANTRegistryWriteable extends AoANTRegistryReadable {
|
|
157
|
-
signer;
|
|
158
|
-
constructor({ signer, ...config }) {
|
|
159
|
-
super(config);
|
|
160
|
-
this.signer = createAoSigner(signer);
|
|
161
|
-
}
|
|
162
|
-
async register({ processId, }) {
|
|
163
|
-
return this.process.send({
|
|
164
|
-
tags: [
|
|
165
|
-
{ name: 'Action', value: 'Register' },
|
|
166
|
-
{ name: 'Process-Id', value: processId },
|
|
167
|
-
],
|
|
168
|
-
signer: this.signer,
|
|
169
|
-
});
|
|
21
|
+
})();
|
|
170
22
|
}
|
|
171
23
|
}
|