@agirails/sdk 2.5.2 → 2.5.4

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 (172) hide show
  1. package/dist/ACTPClient.d.ts +18 -0
  2. package/dist/ACTPClient.d.ts.map +1 -1
  3. package/dist/ACTPClient.js +67 -22
  4. package/dist/ACTPClient.js.map +1 -1
  5. package/dist/adapters/BasicAdapter.d.ts +12 -0
  6. package/dist/adapters/BasicAdapter.d.ts.map +1 -1
  7. package/dist/adapters/BasicAdapter.js +30 -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 +45 -11
  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/cli/utils/client.d.ts.map +1 -1
  20. package/dist/cli/utils/client.js +1 -0
  21. package/dist/cli/utils/client.js.map +1 -1
  22. package/dist/config/networks.d.ts +2 -2
  23. package/dist/config/networks.d.ts.map +1 -1
  24. package/dist/config/networks.js +27 -22
  25. package/dist/config/networks.js.map +1 -1
  26. package/dist/level0/request.d.ts.map +1 -1
  27. package/dist/level0/request.js +2 -1
  28. package/dist/level0/request.js.map +1 -1
  29. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
  30. package/dist/runtime/BlockchainRuntime.js +11 -5
  31. package/dist/runtime/BlockchainRuntime.js.map +1 -1
  32. package/dist/runtime/MockStateManager.d.ts.map +1 -1
  33. package/dist/runtime/MockStateManager.js +2 -1
  34. package/dist/runtime/MockStateManager.js.map +1 -1
  35. package/dist/utils/IPFSClient.d.ts +3 -1
  36. package/dist/utils/IPFSClient.d.ts.map +1 -1
  37. package/dist/utils/IPFSClient.js +27 -7
  38. package/dist/utils/IPFSClient.js.map +1 -1
  39. package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
  40. package/dist/wallet/AutoWalletProvider.js +52 -18
  41. package/dist/wallet/AutoWalletProvider.js.map +1 -1
  42. package/dist/wallet/SmartWalletRouter.d.ts +116 -0
  43. package/dist/wallet/SmartWalletRouter.d.ts.map +1 -0
  44. package/dist/wallet/SmartWalletRouter.js +212 -0
  45. package/dist/wallet/SmartWalletRouter.js.map +1 -0
  46. package/dist/wallet/aa/DualNonceManager.d.ts +19 -0
  47. package/dist/wallet/aa/DualNonceManager.d.ts.map +1 -1
  48. package/dist/wallet/aa/DualNonceManager.js +100 -5
  49. package/dist/wallet/aa/DualNonceManager.js.map +1 -1
  50. package/package.json +3 -6
  51. package/src/ACTPClient.ts +0 -1579
  52. package/src/abi/ACTPKernel.json +0 -1356
  53. package/src/abi/AgentRegistry.json +0 -915
  54. package/src/abi/ERC20.json +0 -40
  55. package/src/abi/EscrowVault.json +0 -134
  56. package/src/abi/IdentityRegistry.json +0 -316
  57. package/src/adapters/AdapterRegistry.ts +0 -173
  58. package/src/adapters/AdapterRouter.ts +0 -416
  59. package/src/adapters/BaseAdapter.ts +0 -498
  60. package/src/adapters/BasicAdapter.ts +0 -514
  61. package/src/adapters/IAdapter.ts +0 -292
  62. package/src/adapters/StandardAdapter.ts +0 -555
  63. package/src/adapters/X402Adapter.ts +0 -731
  64. package/src/adapters/index.ts +0 -60
  65. package/src/builders/DeliveryProofBuilder.ts +0 -327
  66. package/src/builders/QuoteBuilder.ts +0 -483
  67. package/src/builders/index.ts +0 -17
  68. package/src/cli/commands/balance.ts +0 -110
  69. package/src/cli/commands/batch.ts +0 -487
  70. package/src/cli/commands/config.ts +0 -231
  71. package/src/cli/commands/deploy-check.ts +0 -364
  72. package/src/cli/commands/deploy-env.ts +0 -120
  73. package/src/cli/commands/diff.ts +0 -141
  74. package/src/cli/commands/init.ts +0 -469
  75. package/src/cli/commands/mint.ts +0 -116
  76. package/src/cli/commands/pay.ts +0 -113
  77. package/src/cli/commands/publish.ts +0 -475
  78. package/src/cli/commands/pull.ts +0 -124
  79. package/src/cli/commands/register.ts +0 -247
  80. package/src/cli/commands/simulate.ts +0 -345
  81. package/src/cli/commands/time.ts +0 -302
  82. package/src/cli/commands/tx.ts +0 -448
  83. package/src/cli/commands/watch.ts +0 -211
  84. package/src/cli/index.ts +0 -134
  85. package/src/cli/utils/client.ts +0 -251
  86. package/src/cli/utils/config.ts +0 -389
  87. package/src/cli/utils/output.ts +0 -465
  88. package/src/cli/utils/wallet.ts +0 -109
  89. package/src/config/agirailsmd.ts +0 -262
  90. package/src/config/networks.ts +0 -275
  91. package/src/config/pendingPublish.ts +0 -237
  92. package/src/config/publishPipeline.ts +0 -359
  93. package/src/config/syncOperations.ts +0 -279
  94. package/src/erc8004/ERC8004Bridge.ts +0 -462
  95. package/src/erc8004/ReputationReporter.ts +0 -468
  96. package/src/erc8004/index.ts +0 -61
  97. package/src/errors/index.ts +0 -427
  98. package/src/index.ts +0 -364
  99. package/src/level0/Provider.ts +0 -117
  100. package/src/level0/ServiceDirectory.ts +0 -131
  101. package/src/level0/index.ts +0 -10
  102. package/src/level0/provide.ts +0 -132
  103. package/src/level0/request.ts +0 -432
  104. package/src/level1/Agent.ts +0 -1426
  105. package/src/level1/index.ts +0 -10
  106. package/src/level1/pricing/PriceCalculator.ts +0 -255
  107. package/src/level1/pricing/PricingStrategy.ts +0 -198
  108. package/src/level1/types/Job.ts +0 -179
  109. package/src/level1/types/Options.ts +0 -291
  110. package/src/level1/types/index.ts +0 -8
  111. package/src/protocol/ACTPKernel.ts +0 -808
  112. package/src/protocol/AgentRegistry.ts +0 -559
  113. package/src/protocol/DIDManager.ts +0 -629
  114. package/src/protocol/DIDResolver.ts +0 -554
  115. package/src/protocol/EASHelper.ts +0 -378
  116. package/src/protocol/EscrowVault.ts +0 -255
  117. package/src/protocol/EventMonitor.ts +0 -204
  118. package/src/protocol/MessageSigner.ts +0 -510
  119. package/src/protocol/ProofGenerator.ts +0 -339
  120. package/src/protocol/QuoteBuilder.ts +0 -15
  121. package/src/registry/AgentRegistryClient.ts +0 -202
  122. package/src/runtime/BlockchainRuntime.ts +0 -1015
  123. package/src/runtime/IACTPRuntime.ts +0 -306
  124. package/src/runtime/MockRuntime.ts +0 -1298
  125. package/src/runtime/MockStateManager.ts +0 -576
  126. package/src/runtime/index.ts +0 -25
  127. package/src/runtime/types/MockState.ts +0 -237
  128. package/src/storage/ArchiveBundleBuilder.ts +0 -561
  129. package/src/storage/ArweaveClient.ts +0 -946
  130. package/src/storage/FilebaseClient.ts +0 -790
  131. package/src/storage/index.ts +0 -96
  132. package/src/storage/types.ts +0 -348
  133. package/src/types/adapter.ts +0 -310
  134. package/src/types/agent.ts +0 -79
  135. package/src/types/did.ts +0 -223
  136. package/src/types/eip712.ts +0 -175
  137. package/src/types/erc8004.ts +0 -293
  138. package/src/types/escrow.ts +0 -27
  139. package/src/types/index.ts +0 -17
  140. package/src/types/message.ts +0 -145
  141. package/src/types/state.ts +0 -87
  142. package/src/types/transaction.ts +0 -69
  143. package/src/types/x402.ts +0 -251
  144. package/src/utils/ErrorRecoveryGuide.ts +0 -676
  145. package/src/utils/Helpers.ts +0 -688
  146. package/src/utils/IPFSClient.ts +0 -368
  147. package/src/utils/Logger.ts +0 -484
  148. package/src/utils/NonceManager.ts +0 -591
  149. package/src/utils/RateLimiter.ts +0 -534
  150. package/src/utils/ReceivedNonceTracker.ts +0 -567
  151. package/src/utils/SDKLifecycle.ts +0 -416
  152. package/src/utils/SecureNonce.ts +0 -78
  153. package/src/utils/Semaphore.ts +0 -276
  154. package/src/utils/UsedAttestationTracker.ts +0 -385
  155. package/src/utils/canonicalJson.ts +0 -38
  156. package/src/utils/circuitBreaker.ts +0 -324
  157. package/src/utils/computeTypeHash.ts +0 -48
  158. package/src/utils/fsSafe.ts +0 -80
  159. package/src/utils/index.ts +0 -80
  160. package/src/utils/retry.ts +0 -364
  161. package/src/utils/security.ts +0 -418
  162. package/src/utils/validation.ts +0 -540
  163. package/src/wallet/AutoWalletProvider.ts +0 -299
  164. package/src/wallet/EOAWalletProvider.ts +0 -69
  165. package/src/wallet/IWalletProvider.ts +0 -135
  166. package/src/wallet/aa/BundlerClient.ts +0 -274
  167. package/src/wallet/aa/DualNonceManager.ts +0 -173
  168. package/src/wallet/aa/PaymasterClient.ts +0 -174
  169. package/src/wallet/aa/TransactionBatcher.ts +0 -353
  170. package/src/wallet/aa/UserOpBuilder.ts +0 -246
  171. package/src/wallet/aa/constants.ts +0 -60
  172. 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
- }