@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
|
@@ -1,669 +0,0 @@
|
|
|
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, AOProcess, Logger, MARKETPLACE_CONTRACT_ID, paginationParamsToTags, } from '../node/index.js';
|
|
17
|
-
/**
|
|
18
|
-
* Read-only client for the ArNS marketplace
|
|
19
|
-
* @experimental
|
|
20
|
-
*/
|
|
21
|
-
export class ArNSMarketplaceRead {
|
|
22
|
-
process;
|
|
23
|
-
logger;
|
|
24
|
-
constructor({ process = new AOProcess({
|
|
25
|
-
processId: MARKETPLACE_CONTRACT_ID,
|
|
26
|
-
}), logger = Logger.default, }) {
|
|
27
|
-
this.process = process;
|
|
28
|
-
this.logger = logger;
|
|
29
|
-
}
|
|
30
|
-
async getInfo() {
|
|
31
|
-
return this.process.read({
|
|
32
|
-
tags: [{ name: 'Action', value: 'Info' }],
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
async getPaginatedIntents({ cursor, limit, sortBy, sortOrder, filters, } = {}) {
|
|
36
|
-
const tags = [
|
|
37
|
-
{ name: 'Action', value: 'Get-Paginated-Intents' },
|
|
38
|
-
{ name: 'Cursor', value: cursor },
|
|
39
|
-
{ name: 'Limit', value: limit?.toString() },
|
|
40
|
-
{ name: 'Sort-By', value: sortBy },
|
|
41
|
-
{ name: 'Sort-Order', value: sortOrder },
|
|
42
|
-
{ name: 'Filters', value: JSON.stringify(filters) },
|
|
43
|
-
];
|
|
44
|
-
const filteredTags = tags.filter((tag) => tag.value !== undefined);
|
|
45
|
-
return this.process.read({
|
|
46
|
-
tags: filteredTags,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
async getIntent(intentId) {
|
|
50
|
-
return this.process.read({
|
|
51
|
-
tags: [
|
|
52
|
-
{ name: 'Action', value: 'Get-Intent-By-Id' },
|
|
53
|
-
{ name: 'Intent-Id', value: intentId },
|
|
54
|
-
],
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
async getIntentByANTId(antId) {
|
|
58
|
-
const res = await this.getPaginatedIntents({
|
|
59
|
-
filters: {
|
|
60
|
-
antProcessId: antId,
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
if (res.items.length === 0) {
|
|
64
|
-
throw new Error(`No intent found for ANT ID: ${antId}`);
|
|
65
|
-
}
|
|
66
|
-
return res.items[0];
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get orders with flexible selectors
|
|
70
|
-
* @param params - Parameters for filtering and pagination
|
|
71
|
-
* @returns Orders matching the criteria
|
|
72
|
-
*/
|
|
73
|
-
async getPaginatedOrders(params) {
|
|
74
|
-
const tags = [
|
|
75
|
-
{ name: 'Action', value: 'Get-Orders' },
|
|
76
|
-
{ name: 'Status', value: params?.status },
|
|
77
|
-
{ name: 'Ids', value: params?.ids?.join(',') },
|
|
78
|
-
{ name: 'Dominant-Token', value: params?.dominantToken },
|
|
79
|
-
{ name: 'Swap-Token', value: params?.swapToken },
|
|
80
|
-
{ name: 'Cursor', value: params?.cursor },
|
|
81
|
-
{ name: 'Limit', value: params?.limit?.toString() },
|
|
82
|
-
{ name: 'Sort-By', value: params?.sortBy },
|
|
83
|
-
{ name: 'Sort-Order', value: params?.sortOrder },
|
|
84
|
-
{
|
|
85
|
-
name: 'Filters',
|
|
86
|
-
value: params?.filters ? JSON.stringify(params.filters) : undefined,
|
|
87
|
-
},
|
|
88
|
-
];
|
|
89
|
-
const filteredTags = tags.filter((tag) => tag.value !== undefined);
|
|
90
|
-
return this.process.read({ tags: filteredTags });
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Get a single order by ID
|
|
94
|
-
* @param orderId - The order ID to fetch
|
|
95
|
-
* @returns The order if found
|
|
96
|
-
*/
|
|
97
|
-
async getOrder(orderId) {
|
|
98
|
-
return this.process.read({
|
|
99
|
-
tags: [
|
|
100
|
-
{ name: 'Action', value: 'Get-Order' },
|
|
101
|
-
{ name: 'Order-Id', value: orderId },
|
|
102
|
-
],
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
async getOrderByANTId(antId) {
|
|
106
|
-
const res = await this.getPaginatedOrders({
|
|
107
|
-
dominantToken: antId,
|
|
108
|
-
});
|
|
109
|
-
if (res.items.length === 0) {
|
|
110
|
-
throw new Error(`No order found for ANT ID: ${antId}`);
|
|
111
|
-
}
|
|
112
|
-
// Strange behaviour here. It seems that the filter logic will return an order with potentially different dominant token.
|
|
113
|
-
const order = res.items[0];
|
|
114
|
-
if (order.dominantToken !== antId) {
|
|
115
|
-
throw new Error(`No order for ANT ID: ${antId}`);
|
|
116
|
-
}
|
|
117
|
-
return res.items[0];
|
|
118
|
-
}
|
|
119
|
-
async getPaginatedMarketplaceBalances(params) {
|
|
120
|
-
return this.process.read({
|
|
121
|
-
tags: [
|
|
122
|
-
{ name: 'Action', value: 'Get-Paginated-Balances' },
|
|
123
|
-
...paginationParamsToTags(params),
|
|
124
|
-
],
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Get ARIO balance for an address in the marketplace
|
|
129
|
-
*/
|
|
130
|
-
async getMarketplaceBalance({ address, }) {
|
|
131
|
-
return this.process.read({
|
|
132
|
-
tags: [
|
|
133
|
-
{ name: 'Action', value: 'Get-Balance' },
|
|
134
|
-
{ name: 'Address', value: address },
|
|
135
|
-
],
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
async getUserAssets({ address, arioProcessId, }) {
|
|
139
|
-
async function fetchIntents(context) {
|
|
140
|
-
const intents = [];
|
|
141
|
-
// fetch all intents for user, paginating as needed and adding each ant id to the set
|
|
142
|
-
let intentsCursor = undefined;
|
|
143
|
-
let intentsHasMore = true;
|
|
144
|
-
while (intentsHasMore) {
|
|
145
|
-
const intentsRes = await context.getPaginatedIntents({
|
|
146
|
-
cursor: intentsCursor,
|
|
147
|
-
limit: 1000,
|
|
148
|
-
filters: {
|
|
149
|
-
initiator: address,
|
|
150
|
-
},
|
|
151
|
-
});
|
|
152
|
-
intentsRes.items.forEach((intent) => {
|
|
153
|
-
intents.push(intent);
|
|
154
|
-
});
|
|
155
|
-
intentsCursor = intentsRes.nextCursor;
|
|
156
|
-
intentsHasMore = intentsRes.hasMore;
|
|
157
|
-
}
|
|
158
|
-
return intents;
|
|
159
|
-
}
|
|
160
|
-
async function fetchOrders(context) {
|
|
161
|
-
const orders = [];
|
|
162
|
-
// fetch all orders for user, paginating as needed
|
|
163
|
-
let ordersCursor = undefined;
|
|
164
|
-
let ordersHasMore = true;
|
|
165
|
-
while (ordersHasMore) {
|
|
166
|
-
const ordersRes = await context.getPaginatedOrders({
|
|
167
|
-
cursor: ordersCursor,
|
|
168
|
-
limit: 1000,
|
|
169
|
-
filters: {
|
|
170
|
-
creator: address,
|
|
171
|
-
},
|
|
172
|
-
});
|
|
173
|
-
ordersRes.items.forEach((order) => {
|
|
174
|
-
orders.push(order);
|
|
175
|
-
});
|
|
176
|
-
ordersCursor = ordersRes.nextCursor;
|
|
177
|
-
ordersHasMore = ordersRes.hasMore;
|
|
178
|
-
}
|
|
179
|
-
return orders;
|
|
180
|
-
}
|
|
181
|
-
// parallel fetch balances, intents, and orders
|
|
182
|
-
const [balances, intents, orders] = await Promise.all([
|
|
183
|
-
this.getMarketplaceBalance({ address }),
|
|
184
|
-
fetchIntents(this),
|
|
185
|
-
fetchOrders(this),
|
|
186
|
-
]);
|
|
187
|
-
const antIdsArray = Array.from(new Set([
|
|
188
|
-
...intents.map((intent) => intent.antProcessId),
|
|
189
|
-
...orders.map((order) => order.dominantToken),
|
|
190
|
-
...orders.map((order) => order.swapToken),
|
|
191
|
-
])).filter((antId) => antId !== arioProcessId); // since we add both swap and dominant token for simplicity, we need to filter out the ario token
|
|
192
|
-
return { intents, orders, balances, antIds: antIdsArray };
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Write client for the ArNS marketplace
|
|
197
|
-
* @experimental
|
|
198
|
-
*/
|
|
199
|
-
export class ArNSMarketplaceWrite extends ArNSMarketplaceRead {
|
|
200
|
-
process;
|
|
201
|
-
signer;
|
|
202
|
-
ario;
|
|
203
|
-
constructor({ process = new AOProcess({
|
|
204
|
-
processId: MARKETPLACE_CONTRACT_ID,
|
|
205
|
-
}), signer, ario, logger = Logger.default, }) {
|
|
206
|
-
super({ process: process, logger: logger });
|
|
207
|
-
this.process = process;
|
|
208
|
-
this.signer = signer;
|
|
209
|
-
this.ario = ario;
|
|
210
|
-
this.logger = logger;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Deposit ARIO to the marketplace (simulates Credit-Notice from ARIO token process)
|
|
214
|
-
* Returns the message ID for verification
|
|
215
|
-
*/
|
|
216
|
-
async depositArIO(params) {
|
|
217
|
-
return this.ario.transfer({
|
|
218
|
-
// the marketplace process id is the target
|
|
219
|
-
target: this.process.processId,
|
|
220
|
-
qty: Number(params.amount),
|
|
221
|
-
}, {
|
|
222
|
-
tags: [{ name: 'X-Action', value: 'Deposit' }],
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Withdraw ARIO from the marketplace back to user
|
|
227
|
-
*/
|
|
228
|
-
async withdrawArIO(params) {
|
|
229
|
-
return this.process.send({
|
|
230
|
-
tags: [
|
|
231
|
-
{ name: 'Action', value: 'Withdraw-Ario' },
|
|
232
|
-
{ name: 'Quantity', value: params.amount },
|
|
233
|
-
],
|
|
234
|
-
signer: this.signer,
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
async createIntent({ antId, orderType, quantity, price, expirationTime, minimumPrice, decreaseInterval, }) {
|
|
238
|
-
const tags = [
|
|
239
|
-
{ name: 'Action', value: 'Create-Intent' },
|
|
240
|
-
{ name: 'X-Intent-ANT-Id', value: antId },
|
|
241
|
-
{ name: 'X-Intent-Order-Type', value: orderType },
|
|
242
|
-
{ name: 'X-Intent-Quantity', value: quantity },
|
|
243
|
-
{ name: 'X-Intent-Price', value: price },
|
|
244
|
-
{ name: 'X-Intent-Expiration-Time', value: expirationTime },
|
|
245
|
-
{ name: 'X-Intent-Minimum-Price', value: minimumPrice },
|
|
246
|
-
{ name: 'X-Intent-Decrease-Interval', value: decreaseInterval },
|
|
247
|
-
];
|
|
248
|
-
const filteredTags = tags.filter((tag) => tag.value !== undefined);
|
|
249
|
-
return this.process.send({
|
|
250
|
-
tags: filteredTags,
|
|
251
|
-
signer: this.signer,
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
async pushANTIntentResolution(intentId) {
|
|
255
|
-
return this.process.send({
|
|
256
|
-
tags: [
|
|
257
|
-
{ name: 'Action', value: 'Push-ANT-Intent-Resolution' },
|
|
258
|
-
{ name: 'X-Intent-Id', value: intentId },
|
|
259
|
-
],
|
|
260
|
-
signer: this.signer,
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
async settleAuction(params) {
|
|
264
|
-
const tags = [
|
|
265
|
-
{ name: 'Action', value: 'Settle-Auction' },
|
|
266
|
-
{ name: 'Order-Id', value: params.orderId },
|
|
267
|
-
{ name: 'Dominant-Token', value: params.dominantToken },
|
|
268
|
-
{ name: 'Swap-Token', value: params.swapToken },
|
|
269
|
-
];
|
|
270
|
-
const filteredTags = tags.filter((tag) => tag.value !== undefined);
|
|
271
|
-
return this.process.send({
|
|
272
|
-
tags: filteredTags,
|
|
273
|
-
signer: this.signer,
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
async listNameForSale({ name, expirationTime, price, type, walletAddress, minimumPrice, decreaseInterval, onProgress = (event) => {
|
|
277
|
-
this.logger.info(`List name for sale progress: ${event.step}`);
|
|
278
|
-
}, }) {
|
|
279
|
-
// Get arns record for the current ant id associated with it
|
|
280
|
-
const record = await this.ario.getArNSRecord({ name: name });
|
|
281
|
-
this.logger.info(`Record ${name} found: ${JSON.stringify(record)}`);
|
|
282
|
-
if (record === undefined) {
|
|
283
|
-
throw new Error(`Record ${name} not found`);
|
|
284
|
-
}
|
|
285
|
-
const antId = record.processId;
|
|
286
|
-
this.logger.info(`ANT ID for ${name} found: ${antId}`);
|
|
287
|
-
const ant = ANT.init({
|
|
288
|
-
process: new AOProcess({
|
|
289
|
-
processId: antId,
|
|
290
|
-
ao: this.process.ao,
|
|
291
|
-
logger: this.logger,
|
|
292
|
-
}),
|
|
293
|
-
signer: this.signer,
|
|
294
|
-
});
|
|
295
|
-
const antState = await ant.getState();
|
|
296
|
-
if (antState.Owner !== walletAddress) {
|
|
297
|
-
this.logger.error(`Wallet address ${walletAddress} does not match the owner of the ANT ${antId}. Only the owner can list the name for sale.`);
|
|
298
|
-
throw new Error('Wallet address does not match the owner of the ANT. Only the owner can list the name for sale.');
|
|
299
|
-
}
|
|
300
|
-
let intent;
|
|
301
|
-
const createIntentEventData = {
|
|
302
|
-
name,
|
|
303
|
-
antId,
|
|
304
|
-
orderType: type,
|
|
305
|
-
price,
|
|
306
|
-
expirationTime,
|
|
307
|
-
};
|
|
308
|
-
try {
|
|
309
|
-
onProgress({
|
|
310
|
-
step: 'creating-intent',
|
|
311
|
-
...createIntentEventData,
|
|
312
|
-
});
|
|
313
|
-
const intentResult = await this.createIntent({
|
|
314
|
-
antId,
|
|
315
|
-
orderType: type,
|
|
316
|
-
quantity: price,
|
|
317
|
-
expirationTime: expirationTime.toString(),
|
|
318
|
-
price: price,
|
|
319
|
-
minimumPrice: minimumPrice,
|
|
320
|
-
decreaseInterval: decreaseInterval,
|
|
321
|
-
});
|
|
322
|
-
if (intentResult.result === undefined) {
|
|
323
|
-
throw new Error('Failed to create intent: ' + intentResult.id);
|
|
324
|
-
}
|
|
325
|
-
this.logger.info(`Intent created: ${JSON.stringify(intentResult.result)}`);
|
|
326
|
-
intent = intentResult.result;
|
|
327
|
-
onProgress({
|
|
328
|
-
step: 'intent-created',
|
|
329
|
-
...createIntentEventData,
|
|
330
|
-
intent,
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
catch (error) {
|
|
334
|
-
this.logger.error(`Error creating intent: ${error.message}`);
|
|
335
|
-
// check error for existing intent. Will be a contract error message.
|
|
336
|
-
const isExistingIntentError = error.message.includes('An intent already exists for this ANT ID');
|
|
337
|
-
if (isExistingIntentError) {
|
|
338
|
-
intent = await this.getIntentByANTId(antId).catch((getIntentError) => {
|
|
339
|
-
this.logger.error(`Failed to get intent: ${getIntentError.message}`);
|
|
340
|
-
const intentError = new Error('An intent already exists for this ANT ID but failed to get intent:\n\n' +
|
|
341
|
-
getIntentError.message);
|
|
342
|
-
onProgress({
|
|
343
|
-
step: 'error',
|
|
344
|
-
name,
|
|
345
|
-
antId,
|
|
346
|
-
error: intentError,
|
|
347
|
-
failedStep: 'creating-intent',
|
|
348
|
-
});
|
|
349
|
-
throw intentError;
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
else {
|
|
353
|
-
// Possible to get other errors, eg insufficient deposited ario balance. Rethrow them here.
|
|
354
|
-
onProgress({
|
|
355
|
-
step: 'error',
|
|
356
|
-
name,
|
|
357
|
-
antId,
|
|
358
|
-
error: error,
|
|
359
|
-
failedStep: 'creating-intent',
|
|
360
|
-
});
|
|
361
|
-
throw error;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
// Type guard to ensure intent is defined
|
|
365
|
-
if (intent === undefined) {
|
|
366
|
-
const intentError = new Error('Failed to create intent');
|
|
367
|
-
onProgress({
|
|
368
|
-
step: 'error',
|
|
369
|
-
name,
|
|
370
|
-
antId,
|
|
371
|
-
error: intentError,
|
|
372
|
-
failedStep: 'creating-intent',
|
|
373
|
-
});
|
|
374
|
-
throw intentError;
|
|
375
|
-
}
|
|
376
|
-
const transferAntEventData = {
|
|
377
|
-
name,
|
|
378
|
-
antId,
|
|
379
|
-
intentId: intent.intentId,
|
|
380
|
-
marketplaceProcessId: this.process.processId,
|
|
381
|
-
};
|
|
382
|
-
let antTransferResult;
|
|
383
|
-
try {
|
|
384
|
-
onProgress({
|
|
385
|
-
step: 'transferring-ant',
|
|
386
|
-
...transferAntEventData,
|
|
387
|
-
});
|
|
388
|
-
antTransferResult = await ant.transfer({
|
|
389
|
-
target: this.process.processId,
|
|
390
|
-
removeControllers: false, // important: do not remove the controllers of the ANT to prevent loss of control
|
|
391
|
-
}, {
|
|
392
|
-
tags: [{ name: 'X-Intent-Id', value: intent.intentId }],
|
|
393
|
-
});
|
|
394
|
-
this.logger.info(`ANT transferred: ${JSON.stringify(antTransferResult)}`);
|
|
395
|
-
onProgress({
|
|
396
|
-
step: 'ant-transferred',
|
|
397
|
-
...transferAntEventData,
|
|
398
|
-
transferResult: antTransferResult,
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
catch (error) {
|
|
402
|
-
this.logger.error(`Failed to transfer ANT: ${error.message}`);
|
|
403
|
-
onProgress({
|
|
404
|
-
step: 'error',
|
|
405
|
-
name,
|
|
406
|
-
antId,
|
|
407
|
-
error: error,
|
|
408
|
-
failedStep: 'transferring-ant',
|
|
409
|
-
intent,
|
|
410
|
-
});
|
|
411
|
-
return {
|
|
412
|
-
intent,
|
|
413
|
-
order: null,
|
|
414
|
-
antTransferResult: null,
|
|
415
|
-
error: error,
|
|
416
|
-
};
|
|
417
|
-
}
|
|
418
|
-
// poll for the order to be created
|
|
419
|
-
// This is to ensure the order is created before returning the result for ux purposes.
|
|
420
|
-
// This may still fail, in which case we return the intent and ant transfer result and handle the error in the client.
|
|
421
|
-
let order = null;
|
|
422
|
-
let tries = 0;
|
|
423
|
-
while (order === null && tries < 5) {
|
|
424
|
-
try {
|
|
425
|
-
order = await this.getOrderByANTId(antId).catch((error) => {
|
|
426
|
-
console.log(new Error('Failed to get order: ' + error.message));
|
|
427
|
-
return null;
|
|
428
|
-
});
|
|
429
|
-
if (order === null) {
|
|
430
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
431
|
-
this.logger.info(`Waiting for order to be created...`);
|
|
432
|
-
if (tries === 5) {
|
|
433
|
-
this.logger.error(`Failed to get order after ${tries} attempts`);
|
|
434
|
-
throw new Error(`Failed to get order after ${tries} attempts`);
|
|
435
|
-
}
|
|
436
|
-
tries++;
|
|
437
|
-
}
|
|
438
|
-
// if the order is found, break the loop
|
|
439
|
-
break;
|
|
440
|
-
}
|
|
441
|
-
catch (error) {
|
|
442
|
-
this.logger.error(`Failed to get order: ${error.message}`);
|
|
443
|
-
const orderError = new Error('Failed to get order: ' + error.message);
|
|
444
|
-
onProgress({
|
|
445
|
-
step: 'error',
|
|
446
|
-
name,
|
|
447
|
-
antId,
|
|
448
|
-
error: orderError,
|
|
449
|
-
failedStep: 'transferring-ant',
|
|
450
|
-
intent,
|
|
451
|
-
});
|
|
452
|
-
return {
|
|
453
|
-
intent,
|
|
454
|
-
order: null,
|
|
455
|
-
antTransferResult,
|
|
456
|
-
error: orderError,
|
|
457
|
-
};
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
if (order === null) {
|
|
461
|
-
this.logger.error(`Failed to get order`);
|
|
462
|
-
const orderError = new Error('Failed to get order');
|
|
463
|
-
onProgress({
|
|
464
|
-
step: 'error',
|
|
465
|
-
name,
|
|
466
|
-
antId,
|
|
467
|
-
error: orderError,
|
|
468
|
-
failedStep: 'transferring-ant',
|
|
469
|
-
intent,
|
|
470
|
-
});
|
|
471
|
-
return {
|
|
472
|
-
intent,
|
|
473
|
-
order: null,
|
|
474
|
-
antTransferResult,
|
|
475
|
-
error: orderError,
|
|
476
|
-
};
|
|
477
|
-
}
|
|
478
|
-
onProgress({
|
|
479
|
-
step: 'complete',
|
|
480
|
-
name,
|
|
481
|
-
antId,
|
|
482
|
-
intent,
|
|
483
|
-
order,
|
|
484
|
-
transferResult: antTransferResult,
|
|
485
|
-
});
|
|
486
|
-
return { intent, order, antTransferResult, error: null };
|
|
487
|
-
}
|
|
488
|
-
async cancelOrder(orderId) {
|
|
489
|
-
const tags = [
|
|
490
|
-
{ name: 'Action', value: 'Cancel-Order' },
|
|
491
|
-
{ name: 'Order-Id', value: orderId },
|
|
492
|
-
];
|
|
493
|
-
return this.process.send({
|
|
494
|
-
tags,
|
|
495
|
-
signer: this.signer,
|
|
496
|
-
});
|
|
497
|
-
}
|
|
498
|
-
async createOrder({ swapToken, quantity, orderType, price, expirationTime, minimumPrice, decreaseInterval, transferDenomination, }) {
|
|
499
|
-
const tags = [
|
|
500
|
-
{ name: 'Action', value: 'Create-Order' },
|
|
501
|
-
{ name: 'Swap-Token', value: swapToken },
|
|
502
|
-
{ name: 'Quantity', value: quantity },
|
|
503
|
-
{ name: 'Order-Type', value: orderType },
|
|
504
|
-
{ name: 'Price', value: price },
|
|
505
|
-
{ name: 'Expiration-Time', value: expirationTime },
|
|
506
|
-
{ name: 'Minimum-Price', value: minimumPrice },
|
|
507
|
-
{ name: 'Decrease-Interval', value: decreaseInterval },
|
|
508
|
-
{ name: 'Transfer-Denomination', value: transferDenomination },
|
|
509
|
-
];
|
|
510
|
-
const filteredTags = tags.filter((tag) => tag.value !== undefined);
|
|
511
|
-
// Send the message
|
|
512
|
-
return this.process.send({
|
|
513
|
-
tags: filteredTags,
|
|
514
|
-
signer: this.signer,
|
|
515
|
-
});
|
|
516
|
-
}
|
|
517
|
-
async buyFixedPriceANT(params) {
|
|
518
|
-
const order = await this.getOrderByANTId(params.antId);
|
|
519
|
-
if (order === undefined) {
|
|
520
|
-
throw new Error(`No active sell order found for ANT: ${params.antId}`);
|
|
521
|
-
}
|
|
522
|
-
if (order.status !== 'active') {
|
|
523
|
-
throw new Error(`Order status is ${order.status}, must be active`);
|
|
524
|
-
}
|
|
525
|
-
if (order.price === undefined) {
|
|
526
|
-
throw new Error(`Order price is undefined for ANT: ${params.antId}`);
|
|
527
|
-
}
|
|
528
|
-
// Create a buy order that matches the sell order
|
|
529
|
-
// This should trigger immediate execution if prices match
|
|
530
|
-
// For ArNS: buying 1 ANT, so quantity = price = total cost
|
|
531
|
-
return this.createOrder({
|
|
532
|
-
swapToken: params.antId,
|
|
533
|
-
quantity: order.price, // Total ARIO cost
|
|
534
|
-
orderType: 'fixed',
|
|
535
|
-
price: order.price, // Match their asking price
|
|
536
|
-
});
|
|
537
|
-
}
|
|
538
|
-
async buyDutchAuctionANT(params) {
|
|
539
|
-
const order = await this.getOrderByANTId(params.antId);
|
|
540
|
-
if (order === undefined) {
|
|
541
|
-
throw new Error(`No active sell order found for ANT: ${params.antId}`);
|
|
542
|
-
}
|
|
543
|
-
if (order.status !== 'active') {
|
|
544
|
-
throw new Error(`Order status is ${order.status}, must be active`);
|
|
545
|
-
}
|
|
546
|
-
if (order.orderType !== 'dutch') {
|
|
547
|
-
throw new Error(`Order is not a Dutch auction, it's: ${order.orderType}`);
|
|
548
|
-
}
|
|
549
|
-
if (order.price === undefined) {
|
|
550
|
-
throw new Error(`Order starting price is undefined for ANT: ${params.antId}`);
|
|
551
|
-
}
|
|
552
|
-
// For Dutch auction, the current price will be calculated on execution
|
|
553
|
-
return this.createOrder({
|
|
554
|
-
swapToken: params.antId,
|
|
555
|
-
quantity: order.price,
|
|
556
|
-
orderType: 'fixed',
|
|
557
|
-
price: order.price,
|
|
558
|
-
});
|
|
559
|
-
}
|
|
560
|
-
/**
|
|
561
|
-
* Place a bid on an English auction
|
|
562
|
-
* Note: This requires you to have sufficient ARIO balance in the marketplace
|
|
563
|
-
*/
|
|
564
|
-
async bidOnANTEnglishAuction(params) {
|
|
565
|
-
const order = await this.getOrderByANTId(params.antId);
|
|
566
|
-
if (order === undefined) {
|
|
567
|
-
throw new Error(`No active sell order found for ANT: ${params.antId}`);
|
|
568
|
-
}
|
|
569
|
-
if (order.status !== 'active') {
|
|
570
|
-
throw new Error(`Order status is ${order.status}, must be active`);
|
|
571
|
-
}
|
|
572
|
-
if (order.orderType !== 'english') {
|
|
573
|
-
throw new Error(`Order is not an English auction, it's: ${order.orderType}`);
|
|
574
|
-
}
|
|
575
|
-
// Check if auction has expired
|
|
576
|
-
if (order.expirationTime !== undefined &&
|
|
577
|
-
Date.now() >= order.expirationTime) {
|
|
578
|
-
throw new Error(`Auction has already expired for ANT: ${params.antId}`);
|
|
579
|
-
}
|
|
580
|
-
return this.process.send({
|
|
581
|
-
tags: [
|
|
582
|
-
{ name: 'Action', value: 'Bid-On-English-Auction' },
|
|
583
|
-
{ name: 'Order-Id', value: order.id },
|
|
584
|
-
{ name: 'Bid-Amount', value: params.bidAmount },
|
|
585
|
-
],
|
|
586
|
-
signer: this.signer,
|
|
587
|
-
});
|
|
588
|
-
}
|
|
589
|
-
/**
|
|
590
|
-
* Settle an expired English auction
|
|
591
|
-
* Can be called by anyone after the auction expires
|
|
592
|
-
* The highest bidder wins the ANT
|
|
593
|
-
*/
|
|
594
|
-
async settleANTEnglishAuction(params) {
|
|
595
|
-
const order = await this.getOrderByANTId(params.antId);
|
|
596
|
-
if (order === undefined) {
|
|
597
|
-
throw new Error(`No active sell order found for ANT: ${params.antId}`);
|
|
598
|
-
}
|
|
599
|
-
if (order.orderType !== 'english') {
|
|
600
|
-
throw new Error(`Order is not an English auction, it's: ${order.orderType}`);
|
|
601
|
-
}
|
|
602
|
-
// Check if auction has expired
|
|
603
|
-
if (order.expirationTime !== undefined &&
|
|
604
|
-
Date.now() < order.expirationTime) {
|
|
605
|
-
throw new Error(`Auction has not yet expired for ANT: ${params.antId}. Expires at: ${new Date(order.expirationTime).toISOString()}`);
|
|
606
|
-
}
|
|
607
|
-
return this.settleAuction({
|
|
608
|
-
orderId: order.id,
|
|
609
|
-
dominantToken: order.dominantToken,
|
|
610
|
-
swapToken: order.swapToken,
|
|
611
|
-
});
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
/**
|
|
615
|
-
* Calculates the listing fee for an order based on the end timestamp.
|
|
616
|
-
* The fee is calculated by rounding up the hours until the end timestamp to the nearest hour.
|
|
617
|
-
*
|
|
618
|
-
* @experimental
|
|
619
|
-
* @param params - Parameters for calculating the listing fee
|
|
620
|
-
* @param params.listingFeePerHour - The listing fee per hour in mARIO (as a string)
|
|
621
|
-
* @param params.endTimestamp - Unix timestamp when the order expires
|
|
622
|
-
* @returns The listing fee in mARIO as a BigInt
|
|
623
|
-
*
|
|
624
|
-
* @example
|
|
625
|
-
* ```typescript
|
|
626
|
-
* const info = await marketplace.getInfo();
|
|
627
|
-
* const endTimestamp = Date.now() + 24 * 60 * 60 * 1000; // 24 hours from now
|
|
628
|
-
* const listingFee = calculateListingFee({
|
|
629
|
-
* listingFeePerHour: info.fees.listingFeePerHour,
|
|
630
|
-
* endTimestamp,
|
|
631
|
-
* });
|
|
632
|
-
* ```
|
|
633
|
-
*/
|
|
634
|
-
export function calculateListingFee({ listingFeePerHour, endTimestamp, }) {
|
|
635
|
-
const now = Date.now();
|
|
636
|
-
const millisecondsUntilEnd = endTimestamp - now;
|
|
637
|
-
if (millisecondsUntilEnd <= 0) {
|
|
638
|
-
return BigInt(0);
|
|
639
|
-
}
|
|
640
|
-
// Convert milliseconds to hours and round up to the nearest hour
|
|
641
|
-
const hoursUntilEnd = Math.ceil(millisecondsUntilEnd / (1000 * 60 * 60));
|
|
642
|
-
// Calculate listing fee: hours * fee per hour
|
|
643
|
-
return BigInt(hoursUntilEnd) * BigInt(listingFeePerHour);
|
|
644
|
-
}
|
|
645
|
-
/**
|
|
646
|
-
* Calculates the sale tax for an order based on the sale amount.
|
|
647
|
-
*
|
|
648
|
-
* @experimental
|
|
649
|
-
* @param params - Parameters for calculating the sale tax
|
|
650
|
-
* @param params.saleAmount - The sale amount in mARIO (as a string or number)
|
|
651
|
-
* @param params.saleTaxNumerator - The numerator for sale tax calculation
|
|
652
|
-
* @param params.saleTaxDenominator - The denominator for sale tax calculation
|
|
653
|
-
* @returns The sale tax in mARIO as a BigInt
|
|
654
|
-
*
|
|
655
|
-
* @example
|
|
656
|
-
* ```typescript
|
|
657
|
-
* const info = await marketplace.getInfo();
|
|
658
|
-
* const saleAmount = 100000000000; // 100 ARIO in mARIO
|
|
659
|
-
* const tax = calculateSaleTax({
|
|
660
|
-
* saleAmount,
|
|
661
|
-
* saleTaxNumerator: info.fees.saleTaxNumerator,
|
|
662
|
-
* saleTaxDenominator: info.fees.saleTaxDenominator,
|
|
663
|
-
* });
|
|
664
|
-
* ```
|
|
665
|
-
*/
|
|
666
|
-
export function calculateSaleTax({ saleAmount, saleTaxNumerator, saleTaxDenominator, }) {
|
|
667
|
-
// Calculate tax: (saleAmount * numerator) / denominator
|
|
668
|
-
return ((BigInt(saleAmount) * BigInt(saleTaxNumerator)) / BigInt(saleTaxDenominator));
|
|
669
|
-
}
|