@ar.io/sdk 4.0.0-solana.9 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +721 -673
- package/lib/esm/cli/cli.js +28 -152
- package/lib/esm/cli/commands/antCommands.js +5 -66
- package/lib/esm/cli/commands/arnsPurchaseCommands.js +7 -28
- package/lib/esm/cli/commands/escrowCommands.js +23 -4
- package/lib/esm/cli/commands/gatewayWriteCommands.js +15 -8
- package/lib/esm/cli/commands/pruneCommands.js +14 -26
- package/lib/esm/cli/commands/readCommands.js +12 -1
- package/lib/esm/cli/options.js +2 -75
- package/lib/esm/cli/utils.js +96 -209
- package/lib/esm/common/ant-registry.js +12 -160
- package/lib/esm/common/ant.js +40 -1208
- package/lib/esm/common/faucet.js +17 -6
- package/lib/esm/common/index.js +0 -4
- package/lib/esm/common/io.js +13 -1441
- package/lib/esm/constants.js +0 -18
- package/lib/esm/solana/ant-readable.js +391 -54
- package/lib/esm/solana/ant-registry-readable.js +15 -0
- package/lib/esm/solana/ant-registry-writeable.js +19 -4
- package/lib/esm/solana/ant-writeable.js +43 -11
- package/lib/esm/solana/ata.js +15 -0
- package/lib/esm/solana/canonical-message.js +45 -9
- package/lib/esm/solana/clusters.js +71 -22
- package/lib/esm/solana/constants.js +21 -5
- package/lib/esm/solana/delegation-math.js +49 -0
- package/lib/esm/solana/deserialize.js +263 -727
- package/lib/esm/solana/escrow.js +145 -103
- package/lib/esm/solana/events.js +20 -199
- package/lib/esm/solana/funding-plan.js +19 -2
- package/lib/esm/solana/index.js +53 -12
- package/lib/esm/solana/instruction.js +15 -0
- package/lib/esm/solana/io-readable.js +510 -58
- package/lib/esm/solana/io-writeable.js +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,40 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* discriminator table. The Codama-generated account modules under
|
|
10
|
-
* `./generated/<program>/accounts/` already export
|
|
11
|
-
* `<NAME>_DISCRIMINATOR: Uint8Array` constants pulled directly from each
|
|
12
|
-
* IDL, so they're guaranteed to match the on-chain struct names.
|
|
13
|
-
* Use those at the call site (see `io-readable.ts` for the
|
|
14
|
-
* `getAccountsByDiscriminator` helper that bs58-encodes them for
|
|
15
|
-
* `getProgramAccounts` memcmp filters).
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
9
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
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
|
+
/**
|
|
17
|
+
* Thin adapter layer over Codama-generated account decoders from
|
|
18
|
+
* `@ar.io/solana-contracts`. Each function accepts a raw `Buffer` (as
|
|
19
|
+
* returned by `fetchEncodedAccount(...).data`) and returns the same
|
|
20
|
+
* SDK-compatible plain-object shape the hand-rolled BorshReader
|
|
21
|
+
* implementations used to return.
|
|
22
|
+
*
|
|
23
|
+
* The Codama decoders return `Address` (branded string) and `bigint`
|
|
24
|
+
* for numeric fields. This module maps them to plain `string` and
|
|
25
|
+
* `number` so the SDK's public API contract doesn't change.
|
|
29
26
|
*/
|
|
30
27
|
import { getAddressDecoder, getAddressEncoder, } from '@solana/kit';
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
28
|
+
import { getAclConfigDecoder, getAclPageDecoder, getAntConfigDecoder, getAntControllersDecoder, getAntRecordDecoder, getAntRecordMetadataDecoder, } from '@ar.io/solana-contracts/ant';
|
|
29
|
+
import { PurchaseType, getArnsRecordDecoder, getDemandFactorDecoder, getReservedNameDecoder, getReturnedNameDecoder, } from '@ar.io/solana-contracts/arns';
|
|
30
|
+
import { getArioConfigDecoder, getPrimaryNameDecoder, getPrimaryNameRequestDecoder, getVaultDecoder, } from '@ar.io/solana-contracts/core';
|
|
31
|
+
import { GatewayStatus, getAllowlistEntryDecoder, getDelegationDecoder, getEpochDecoder, getEpochSettingsDecoder, getGatewaySettingsDecoder as getGarSettingsDecoder, getGatewayDecoder, getObservationDecoder, getRedelegationRecordDecoder, getWithdrawalDecoder, } from '@ar.io/solana-contracts/gar';
|
|
33
32
|
import { RATE_SCALE } from './constants.js';
|
|
34
33
|
const addressDecoder = getAddressDecoder();
|
|
35
34
|
const addressEncoder = getAddressEncoder();
|
|
35
|
+
function optionToValue(opt) {
|
|
36
|
+
return opt.__option === 'Some' ? opt.value : undefined;
|
|
37
|
+
}
|
|
38
|
+
function scaleToFloat(value, scale = RATE_SCALE) {
|
|
39
|
+
return value / scale;
|
|
40
|
+
}
|
|
36
41
|
// =========================================
|
|
37
|
-
// Buffer reader
|
|
42
|
+
// Buffer reader/writer helpers (kept for test fixtures that synthesize account data)
|
|
38
43
|
// =========================================
|
|
39
44
|
class BorshReader {
|
|
40
45
|
data;
|
|
@@ -90,7 +95,9 @@ class BorshReader {
|
|
|
90
95
|
}
|
|
91
96
|
readString() {
|
|
92
97
|
const len = this.readU32();
|
|
93
|
-
const str = this.data
|
|
98
|
+
const str = this.data
|
|
99
|
+
.toString('utf8', this.offset, this.offset + len)
|
|
100
|
+
.replace(/\0/g, '');
|
|
94
101
|
this.offset += len;
|
|
95
102
|
return str;
|
|
96
103
|
}
|
|
@@ -106,6 +113,12 @@ class BorshReader {
|
|
|
106
113
|
return undefined;
|
|
107
114
|
return this.readU32();
|
|
108
115
|
}
|
|
116
|
+
readOptionU16() {
|
|
117
|
+
const tag = this.readU8();
|
|
118
|
+
if (tag === 0)
|
|
119
|
+
return undefined;
|
|
120
|
+
return this.readU16();
|
|
121
|
+
}
|
|
109
122
|
skip(bytes) {
|
|
110
123
|
this.offset += bytes;
|
|
111
124
|
}
|
|
@@ -162,9 +175,6 @@ class BorshReader {
|
|
|
162
175
|
return Buffer.from(buf);
|
|
163
176
|
}
|
|
164
177
|
}
|
|
165
|
-
// =========================================
|
|
166
|
-
// Buffer writer helper
|
|
167
|
-
// =========================================
|
|
168
178
|
class BorshWriter {
|
|
169
179
|
buf;
|
|
170
180
|
offset;
|
|
@@ -202,7 +212,6 @@ class BorshWriter {
|
|
|
202
212
|
}
|
|
203
213
|
this.offset += 32;
|
|
204
214
|
}
|
|
205
|
-
/** Write raw bytes without a length prefix (fixed-size fields). */
|
|
206
215
|
writeFixedBytes(data) {
|
|
207
216
|
for (let i = 0; i < data.length; i++) {
|
|
208
217
|
this.buf[this.offset + i] = data[i];
|
|
@@ -251,7 +260,6 @@ class BorshWriter {
|
|
|
251
260
|
this.writeString(val);
|
|
252
261
|
}
|
|
253
262
|
}
|
|
254
|
-
/** Borsh `Option<Vec<String>>`: 0/1 tag, then u32 length + each string. */
|
|
255
263
|
writeOptionStringVec(val) {
|
|
256
264
|
if (val === undefined) {
|
|
257
265
|
this.writeU8(0);
|
|
@@ -271,137 +279,66 @@ class BorshWriter {
|
|
|
271
279
|
}
|
|
272
280
|
}
|
|
273
281
|
// =========================================
|
|
274
|
-
// Helper: scale factor -> float
|
|
275
|
-
// =========================================
|
|
276
|
-
/** Convert a RATE_SCALE-encoded u64 to a float (e.g., 1_000_000 -> 1.0) */
|
|
277
|
-
function scaleToFloat(value, scale = RATE_SCALE) {
|
|
278
|
-
return value / scale;
|
|
279
|
-
}
|
|
280
|
-
// =========================================
|
|
281
282
|
// Gateway deserialization
|
|
282
283
|
// =========================================
|
|
283
|
-
/**
|
|
284
|
-
* Internal variant of {@link deserializeGateway} that additionally surfaces
|
|
285
|
-
* the on-chain `cumulative_reward_per_token` u128 accumulator. Used by the
|
|
286
|
-
* live delegation balance pipeline ({@link computeLiveDelegationBalance} via
|
|
287
|
-
* `getGatewayAccumulators` in `io-readable.ts`).
|
|
288
|
-
*
|
|
289
|
-
* Not part of the public AoGateway shape — `bigint` is not JSON-serializable
|
|
290
|
-
* and would leak through `getGateway` / `getGateways`. Prefer
|
|
291
|
-
* {@link deserializeGateway} everywhere except inside live-balance plumbing.
|
|
292
|
-
*
|
|
293
|
-
* PDA: ["gateway", operator_pubkey] in ario-gar program.
|
|
294
|
-
*/
|
|
295
284
|
export function deserializeGatewayWithAccumulator(data) {
|
|
296
|
-
const
|
|
297
|
-
const operator = r.readPubkey();
|
|
298
|
-
const label = r.readString();
|
|
299
|
-
const fqdn = r.readString();
|
|
300
|
-
const port = r.readU16();
|
|
301
|
-
r.readU8(); // protocolIdx: 0=Http, 1=Https
|
|
302
|
-
const properties = r.readString();
|
|
303
|
-
const note = r.readString();
|
|
304
|
-
const operatorStake = r.readU64AsNumber();
|
|
305
|
-
const totalDelegatedStake = r.readU64AsNumber();
|
|
306
|
-
const statusIdx = r.readU8(); // 0=Joined, 1=Leaving
|
|
307
|
-
const startTimestamp = r.readI64AsNumber();
|
|
308
|
-
const leaveTimestamp = r.readOptionI64();
|
|
309
|
-
// leave_epoch_duration: i64 — snapshot of epoch_settings.epoch_duration captured
|
|
310
|
-
// at leave_network/prune_gateway. Not surfaced on AoGateway; consume to stay aligned.
|
|
311
|
-
r.skip(8);
|
|
312
|
-
// GatewayStats
|
|
313
|
-
const passedEpochCount = r.readU32();
|
|
314
|
-
const failedEpochCount = r.readU32();
|
|
315
|
-
const totalEpochCount = r.readU32();
|
|
316
|
-
const prescribedEpochCount = r.readU32();
|
|
317
|
-
const observedEpochCount = r.readU32();
|
|
318
|
-
const failedConsecutiveEpochs = r.readU8();
|
|
319
|
-
const passedConsecutiveEpochs = r.readU8();
|
|
320
|
-
// GatewayWeights (7 x u64 — 7th is weights_epoch, set by tally_weights)
|
|
321
|
-
const stakeWeight = r.readU64AsNumber();
|
|
322
|
-
const tenureWeight = r.readU64AsNumber();
|
|
323
|
-
const gatewayPerformanceRatio = r.readU64AsNumber();
|
|
324
|
-
const observerPerformanceRatio = r.readU64AsNumber();
|
|
325
|
-
const compositeWeight = r.readU64AsNumber();
|
|
326
|
-
const normalizedCompositeWeight = r.readU64AsNumber();
|
|
327
|
-
r.skip(8); // weights_epoch — not surfaced on AoGatewayWeights
|
|
328
|
-
// GatewaySettings2 (auto_stake removed in cfc7a8b2 — never existed on Solana)
|
|
329
|
-
const allowDelegatedStaking = r.readBool();
|
|
330
|
-
const delegateRewardShareRatio = r.readU16();
|
|
331
|
-
const minDelegatedStake = r.readU64AsNumber();
|
|
332
|
-
const allowlistEnabled = r.readBool();
|
|
333
|
-
// RegistryIndex (index: u32, _reserved: u8 — was is_registered:bool)
|
|
334
|
-
r.readU32(); // registryIndex
|
|
335
|
-
r.readU8(); // _reserved (layout-preserving placeholder for the legacy is_registered byte)
|
|
336
|
-
// observer_address
|
|
337
|
-
const observerAddress = r.readPubkey();
|
|
338
|
-
// cumulative_reward_per_token: u128 — per-share accumulator advanced by
|
|
339
|
-
// distribute_epoch. Combined with each Delegation.reward_debt, this lets
|
|
340
|
-
// off-chain readers compute the live delegate balance without an on-chain
|
|
341
|
-
// settlement call. Not part of the public AoGateway type but surfaced as
|
|
342
|
-
// an extra field on this function's return so internal readers can use it.
|
|
343
|
-
const cumulativeRewardPerToken = r.readU128();
|
|
344
|
-
// bump
|
|
345
|
-
r.skip(1);
|
|
285
|
+
const d = getGatewayDecoder().decode(new Uint8Array(data));
|
|
346
286
|
const stats = {
|
|
347
|
-
passedEpochCount,
|
|
348
|
-
failedEpochCount,
|
|
349
|
-
totalEpochCount,
|
|
350
|
-
prescribedEpochCount,
|
|
351
|
-
observedEpochCount,
|
|
352
|
-
passedConsecutiveEpochs,
|
|
353
|
-
failedConsecutiveEpochs,
|
|
287
|
+
passedEpochCount: d.stats.passedEpochs,
|
|
288
|
+
failedEpochCount: d.stats.failedEpochs,
|
|
289
|
+
totalEpochCount: d.stats.totalEpochs,
|
|
290
|
+
prescribedEpochCount: d.stats.prescribedEpochs,
|
|
291
|
+
observedEpochCount: d.stats.observedEpochs,
|
|
292
|
+
passedConsecutiveEpochs: d.stats.passedConsecutive,
|
|
293
|
+
failedConsecutiveEpochs: d.stats.failedConsecutive,
|
|
354
294
|
};
|
|
355
295
|
const weights = {
|
|
356
|
-
stakeWeight: scaleToFloat(stakeWeight),
|
|
357
|
-
tenureWeight: scaleToFloat(tenureWeight),
|
|
358
|
-
gatewayPerformanceRatio: scaleToFloat(gatewayPerformanceRatio),
|
|
359
|
-
observerPerformanceRatio: scaleToFloat(observerPerformanceRatio),
|
|
360
|
-
gatewayRewardRatioWeight: scaleToFloat(gatewayPerformanceRatio),
|
|
361
|
-
observerRewardRatioWeight: scaleToFloat(observerPerformanceRatio),
|
|
362
|
-
compositeWeight: scaleToFloat(compositeWeight),
|
|
363
|
-
normalizedCompositeWeight: scaleToFloat(normalizedCompositeWeight),
|
|
296
|
+
stakeWeight: scaleToFloat(Number(d.weights.stakeWeight)),
|
|
297
|
+
tenureWeight: scaleToFloat(Number(d.weights.tenureWeight)),
|
|
298
|
+
gatewayPerformanceRatio: scaleToFloat(Number(d.weights.gatewayPerformanceRatio)),
|
|
299
|
+
observerPerformanceRatio: scaleToFloat(Number(d.weights.observerPerformanceRatio)),
|
|
300
|
+
gatewayRewardRatioWeight: scaleToFloat(Number(d.weights.gatewayPerformanceRatio)),
|
|
301
|
+
observerRewardRatioWeight: scaleToFloat(Number(d.weights.observerPerformanceRatio)),
|
|
302
|
+
compositeWeight: scaleToFloat(Number(d.weights.compositeWeight)),
|
|
303
|
+
normalizedCompositeWeight: scaleToFloat(Number(d.weights.normalizedCompositeWeight)),
|
|
364
304
|
};
|
|
305
|
+
const pendingRatioRaw = optionToValue(d.settings.pendingDelegateRewardShareRatio);
|
|
306
|
+
const pendingDelegateRewardShareRatio = pendingRatioRaw === undefined ? undefined : pendingRatioRaw / 100;
|
|
307
|
+
const delegationDisabledAt = optionToValue(d.settings.delegationDisabledAt);
|
|
365
308
|
const settings = {
|
|
366
|
-
allowDelegatedStaking: allowlistEnabled
|
|
309
|
+
allowDelegatedStaking: d.settings.allowlistEnabled
|
|
367
310
|
? 'allowlist'
|
|
368
|
-
: allowDelegatedStaking,
|
|
369
|
-
delegateRewardShareRatio,
|
|
370
|
-
allowedDelegates: [],
|
|
371
|
-
minDelegatedStake,
|
|
372
|
-
autoStake: false,
|
|
373
|
-
label,
|
|
374
|
-
note,
|
|
375
|
-
properties,
|
|
376
|
-
fqdn,
|
|
377
|
-
port,
|
|
378
|
-
protocol: 'https',
|
|
311
|
+
: d.settings.allowDelegatedStaking,
|
|
312
|
+
delegateRewardShareRatio: d.settings.delegateRewardShareRatio / 100,
|
|
313
|
+
allowedDelegates: [],
|
|
314
|
+
minDelegatedStake: Number(d.settings.minDelegationAmount),
|
|
315
|
+
autoStake: false,
|
|
316
|
+
label: d.label,
|
|
317
|
+
note: d.note,
|
|
318
|
+
properties: d.properties,
|
|
319
|
+
fqdn: d.fqdn,
|
|
320
|
+
port: d.port,
|
|
321
|
+
protocol: 'https',
|
|
322
|
+
pendingDelegateRewardShareRatio,
|
|
323
|
+
delegationDisabledAt: delegationDisabledAt !== undefined
|
|
324
|
+
? Number(delegationDisabledAt)
|
|
325
|
+
: undefined,
|
|
379
326
|
};
|
|
327
|
+
const leaveTimestamp = optionToValue(d.leaveTimestamp);
|
|
380
328
|
return {
|
|
381
|
-
operator: operator,
|
|
329
|
+
operator: d.operator,
|
|
382
330
|
settings,
|
|
383
331
|
stats,
|
|
384
|
-
totalDelegatedStake,
|
|
385
|
-
startTimestamp,
|
|
386
|
-
endTimestamp: leaveTimestamp
|
|
387
|
-
observerAddress: observerAddress,
|
|
388
|
-
operatorStake,
|
|
389
|
-
status:
|
|
332
|
+
totalDelegatedStake: Number(d.totalDelegatedStake),
|
|
333
|
+
startTimestamp: Number(d.startTimestamp),
|
|
334
|
+
endTimestamp: leaveTimestamp !== undefined ? Number(leaveTimestamp) : 0,
|
|
335
|
+
observerAddress: d.observerAddress,
|
|
336
|
+
operatorStake: Number(d.operatorStake),
|
|
337
|
+
status: d.status === GatewayStatus.Joined ? 'joined' : 'leaving',
|
|
390
338
|
weights,
|
|
391
|
-
cumulativeRewardPerToken,
|
|
339
|
+
cumulativeRewardPerToken: d.cumulativeRewardPerToken,
|
|
392
340
|
};
|
|
393
341
|
}
|
|
394
|
-
/**
|
|
395
|
-
* Deserialize a Gateway account from raw bytes.
|
|
396
|
-
*
|
|
397
|
-
* Returns the SDK-compatible AoGateway type (plus `operator: string`).
|
|
398
|
-
* The on-chain `cumulative_reward_per_token` u128 is intentionally NOT
|
|
399
|
-
* surfaced on the returned object — `bigint` is not JSON-serializable,
|
|
400
|
-
* and leaking it through `getGateway` / `getGateways` would break
|
|
401
|
-
* downstream consumers that call `JSON.stringify` on results. Use
|
|
402
|
-
* {@link deserializeGatewayWithAccumulator} from within the live-balance
|
|
403
|
-
* pipeline when the accumulator value is actually needed.
|
|
404
|
-
*/
|
|
405
342
|
export function deserializeGateway(data) {
|
|
406
343
|
const { cumulativeRewardPerToken: _unused, ...publicShape } = deserializeGatewayWithAccumulator(data);
|
|
407
344
|
return publicShape;
|
|
@@ -409,45 +346,22 @@ export function deserializeGateway(data) {
|
|
|
409
346
|
// =========================================
|
|
410
347
|
// ArNS Record deserialization
|
|
411
348
|
// =========================================
|
|
412
|
-
/**
|
|
413
|
-
* Deserialize an ArNS record account from raw bytes.
|
|
414
|
-
* PDA: ["arns_record", hash(name)] in ario-arns program.
|
|
415
|
-
*
|
|
416
|
-
* Field order is **load-bearing** and mirrors the on-chain
|
|
417
|
-
* `ArnsRecord` struct in `contracts/programs/ario-arns/src/state/mod.rs`.
|
|
418
|
-
* Every fixed-size field appears before the variable-length `name` so
|
|
419
|
-
* `getProgramAccounts` callers can `memcmp`-filter on `ant` (offset
|
|
420
|
-
* 72) — see `ARNS_RECORD_ANT_OFFSET` in `./constants.ts`. If you
|
|
421
|
-
* touch the contract layout, both files have to move in lockstep.
|
|
422
|
-
*/
|
|
423
349
|
export function deserializeArnsRecord(data) {
|
|
424
|
-
const
|
|
425
|
-
|
|
426
|
-
const owner = r.readPubkey();
|
|
427
|
-
const ant = r.readPubkey(); // ANT Metaplex Core asset address
|
|
428
|
-
const typeIdx = r.readU8(); // 0=Lease, 1=Permabuy
|
|
429
|
-
const startTimestamp = r.readI64AsNumber();
|
|
430
|
-
const endTimestamp = r.readOptionI64();
|
|
431
|
-
// u16 on-chain — the prior implementation read u32 here and silently
|
|
432
|
-
// consumed two bytes of `purchase_price`, producing junk for both
|
|
433
|
-
// fields. Caught while reworking the layout for memcmp filtering.
|
|
434
|
-
const undernameLimit = r.readU16();
|
|
435
|
-
const purchasePrice = r.readU64AsNumber();
|
|
436
|
-
r.skip(1); // bump
|
|
437
|
-
const name = r.readString();
|
|
350
|
+
const d = getArnsRecordDecoder().decode(new Uint8Array(data));
|
|
351
|
+
const endTimestamp = optionToValue(d.endTimestamp);
|
|
438
352
|
const baseData = {
|
|
439
|
-
name,
|
|
440
|
-
owner: owner,
|
|
441
|
-
processId: ant,
|
|
442
|
-
startTimestamp,
|
|
443
|
-
undernameLimit,
|
|
444
|
-
purchasePrice,
|
|
353
|
+
name: d.name,
|
|
354
|
+
owner: d.owner,
|
|
355
|
+
processId: d.ant,
|
|
356
|
+
startTimestamp: Number(d.startTimestamp),
|
|
357
|
+
undernameLimit: d.undernameLimit,
|
|
358
|
+
purchasePrice: Number(d.purchasePrice),
|
|
445
359
|
};
|
|
446
|
-
if (
|
|
360
|
+
if (d.purchaseType === PurchaseType.Lease && endTimestamp !== undefined) {
|
|
447
361
|
return {
|
|
448
362
|
...baseData,
|
|
449
363
|
type: 'lease',
|
|
450
|
-
endTimestamp,
|
|
364
|
+
endTimestamp: Number(endTimestamp),
|
|
451
365
|
};
|
|
452
366
|
}
|
|
453
367
|
return {
|
|
@@ -458,305 +372,162 @@ export function deserializeArnsRecord(data) {
|
|
|
458
372
|
// =========================================
|
|
459
373
|
// Vault deserialization
|
|
460
374
|
// =========================================
|
|
461
|
-
/**
|
|
462
|
-
* Deserialize a Vault account from raw bytes.
|
|
463
|
-
* PDA: ["vault", owner, vault_id] in ario-core program.
|
|
464
|
-
*
|
|
465
|
-
* On-chain layout (matches `state::Vault`):
|
|
466
|
-
* disc(8) + owner(Pubkey=32) + vault_id(u64=8) + amount(u64=8)
|
|
467
|
-
* + start_timestamp(i64=8) + end_timestamp(i64=8)
|
|
468
|
-
* + controller(Option<Pubkey>=33) + revocable(bool=1) + bump(u8=1)
|
|
469
|
-
*/
|
|
470
375
|
export function deserializeVault(data) {
|
|
471
|
-
const
|
|
472
|
-
const
|
|
473
|
-
// The Rust struct has vault_id BEFORE amount — easy to miss because the
|
|
474
|
-
// SDK only surfaces `balance` (the AO interface name for `amount`). The
|
|
475
|
-
// earlier deserializer skipped vault_id and read vault_id-as-balance →
|
|
476
|
-
// `balance` was always 0 for fresh vaults at index 0.
|
|
477
|
-
r.skip(8); // vault_id (recoverable from the PDA seeds; not surfaced)
|
|
478
|
-
const balance = r.readU64AsNumber();
|
|
479
|
-
const startTimestamp = r.readI64AsNumber();
|
|
480
|
-
const endTimestamp = r.readI64AsNumber();
|
|
481
|
-
// controller: Option<Pubkey>
|
|
482
|
-
const hasController = r.readU8();
|
|
483
|
-
const controller = hasController ? r.readPubkey() : undefined;
|
|
484
|
-
// revocable: bool
|
|
485
|
-
r.readBool();
|
|
486
|
-
// bump
|
|
487
|
-
r.skip(1);
|
|
376
|
+
const d = getVaultDecoder().decode(new Uint8Array(data));
|
|
377
|
+
const controller = optionToValue(d.controller);
|
|
488
378
|
return {
|
|
489
|
-
owner: owner,
|
|
490
|
-
balance,
|
|
491
|
-
startTimestamp,
|
|
492
|
-
endTimestamp,
|
|
493
|
-
controller,
|
|
379
|
+
owner: d.owner,
|
|
380
|
+
balance: Number(d.amount),
|
|
381
|
+
startTimestamp: Number(d.startTimestamp),
|
|
382
|
+
endTimestamp: Number(d.endTimestamp),
|
|
383
|
+
controller: controller,
|
|
494
384
|
};
|
|
495
385
|
}
|
|
496
|
-
/**
|
|
497
|
-
* Deserialize a Delegation account from raw bytes.
|
|
498
|
-
* PDA: ["delegation", gateway, delegator] in ario-gar program.
|
|
499
|
-
*/
|
|
500
386
|
export function deserializeDelegation(data) {
|
|
501
|
-
const
|
|
502
|
-
const gateway = r.readPubkey();
|
|
503
|
-
const delegator = r.readPubkey();
|
|
504
|
-
const amount = r.readU64AsNumber();
|
|
505
|
-
const startTimestamp = r.readI64AsNumber();
|
|
506
|
-
// reward_debt: u128 — snapshot of gateway.cumulative_reward_per_token at last
|
|
507
|
-
// settlement. Needed (together with the gateway's current accumulator) to
|
|
508
|
-
// compute the live delegate balance via computeLiveDelegationBalance().
|
|
509
|
-
const rewardDebt = r.readU128();
|
|
510
|
-
r.skip(1); // bump
|
|
387
|
+
const d = getDelegationDecoder().decode(new Uint8Array(data));
|
|
511
388
|
return {
|
|
512
|
-
gateway: gateway,
|
|
513
|
-
delegator: delegator,
|
|
514
|
-
delegatedStake: amount,
|
|
515
|
-
startTimestamp,
|
|
516
|
-
rewardDebt,
|
|
389
|
+
gateway: d.gateway,
|
|
390
|
+
delegator: d.delegator,
|
|
391
|
+
delegatedStake: Number(d.amount),
|
|
392
|
+
startTimestamp: Number(d.startTimestamp),
|
|
393
|
+
rewardDebt: d.rewardDebt,
|
|
517
394
|
};
|
|
518
395
|
}
|
|
519
396
|
// =========================================
|
|
520
397
|
// Balance deserialization
|
|
521
398
|
// =========================================
|
|
522
|
-
/**
|
|
523
|
-
* Deserialize a Balance account from raw bytes.
|
|
524
|
-
* PDA: ["balance", owner] in ario-core program.
|
|
525
|
-
*
|
|
526
|
-
* Backed by the Codama-generated decoder so the encoder
|
|
527
|
-
* (`getBalanceEncoder` used by migration/snapshot) and decoder share a single
|
|
528
|
-
* source of truth derived from the `ario_core` IDL.
|
|
529
|
-
*/
|
|
530
399
|
export function deserializeBalance(data) {
|
|
531
|
-
const
|
|
400
|
+
const d = getBalanceDecoder().decode(new Uint8Array(data));
|
|
532
401
|
return {
|
|
533
|
-
owner:
|
|
534
|
-
balance: Number(
|
|
402
|
+
owner: d.owner,
|
|
403
|
+
balance: Number(d.amount),
|
|
535
404
|
};
|
|
536
405
|
}
|
|
406
|
+
// Keep the import for deserializeBalance
|
|
407
|
+
import { getBalanceDecoder } from '@ar.io/solana-contracts/core';
|
|
537
408
|
// =========================================
|
|
538
409
|
// Epoch Settings deserialization
|
|
539
410
|
// =========================================
|
|
540
411
|
export function deserializeEpochSettings(data) {
|
|
541
|
-
const
|
|
542
|
-
r.skip(32); // authority
|
|
543
|
-
const epochDuration = r.readI64AsNumber();
|
|
544
|
-
const maxObservers = r.readU8(); // prescribed_observer_count
|
|
545
|
-
const prescribedNameCount = r.readU8();
|
|
546
|
-
r.skip(8); // min_observer_stake (u64)
|
|
547
|
-
r.skip(2); // slash_rate (u16)
|
|
548
|
-
r.skip(1); // enabled (bool)
|
|
549
|
-
r.skip(8); // current_epoch_index (u64)
|
|
550
|
-
const epochZeroStartTimestamp = r.readI64AsNumber(); // genesis_timestamp
|
|
412
|
+
const d = getEpochSettingsDecoder().decode(new Uint8Array(data));
|
|
551
413
|
return {
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
prescribedNameCount,
|
|
557
|
-
maxObservers,
|
|
414
|
+
epochZeroStartTimestamp: Number(d.genesisTimestamp) * 1000,
|
|
415
|
+
durationMs: Number(d.epochDuration) * 1000,
|
|
416
|
+
prescribedNameCount: d.prescribedNameCount,
|
|
417
|
+
maxObservers: d.prescribedObserverCount,
|
|
558
418
|
};
|
|
559
419
|
}
|
|
560
420
|
// =========================================
|
|
561
421
|
// ArIO Config deserialization
|
|
562
422
|
// =========================================
|
|
563
|
-
/**
|
|
564
|
-
* Deserialize an ArioConfig account from raw bytes.
|
|
565
|
-
* PDA: ["ario_config"] in ario-core program.
|
|
566
|
-
*/
|
|
567
423
|
export function deserializeArioConfig(data) {
|
|
568
|
-
const
|
|
569
|
-
r.skip(32); // authority
|
|
570
|
-
r.skip(32); // mint
|
|
571
|
-
r.skip(32); // arns_program
|
|
572
|
-
r.skip(32); // treasury
|
|
573
|
-
const totalSupply = r.readU64AsNumber();
|
|
574
|
-
const protocolBalance = r.readU64AsNumber();
|
|
575
|
-
const circulatingSupply = r.readU64AsNumber();
|
|
576
|
-
const lockedSupply = r.readU64AsNumber();
|
|
577
|
-
// remaining fields not needed: min_vault_duration, max_vault_duration,
|
|
578
|
-
// primary_name_request_expiry, migration_active, migration_authority, bump
|
|
424
|
+
const d = getArioConfigDecoder().decode(new Uint8Array(data));
|
|
579
425
|
return {
|
|
580
|
-
totalSupply,
|
|
581
|
-
protocolBalance,
|
|
582
|
-
circulatingSupply,
|
|
583
|
-
lockedSupply,
|
|
426
|
+
totalSupply: Number(d.totalSupply),
|
|
427
|
+
protocolBalance: Number(d.protocolBalance),
|
|
428
|
+
circulatingSupply: Number(d.circulatingSupply),
|
|
429
|
+
lockedSupply: Number(d.lockedSupply),
|
|
584
430
|
};
|
|
585
431
|
}
|
|
586
432
|
// =========================================
|
|
587
433
|
// Demand Factor deserialization
|
|
588
434
|
// =========================================
|
|
589
|
-
/**
|
|
590
|
-
* Deserialize a DemandFactor account from raw bytes.
|
|
591
|
-
* PDA: ["demand_factor"] in ario-arns program.
|
|
592
|
-
*/
|
|
593
435
|
export function deserializeDemandFactor(data) {
|
|
594
|
-
const
|
|
595
|
-
const currentDemandFactorRaw = r.readU64AsNumber();
|
|
596
|
-
const currentPeriod = r.readU64AsNumber();
|
|
597
|
-
r.skip(8); // purchases_this_period (u64)
|
|
598
|
-
r.skip(8); // revenue_this_period (u64)
|
|
599
|
-
const consecutivePeriodsWithMinDemandFactor = r.readU32();
|
|
600
|
-
const trailingPeriodPurchases = r.readFixedU64Array(7);
|
|
601
|
-
const trailingPeriodRevenues = r.readFixedU64Array(7);
|
|
602
|
-
const fees = r.readFixedU64Array(51);
|
|
603
|
-
const periodZeroStartTimestamp = r.readI64AsNumber();
|
|
604
|
-
// criteria: u8, bump: u8 — skip
|
|
436
|
+
const d = getDemandFactorDecoder().decode(new Uint8Array(data));
|
|
605
437
|
return {
|
|
606
|
-
currentDemandFactor:
|
|
607
|
-
currentPeriod,
|
|
608
|
-
periodZeroStartTimestamp,
|
|
609
|
-
consecutivePeriodsWithMinDemandFactor,
|
|
610
|
-
trailingPeriodPurchases,
|
|
611
|
-
trailingPeriodRevenues,
|
|
612
|
-
fees,
|
|
438
|
+
currentDemandFactor: Number(d.currentDemandFactor) / RATE_SCALE,
|
|
439
|
+
currentPeriod: Number(d.currentPeriod),
|
|
440
|
+
periodZeroStartTimestamp: Number(d.periodZeroStartTimestamp),
|
|
441
|
+
consecutivePeriodsWithMinDemandFactor: d.consecutivePeriodsWithMinDemandFactor,
|
|
442
|
+
trailingPeriodPurchases: d.trailingPeriodPurchases.map(Number),
|
|
443
|
+
trailingPeriodRevenues: d.trailingPeriodRevenues.map(Number),
|
|
444
|
+
fees: d.fees.map(Number),
|
|
613
445
|
};
|
|
614
446
|
}
|
|
615
447
|
// =========================================
|
|
616
448
|
// Reserved Name deserialization
|
|
617
449
|
// =========================================
|
|
618
|
-
/**
|
|
619
|
-
* Deserialize a ReservedName account from raw bytes.
|
|
620
|
-
* PDA: ["reserved_name", hash(name)] in ario-arns program.
|
|
621
|
-
*/
|
|
622
450
|
export function deserializeReservedName(data) {
|
|
623
|
-
const
|
|
624
|
-
const
|
|
625
|
-
const
|
|
626
|
-
const expiresAt = r.readOptionI64();
|
|
627
|
-
// reserved_by: Pubkey, created_at: i64, bump: u8 — not needed
|
|
451
|
+
const d = getReservedNameDecoder().decode(new Uint8Array(data));
|
|
452
|
+
const reservedFor = optionToValue(d.reservedFor);
|
|
453
|
+
const expiresAt = optionToValue(d.expiresAt);
|
|
628
454
|
return {
|
|
629
|
-
name,
|
|
455
|
+
name: d.name,
|
|
630
456
|
target: reservedFor,
|
|
631
|
-
endTimestamp: expiresAt,
|
|
457
|
+
endTimestamp: expiresAt !== undefined ? Number(expiresAt) : undefined,
|
|
632
458
|
};
|
|
633
459
|
}
|
|
634
460
|
// =========================================
|
|
635
461
|
// Returned Name deserialization
|
|
636
462
|
// =========================================
|
|
637
|
-
const RETURN_AUCTION_DURATION_SECONDS = 14 * 86_400;
|
|
638
|
-
/**
|
|
639
|
-
* Deserialize a ReturnedName account from raw bytes.
|
|
640
|
-
* PDA: ["returned_name", hash(name)] in ario-arns program.
|
|
641
|
-
*/
|
|
463
|
+
const RETURN_AUCTION_DURATION_SECONDS = 14 * 86_400;
|
|
642
464
|
export function deserializeReturnedName(data) {
|
|
643
|
-
const
|
|
644
|
-
const
|
|
645
|
-
r.skip(32); // name_hash [u8; 32]
|
|
646
|
-
const initiator = r.readPubkey();
|
|
647
|
-
const returnedAt = r.readI64AsNumber();
|
|
648
|
-
// bump: u8 — skip
|
|
465
|
+
const d = getReturnedNameDecoder().decode(new Uint8Array(data));
|
|
466
|
+
const returnedAt = Number(d.returnedAt);
|
|
649
467
|
return {
|
|
650
|
-
name,
|
|
468
|
+
name: d.name,
|
|
651
469
|
startTimestamp: returnedAt,
|
|
652
470
|
endTimestamp: returnedAt + RETURN_AUCTION_DURATION_SECONDS,
|
|
653
|
-
initiator: initiator,
|
|
654
|
-
premiumMultiplier: 1,
|
|
471
|
+
initiator: d.initiator,
|
|
472
|
+
premiumMultiplier: 1,
|
|
655
473
|
};
|
|
656
474
|
}
|
|
657
475
|
// =========================================
|
|
658
476
|
// Withdrawal deserialization
|
|
659
477
|
// =========================================
|
|
660
|
-
/**
|
|
661
|
-
* Deserialize a Withdrawal account from raw bytes.
|
|
662
|
-
* PDA: ["withdrawal", gateway, owner, withdrawal_id] in ario-gar program.
|
|
663
|
-
*/
|
|
664
478
|
export function deserializeWithdrawal(data) {
|
|
665
|
-
const
|
|
666
|
-
const owner = r.readPubkey();
|
|
667
|
-
const withdrawalId = r.readU64AsNumber();
|
|
668
|
-
const gateway = r.readPubkey();
|
|
669
|
-
const amount = r.readU64AsNumber();
|
|
670
|
-
const createdAt = r.readI64AsNumber();
|
|
671
|
-
const availableAt = r.readI64AsNumber();
|
|
672
|
-
const isDelegate = r.readBool();
|
|
673
|
-
// is_exit_vault: bool, bump: u8 — skip
|
|
479
|
+
const d = getWithdrawalDecoder().decode(new Uint8Array(data));
|
|
674
480
|
return {
|
|
675
|
-
owner: owner,
|
|
676
|
-
vaultId: String(withdrawalId),
|
|
677
|
-
gateway: gateway,
|
|
678
|
-
balance: amount,
|
|
679
|
-
startTimestamp: createdAt,
|
|
680
|
-
endTimestamp: availableAt,
|
|
681
|
-
isDelegate,
|
|
481
|
+
owner: d.owner,
|
|
482
|
+
vaultId: String(Number(d.withdrawalId)),
|
|
483
|
+
gateway: d.gateway,
|
|
484
|
+
balance: Number(d.amount),
|
|
485
|
+
startTimestamp: Number(d.createdAt),
|
|
486
|
+
endTimestamp: Number(d.availableAt),
|
|
487
|
+
isDelegate: d.isDelegate,
|
|
682
488
|
};
|
|
683
489
|
}
|
|
684
490
|
// =========================================
|
|
685
491
|
// Redelegation Record deserialization
|
|
686
492
|
// =========================================
|
|
687
|
-
/**
|
|
688
|
-
* Deserialize a RedelegationRecord account from raw bytes.
|
|
689
|
-
* PDA: ["redelegation", delegator] in ario-gar program.
|
|
690
|
-
*/
|
|
691
493
|
export function deserializeRedelegationRecord(data) {
|
|
692
|
-
const
|
|
693
|
-
const delegator = r.readPubkey();
|
|
694
|
-
const redelegationCount = r.readU32();
|
|
695
|
-
const lastRedelegationAt = r.readI64AsNumber();
|
|
696
|
-
const feeResetAt = r.readI64AsNumber();
|
|
697
|
-
// bump: u8 — skip
|
|
494
|
+
const d = getRedelegationRecordDecoder().decode(new Uint8Array(data));
|
|
698
495
|
return {
|
|
699
|
-
delegator: delegator,
|
|
700
|
-
redelegationCount,
|
|
701
|
-
lastRedelegationAt,
|
|
702
|
-
feeResetAt,
|
|
496
|
+
delegator: d.delegator,
|
|
497
|
+
redelegationCount: d.redelegationCount,
|
|
498
|
+
lastRedelegationAt: Number(d.lastRedelegationAt),
|
|
499
|
+
feeResetAt: Number(d.feeResetAt),
|
|
703
500
|
};
|
|
704
501
|
}
|
|
705
502
|
// =========================================
|
|
706
503
|
// Primary Name Request deserialization
|
|
707
504
|
// =========================================
|
|
708
|
-
/**
|
|
709
|
-
* Deserialize a PrimaryNameRequest account from raw bytes.
|
|
710
|
-
* PDA: ["primary_name_request", initiator] in ario-core program.
|
|
711
|
-
*/
|
|
712
505
|
export function deserializePrimaryNameRequest(data) {
|
|
713
|
-
const
|
|
714
|
-
const initiator = r.readPubkey();
|
|
715
|
-
const name = r.readString();
|
|
716
|
-
const createdAt = r.readI64AsNumber();
|
|
717
|
-
const expiresAt = r.readI64AsNumber();
|
|
718
|
-
// bump: u8 — skip
|
|
506
|
+
const d = getPrimaryNameRequestDecoder().decode(new Uint8Array(data));
|
|
719
507
|
return {
|
|
720
|
-
name,
|
|
721
|
-
initiator: initiator,
|
|
722
|
-
startTimestamp: createdAt,
|
|
723
|
-
endTimestamp: expiresAt,
|
|
508
|
+
name: d.name,
|
|
509
|
+
initiator: d.initiator,
|
|
510
|
+
startTimestamp: Number(d.createdAt),
|
|
511
|
+
endTimestamp: Number(d.expiresAt),
|
|
724
512
|
};
|
|
725
513
|
}
|
|
726
514
|
// =========================================
|
|
727
|
-
// GAR Settings deserialization
|
|
515
|
+
// GAR Settings deserialization
|
|
728
516
|
// =========================================
|
|
729
|
-
/**
|
|
730
|
-
* Deserialize a GarSettings account from raw bytes and return
|
|
731
|
-
* the full AoGatewayRegistrySettings type.
|
|
732
|
-
* PDA: ["gar_settings"] in ario-gar program.
|
|
733
|
-
*
|
|
734
|
-
* Fields not stored in GarSettings are filled with protocol defaults.
|
|
735
|
-
*/
|
|
736
517
|
export function deserializeGarSettings(data) {
|
|
737
|
-
const
|
|
738
|
-
|
|
739
|
-
r.skip(32); // mint
|
|
740
|
-
const minOperatorStake = r.readU64AsNumber();
|
|
741
|
-
const minDelegateStake = r.readU64AsNumber();
|
|
742
|
-
const withdrawalPeriod = r.readI64AsNumber(); // seconds
|
|
743
|
-
const maxExpeditedWithdrawalPenalty = r.readU64AsNumber();
|
|
744
|
-
const minExpeditedWithdrawalPenalty = r.readU64AsNumber();
|
|
745
|
-
const minExpeditedWithdrawalAmount = r.readU64AsNumber();
|
|
746
|
-
r.readU32(); // max_delegates_per_gateway
|
|
747
|
-
// migration_active: bool, migration_authority: Pubkey, bump: u8 — skip
|
|
748
|
-
const withdrawalPeriodMs = withdrawalPeriod * 1000;
|
|
518
|
+
const d = getGarSettingsDecoder().decode(new Uint8Array(data));
|
|
519
|
+
const withdrawalPeriodMs = Number(d.withdrawalPeriod) * 1000;
|
|
749
520
|
return {
|
|
750
521
|
delegates: {
|
|
751
|
-
minStake: minDelegateStake,
|
|
522
|
+
minStake: Number(d.minDelegateStake),
|
|
752
523
|
withdrawLengthMs: withdrawalPeriodMs,
|
|
753
524
|
},
|
|
754
525
|
observers: {
|
|
755
|
-
tenureWeightDurationMs: 15_552_000_000,
|
|
526
|
+
tenureWeightDurationMs: 15_552_000_000,
|
|
756
527
|
maxTenureWeight: 4,
|
|
757
528
|
},
|
|
758
529
|
operators: {
|
|
759
|
-
minStake: minOperatorStake,
|
|
530
|
+
minStake: Number(d.minOperatorStake),
|
|
760
531
|
withdrawLengthMs: withdrawalPeriodMs,
|
|
761
532
|
leaveLengthMs: withdrawalPeriodMs,
|
|
762
533
|
maxDelegateRewardSharePct: 95,
|
|
@@ -770,406 +541,171 @@ export function deserializeGarSettings(data) {
|
|
|
770
541
|
redelegationFeeResetIntervalMs: 7 * 86_400 * 1000,
|
|
771
542
|
},
|
|
772
543
|
expeditedWithdrawals: {
|
|
773
|
-
minExpeditedWithdrawalPenaltyRate: minExpeditedWithdrawalPenalty,
|
|
774
|
-
maxExpeditedWithdrawalPenaltyRate: maxExpeditedWithdrawalPenalty,
|
|
775
|
-
minExpeditedWithdrawalAmount: minExpeditedWithdrawalAmount,
|
|
544
|
+
minExpeditedWithdrawalPenaltyRate: Number(d.minExpeditedWithdrawalPenalty),
|
|
545
|
+
maxExpeditedWithdrawalPenaltyRate: Number(d.maxExpeditedWithdrawalPenalty),
|
|
546
|
+
minExpeditedWithdrawalAmount: Number(d.minExpeditedWithdrawalAmount),
|
|
776
547
|
},
|
|
777
548
|
};
|
|
778
549
|
}
|
|
779
|
-
/**
|
|
780
|
-
* Deserialize supply counter fields from GatewaySettings account.
|
|
781
|
-
* These 3 fields were added after arns_program_id, before bump.
|
|
782
|
-
*/
|
|
783
550
|
export function deserializeGarSupplyCounters(data) {
|
|
784
|
-
const
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
r.skip(8); // max_expedited_withdrawal_penalty
|
|
791
|
-
r.skip(8); // min_expedited_withdrawal_penalty
|
|
792
|
-
r.skip(8); // min_expedited_withdrawal_amount
|
|
793
|
-
r.skip(4); // max_delegates_per_gateway
|
|
794
|
-
r.skip(1); // migration_active
|
|
795
|
-
r.skip(32); // migration_authority
|
|
796
|
-
r.skip(32); // stake_token_account
|
|
797
|
-
r.skip(32); // protocol_token_account
|
|
798
|
-
r.skip(32); // arns_program_id
|
|
799
|
-
const totalStaked = r.readU64AsNumber();
|
|
800
|
-
const totalDelegated = r.readU64AsNumber();
|
|
801
|
-
const totalWithdrawn = r.readU64AsNumber();
|
|
802
|
-
return { totalStaked, totalDelegated, totalWithdrawn };
|
|
551
|
+
const d = getGarSettingsDecoder().decode(new Uint8Array(data));
|
|
552
|
+
return {
|
|
553
|
+
totalStaked: Number(d.totalStaked),
|
|
554
|
+
totalDelegated: Number(d.totalDelegated),
|
|
555
|
+
totalWithdrawn: Number(d.totalWithdrawn),
|
|
556
|
+
};
|
|
803
557
|
}
|
|
804
558
|
// =========================================
|
|
805
559
|
// Epoch Settings Full deserialization
|
|
806
560
|
// =========================================
|
|
807
|
-
/**
|
|
808
|
-
* Deserialize the full EpochSettings account from raw bytes.
|
|
809
|
-
* Unlike deserializeEpochSettings (which returns 4 fields), this reads
|
|
810
|
-
* all fields from the on-chain struct.
|
|
811
|
-
* PDA: ["epoch_settings"] in ario-gar program.
|
|
812
|
-
*/
|
|
813
561
|
export function deserializeEpochSettingsFull(data) {
|
|
814
|
-
const
|
|
815
|
-
r.skip(32); // authority
|
|
816
|
-
const epochDuration = r.readI64AsNumber();
|
|
817
|
-
const prescribedObserverCount = r.readU8();
|
|
818
|
-
const prescribedNameCount = r.readU8();
|
|
819
|
-
r.skip(8); // min_observer_stake (u64)
|
|
820
|
-
r.skip(2); // slash_rate (u16)
|
|
821
|
-
const enabled = r.readU8() !== 0;
|
|
822
|
-
const currentEpochIndex = r.readU64AsNumber();
|
|
823
|
-
const genesisTimestamp = r.readI64AsNumber();
|
|
824
|
-
const tenureWeightDuration = r.readI64AsNumber();
|
|
825
|
-
const maxTenureWeight = r.readU64AsNumber();
|
|
826
|
-
const gatewayRewardRatio = r.readU64AsNumber();
|
|
827
|
-
const observerRewardRatio = r.readU64AsNumber();
|
|
828
|
-
r.skip(8); // missed_observation_penalty_rate (u64)
|
|
829
|
-
r.skip(8); // max_reward_rate (u64)
|
|
830
|
-
r.skip(8); // min_reward_rate (u64)
|
|
831
|
-
r.skip(8); // reward_decay_start_epoch (u64)
|
|
832
|
-
r.skip(8); // reward_decay_last_epoch (u64)
|
|
833
|
-
const maxConsecutiveFailures = r.readU8();
|
|
834
|
-
// failed_gateway_slash_rate: u64, bump: u8 — skip
|
|
562
|
+
const d = getEpochSettingsDecoder().decode(new Uint8Array(data));
|
|
835
563
|
return {
|
|
836
|
-
currentEpochIndex,
|
|
837
|
-
genesisTimestamp,
|
|
838
|
-
epochDuration,
|
|
839
|
-
enabled,
|
|
840
|
-
prescribedObserverCount,
|
|
841
|
-
prescribedNameCount,
|
|
842
|
-
tenureWeightDuration,
|
|
843
|
-
maxTenureWeight,
|
|
844
|
-
gatewayRewardRatio,
|
|
845
|
-
observerRewardRatio,
|
|
846
|
-
maxConsecutiveFailures,
|
|
564
|
+
currentEpochIndex: Number(d.currentEpochIndex),
|
|
565
|
+
genesisTimestamp: Number(d.genesisTimestamp),
|
|
566
|
+
epochDuration: Number(d.epochDuration),
|
|
567
|
+
enabled: d.enabled,
|
|
568
|
+
prescribedObserverCount: d.prescribedObserverCount,
|
|
569
|
+
prescribedNameCount: d.prescribedNameCount,
|
|
570
|
+
tenureWeightDuration: Number(d.tenureWeightDuration),
|
|
571
|
+
maxTenureWeight: Number(d.maxTenureWeight),
|
|
572
|
+
gatewayRewardRatio: Number(d.gatewayRewardRatio),
|
|
573
|
+
observerRewardRatio: Number(d.observerRewardRatio),
|
|
574
|
+
maxConsecutiveFailures: d.maxConsecutiveFailures,
|
|
847
575
|
};
|
|
848
576
|
}
|
|
849
577
|
// =========================================
|
|
850
|
-
// Epoch deserialization
|
|
578
|
+
// Epoch deserialization
|
|
851
579
|
// =========================================
|
|
852
|
-
/**
|
|
853
|
-
* Deserialize an Epoch account from raw bytes.
|
|
854
|
-
* PDA: ["epoch", epoch_index_le_bytes] in ario-gar program.
|
|
855
|
-
*
|
|
856
|
-
* This is a zero-copy account with #[repr(C)] layout (not Borsh).
|
|
857
|
-
* Fields are at fixed offsets after the 8-byte discriminator.
|
|
858
|
-
*/
|
|
859
580
|
export function deserializeEpoch(data) {
|
|
860
|
-
|
|
861
|
-
// below — that broke under cluster cfg changes (e.g. the
|
|
862
|
-
// `--features devnet-shrunk` build cuts the Epoch struct from
|
|
863
|
-
// ~9400 bytes down to ~3472 bytes, but the hand-rolled deser had
|
|
864
|
-
// hardcoded `base + 9388` reads that overshot the buffer). The
|
|
865
|
-
// codama decoder is regenerated from the on-chain IDL on every
|
|
866
|
-
// contract change, so layout drift is impossible by construction.
|
|
867
|
-
// The "old" hand-rolled body is kept below this early return so
|
|
868
|
-
// tests + any downstream consumers that need a specific subset
|
|
869
|
-
// of fields still see the shape they expect.
|
|
870
|
-
try {
|
|
871
|
-
const codamaEpoch = getEpochDecoder().decode(new Uint8Array(data));
|
|
872
|
-
return {
|
|
873
|
-
epochIndex: Number(codamaEpoch.epochIndex),
|
|
874
|
-
startTimestamp: Number(codamaEpoch.startTimestamp),
|
|
875
|
-
endTimestamp: Number(codamaEpoch.endTimestamp),
|
|
876
|
-
totalEligibleRewards: Number(codamaEpoch.totalEligibleRewards),
|
|
877
|
-
perGatewayReward: Number(codamaEpoch.perGatewayReward),
|
|
878
|
-
perObserverReward: Number(codamaEpoch.perObserverReward),
|
|
879
|
-
rewardRate: Number(codamaEpoch.rewardRate),
|
|
880
|
-
activeGatewayCount: codamaEpoch.activeGatewayCount,
|
|
881
|
-
distributionIndex: codamaEpoch.distributionIndex,
|
|
882
|
-
tallyIndex: codamaEpoch.tallyIndex,
|
|
883
|
-
observerCount: codamaEpoch.observerCount,
|
|
884
|
-
nameCount: codamaEpoch.nameCount,
|
|
885
|
-
observationsSubmitted: codamaEpoch.observationsSubmitted,
|
|
886
|
-
rewardsDistributed: codamaEpoch.rewardsDistributed,
|
|
887
|
-
weightsTallied: codamaEpoch.weightsTallied,
|
|
888
|
-
prescriptionsDone: codamaEpoch.prescriptionsDone,
|
|
889
|
-
failureCounts: Uint16Array.from(codamaEpoch.failureCounts),
|
|
890
|
-
prescribedObservers: codamaEpoch.prescribedObservers,
|
|
891
|
-
prescribedObserverGateways: codamaEpoch.prescribedObserverGateways,
|
|
892
|
-
prescribedNameHashes: codamaEpoch.prescribedNames.map((b) => Buffer.from(b)),
|
|
893
|
-
hasObserved: new Uint8Array(codamaEpoch.hasObserved),
|
|
894
|
-
};
|
|
895
|
-
}
|
|
896
|
-
catch (codamaErr) {
|
|
897
|
-
// Fall through to the legacy hand-rolled path so tests/fixtures
|
|
898
|
-
// that synthesize a custom Epoch buffer (e.g.
|
|
899
|
-
// save-observations.test.ts) keep working. Real on-chain data
|
|
900
|
-
// always succeeds via the codama path above.
|
|
901
|
-
void codamaErr;
|
|
902
|
-
}
|
|
903
|
-
// All offsets relative to start of struct (after 8-byte discriminator)
|
|
904
|
-
const base = 8;
|
|
905
|
-
const epochIndex = Number(data.readBigUInt64LE(base + 0));
|
|
906
|
-
const startTimestamp = Number(data.readBigInt64LE(base + 8));
|
|
907
|
-
const endTimestamp = Number(data.readBigInt64LE(base + 16));
|
|
908
|
-
const totalEligibleRewards = Number(data.readBigUInt64LE(base + 24));
|
|
909
|
-
const perGatewayReward = Number(data.readBigUInt64LE(base + 32));
|
|
910
|
-
const perObserverReward = Number(data.readBigUInt64LE(base + 40));
|
|
911
|
-
const rewardRate = Number(data.readBigUInt64LE(base + 48));
|
|
912
|
-
// total_composite_weight_lo/hi at 56, 64 — skip
|
|
913
|
-
// hashchain at 72 — skip (32 bytes)
|
|
914
|
-
const activeGatewayCount = data.readUInt32LE(base + 104);
|
|
915
|
-
const distributionIndex = data.readUInt32LE(base + 108);
|
|
916
|
-
const tallyIndex = data.readUInt32LE(base + 112);
|
|
917
|
-
const observerCount = data.readUInt8(base + 116);
|
|
918
|
-
const nameCount = data.readUInt8(base + 117);
|
|
919
|
-
const observationsSubmitted = data.readUInt8(base + 118);
|
|
920
|
-
const rewardsDistributed = data.readUInt8(base + 119);
|
|
921
|
-
const weightsTallied = data.readUInt8(base + 120);
|
|
922
|
-
const prescriptionsDone = data.readUInt8(base + 121);
|
|
923
|
-
// bump at 122, _padding1 at 123
|
|
924
|
-
// failure_counts: [u16; 3000] at offset 124
|
|
925
|
-
const failureCounts = new Uint16Array(3000);
|
|
926
|
-
for (let i = 0; i < 3000; i++) {
|
|
927
|
-
failureCounts[i] = data.readUInt16LE(base + 124 + i * 2);
|
|
928
|
-
}
|
|
929
|
-
// prescribed_observers: [Pubkey; 50] at offset 6124
|
|
930
|
-
const prescribedObservers = [];
|
|
931
|
-
for (let i = 0; i < 50; i++) {
|
|
932
|
-
const off = base + 6124 + i * 32;
|
|
933
|
-
prescribedObservers.push(addressDecoder.decode(data.subarray(off, off + 32)));
|
|
934
|
-
}
|
|
935
|
-
// prescribed_observer_gateways: [Pubkey; 50] at offset 7724
|
|
936
|
-
const prescribedObserverGateways = [];
|
|
937
|
-
for (let i = 0; i < 50; i++) {
|
|
938
|
-
const off = base + 7724 + i * 32;
|
|
939
|
-
prescribedObserverGateways.push(addressDecoder.decode(data.subarray(off, off + 32)));
|
|
940
|
-
}
|
|
941
|
-
// prescribed_names: [[u8; 32]; 2] at offset 9324
|
|
942
|
-
const prescribedNameHashes = [];
|
|
943
|
-
for (let i = 0; i < 2; i++) {
|
|
944
|
-
const off = base + 9324 + i * 32;
|
|
945
|
-
prescribedNameHashes.push(Buffer.from(data.subarray(off, off + 32)));
|
|
946
|
-
}
|
|
947
|
-
// has_observed: [u8; 7] at offset 9388
|
|
948
|
-
const hasObserved = new Uint8Array(data.subarray(base + 9388, base + 9395));
|
|
581
|
+
const d = getEpochDecoder().decode(new Uint8Array(data));
|
|
949
582
|
return {
|
|
950
|
-
epochIndex,
|
|
951
|
-
startTimestamp,
|
|
952
|
-
endTimestamp,
|
|
953
|
-
totalEligibleRewards,
|
|
954
|
-
perGatewayReward,
|
|
955
|
-
perObserverReward,
|
|
956
|
-
rewardRate,
|
|
957
|
-
activeGatewayCount,
|
|
958
|
-
distributionIndex,
|
|
959
|
-
tallyIndex,
|
|
960
|
-
observerCount,
|
|
961
|
-
nameCount,
|
|
962
|
-
observationsSubmitted,
|
|
963
|
-
rewardsDistributed,
|
|
964
|
-
weightsTallied,
|
|
965
|
-
prescriptionsDone,
|
|
966
|
-
failureCounts,
|
|
967
|
-
prescribedObservers,
|
|
968
|
-
prescribedObserverGateways,
|
|
969
|
-
prescribedNameHashes,
|
|
970
|
-
hasObserved,
|
|
583
|
+
epochIndex: Number(d.epochIndex),
|
|
584
|
+
startTimestamp: Number(d.startTimestamp),
|
|
585
|
+
endTimestamp: Number(d.endTimestamp),
|
|
586
|
+
totalEligibleRewards: Number(d.totalEligibleRewards),
|
|
587
|
+
perGatewayReward: Number(d.perGatewayReward),
|
|
588
|
+
perObserverReward: Number(d.perObserverReward),
|
|
589
|
+
rewardRate: Number(d.rewardRate),
|
|
590
|
+
activeGatewayCount: d.activeGatewayCount,
|
|
591
|
+
distributionIndex: d.distributionIndex,
|
|
592
|
+
tallyIndex: d.tallyIndex,
|
|
593
|
+
observerCount: d.observerCount,
|
|
594
|
+
nameCount: d.nameCount,
|
|
595
|
+
observationsSubmitted: d.observationsSubmitted,
|
|
596
|
+
rewardsDistributed: d.rewardsDistributed,
|
|
597
|
+
weightsTallied: d.weightsTallied,
|
|
598
|
+
prescriptionsDone: d.prescriptionsDone,
|
|
599
|
+
failureCounts: Uint16Array.from(d.failureCounts),
|
|
600
|
+
prescribedObservers: d.prescribedObservers,
|
|
601
|
+
prescribedObserverGateways: d.prescribedObserverGateways,
|
|
602
|
+
prescribedNameHashes: d.prescribedNames.map((b) => Buffer.from(b)),
|
|
603
|
+
hasObserved: new Uint8Array(d.hasObserved),
|
|
971
604
|
};
|
|
972
605
|
}
|
|
973
606
|
// =========================================
|
|
974
607
|
// Observation deserialization
|
|
975
608
|
// =========================================
|
|
976
|
-
/**
|
|
977
|
-
* Deserialize an Observation account from raw bytes.
|
|
978
|
-
* PDA: ["observation", epoch_index_le_bytes, observer_pubkey] in ario-gar program.
|
|
979
|
-
*/
|
|
980
609
|
export function deserializeObservation(data) {
|
|
981
|
-
const
|
|
982
|
-
const epochIndex = r.readU64AsNumber();
|
|
983
|
-
const observer = r.readPubkey();
|
|
984
|
-
const gatewayResults = r.readFixedBytes(375);
|
|
985
|
-
const gatewayCount = r.readU16();
|
|
986
|
-
const reportTxId = r.readFixedBytes(32).toString('base64url');
|
|
987
|
-
const submittedAt = r.readI64AsNumber();
|
|
610
|
+
const d = getObservationDecoder().decode(new Uint8Array(data));
|
|
988
611
|
return {
|
|
989
|
-
epochIndex,
|
|
990
|
-
observer,
|
|
991
|
-
gatewayResults,
|
|
992
|
-
gatewayCount,
|
|
993
|
-
reportTxId,
|
|
994
|
-
submittedAt,
|
|
612
|
+
epochIndex: Number(d.epochIndex),
|
|
613
|
+
observer: d.observer,
|
|
614
|
+
gatewayResults: Buffer.from(d.gatewayResults),
|
|
615
|
+
gatewayCount: d.gatewayCount,
|
|
616
|
+
reportTxId: Buffer.from(d.reportTxId).toString('base64url'),
|
|
617
|
+
submittedAt: Number(d.submittedAt),
|
|
995
618
|
};
|
|
996
619
|
}
|
|
997
620
|
// =========================================
|
|
998
621
|
// ANT Config deserialization
|
|
999
622
|
// =========================================
|
|
1000
|
-
/**
|
|
1001
|
-
* Deserialize an AntConfig account from raw bytes.
|
|
1002
|
-
* PDA: ["ant_config", mint] in ario-ant program.
|
|
1003
|
-
*/
|
|
1004
623
|
export function deserializeAntConfig(data) {
|
|
1005
|
-
const
|
|
1006
|
-
const mint = r.readPubkey();
|
|
1007
|
-
const name = r.readString();
|
|
1008
|
-
const ticker = r.readString();
|
|
1009
|
-
const logo = r.readString();
|
|
1010
|
-
const description = r.readString();
|
|
1011
|
-
const keywords = r.readVecString();
|
|
1012
|
-
const lastKnownOwner = r.readPubkey();
|
|
1013
|
-
r.readU8(); // bump
|
|
1014
|
-
let version = 0;
|
|
1015
|
-
try {
|
|
1016
|
-
version = r.readU8();
|
|
1017
|
-
}
|
|
1018
|
-
catch {
|
|
1019
|
-
/* pre-version accounts default to 0 */
|
|
1020
|
-
}
|
|
624
|
+
const d = getAntConfigDecoder().decode(new Uint8Array(data));
|
|
1021
625
|
return {
|
|
1022
|
-
mint: mint,
|
|
1023
|
-
name,
|
|
1024
|
-
ticker,
|
|
1025
|
-
logo,
|
|
1026
|
-
description,
|
|
1027
|
-
keywords,
|
|
1028
|
-
owner: lastKnownOwner,
|
|
1029
|
-
version,
|
|
626
|
+
mint: d.mint,
|
|
627
|
+
name: d.name,
|
|
628
|
+
ticker: d.ticker,
|
|
629
|
+
logo: d.logo,
|
|
630
|
+
description: d.description,
|
|
631
|
+
keywords: d.keywords,
|
|
632
|
+
owner: d.lastKnownOwner,
|
|
633
|
+
version: d.version.major,
|
|
1030
634
|
};
|
|
1031
635
|
}
|
|
1032
636
|
// =========================================
|
|
1033
637
|
// ANT Controllers deserialization
|
|
1034
638
|
// =========================================
|
|
1035
|
-
/**
|
|
1036
|
-
* Deserialize an AntControllers account from raw bytes.
|
|
1037
|
-
* PDA: ["ant_controllers", mint] in ario-ant program.
|
|
1038
|
-
*/
|
|
1039
639
|
export function deserializeAntControllers(data) {
|
|
1040
|
-
const
|
|
1041
|
-
const mint = r.readPubkey();
|
|
1042
|
-
const controllers = r.readVecPubkey().map((pk) => pk);
|
|
1043
|
-
// bump: u8 — skip
|
|
640
|
+
const d = getAntControllersDecoder().decode(new Uint8Array(data));
|
|
1044
641
|
return {
|
|
1045
|
-
mint: mint,
|
|
1046
|
-
controllers,
|
|
642
|
+
mint: d.mint,
|
|
643
|
+
controllers: d.controllers.map((c) => c),
|
|
1047
644
|
};
|
|
1048
645
|
}
|
|
1049
646
|
// =========================================
|
|
1050
647
|
// ANT Record deserialization
|
|
1051
648
|
// =========================================
|
|
1052
|
-
/**
|
|
1053
|
-
* Deserialize an AntRecord account from raw bytes.
|
|
1054
|
-
* PDA: ["ant_record", mint, hash(undername)] in ario-ant program.
|
|
1055
|
-
*/
|
|
1056
649
|
export function deserializeAntRecord(data) {
|
|
1057
|
-
const
|
|
1058
|
-
const mint = r.readPubkey();
|
|
1059
|
-
const undername = r.readString();
|
|
1060
|
-
const transactionId = r.readString(); // on-chain field: target
|
|
1061
|
-
const targetProtocol = r.readU8(); // 0 = Arweave, 1 = IPFS
|
|
1062
|
-
const ttlSeconds = r.readU32();
|
|
1063
|
-
const priority = r.readOptionU32();
|
|
1064
|
-
const ownerPk = r.readOptionPubkey();
|
|
1065
|
-
// last_reconciled_owner: Pubkey, bump: u8 — skip
|
|
650
|
+
const d = getAntRecordDecoder().decode(new Uint8Array(data));
|
|
1066
651
|
return {
|
|
1067
|
-
mint: mint,
|
|
1068
|
-
undername,
|
|
1069
|
-
transactionId,
|
|
1070
|
-
targetProtocol,
|
|
1071
|
-
ttlSeconds,
|
|
1072
|
-
priority,
|
|
1073
|
-
owner:
|
|
652
|
+
mint: d.mint,
|
|
653
|
+
undername: d.undername,
|
|
654
|
+
transactionId: d.target,
|
|
655
|
+
targetProtocol: d.targetProtocol,
|
|
656
|
+
ttlSeconds: d.ttlSeconds,
|
|
657
|
+
priority: optionToValue(d.priority),
|
|
658
|
+
owner: optionToValue(d.owner),
|
|
1074
659
|
};
|
|
1075
660
|
}
|
|
1076
|
-
/**
|
|
1077
|
-
* Deserialize an AntRecordMetadata account from raw bytes.
|
|
1078
|
-
* This is a separate PDA that holds optional per-record metadata fields.
|
|
1079
|
-
*/
|
|
1080
661
|
export function deserializeAntRecordMetadata(data) {
|
|
1081
|
-
const
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
return { mint, displayName, logo, description, keywords };
|
|
662
|
+
const d = getAntRecordMetadataDecoder().decode(new Uint8Array(data));
|
|
663
|
+
return {
|
|
664
|
+
mint: d.mint,
|
|
665
|
+
displayName: optionToValue(d.displayName),
|
|
666
|
+
logo: optionToValue(d.recordLogo),
|
|
667
|
+
description: optionToValue(d.recordDescription),
|
|
668
|
+
keywords: optionToValue(d.recordKeywords),
|
|
669
|
+
};
|
|
1090
670
|
}
|
|
1091
|
-
/**
|
|
1092
|
-
* Deserialize an `AclConfig` account (paginated ACL head — ADR-012).
|
|
1093
|
-
* PDA: `["acl_config", user]` in ario-ant program.
|
|
1094
|
-
*
|
|
1095
|
-
* Holds counts but no entries. Read this first, then fan out to each
|
|
1096
|
-
* `AclPage` PDA (`["acl_page", user, page_idx_le]`) for the entries.
|
|
1097
|
-
*/
|
|
1098
671
|
export function deserializeAclConfig(data) {
|
|
1099
|
-
const
|
|
1100
|
-
const user = r.readPubkey();
|
|
1101
|
-
const pageCount = r.readU64();
|
|
1102
|
-
const totalEntries = r.readU64();
|
|
1103
|
-
// bump: u8 — managed by Anchor
|
|
672
|
+
const d = getAclConfigDecoder().decode(new Uint8Array(data));
|
|
1104
673
|
return {
|
|
1105
|
-
user: user,
|
|
1106
|
-
pageCount,
|
|
1107
|
-
totalEntries,
|
|
674
|
+
user: d.user,
|
|
675
|
+
pageCount: d.pageCount,
|
|
676
|
+
totalEntries: d.totalEntries,
|
|
1108
677
|
};
|
|
1109
678
|
}
|
|
1110
|
-
/**
|
|
1111
|
-
* Deserialize an `AclPage` account (paginated ACL page — ADR-012).
|
|
1112
|
-
* PDA: `["acl_page", user, page_idx_le]` in ario-ant program.
|
|
1113
|
-
*
|
|
1114
|
-
* Stores up to `MAX_ACL_PAGE_ENTRIES` `(asset, role)` entries. Pages can
|
|
1115
|
-
* be sparse mid-life (entries are removed via `swap_remove`) — the SDK's
|
|
1116
|
-
* append path fills the first non-full page to keep density reasonable.
|
|
1117
|
-
*/
|
|
1118
679
|
export function deserializeAclPage(data) {
|
|
1119
|
-
const
|
|
1120
|
-
const user = r.readPubkey();
|
|
1121
|
-
const pageIdx = r.readU64();
|
|
1122
|
-
const entryCount = r.readU32();
|
|
1123
|
-
const entries = [];
|
|
1124
|
-
for (let i = 0; i < entryCount; i++) {
|
|
1125
|
-
const asset = r.readPubkey();
|
|
1126
|
-
const role = r.readU8();
|
|
1127
|
-
entries.push({ asset: asset, role });
|
|
1128
|
-
}
|
|
1129
|
-
// bump: u8 — managed by Anchor
|
|
680
|
+
const d = getAclPageDecoder().decode(new Uint8Array(data));
|
|
1130
681
|
return {
|
|
1131
|
-
user: user,
|
|
1132
|
-
pageIdx,
|
|
1133
|
-
entries
|
|
682
|
+
user: d.user,
|
|
683
|
+
pageIdx: d.pageIdx,
|
|
684
|
+
entries: d.entries.map((e) => ({
|
|
685
|
+
asset: e.asset,
|
|
686
|
+
role: e.role,
|
|
687
|
+
})),
|
|
1134
688
|
};
|
|
1135
689
|
}
|
|
1136
690
|
// =========================================
|
|
1137
691
|
// Primary Name deserialization
|
|
1138
692
|
// =========================================
|
|
1139
|
-
/**
|
|
1140
|
-
* Deserialize a PrimaryName account from raw bytes.
|
|
1141
|
-
* PDA: ["primary_name", owner] in ario-core program.
|
|
1142
|
-
*/
|
|
1143
693
|
export function deserializePrimaryName(data) {
|
|
1144
|
-
const
|
|
1145
|
-
const owner = r.readPubkey();
|
|
1146
|
-
const name = r.readString();
|
|
1147
|
-
const processId = r.readPubkey();
|
|
1148
|
-
const startTimestamp = r.readI64AsNumber();
|
|
1149
|
-
// bump: u8 — skip
|
|
694
|
+
const d = getPrimaryNameDecoder().decode(new Uint8Array(data));
|
|
1150
695
|
return {
|
|
1151
|
-
owner: owner,
|
|
1152
|
-
name,
|
|
1153
|
-
|
|
1154
|
-
startTimestamp,
|
|
696
|
+
owner: d.owner,
|
|
697
|
+
name: d.name,
|
|
698
|
+
startTimestamp: Number(d.setAt),
|
|
1155
699
|
};
|
|
1156
700
|
}
|
|
1157
701
|
// =========================================
|
|
1158
702
|
// Allowlist deserialization
|
|
1159
703
|
// =========================================
|
|
1160
|
-
/**
|
|
1161
|
-
* Deserialize an Allowlist entry account from raw bytes.
|
|
1162
|
-
* PDA: ["allowlist", gateway, delegate] in ario-gar program.
|
|
1163
|
-
*/
|
|
1164
704
|
export function deserializeAllowlist(data) {
|
|
1165
|
-
const
|
|
1166
|
-
const gateway = r.readPubkey();
|
|
1167
|
-
const delegate = r.readPubkey();
|
|
1168
|
-
// bump: u8 — skip
|
|
705
|
+
const d = getAllowlistEntryDecoder().decode(new Uint8Array(data));
|
|
1169
706
|
return {
|
|
1170
|
-
gateway: gateway,
|
|
1171
|
-
delegate: delegate,
|
|
707
|
+
gateway: d.gateway,
|
|
708
|
+
delegate: d.delegate,
|
|
1172
709
|
};
|
|
1173
710
|
}
|
|
1174
|
-
// Re-export the reader and writer for custom (de)serialization
|
|
1175
711
|
export { BorshReader, BorshWriter };
|