@agirails/sdk 2.5.3 → 2.5.5

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/dist/ACTPClient.d.ts +18 -0
  2. package/dist/ACTPClient.d.ts.map +1 -1
  3. package/dist/ACTPClient.js +72 -23
  4. package/dist/ACTPClient.js.map +1 -1
  5. package/dist/adapters/BasicAdapter.d.ts +15 -0
  6. package/dist/adapters/BasicAdapter.d.ts.map +1 -1
  7. package/dist/adapters/BasicAdapter.js +33 -4
  8. package/dist/adapters/BasicAdapter.js.map +1 -1
  9. package/dist/adapters/StandardAdapter.d.ts +20 -3
  10. package/dist/adapters/StandardAdapter.d.ts.map +1 -1
  11. package/dist/adapters/StandardAdapter.js +90 -12
  12. package/dist/adapters/StandardAdapter.js.map +1 -1
  13. package/dist/cli/commands/publish.js +16 -4
  14. package/dist/cli/commands/publish.js.map +1 -1
  15. package/dist/cli/commands/register.js +16 -4
  16. package/dist/cli/commands/register.js.map +1 -1
  17. package/dist/cli/commands/tx.js +31 -3
  18. package/dist/cli/commands/tx.js.map +1 -1
  19. package/dist/config/networks.d.ts +10 -2
  20. package/dist/config/networks.d.ts.map +1 -1
  21. package/dist/config/networks.js +31 -22
  22. package/dist/config/networks.js.map +1 -1
  23. package/dist/level0/request.d.ts.map +1 -1
  24. package/dist/level0/request.js +2 -1
  25. package/dist/level0/request.js.map +1 -1
  26. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
  27. package/dist/runtime/BlockchainRuntime.js +11 -5
  28. package/dist/runtime/BlockchainRuntime.js.map +1 -1
  29. package/dist/utils/IPFSClient.d.ts +3 -1
  30. package/dist/utils/IPFSClient.d.ts.map +1 -1
  31. package/dist/utils/IPFSClient.js +27 -7
  32. package/dist/utils/IPFSClient.js.map +1 -1
  33. package/dist/wallet/AutoWalletProvider.d.ts +11 -1
  34. package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
  35. package/dist/wallet/AutoWalletProvider.js +84 -19
  36. package/dist/wallet/AutoWalletProvider.js.map +1 -1
  37. package/dist/wallet/IWalletProvider.d.ts +34 -0
  38. package/dist/wallet/IWalletProvider.d.ts.map +1 -1
  39. package/dist/wallet/SmartWalletRouter.d.ts +128 -0
  40. package/dist/wallet/SmartWalletRouter.d.ts.map +1 -0
  41. package/dist/wallet/SmartWalletRouter.js +248 -0
  42. package/dist/wallet/SmartWalletRouter.js.map +1 -0
  43. package/dist/wallet/aa/DualNonceManager.d.ts +26 -1
  44. package/dist/wallet/aa/DualNonceManager.d.ts.map +1 -1
  45. package/dist/wallet/aa/DualNonceManager.js +140 -6
  46. package/dist/wallet/aa/DualNonceManager.js.map +1 -1
  47. package/package.json +3 -6
  48. package/src/ACTPClient.ts +0 -1579
  49. package/src/abi/ACTPKernel.json +0 -1356
  50. package/src/abi/AgentRegistry.json +0 -915
  51. package/src/abi/ERC20.json +0 -40
  52. package/src/abi/EscrowVault.json +0 -134
  53. package/src/abi/IdentityRegistry.json +0 -316
  54. package/src/adapters/AdapterRegistry.ts +0 -173
  55. package/src/adapters/AdapterRouter.ts +0 -416
  56. package/src/adapters/BaseAdapter.ts +0 -498
  57. package/src/adapters/BasicAdapter.ts +0 -514
  58. package/src/adapters/IAdapter.ts +0 -292
  59. package/src/adapters/StandardAdapter.ts +0 -555
  60. package/src/adapters/X402Adapter.ts +0 -731
  61. package/src/adapters/index.ts +0 -60
  62. package/src/builders/DeliveryProofBuilder.ts +0 -327
  63. package/src/builders/QuoteBuilder.ts +0 -483
  64. package/src/builders/index.ts +0 -17
  65. package/src/cli/commands/balance.ts +0 -110
  66. package/src/cli/commands/batch.ts +0 -487
  67. package/src/cli/commands/config.ts +0 -231
  68. package/src/cli/commands/deploy-check.ts +0 -364
  69. package/src/cli/commands/deploy-env.ts +0 -120
  70. package/src/cli/commands/diff.ts +0 -141
  71. package/src/cli/commands/init.ts +0 -469
  72. package/src/cli/commands/mint.ts +0 -116
  73. package/src/cli/commands/pay.ts +0 -113
  74. package/src/cli/commands/publish.ts +0 -475
  75. package/src/cli/commands/pull.ts +0 -124
  76. package/src/cli/commands/register.ts +0 -247
  77. package/src/cli/commands/simulate.ts +0 -345
  78. package/src/cli/commands/time.ts +0 -302
  79. package/src/cli/commands/tx.ts +0 -448
  80. package/src/cli/commands/watch.ts +0 -211
  81. package/src/cli/index.ts +0 -134
  82. package/src/cli/utils/client.ts +0 -252
  83. package/src/cli/utils/config.ts +0 -389
  84. package/src/cli/utils/output.ts +0 -465
  85. package/src/cli/utils/wallet.ts +0 -109
  86. package/src/config/agirailsmd.ts +0 -262
  87. package/src/config/networks.ts +0 -275
  88. package/src/config/pendingPublish.ts +0 -237
  89. package/src/config/publishPipeline.ts +0 -359
  90. package/src/config/syncOperations.ts +0 -279
  91. package/src/erc8004/ERC8004Bridge.ts +0 -462
  92. package/src/erc8004/ReputationReporter.ts +0 -468
  93. package/src/erc8004/index.ts +0 -61
  94. package/src/errors/index.ts +0 -427
  95. package/src/index.ts +0 -364
  96. package/src/level0/Provider.ts +0 -117
  97. package/src/level0/ServiceDirectory.ts +0 -131
  98. package/src/level0/index.ts +0 -10
  99. package/src/level0/provide.ts +0 -132
  100. package/src/level0/request.ts +0 -432
  101. package/src/level1/Agent.ts +0 -1426
  102. package/src/level1/index.ts +0 -10
  103. package/src/level1/pricing/PriceCalculator.ts +0 -255
  104. package/src/level1/pricing/PricingStrategy.ts +0 -198
  105. package/src/level1/types/Job.ts +0 -179
  106. package/src/level1/types/Options.ts +0 -291
  107. package/src/level1/types/index.ts +0 -8
  108. package/src/protocol/ACTPKernel.ts +0 -808
  109. package/src/protocol/AgentRegistry.ts +0 -559
  110. package/src/protocol/DIDManager.ts +0 -629
  111. package/src/protocol/DIDResolver.ts +0 -554
  112. package/src/protocol/EASHelper.ts +0 -378
  113. package/src/protocol/EscrowVault.ts +0 -255
  114. package/src/protocol/EventMonitor.ts +0 -204
  115. package/src/protocol/MessageSigner.ts +0 -510
  116. package/src/protocol/ProofGenerator.ts +0 -339
  117. package/src/protocol/QuoteBuilder.ts +0 -15
  118. package/src/registry/AgentRegistryClient.ts +0 -202
  119. package/src/runtime/BlockchainRuntime.ts +0 -1015
  120. package/src/runtime/IACTPRuntime.ts +0 -306
  121. package/src/runtime/MockRuntime.ts +0 -1298
  122. package/src/runtime/MockStateManager.ts +0 -577
  123. package/src/runtime/index.ts +0 -25
  124. package/src/runtime/types/MockState.ts +0 -237
  125. package/src/storage/ArchiveBundleBuilder.ts +0 -561
  126. package/src/storage/ArweaveClient.ts +0 -946
  127. package/src/storage/FilebaseClient.ts +0 -790
  128. package/src/storage/index.ts +0 -96
  129. package/src/storage/types.ts +0 -348
  130. package/src/types/adapter.ts +0 -310
  131. package/src/types/agent.ts +0 -79
  132. package/src/types/did.ts +0 -223
  133. package/src/types/eip712.ts +0 -175
  134. package/src/types/erc8004.ts +0 -293
  135. package/src/types/escrow.ts +0 -27
  136. package/src/types/index.ts +0 -17
  137. package/src/types/message.ts +0 -145
  138. package/src/types/state.ts +0 -87
  139. package/src/types/transaction.ts +0 -69
  140. package/src/types/x402.ts +0 -251
  141. package/src/utils/ErrorRecoveryGuide.ts +0 -676
  142. package/src/utils/Helpers.ts +0 -688
  143. package/src/utils/IPFSClient.ts +0 -368
  144. package/src/utils/Logger.ts +0 -484
  145. package/src/utils/NonceManager.ts +0 -591
  146. package/src/utils/RateLimiter.ts +0 -534
  147. package/src/utils/ReceivedNonceTracker.ts +0 -567
  148. package/src/utils/SDKLifecycle.ts +0 -416
  149. package/src/utils/SecureNonce.ts +0 -78
  150. package/src/utils/Semaphore.ts +0 -276
  151. package/src/utils/UsedAttestationTracker.ts +0 -385
  152. package/src/utils/canonicalJson.ts +0 -38
  153. package/src/utils/circuitBreaker.ts +0 -324
  154. package/src/utils/computeTypeHash.ts +0 -48
  155. package/src/utils/fsSafe.ts +0 -80
  156. package/src/utils/index.ts +0 -80
  157. package/src/utils/retry.ts +0 -364
  158. package/src/utils/security.ts +0 -418
  159. package/src/utils/validation.ts +0 -540
  160. package/src/wallet/AutoWalletProvider.ts +0 -299
  161. package/src/wallet/EOAWalletProvider.ts +0 -69
  162. package/src/wallet/IWalletProvider.ts +0 -135
  163. package/src/wallet/aa/BundlerClient.ts +0 -274
  164. package/src/wallet/aa/DualNonceManager.ts +0 -173
  165. package/src/wallet/aa/PaymasterClient.ts +0 -174
  166. package/src/wallet/aa/TransactionBatcher.ts +0 -353
  167. package/src/wallet/aa/UserOpBuilder.ts +0 -246
  168. package/src/wallet/aa/constants.ts +0 -60
  169. package/src/wallet/keystore.ts +0 -240
@@ -1,40 +0,0 @@
1
- [
2
- {
3
- "inputs": [
4
- {"name": "spender", "type": "address"},
5
- {"name": "amount", "type": "uint256"}
6
- ],
7
- "name": "approve",
8
- "outputs": [{"name": "", "type": "bool"}],
9
- "stateMutability": "nonpayable",
10
- "type": "function"
11
- },
12
- {
13
- "inputs": [
14
- {"name": "account", "type": "address"}
15
- ],
16
- "name": "balanceOf",
17
- "outputs": [{"name": "", "type": "uint256"}],
18
- "stateMutability": "view",
19
- "type": "function"
20
- },
21
- {
22
- "inputs": [
23
- {"name": "owner", "type": "address"},
24
- {"name": "spender", "type": "address"}
25
- ],
26
- "name": "allowance",
27
- "outputs": [{"name": "", "type": "uint256"}],
28
- "stateMutability": "view",
29
- "type": "function"
30
- },
31
- {
32
- "inputs": [],
33
- "name": "decimals",
34
- "outputs": [{"name": "", "type": "uint8"}],
35
- "stateMutability": "view",
36
- "type": "function"
37
- }
38
- ]
39
-
40
-
@@ -1,134 +0,0 @@
1
- [
2
- {
3
- "type": "constructor",
4
- "inputs": [
5
- { "name": "_token", "type": "address", "internalType": "address" },
6
- { "name": "_kernel", "type": "address", "internalType": "address" }
7
- ],
8
- "stateMutability": "nonpayable"
9
- },
10
- {
11
- "type": "function",
12
- "name": "token",
13
- "inputs": [],
14
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
15
- "stateMutability": "view"
16
- },
17
- {
18
- "type": "function",
19
- "name": "kernel",
20
- "inputs": [],
21
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
22
- "stateMutability": "view"
23
- },
24
- {
25
- "type": "function",
26
- "name": "escrows",
27
- "inputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
28
- "outputs": [
29
- { "name": "requester", "type": "address", "internalType": "address" },
30
- { "name": "provider", "type": "address", "internalType": "address" },
31
- { "name": "amount", "type": "uint256", "internalType": "uint256" },
32
- { "name": "releasedAmount", "type": "uint256", "internalType": "uint256" },
33
- { "name": "active", "type": "bool", "internalType": "bool" }
34
- ],
35
- "stateMutability": "view"
36
- },
37
- {
38
- "type": "function",
39
- "name": "createEscrow",
40
- "inputs": [
41
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
42
- { "name": "requester", "type": "address", "internalType": "address" },
43
- { "name": "provider", "type": "address", "internalType": "address" },
44
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
45
- ],
46
- "outputs": [],
47
- "stateMutability": "nonpayable"
48
- },
49
- {
50
- "type": "function",
51
- "name": "verifyEscrow",
52
- "inputs": [
53
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
54
- { "name": "requester", "type": "address", "internalType": "address" },
55
- { "name": "provider", "type": "address", "internalType": "address" },
56
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
57
- ],
58
- "outputs": [
59
- { "name": "isActive", "type": "bool", "internalType": "bool" },
60
- { "name": "escrowAmount", "type": "uint256", "internalType": "uint256" }
61
- ],
62
- "stateMutability": "view"
63
- },
64
- {
65
- "type": "function",
66
- "name": "payoutToProvider",
67
- "inputs": [
68
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
69
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
70
- ],
71
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
72
- "stateMutability": "nonpayable"
73
- },
74
- {
75
- "type": "function",
76
- "name": "refundToRequester",
77
- "inputs": [
78
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
79
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
80
- ],
81
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
82
- "stateMutability": "nonpayable"
83
- },
84
- {
85
- "type": "function",
86
- "name": "payout",
87
- "inputs": [
88
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
89
- { "name": "recipient", "type": "address", "internalType": "address" },
90
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
91
- ],
92
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
93
- "stateMutability": "nonpayable"
94
- },
95
- {
96
- "type": "function",
97
- "name": "remaining",
98
- "inputs": [{ "name": "escrowId", "type": "bytes32", "internalType": "bytes32" }],
99
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
100
- "stateMutability": "view"
101
- },
102
- {
103
- "type": "event",
104
- "name": "EscrowCreated",
105
- "anonymous": false,
106
- "inputs": [
107
- { "name": "escrowId", "type": "bytes32", "indexed": true, "internalType": "bytes32" },
108
- { "name": "requester", "type": "address", "indexed": true, "internalType": "address" },
109
- { "name": "provider", "type": "address", "indexed": true, "internalType": "address" },
110
- { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
111
- ]
112
- },
113
- {
114
- "type": "event",
115
- "name": "EscrowPayout",
116
- "anonymous": false,
117
- "inputs": [
118
- { "name": "escrowId", "type": "bytes32", "indexed": true, "internalType": "bytes32" },
119
- { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
120
- { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
121
- ]
122
- },
123
- {
124
- "type": "event",
125
- "name": "EscrowCompleted",
126
- "anonymous": false,
127
- "inputs": [
128
- { "name": "escrowId", "type": "bytes32", "indexed": true, "internalType": "bytes32" },
129
- { "name": "totalReleased", "type": "uint256", "indexed": false, "internalType": "uint256" }
130
- ]
131
- }
132
- ]
133
-
134
-
@@ -1,316 +0,0 @@
1
- [
2
- {
3
- "anonymous": false,
4
- "inputs": [
5
- {
6
- "indexed": true,
7
- "name": "identity",
8
- "type": "address"
9
- },
10
- {
11
- "indexed": false,
12
- "name": "owner",
13
- "type": "address"
14
- },
15
- {
16
- "indexed": false,
17
- "name": "previousChange",
18
- "type": "uint256"
19
- }
20
- ],
21
- "name": "DIDOwnerChanged",
22
- "type": "event"
23
- },
24
- {
25
- "anonymous": false,
26
- "inputs": [
27
- {
28
- "indexed": true,
29
- "name": "identity",
30
- "type": "address"
31
- },
32
- {
33
- "indexed": false,
34
- "name": "delegateType",
35
- "type": "bytes32"
36
- },
37
- {
38
- "indexed": false,
39
- "name": "delegate",
40
- "type": "address"
41
- },
42
- {
43
- "indexed": false,
44
- "name": "validTo",
45
- "type": "uint256"
46
- },
47
- {
48
- "indexed": false,
49
- "name": "previousChange",
50
- "type": "uint256"
51
- }
52
- ],
53
- "name": "DIDDelegateChanged",
54
- "type": "event"
55
- },
56
- {
57
- "anonymous": false,
58
- "inputs": [
59
- {
60
- "indexed": true,
61
- "name": "identity",
62
- "type": "address"
63
- },
64
- {
65
- "indexed": false,
66
- "name": "name",
67
- "type": "bytes32"
68
- },
69
- {
70
- "indexed": false,
71
- "name": "value",
72
- "type": "bytes"
73
- },
74
- {
75
- "indexed": false,
76
- "name": "validTo",
77
- "type": "uint256"
78
- },
79
- {
80
- "indexed": false,
81
- "name": "previousChange",
82
- "type": "uint256"
83
- }
84
- ],
85
- "name": "DIDAttributeChanged",
86
- "type": "event"
87
- },
88
- {
89
- "constant": true,
90
- "inputs": [
91
- {
92
- "name": "identity",
93
- "type": "address"
94
- }
95
- ],
96
- "name": "identityOwner",
97
- "outputs": [
98
- {
99
- "name": "",
100
- "type": "address"
101
- }
102
- ],
103
- "payable": false,
104
- "stateMutability": "view",
105
- "type": "function"
106
- },
107
- {
108
- "constant": false,
109
- "inputs": [
110
- {
111
- "name": "identity",
112
- "type": "address"
113
- },
114
- {
115
- "name": "newOwner",
116
- "type": "address"
117
- }
118
- ],
119
- "name": "changeOwner",
120
- "outputs": [],
121
- "payable": false,
122
- "stateMutability": "nonpayable",
123
- "type": "function"
124
- },
125
- {
126
- "constant": false,
127
- "inputs": [
128
- {
129
- "name": "identity",
130
- "type": "address"
131
- },
132
- {
133
- "name": "sigV",
134
- "type": "uint8"
135
- },
136
- {
137
- "name": "sigR",
138
- "type": "bytes32"
139
- },
140
- {
141
- "name": "sigS",
142
- "type": "bytes32"
143
- },
144
- {
145
- "name": "newOwner",
146
- "type": "address"
147
- }
148
- ],
149
- "name": "changeOwnerSigned",
150
- "outputs": [],
151
- "payable": false,
152
- "stateMutability": "nonpayable",
153
- "type": "function"
154
- },
155
- {
156
- "constant": true,
157
- "inputs": [
158
- {
159
- "name": "identity",
160
- "type": "address"
161
- },
162
- {
163
- "name": "delegateType",
164
- "type": "bytes32"
165
- },
166
- {
167
- "name": "delegate",
168
- "type": "address"
169
- }
170
- ],
171
- "name": "validDelegate",
172
- "outputs": [
173
- {
174
- "name": "",
175
- "type": "bool"
176
- }
177
- ],
178
- "payable": false,
179
- "stateMutability": "view",
180
- "type": "function"
181
- },
182
- {
183
- "constant": false,
184
- "inputs": [
185
- {
186
- "name": "identity",
187
- "type": "address"
188
- },
189
- {
190
- "name": "delegateType",
191
- "type": "bytes32"
192
- },
193
- {
194
- "name": "delegate",
195
- "type": "address"
196
- },
197
- {
198
- "name": "validity",
199
- "type": "uint256"
200
- }
201
- ],
202
- "name": "addDelegate",
203
- "outputs": [],
204
- "payable": false,
205
- "stateMutability": "nonpayable",
206
- "type": "function"
207
- },
208
- {
209
- "constant": false,
210
- "inputs": [
211
- {
212
- "name": "identity",
213
- "type": "address"
214
- },
215
- {
216
- "name": "delegateType",
217
- "type": "bytes32"
218
- },
219
- {
220
- "name": "delegate",
221
- "type": "address"
222
- }
223
- ],
224
- "name": "revokeDelegate",
225
- "outputs": [],
226
- "payable": false,
227
- "stateMutability": "nonpayable",
228
- "type": "function"
229
- },
230
- {
231
- "constant": false,
232
- "inputs": [
233
- {
234
- "name": "identity",
235
- "type": "address"
236
- },
237
- {
238
- "name": "name",
239
- "type": "bytes32"
240
- },
241
- {
242
- "name": "value",
243
- "type": "bytes"
244
- },
245
- {
246
- "name": "validity",
247
- "type": "uint256"
248
- }
249
- ],
250
- "name": "setAttribute",
251
- "outputs": [],
252
- "payable": false,
253
- "stateMutability": "nonpayable",
254
- "type": "function"
255
- },
256
- {
257
- "constant": false,
258
- "inputs": [
259
- {
260
- "name": "identity",
261
- "type": "address"
262
- },
263
- {
264
- "name": "name",
265
- "type": "bytes32"
266
- },
267
- {
268
- "name": "value",
269
- "type": "bytes"
270
- }
271
- ],
272
- "name": "revokeAttribute",
273
- "outputs": [],
274
- "payable": false,
275
- "stateMutability": "nonpayable",
276
- "type": "function"
277
- },
278
- {
279
- "constant": true,
280
- "inputs": [
281
- {
282
- "name": "",
283
- "type": "address"
284
- }
285
- ],
286
- "name": "changed",
287
- "outputs": [
288
- {
289
- "name": "",
290
- "type": "uint256"
291
- }
292
- ],
293
- "payable": false,
294
- "stateMutability": "view",
295
- "type": "function"
296
- },
297
- {
298
- "constant": true,
299
- "inputs": [
300
- {
301
- "name": "",
302
- "type": "address"
303
- }
304
- ],
305
- "name": "nonce",
306
- "outputs": [
307
- {
308
- "name": "",
309
- "type": "uint256"
310
- }
311
- ],
312
- "payable": false,
313
- "stateMutability": "view",
314
- "type": "function"
315
- }
316
- ]
@@ -1,173 +0,0 @@
1
- /**
2
- * AdapterRegistry - Central registry for payment adapters.
3
- *
4
- * Manages the collection of available adapters and provides
5
- * methods for registration, lookup, and priority-based retrieval.
6
- *
7
- * @module adapters/AdapterRegistry
8
- */
9
-
10
- import { IAdapter } from './IAdapter';
11
-
12
- /**
13
- * AdapterRegistry - Central registry for managing available adapters.
14
- *
15
- * The registry maintains a collection of adapters indexed by their ID.
16
- * It provides methods for:
17
- * - Registration and unregistration
18
- * - Lookup by ID
19
- * - Priority-sorted retrieval
20
- *
21
- * @example
22
- * ```typescript
23
- * const registry = new AdapterRegistry();
24
- *
25
- * // Register adapters
26
- * registry.register(basicAdapter);
27
- * registry.register(standardAdapter);
28
- *
29
- * // Lookup by ID
30
- * const adapter = registry.get('basic');
31
- *
32
- * // Get all adapters sorted by priority
33
- * const adapters = registry.getByPriority();
34
- * ```
35
- */
36
- export class AdapterRegistry {
37
- /**
38
- * Internal map of adapters by ID.
39
- */
40
- private adapters: Map<string, IAdapter> = new Map();
41
-
42
- /**
43
- * Register an adapter.
44
- *
45
- * If an adapter with the same ID already exists, it will be replaced.
46
- *
47
- * @param adapter - Adapter to register
48
- *
49
- * @example
50
- * ```typescript
51
- * registry.register(new BasicAdapter(runtime, requesterAddress));
52
- * ```
53
- */
54
- register(adapter: IAdapter): void {
55
- if (!adapter.metadata?.id) {
56
- throw new Error('Cannot register adapter without metadata.id');
57
- }
58
- this.adapters.set(adapter.metadata.id, adapter);
59
- }
60
-
61
- /**
62
- * Unregister an adapter by ID.
63
- *
64
- * @param id - Adapter ID to remove
65
- * @returns True if adapter was found and removed, false otherwise
66
- *
67
- * @example
68
- * ```typescript
69
- * const removed = registry.unregister('custom-adapter');
70
- * ```
71
- */
72
- unregister(id: string): boolean {
73
- return this.adapters.delete(id);
74
- }
75
-
76
- /**
77
- * Get an adapter by ID.
78
- *
79
- * @param id - Adapter ID to look up
80
- * @returns The adapter or undefined if not found
81
- *
82
- * @example
83
- * ```typescript
84
- * const adapter = registry.get('standard');
85
- * if (adapter) {
86
- * await adapter.pay(params);
87
- * }
88
- * ```
89
- */
90
- get(id: string): IAdapter | undefined {
91
- return this.adapters.get(id);
92
- }
93
-
94
- /**
95
- * Get all registered adapters.
96
- *
97
- * Returns adapters in insertion order.
98
- *
99
- * @returns Array of all registered adapters
100
- *
101
- * @example
102
- * ```typescript
103
- * const all = registry.getAll();
104
- * console.log(`${all.length} adapters registered`);
105
- * ```
106
- */
107
- getAll(): IAdapter[] {
108
- return Array.from(this.adapters.values());
109
- }
110
-
111
- /**
112
- * Check if an adapter is registered.
113
- *
114
- * @param id - Adapter ID to check
115
- * @returns True if adapter is registered
116
- *
117
- * @example
118
- * ```typescript
119
- * if (registry.has('x402')) {
120
- * console.log('x402 adapter available');
121
- * }
122
- * ```
123
- */
124
- has(id: string): boolean {
125
- return this.adapters.has(id);
126
- }
127
-
128
- /**
129
- * Get adapters sorted by priority (highest first).
130
- *
131
- * Higher priority adapters are tried first during selection.
132
- *
133
- * @returns Array of adapters sorted by priority descending
134
- *
135
- * @example
136
- * ```typescript
137
- * const byPriority = registry.getByPriority();
138
- * // byPriority[0] has highest priority
139
- * ```
140
- */
141
- getByPriority(): IAdapter[] {
142
- return this.getAll().sort(
143
- (a, b) => b.metadata.priority - a.metadata.priority
144
- );
145
- }
146
-
147
- /**
148
- * Get the number of registered adapters.
149
- *
150
- * @returns Number of adapters
151
- */
152
- get size(): number {
153
- return this.adapters.size;
154
- }
155
-
156
- /**
157
- * Get all adapter IDs.
158
- *
159
- * @returns Array of adapter IDs
160
- */
161
- getIds(): string[] {
162
- return Array.from(this.adapters.keys());
163
- }
164
-
165
- /**
166
- * Clear all registered adapters.
167
- *
168
- * Primarily useful for testing.
169
- */
170
- clear(): void {
171
- this.adapters.clear();
172
- }
173
- }