@ar.io/sdk 3.24.0 → 4.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +682 -600
  2. package/lib/esm/cli/cli.js +188 -152
  3. package/lib/esm/cli/commands/antCommands.js +23 -58
  4. package/lib/esm/cli/commands/arnsPurchaseCommands.js +48 -30
  5. package/lib/esm/cli/commands/escrowCommands.js +221 -0
  6. package/lib/esm/cli/commands/gatewayWriteCommands.js +142 -23
  7. package/lib/esm/cli/commands/pruneCommands.js +150 -0
  8. package/lib/esm/cli/commands/readCommands.js +22 -3
  9. package/lib/esm/cli/commands/transfer.js +6 -6
  10. package/lib/esm/cli/options.js +124 -58
  11. package/lib/esm/cli/utils.js +280 -174
  12. package/lib/esm/common/ant-registry.js +17 -143
  13. package/lib/esm/common/ant.js +44 -1167
  14. package/lib/esm/common/faucet.js +11 -6
  15. package/lib/esm/common/index.js +0 -4
  16. package/lib/esm/common/io.js +25 -1412
  17. package/lib/esm/constants.js +13 -19
  18. package/lib/esm/solana/ant-readable.js +724 -0
  19. package/lib/esm/solana/ant-registry-readable.js +133 -0
  20. package/lib/esm/solana/ant-registry-writeable.js +472 -0
  21. package/lib/esm/solana/ant-writeable.js +384 -0
  22. package/lib/esm/solana/ata.js +70 -0
  23. package/lib/esm/solana/canonical-message.js +128 -0
  24. package/lib/esm/solana/clusters.js +111 -0
  25. package/lib/esm/solana/constants.js +146 -0
  26. package/lib/esm/solana/delegation-math.js +112 -0
  27. package/lib/esm/solana/deserialize.js +711 -0
  28. package/lib/esm/solana/escrow.js +839 -0
  29. package/lib/{cjs/utils/json.js → esm/solana/events.js} +15 -10
  30. package/lib/esm/solana/funding-plan.js +699 -0
  31. package/lib/esm/solana/index.js +126 -0
  32. package/lib/esm/solana/instruction.js +39 -0
  33. package/lib/esm/solana/io-readable.js +2182 -0
  34. package/lib/esm/solana/io-writeable.js +3196 -0
  35. package/lib/esm/solana/json-rpc.js +90 -0
  36. package/lib/esm/solana/metadata.js +81 -0
  37. package/lib/esm/solana/mpl-core.js +192 -0
  38. package/lib/esm/solana/pda.js +332 -0
  39. package/lib/esm/solana/predict-prescribed-observers.js +110 -0
  40. package/lib/esm/solana/retry.js +117 -0
  41. package/lib/esm/solana/rpc-circuit-breaker.js +258 -0
  42. package/lib/esm/solana/send.js +372 -0
  43. package/lib/esm/solana/spawn-ant.js +224 -0
  44. package/lib/esm/solana/types.js +1 -0
  45. package/lib/esm/types/ant.js +27 -15
  46. package/lib/esm/types/io.js +8 -11
  47. package/lib/esm/utils/ant.js +0 -63
  48. package/lib/esm/utils/index.js +0 -3
  49. package/lib/esm/version.js +1 -1
  50. package/lib/types/cli/commands/antCommands.d.ts +5 -13
  51. package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +33 -7
  52. package/lib/types/cli/commands/escrowCommands.d.ts +68 -0
  53. package/lib/types/cli/commands/gatewayWriteCommands.d.ts +12 -11
  54. package/lib/types/cli/commands/pruneCommands.d.ts +31 -0
  55. package/lib/types/cli/commands/readCommands.d.ts +27 -22
  56. package/lib/types/cli/commands/transfer.d.ts +9 -9
  57. package/lib/types/cli/options.d.ts +76 -21
  58. package/lib/types/cli/types.d.ts +11 -13
  59. package/lib/types/cli/utils.d.ts +71 -31
  60. package/lib/types/common/ant-registry.d.ts +49 -47
  61. package/lib/types/common/ant.d.ts +54 -539
  62. package/lib/types/common/faucet.d.ts +20 -8
  63. package/lib/types/common/index.d.ts +0 -3
  64. package/lib/types/common/io.d.ts +51 -263
  65. package/lib/types/constants.d.ts +11 -18
  66. package/lib/types/solana/ant-readable.d.ts +180 -0
  67. package/lib/types/solana/ant-registry-readable.d.ts +105 -0
  68. package/lib/types/solana/ant-registry-writeable.d.ts +249 -0
  69. package/lib/types/solana/ant-writeable.d.ts +177 -0
  70. package/lib/types/solana/ata.d.ts +44 -0
  71. package/lib/types/solana/canonical-message.d.ts +121 -0
  72. package/lib/types/solana/clusters.d.ts +109 -0
  73. package/lib/types/solana/constants.d.ts +119 -0
  74. package/lib/types/solana/delegation-math.d.ts +45 -0
  75. package/lib/types/solana/deserialize.d.ts +262 -0
  76. package/lib/types/solana/escrow.d.ts +480 -0
  77. package/lib/types/solana/events.d.ts +38 -0
  78. package/lib/types/solana/funding-plan.d.ts +225 -0
  79. package/lib/types/solana/index.d.ts +87 -0
  80. package/lib/types/solana/instruction.d.ts +39 -0
  81. package/lib/types/solana/io-readable.d.ts +499 -0
  82. package/lib/types/solana/io-writeable.d.ts +893 -0
  83. package/lib/types/solana/json-rpc.d.ts +47 -0
  84. package/lib/types/solana/metadata.d.ts +84 -0
  85. package/lib/types/solana/mpl-core.d.ts +120 -0
  86. package/lib/types/solana/pda.d.ts +95 -0
  87. package/lib/types/solana/predict-prescribed-observers.d.ts +28 -0
  88. package/lib/types/solana/retry.d.ts +62 -0
  89. package/lib/types/solana/rpc-circuit-breaker.d.ts +78 -0
  90. package/lib/types/solana/send.d.ts +94 -0
  91. package/lib/types/solana/spawn-ant.d.ts +145 -0
  92. package/lib/types/solana/types.d.ts +82 -0
  93. package/lib/types/types/ant-registry.d.ts +43 -4
  94. package/lib/types/types/ant.d.ts +114 -96
  95. package/lib/types/types/common.d.ts +18 -74
  96. package/lib/types/types/faucet.d.ts +2 -2
  97. package/lib/types/types/io.d.ts +244 -158
  98. package/lib/types/types/token.d.ts +0 -12
  99. package/lib/types/utils/ant.d.ts +1 -12
  100. package/lib/types/utils/index.d.ts +0 -3
  101. package/lib/types/version.d.ts +1 -1
  102. package/package.json +36 -33
  103. package/lib/cjs/cli/cli.js +0 -822
  104. package/lib/cjs/cli/commands/antCommands.js +0 -113
  105. package/lib/cjs/cli/commands/arnsPurchaseCommands.js +0 -212
  106. package/lib/cjs/cli/commands/gatewayWriteCommands.js +0 -210
  107. package/lib/cjs/cli/commands/readCommands.js +0 -215
  108. package/lib/cjs/cli/commands/transfer.js +0 -159
  109. package/lib/cjs/cli/options.js +0 -470
  110. package/lib/cjs/cli/types.js +0 -2
  111. package/lib/cjs/cli/utils.js +0 -639
  112. package/lib/cjs/common/ant-registry.js +0 -155
  113. package/lib/cjs/common/ant-versions.js +0 -93
  114. package/lib/cjs/common/ant.js +0 -1182
  115. package/lib/cjs/common/arweave.js +0 -27
  116. package/lib/cjs/common/contracts/ao-process.js +0 -224
  117. package/lib/cjs/common/error.js +0 -64
  118. package/lib/cjs/common/faucet.js +0 -150
  119. package/lib/cjs/common/hyperbeam/hb.js +0 -173
  120. package/lib/cjs/common/index.js +0 -42
  121. package/lib/cjs/common/io.js +0 -1423
  122. package/lib/cjs/common/logger.js +0 -83
  123. package/lib/cjs/common/loggers/winston.js +0 -68
  124. package/lib/cjs/common/marketplace.js +0 -731
  125. package/lib/cjs/common/turbo.js +0 -223
  126. package/lib/cjs/constants.js +0 -41
  127. package/lib/cjs/node/index.js +0 -39
  128. package/lib/cjs/package.json +0 -1
  129. package/lib/cjs/types/ant-registry.js +0 -2
  130. package/lib/cjs/types/ant.js +0 -168
  131. package/lib/cjs/types/common.js +0 -2
  132. package/lib/cjs/types/faucet.js +0 -2
  133. package/lib/cjs/types/index.js +0 -37
  134. package/lib/cjs/types/io.js +0 -51
  135. package/lib/cjs/types/token.js +0 -116
  136. package/lib/cjs/utils/ant.js +0 -108
  137. package/lib/cjs/utils/ao.js +0 -432
  138. package/lib/cjs/utils/arweave.js +0 -285
  139. package/lib/cjs/utils/base64.js +0 -62
  140. package/lib/cjs/utils/hash.js +0 -56
  141. package/lib/cjs/utils/index.js +0 -38
  142. package/lib/cjs/utils/processes.js +0 -173
  143. package/lib/cjs/utils/random.js +0 -30
  144. package/lib/cjs/utils/schema.js +0 -15
  145. package/lib/cjs/utils/url.js +0 -37
  146. package/lib/cjs/version.js +0 -20
  147. package/lib/cjs/web/index.js +0 -41
  148. package/lib/esm/common/ant-versions.js +0 -87
  149. package/lib/esm/common/arweave.js +0 -21
  150. package/lib/esm/common/contracts/ao-process.js +0 -220
  151. package/lib/esm/common/hyperbeam/hb.js +0 -169
  152. package/lib/esm/common/marketplace.js +0 -724
  153. package/lib/esm/common/turbo.js +0 -215
  154. package/lib/esm/node/index.js +0 -20
  155. package/lib/esm/utils/ao.js +0 -420
  156. package/lib/esm/utils/arweave.js +0 -271
  157. package/lib/esm/utils/processes.js +0 -167
  158. package/lib/esm/web/index.js +0 -20
  159. package/lib/types/common/ant-versions.d.ts +0 -39
  160. package/lib/types/common/arweave.d.ts +0 -17
  161. package/lib/types/common/contracts/ao-process.d.ts +0 -47
  162. package/lib/types/common/hyperbeam/hb.d.ts +0 -88
  163. package/lib/types/common/marketplace.d.ts +0 -568
  164. package/lib/types/common/turbo.d.ts +0 -61
  165. package/lib/types/node/index.d.ts +0 -20
  166. package/lib/types/utils/ao.d.ts +0 -80
  167. package/lib/types/utils/arweave.d.ts +0 -79
  168. package/lib/types/utils/processes.d.ts +0 -39
  169. package/lib/types/web/index.d.ts +0 -20
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Solana implementation of `ANT.spawn`.
18
+ *
19
+ * Mints a fresh Metaplex Core asset (the ANT NFT) AND initializes the
20
+ * `ario-ant` extended state PDAs (`AntConfig`, `AntControllers`, root `@`
21
+ * record) in a single atomic transaction.
22
+ *
23
+ * This is the Solana counterpart to the legacy AO `spawnANT` flow:
24
+ * - AO: `ao.spawn({ module, scheduler, ... })` → returns AO process id.
25
+ * - Solana: mint MPL Core asset + initialize ario-ant PDAs → returns the
26
+ * asset's pubkey (which serves as the SDK's stable `processId`).
27
+ *
28
+ * For the bulk-import flow used by `migration/import` we use a separate
29
+ * code path that mints to the migration authority and uses the gated
30
+ * `import_account` instruction — that's intentional and not what this SDK
31
+ * helper is for.
32
+ */
33
+ import { type Address, type Commitment, type Instruction, type KeyPairSigner } from '@solana/kit';
34
+ import type { SolanaRpc, SolanaRpcSubscriptions, SolanaSigner } from './types.js';
35
+ /** AR.IO logo Arweave TX — matches the Rust default in `ario_ant::initialize`. */
36
+ export declare const ARIO_LOGO_TX_ID = "AnYvLJTWcG9lr2Ll5MwYWZR2o5uTE39WbpYB0zCxwKM";
37
+ /**
38
+ * Default Arweave transaction id used when an ANT is spawned without an
39
+ * explicit `transactionId`. Empty string would fail the on-chain
40
+ * `is_valid_arweave_id` check, so we fall back to the AR.IO logo TX (which is
41
+ * a real Arweave id and won't trip validation).
42
+ */
43
+ export declare const DEFAULT_ANT_TRANSACTION_ID = "AnYvLJTWcG9lr2Ll5MwYWZR2o5uTE39WbpYB0zCxwKM";
44
+ export type SpawnSolanaANTState = {
45
+ /** ANT display name (1–51 chars). */
46
+ name: string;
47
+ /** Optional ticker (defaults to "ANT" on chain). */
48
+ ticker?: string;
49
+ /**
50
+ * Content target for the root `@` record (Arweave TX ID, IPFS CID, etc.).
51
+ * Defaults to the AR.IO logo TX — callers that want a real pointer should
52
+ * override this.
53
+ */
54
+ transactionId?: string;
55
+ /**
56
+ * Storage protocol for the root `@` record target.
57
+ * 0 = Arweave (default), 1 = IPFS.
58
+ */
59
+ targetProtocol?: number;
60
+ /** Logo TX id (43 chars). Defaults to the AR.IO logo. */
61
+ logo?: string;
62
+ /** Description (≤ 512 chars). */
63
+ description?: string;
64
+ /** Keywords (≤ 16 entries). */
65
+ keywords?: string[];
66
+ /**
67
+ * Metadata URI baked into the MPL Core asset (`uri` field). Defaults to
68
+ * `ar://{logo}` — wallets resolve `ar://{txId}` to `https://arweave.net/{txId}`.
69
+ */
70
+ uri?: string;
71
+ };
72
+ export type SpawnSolanaANTParams = {
73
+ /** RPC client used to fetch a recent blockhash + send the spawn transaction. */
74
+ rpc: SolanaRpc;
75
+ /** RPC subscriptions client — required to confirm the transaction. */
76
+ rpcSubscriptions: SolanaRpcSubscriptions;
77
+ /** Solana signer — pays rent + receives the NFT. */
78
+ signer: SolanaSigner;
79
+ /** ANT metadata for the new asset. `name` is the only required field. */
80
+ state: SpawnSolanaANTState;
81
+ /** Override the deployed `ario-ant` program id (devnet/localnet only). */
82
+ antProgramId?: Address;
83
+ /**
84
+ * Pre-derived mint signer. Useful for tests that want a deterministic
85
+ * asset address. When omitted a fresh random keypair signer is generated.
86
+ */
87
+ mintSigner?: KeyPairSigner;
88
+ /** Confirmation commitment for the resulting tx. Defaults to 'confirmed'. */
89
+ commitment?: Commitment;
90
+ /** CU limit for the bundled tx. Defaults to 400_000 (matches existing writes). */
91
+ computeUnitLimit?: number;
92
+ };
93
+ export type SpawnSolanaANTResult = {
94
+ /**
95
+ * SDK-canonical ANT identifier on Solana — this is the MPL Core asset's
96
+ * pubkey (base58). Pass it back into `ANT.init({ backend: 'solana',
97
+ * processId, ... })` to drive subsequent reads/writes.
98
+ */
99
+ processId: string;
100
+ /** Same value as `processId`, as an `Address` for convenience. */
101
+ mint: Address;
102
+ /** Confirmed transaction signature. */
103
+ signature: string;
104
+ };
105
+ /** A single on-chain `Attributes` plugin entry. */
106
+ export type AntAttribute = {
107
+ key: string;
108
+ value: string;
109
+ };
110
+ /**
111
+ * Public, low-level builder for the `CreateV1` MPL Core instruction with the
112
+ * AR.IO-standard ANT shape (Attributes plugin pre-installed, Owner authority).
113
+ *
114
+ * Delegates to the Codama-generated `getCreateV1Instruction`, but accepts
115
+ * plain `Address`es (rather than full `TransactionSigner`s) so test fixtures
116
+ * and devnet validation scripts can byte-pin the wire format without
117
+ * standing up real keypairs. The signer roles still flow through correctly
118
+ * because we re-cast under `unknown`.
119
+ *
120
+ * Most callers should use `ANT.spawn` / `spawnSolanaANT` instead — that path
121
+ * also wires up `ario_ant::initialize` so the ANT is fully usable end to end.
122
+ * Use this raw builder when you need fine-grained control over signing, or
123
+ * are bundling the mint into a larger compound transaction.
124
+ *
125
+ * **Why we always emit an Attributes plugin (even with an empty list):**
126
+ * `ario_arns::buy_record` and friends CPI into `UpdatePluginV1` to populate
127
+ * traits at purchase time. If the asset has no Attributes plugin, that CPI
128
+ * fails. Emitting an empty plugin here keeps every spawned ANT
129
+ * `purchase`-ready and matches what `migration/import` mints — see ADR-012
130
+ * and BD-096. Authority is `Owner` so the ANT NFT holder (= asset owner)
131
+ * can sign their own trait updates.
132
+ */
133
+ export declare function buildCreateAntInstruction({ mint, authority, payer, name, uri, attributes, }: {
134
+ mint: Address;
135
+ authority: Address;
136
+ payer: Address;
137
+ name: string;
138
+ uri: string;
139
+ attributes?: AntAttribute[];
140
+ }): Instruction;
141
+ /**
142
+ * Spawn a brand-new ANT on Solana. Returns the asset address, which is the
143
+ * SDK's stable `processId` for that ANT.
144
+ */
145
+ export declare function spawnSolanaANT(params: SpawnSolanaANTParams): Promise<SpawnSolanaANTResult>;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Solana-specific types for the AR.IO SDK.
18
+ *
19
+ * These extend the common SDK types with Solana connection and signer config.
20
+ */
21
+ import { type Address, type Commitment, type Rpc, type RpcSubscriptions, type SolanaRpcApi, type SolanaRpcApiMainnet, type SolanaRpcSubscriptionsApi, type TransactionSigner } from '@solana/kit';
22
+ /**
23
+ * The Solana RPC client produced by `createSolanaRpc(url)`.
24
+ *
25
+ * We accept both the mainnet-safe API (no `requestAirdrop`) and the test-cluster
26
+ * API (with `requestAirdrop`). kit's `createSolanaRpc` narrows the return type
27
+ * based on the URL string; this union lets callers pass either shape.
28
+ */
29
+ export type SolanaRpc = Rpc<SolanaRpcApi> | Rpc<SolanaRpcApiMainnet>;
30
+ /**
31
+ * The subscriptions client produced by `createSolanaRpcSubscriptions(wsUrl)`.
32
+ * Required alongside `SolanaRpc` to confirm transactions (via
33
+ * `sendAndConfirmTransactionFactory`).
34
+ */
35
+ export type SolanaRpcSubscriptions = RpcSubscriptions<SolanaRpcSubscriptionsApi>;
36
+ /**
37
+ * A transaction signer in the kit model. Covers keypair-based signers
38
+ * (`KeyPairSigner`) and any wallet-adapter-compatible signer that implements
39
+ * the {@link TransactionSigner} interface (partial, modifying, or sending).
40
+ */
41
+ export type SolanaSigner = TransactionSigner;
42
+ /** Configuration for Solana SDK instances */
43
+ export type SolanaConfig = {
44
+ rpc: SolanaRpc;
45
+ /**
46
+ * Subscriptions client. Required for writeable instances (confirmation).
47
+ * Optional for readable instances.
48
+ */
49
+ rpcSubscriptions?: SolanaRpcSubscriptions;
50
+ commitment?: Commitment;
51
+ };
52
+ export type SolanaReadConfig = SolanaConfig;
53
+ export type SolanaWriteConfig = SolanaConfig & {
54
+ rpcSubscriptions: SolanaRpcSubscriptions;
55
+ signer: SolanaSigner;
56
+ };
57
+ /** Result of a Solana write operation */
58
+ export type SolanaTransactionResult<T = undefined> = {
59
+ /** Transaction signature (base58) */
60
+ id: string;
61
+ result?: T;
62
+ };
63
+ /** Raw account data with metadata */
64
+ export type AccountData<T> = {
65
+ address: Address;
66
+ data: T;
67
+ };
68
+ /** Discriminator for Anchor accounts: sha256("account:StructName")[0..8] */
69
+ export type AccountDiscriminator = Uint8Array;
70
+ /**
71
+ * On Solana, "processId" (AO concept) maps to the ANT's Metaplex Core
72
+ * asset address. We keep the field name for SDK compatibility.
73
+ */
74
+ export type SolanaArNSNameData = {
75
+ processId: string;
76
+ owner: string;
77
+ startTimestamp: number;
78
+ type: 'lease' | 'permabuy';
79
+ endTimestamp?: number;
80
+ undernameLimit: number;
81
+ purchasePrice: number;
82
+ };
@@ -13,17 +13,56 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { AoMessageResult } from './common.js';
17
- export interface AoANTRegistryRead {
16
+ import { MessageResult } from './common.js';
17
+ export interface ANTRegistryRead {
18
18
  accessControlList(params: {
19
19
  address: string;
20
20
  }): Promise<{
21
21
  Owned: string[];
22
22
  Controlled: string[];
23
23
  }>;
24
+ /**
25
+ * Alias for `accessControlList` with a clearer name. Returns the ANTs
26
+ * owned or controlled by the given address. Implemented by both the AO
27
+ * and Solana backends so consumers can switch backends without renaming
28
+ * calls.
29
+ */
30
+ getAntsForAddress?(params: {
31
+ address: string;
32
+ }): Promise<{
33
+ Owned: string[];
34
+ Controlled: string[];
35
+ }>;
24
36
  }
25
- export interface AoANTRegistryWrite extends AoANTRegistryRead {
37
+ /**
38
+ * Cross-backend ACL relationship. Both AO and Solana model the same two
39
+ * roles today (owner / controller); the Solana paginated registry stores
40
+ * them as a `u8` byte (`ACL_ROLE_*` constants) but the public surface uses
41
+ * strings so consumers don't have to know the on-chain encoding.
42
+ */
43
+ export type AclMaintenanceRole = 'owner' | 'controller';
44
+ /**
45
+ * Mutation we want the on-chain ACL to reflect once the transaction lands.
46
+ * `user` and `asset` are wallet/process addresses (base58 on Solana, AO
47
+ * address on AO).
48
+ *
49
+ * On the Solana backend this is the input to the registry's internal
50
+ * preflight planner, surfaced via the workflow helpers
51
+ * (`bootstrapOwnerOnSpawn`, `bulkRemoveControllerEntries`) — they
52
+ * translate it into the minimum `register_acl_config` / `add_acl_page`
53
+ * / `record_acl_*` / `remove_acl_*` instruction set against the
54
+ * paginated `AclConfig` + `AclPage` layout (see ADR-012). On AO, the
55
+ * registry process owns its own ACL bookkeeping, so the equivalent is
56
+ * a no-op.
57
+ */
58
+ export type AclMaintenanceOp = {
59
+ action: 'record' | 'remove';
60
+ role: AclMaintenanceRole;
61
+ user: string;
62
+ asset: string;
63
+ };
64
+ export interface ANTRegistryWrite extends ANTRegistryRead {
26
65
  register(params: {
27
66
  processId: string;
28
- }): Promise<AoMessageResult>;
67
+ }): Promise<MessageResult>;
29
68
  }