tempo.ts 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +92 -0
  2. package/dist/chains.d.ts +1477 -0
  3. package/dist/chains.d.ts.map +1 -0
  4. package/dist/chains.js +43 -0
  5. package/dist/chains.js.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +2 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/internal/types.d.ts +284 -0
  11. package/dist/internal/types.d.ts.map +1 -0
  12. package/dist/internal/types.js +2 -0
  13. package/dist/internal/types.js.map +1 -0
  14. package/dist/ox/TokenId.d.ts +18 -0
  15. package/dist/ox/TokenId.d.ts.map +1 -0
  16. package/dist/ox/TokenId.js +29 -0
  17. package/dist/ox/TokenId.js.map +1 -0
  18. package/dist/ox/TokenRole.d.ts +11 -0
  19. package/dist/ox/TokenRole.d.ts.map +1 -0
  20. package/dist/ox/TokenRole.js +22 -0
  21. package/dist/ox/TokenRole.js.map +1 -0
  22. package/dist/ox/Transaction.d.ts +161 -0
  23. package/dist/ox/Transaction.d.ts.map +1 -0
  24. package/dist/ox/Transaction.js +117 -0
  25. package/dist/ox/Transaction.js.map +1 -0
  26. package/dist/ox/TransactionEnvelopeFeeToken.d.ts +393 -0
  27. package/dist/ox/TransactionEnvelopeFeeToken.d.ts.map +1 -0
  28. package/dist/ox/TransactionEnvelopeFeeToken.js +452 -0
  29. package/dist/ox/TransactionEnvelopeFeeToken.js.map +1 -0
  30. package/dist/ox/TransactionRequest.d.ts +62 -0
  31. package/dist/ox/TransactionRequest.d.ts.map +1 -0
  32. package/dist/ox/TransactionRequest.js +66 -0
  33. package/dist/ox/TransactionRequest.js.map +1 -0
  34. package/dist/ox/index.d.ts +5 -0
  35. package/dist/ox/index.d.ts.map +1 -0
  36. package/dist/ox/index.js +5 -0
  37. package/dist/ox/index.js.map +1 -0
  38. package/dist/prool/Instance.d.ts +92 -0
  39. package/dist/prool/Instance.d.ts.map +1 -0
  40. package/dist/prool/Instance.js +96 -0
  41. package/dist/prool/Instance.js.map +1 -0
  42. package/dist/prool/index.d.ts +2 -0
  43. package/dist/prool/index.d.ts.map +1 -0
  44. package/dist/prool/index.js +2 -0
  45. package/dist/prool/index.js.map +1 -0
  46. package/dist/viem/abis.d.ts +2058 -0
  47. package/dist/viem/abis.d.ts.map +1 -0
  48. package/dist/viem/abis.js +1599 -0
  49. package/dist/viem/abis.js.map +1 -0
  50. package/dist/viem/actions/amm.d.ts +2091 -0
  51. package/dist/viem/actions/amm.d.ts.map +1 -0
  52. package/dist/viem/actions/amm.js +876 -0
  53. package/dist/viem/actions/amm.js.map +1 -0
  54. package/dist/viem/actions/fee.d.ts +727 -0
  55. package/dist/viem/actions/fee.d.ts.map +1 -0
  56. package/dist/viem/actions/fee.js +230 -0
  57. package/dist/viem/actions/fee.js.map +1 -0
  58. package/dist/viem/actions/index.d.ts +5 -0
  59. package/dist/viem/actions/index.d.ts.map +1 -0
  60. package/dist/viem/actions/index.js +5 -0
  61. package/dist/viem/actions/index.js.map +1 -0
  62. package/dist/viem/actions/policy.d.ts +1900 -0
  63. package/dist/viem/actions/policy.d.ts.map +1 -0
  64. package/dist/viem/actions/policy.js +841 -0
  65. package/dist/viem/actions/policy.js.map +1 -0
  66. package/dist/viem/actions/token.d.ts +13759 -0
  67. package/dist/viem/actions/token.d.ts.map +1 -0
  68. package/dist/viem/actions/token.js +2579 -0
  69. package/dist/viem/actions/token.js.map +1 -0
  70. package/dist/viem/addresses.d.ts +8 -0
  71. package/dist/viem/addresses.d.ts.map +1 -0
  72. package/dist/viem/addresses.js +8 -0
  73. package/dist/viem/addresses.js.map +1 -0
  74. package/dist/viem/chain.d.ts +341 -0
  75. package/dist/viem/chain.d.ts.map +1 -0
  76. package/dist/viem/chain.js +22 -0
  77. package/dist/viem/chain.js.map +1 -0
  78. package/dist/viem/client.d.ts +27 -0
  79. package/dist/viem/client.d.ts.map +1 -0
  80. package/dist/viem/client.js +28 -0
  81. package/dist/viem/client.js.map +1 -0
  82. package/dist/viem/decorator.d.ts +1636 -0
  83. package/dist/viem/decorator.d.ts.map +1 -0
  84. package/dist/viem/decorator.js +95 -0
  85. package/dist/viem/decorator.js.map +1 -0
  86. package/dist/viem/formatters.d.ts +4 -0
  87. package/dist/viem/formatters.d.ts.map +1 -0
  88. package/dist/viem/formatters.js +69 -0
  89. package/dist/viem/formatters.js.map +1 -0
  90. package/dist/viem/index.d.ts +9 -0
  91. package/dist/viem/index.d.ts.map +1 -0
  92. package/dist/viem/index.js +9 -0
  93. package/dist/viem/index.js.map +1 -0
  94. package/dist/viem/transaction.d.ts +54 -0
  95. package/dist/viem/transaction.d.ts.map +1 -0
  96. package/dist/viem/transaction.js +108 -0
  97. package/dist/viem/transaction.js.map +1 -0
  98. package/dist/viem/transport.d.ts +16 -0
  99. package/dist/viem/transport.d.ts.map +1 -0
  100. package/dist/viem/transport.js +33 -0
  101. package/dist/viem/transport.js.map +1 -0
  102. package/dist/viem/types.d.ts +10 -0
  103. package/dist/viem/types.d.ts.map +1 -0
  104. package/dist/viem/types.js +2 -0
  105. package/dist/viem/types.js.map +1 -0
  106. package/dist/viem/utils.d.ts +8 -0
  107. package/dist/viem/utils.d.ts.map +1 -0
  108. package/dist/viem/utils.js +9 -0
  109. package/dist/viem/utils.js.map +1 -0
  110. package/package.json +100 -2
  111. package/src/chains.ts +46 -0
  112. package/src/index.ts +1 -0
  113. package/src/internal/types.ts +414 -0
  114. package/src/ox/TokenId.test.ts +29 -0
  115. package/src/ox/TokenId.ts +35 -0
  116. package/src/ox/TokenRole.test.ts +20 -0
  117. package/src/ox/TokenRole.ts +27 -0
  118. package/src/ox/Transaction.test.ts +257 -0
  119. package/src/ox/Transaction.ts +247 -0
  120. package/src/ox/TransactionEnvelopeFeeToken.test.ts +1215 -0
  121. package/src/ox/TransactionEnvelopeFeeToken.ts +717 -0
  122. package/src/ox/TransactionRequest.ts +100 -0
  123. package/src/ox/index.ts +4 -0
  124. package/src/prool/Instance.test.ts +43 -0
  125. package/src/prool/Instance.ts +190 -0
  126. package/src/prool/index.ts +1 -0
  127. package/src/prool/internal/chain.json +106 -0
  128. package/src/prool/internal/consensus.toml +32 -0
  129. package/src/viem/abis.ts +1606 -0
  130. package/src/viem/actions/amm.test.ts +425 -0
  131. package/src/viem/actions/amm.ts +1308 -0
  132. package/src/viem/actions/fee.test.ts +281 -0
  133. package/src/viem/actions/fee.ts +362 -0
  134. package/src/viem/actions/index.ts +4 -0
  135. package/src/viem/actions/policy.test.ts +514 -0
  136. package/src/viem/actions/policy.ts +1284 -0
  137. package/src/viem/actions/token.test.ts +2172 -0
  138. package/src/viem/actions/token.ts +3830 -0
  139. package/src/viem/addresses.ts +10 -0
  140. package/src/viem/chain.ts +27 -0
  141. package/src/viem/client.bench-d.ts +8 -0
  142. package/src/viem/client.test.ts +152 -0
  143. package/src/viem/client.ts +91 -0
  144. package/src/viem/decorator.bench-d.ts +11 -0
  145. package/src/viem/decorator.test.ts +35 -0
  146. package/src/viem/decorator.ts +1914 -0
  147. package/src/viem/e2e.test.ts +410 -0
  148. package/src/viem/formatters.ts +100 -0
  149. package/src/viem/index.ts +8 -0
  150. package/src/viem/transaction.ts +253 -0
  151. package/src/viem/transport.ts +47 -0
  152. package/src/viem/types.ts +55 -0
  153. package/src/viem/utils.ts +37 -0
@@ -0,0 +1,1606 @@
1
+ // Generated with `bun run gen:abis`. Do not modify manually.
2
+
3
+ import * as Abi from 'ox/Abi'
4
+
5
+ export const feeAmmAbi = Abi.from([
6
+ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },
7
+ {
8
+ type: 'function',
9
+ name: 'M',
10
+ inputs: [],
11
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
12
+ stateMutability: 'view',
13
+ },
14
+ {
15
+ type: 'function',
16
+ name: 'MIN_LIQUIDITY',
17
+ inputs: [],
18
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
19
+ stateMutability: 'view',
20
+ },
21
+ {
22
+ type: 'function',
23
+ name: 'N',
24
+ inputs: [],
25
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
26
+ stateMutability: 'view',
27
+ },
28
+ {
29
+ type: 'function',
30
+ name: 'SCALE',
31
+ inputs: [],
32
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
33
+ stateMutability: 'view',
34
+ },
35
+ {
36
+ type: 'function',
37
+ name: 'burn',
38
+ inputs: [
39
+ { name: 'userToken', type: 'address', internalType: 'address' },
40
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
41
+ { name: 'liquidity', type: 'uint256', internalType: 'uint256' },
42
+ { name: 'to', type: 'address', internalType: 'address' },
43
+ ],
44
+ outputs: [
45
+ { name: 'amountUserToken', type: 'uint256', internalType: 'uint256' },
46
+ {
47
+ name: 'amountValidatorToken',
48
+ type: 'uint256',
49
+ internalType: 'uint256',
50
+ },
51
+ ],
52
+ stateMutability: 'nonpayable',
53
+ },
54
+ {
55
+ type: 'function',
56
+ name: 'getPool',
57
+ inputs: [
58
+ { name: 'userToken', type: 'address', internalType: 'address' },
59
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
60
+ ],
61
+ outputs: [
62
+ {
63
+ name: '',
64
+ type: 'tuple',
65
+ internalType: 'struct FeeAMM.Pool',
66
+ components: [
67
+ {
68
+ name: 'reserveUserToken',
69
+ type: 'uint128',
70
+ internalType: 'uint128',
71
+ },
72
+ {
73
+ name: 'reserveValidatorToken',
74
+ type: 'uint128',
75
+ internalType: 'uint128',
76
+ },
77
+ ],
78
+ },
79
+ ],
80
+ stateMutability: 'view',
81
+ },
82
+ {
83
+ type: 'function',
84
+ name: 'getPoolId',
85
+ inputs: [
86
+ { name: 'userToken', type: 'address', internalType: 'address' },
87
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
88
+ ],
89
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
90
+ stateMutability: 'pure',
91
+ },
92
+ {
93
+ type: 'function',
94
+ name: 'liquidityBalances',
95
+ inputs: [
96
+ { name: '', type: 'bytes32', internalType: 'bytes32' },
97
+ { name: '', type: 'address', internalType: 'address' },
98
+ ],
99
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
100
+ stateMutability: 'view',
101
+ },
102
+ {
103
+ type: 'function',
104
+ name: 'mint',
105
+ inputs: [
106
+ { name: 'userToken', type: 'address', internalType: 'address' },
107
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
108
+ { name: 'amountUserToken', type: 'uint256', internalType: 'uint256' },
109
+ {
110
+ name: 'amountValidatorToken',
111
+ type: 'uint256',
112
+ internalType: 'uint256',
113
+ },
114
+ { name: 'to', type: 'address', internalType: 'address' },
115
+ ],
116
+ outputs: [{ name: 'liquidity', type: 'uint256', internalType: 'uint256' }],
117
+ stateMutability: 'nonpayable',
118
+ },
119
+ {
120
+ type: 'function',
121
+ name: 'pools',
122
+ inputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
123
+ outputs: [
124
+ { name: 'reserveUserToken', type: 'uint128', internalType: 'uint128' },
125
+ {
126
+ name: 'reserveValidatorToken',
127
+ type: 'uint128',
128
+ internalType: 'uint128',
129
+ },
130
+ ],
131
+ stateMutability: 'view',
132
+ },
133
+ {
134
+ type: 'function',
135
+ name: 'rebalanceSwap',
136
+ inputs: [
137
+ { name: 'userToken', type: 'address', internalType: 'address' },
138
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
139
+ { name: 'amountOut', type: 'uint256', internalType: 'uint256' },
140
+ { name: 'to', type: 'address', internalType: 'address' },
141
+ ],
142
+ outputs: [{ name: 'amountIn', type: 'uint256', internalType: 'uint256' }],
143
+ stateMutability: 'nonpayable',
144
+ },
145
+ {
146
+ type: 'function',
147
+ name: 'totalSupply',
148
+ inputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
149
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
150
+ stateMutability: 'view',
151
+ },
152
+ {
153
+ type: 'event',
154
+ name: 'Burn',
155
+ inputs: [
156
+ {
157
+ name: 'sender',
158
+ type: 'address',
159
+ indexed: true,
160
+ internalType: 'address',
161
+ },
162
+ {
163
+ name: 'userToken',
164
+ type: 'address',
165
+ indexed: true,
166
+ internalType: 'address',
167
+ },
168
+ {
169
+ name: 'validatorToken',
170
+ type: 'address',
171
+ indexed: true,
172
+ internalType: 'address',
173
+ },
174
+ {
175
+ name: 'amountUserToken',
176
+ type: 'uint256',
177
+ indexed: false,
178
+ internalType: 'uint256',
179
+ },
180
+ {
181
+ name: 'amountValidatorToken',
182
+ type: 'uint256',
183
+ indexed: false,
184
+ internalType: 'uint256',
185
+ },
186
+ {
187
+ name: 'liquidity',
188
+ type: 'uint256',
189
+ indexed: false,
190
+ internalType: 'uint256',
191
+ },
192
+ { name: 'to', type: 'address', indexed: false, internalType: 'address' },
193
+ ],
194
+ anonymous: false,
195
+ },
196
+ {
197
+ type: 'event',
198
+ name: 'FeeSwap',
199
+ inputs: [
200
+ {
201
+ name: 'userToken',
202
+ type: 'address',
203
+ indexed: true,
204
+ internalType: 'address',
205
+ },
206
+ {
207
+ name: 'validatorToken',
208
+ type: 'address',
209
+ indexed: true,
210
+ internalType: 'address',
211
+ },
212
+ {
213
+ name: 'amountIn',
214
+ type: 'uint256',
215
+ indexed: false,
216
+ internalType: 'uint256',
217
+ },
218
+ {
219
+ name: 'amountOut',
220
+ type: 'uint256',
221
+ indexed: false,
222
+ internalType: 'uint256',
223
+ },
224
+ ],
225
+ anonymous: false,
226
+ },
227
+ {
228
+ type: 'event',
229
+ name: 'Mint',
230
+ inputs: [
231
+ {
232
+ name: 'sender',
233
+ type: 'address',
234
+ indexed: true,
235
+ internalType: 'address',
236
+ },
237
+ {
238
+ name: 'userToken',
239
+ type: 'address',
240
+ indexed: true,
241
+ internalType: 'address',
242
+ },
243
+ {
244
+ name: 'validatorToken',
245
+ type: 'address',
246
+ indexed: true,
247
+ internalType: 'address',
248
+ },
249
+ {
250
+ name: 'amountUserToken',
251
+ type: 'uint256',
252
+ indexed: false,
253
+ internalType: 'uint256',
254
+ },
255
+ {
256
+ name: 'amountValidatorToken',
257
+ type: 'uint256',
258
+ indexed: false,
259
+ internalType: 'uint256',
260
+ },
261
+ {
262
+ name: 'liquidity',
263
+ type: 'uint256',
264
+ indexed: false,
265
+ internalType: 'uint256',
266
+ },
267
+ ],
268
+ anonymous: false,
269
+ },
270
+ {
271
+ type: 'event',
272
+ name: 'RebalanceSwap',
273
+ inputs: [
274
+ {
275
+ name: 'userToken',
276
+ type: 'address',
277
+ indexed: true,
278
+ internalType: 'address',
279
+ },
280
+ {
281
+ name: 'validatorToken',
282
+ type: 'address',
283
+ indexed: true,
284
+ internalType: 'address',
285
+ },
286
+ {
287
+ name: 'swapper',
288
+ type: 'address',
289
+ indexed: true,
290
+ internalType: 'address',
291
+ },
292
+ {
293
+ name: 'amountIn',
294
+ type: 'uint256',
295
+ indexed: false,
296
+ internalType: 'uint256',
297
+ },
298
+ {
299
+ name: 'amountOut',
300
+ type: 'uint256',
301
+ indexed: false,
302
+ internalType: 'uint256',
303
+ },
304
+ ],
305
+ anonymous: false,
306
+ },
307
+ ])
308
+
309
+ export const tip20RolesAuthAbi = Abi.from([
310
+ {
311
+ type: 'function',
312
+ name: 'grantRole',
313
+ inputs: [
314
+ { name: 'role', type: 'bytes32', internalType: 'bytes32' },
315
+ { name: 'account', type: 'address', internalType: 'address' },
316
+ ],
317
+ outputs: [],
318
+ stateMutability: 'nonpayable',
319
+ },
320
+ {
321
+ type: 'function',
322
+ name: 'renounceRole',
323
+ inputs: [{ name: 'role', type: 'bytes32', internalType: 'bytes32' }],
324
+ outputs: [],
325
+ stateMutability: 'nonpayable',
326
+ },
327
+ {
328
+ type: 'function',
329
+ name: 'revokeRole',
330
+ inputs: [
331
+ { name: 'role', type: 'bytes32', internalType: 'bytes32' },
332
+ { name: 'account', type: 'address', internalType: 'address' },
333
+ ],
334
+ outputs: [],
335
+ stateMutability: 'nonpayable',
336
+ },
337
+ {
338
+ type: 'function',
339
+ name: 'setRoleAdmin',
340
+ inputs: [
341
+ { name: 'role', type: 'bytes32', internalType: 'bytes32' },
342
+ { name: 'adminRole', type: 'bytes32', internalType: 'bytes32' },
343
+ ],
344
+ outputs: [],
345
+ stateMutability: 'nonpayable',
346
+ },
347
+ {
348
+ type: 'event',
349
+ name: 'RoleAdminUpdated',
350
+ inputs: [
351
+ { name: 'role', type: 'bytes32', indexed: true, internalType: 'bytes32' },
352
+ {
353
+ name: 'newAdminRole',
354
+ type: 'bytes32',
355
+ indexed: true,
356
+ internalType: 'bytes32',
357
+ },
358
+ {
359
+ name: 'sender',
360
+ type: 'address',
361
+ indexed: true,
362
+ internalType: 'address',
363
+ },
364
+ ],
365
+ anonymous: false,
366
+ },
367
+ {
368
+ type: 'event',
369
+ name: 'RoleMembershipUpdated',
370
+ inputs: [
371
+ { name: 'role', type: 'bytes32', indexed: true, internalType: 'bytes32' },
372
+ {
373
+ name: 'account',
374
+ type: 'address',
375
+ indexed: true,
376
+ internalType: 'address',
377
+ },
378
+ {
379
+ name: 'sender',
380
+ type: 'address',
381
+ indexed: true,
382
+ internalType: 'address',
383
+ },
384
+ { name: 'hasRole', type: 'bool', indexed: false, internalType: 'bool' },
385
+ ],
386
+ anonymous: false,
387
+ },
388
+ { type: 'error', name: 'Unauthorized', inputs: [] },
389
+ ])
390
+
391
+ export const feeManagerAbi = Abi.from([
392
+ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },
393
+ {
394
+ type: 'function',
395
+ name: 'M',
396
+ inputs: [],
397
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
398
+ stateMutability: 'view',
399
+ },
400
+ {
401
+ type: 'function',
402
+ name: 'MIN_LIQUIDITY',
403
+ inputs: [],
404
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
405
+ stateMutability: 'view',
406
+ },
407
+ {
408
+ type: 'function',
409
+ name: 'N',
410
+ inputs: [],
411
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
412
+ stateMutability: 'view',
413
+ },
414
+ {
415
+ type: 'function',
416
+ name: 'SCALE',
417
+ inputs: [],
418
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
419
+ stateMutability: 'view',
420
+ },
421
+ {
422
+ type: 'function',
423
+ name: 'burn',
424
+ inputs: [
425
+ { name: 'userToken', type: 'address', internalType: 'address' },
426
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
427
+ { name: 'liquidity', type: 'uint256', internalType: 'uint256' },
428
+ { name: 'to', type: 'address', internalType: 'address' },
429
+ ],
430
+ outputs: [
431
+ { name: 'amountUserToken', type: 'uint256', internalType: 'uint256' },
432
+ {
433
+ name: 'amountValidatorToken',
434
+ type: 'uint256',
435
+ internalType: 'uint256',
436
+ },
437
+ ],
438
+ stateMutability: 'nonpayable',
439
+ },
440
+ {
441
+ type: 'function',
442
+ name: 'collectFeePostTx',
443
+ inputs: [
444
+ { name: 'user', type: 'address', internalType: 'address' },
445
+ { name: 'maxAmount', type: 'uint256', internalType: 'uint256' },
446
+ { name: 'actualUsed', type: 'uint256', internalType: 'uint256' },
447
+ { name: 'userToken', type: 'address', internalType: 'address' },
448
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
449
+ ],
450
+ outputs: [],
451
+ stateMutability: 'nonpayable',
452
+ },
453
+ {
454
+ type: 'function',
455
+ name: 'collectFeePreTx',
456
+ inputs: [
457
+ { name: 'user', type: 'address', internalType: 'address' },
458
+ { name: 'txToAddress', type: 'address', internalType: 'address' },
459
+ { name: 'maxAmount', type: 'uint256', internalType: 'uint256' },
460
+ ],
461
+ outputs: [{ name: 'userToken', type: 'address', internalType: 'address' }],
462
+ stateMutability: 'nonpayable',
463
+ },
464
+ {
465
+ type: 'function',
466
+ name: 'executeBlock',
467
+ inputs: [],
468
+ outputs: [],
469
+ stateMutability: 'nonpayable',
470
+ },
471
+ {
472
+ type: 'function',
473
+ name: 'getPool',
474
+ inputs: [
475
+ { name: 'userToken', type: 'address', internalType: 'address' },
476
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
477
+ ],
478
+ outputs: [
479
+ {
480
+ name: '',
481
+ type: 'tuple',
482
+ internalType: 'struct FeeAMM.Pool',
483
+ components: [
484
+ {
485
+ name: 'reserveUserToken',
486
+ type: 'uint128',
487
+ internalType: 'uint128',
488
+ },
489
+ {
490
+ name: 'reserveValidatorToken',
491
+ type: 'uint128',
492
+ internalType: 'uint128',
493
+ },
494
+ ],
495
+ },
496
+ ],
497
+ stateMutability: 'view',
498
+ },
499
+ {
500
+ type: 'function',
501
+ name: 'getPoolId',
502
+ inputs: [
503
+ { name: 'userToken', type: 'address', internalType: 'address' },
504
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
505
+ ],
506
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
507
+ stateMutability: 'pure',
508
+ },
509
+ {
510
+ type: 'function',
511
+ name: 'liquidityBalances',
512
+ inputs: [
513
+ { name: '', type: 'bytes32', internalType: 'bytes32' },
514
+ { name: '', type: 'address', internalType: 'address' },
515
+ ],
516
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
517
+ stateMutability: 'view',
518
+ },
519
+ {
520
+ type: 'function',
521
+ name: 'mint',
522
+ inputs: [
523
+ { name: 'userToken', type: 'address', internalType: 'address' },
524
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
525
+ { name: 'amountUserToken', type: 'uint256', internalType: 'uint256' },
526
+ {
527
+ name: 'amountValidatorToken',
528
+ type: 'uint256',
529
+ internalType: 'uint256',
530
+ },
531
+ { name: 'to', type: 'address', internalType: 'address' },
532
+ ],
533
+ outputs: [{ name: 'liquidity', type: 'uint256', internalType: 'uint256' }],
534
+ stateMutability: 'nonpayable',
535
+ },
536
+ {
537
+ type: 'function',
538
+ name: 'pools',
539
+ inputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
540
+ outputs: [
541
+ { name: 'reserveUserToken', type: 'uint128', internalType: 'uint128' },
542
+ {
543
+ name: 'reserveValidatorToken',
544
+ type: 'uint128',
545
+ internalType: 'uint128',
546
+ },
547
+ ],
548
+ stateMutability: 'view',
549
+ },
550
+ {
551
+ type: 'function',
552
+ name: 'rebalanceSwap',
553
+ inputs: [
554
+ { name: 'userToken', type: 'address', internalType: 'address' },
555
+ { name: 'validatorToken', type: 'address', internalType: 'address' },
556
+ { name: 'amountOut', type: 'uint256', internalType: 'uint256' },
557
+ { name: 'to', type: 'address', internalType: 'address' },
558
+ ],
559
+ outputs: [{ name: 'amountIn', type: 'uint256', internalType: 'uint256' }],
560
+ stateMutability: 'nonpayable',
561
+ },
562
+ {
563
+ type: 'function',
564
+ name: 'setUserToken',
565
+ inputs: [{ name: 'token', type: 'address', internalType: 'address' }],
566
+ outputs: [],
567
+ stateMutability: 'nonpayable',
568
+ },
569
+ {
570
+ type: 'function',
571
+ name: 'setValidatorToken',
572
+ inputs: [{ name: 'token', type: 'address', internalType: 'address' }],
573
+ outputs: [],
574
+ stateMutability: 'nonpayable',
575
+ },
576
+ {
577
+ type: 'function',
578
+ name: 'totalSupply',
579
+ inputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
580
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
581
+ stateMutability: 'view',
582
+ },
583
+ {
584
+ type: 'function',
585
+ name: 'userTokens',
586
+ inputs: [{ name: '', type: 'address', internalType: 'address' }],
587
+ outputs: [{ name: '', type: 'address', internalType: 'address' }],
588
+ stateMutability: 'view',
589
+ },
590
+ {
591
+ type: 'function',
592
+ name: 'validatorTokens',
593
+ inputs: [{ name: '', type: 'address', internalType: 'address' }],
594
+ outputs: [{ name: '', type: 'address', internalType: 'address' }],
595
+ stateMutability: 'view',
596
+ },
597
+ {
598
+ type: 'event',
599
+ name: 'Burn',
600
+ inputs: [
601
+ {
602
+ name: 'sender',
603
+ type: 'address',
604
+ indexed: true,
605
+ internalType: 'address',
606
+ },
607
+ {
608
+ name: 'userToken',
609
+ type: 'address',
610
+ indexed: true,
611
+ internalType: 'address',
612
+ },
613
+ {
614
+ name: 'validatorToken',
615
+ type: 'address',
616
+ indexed: true,
617
+ internalType: 'address',
618
+ },
619
+ {
620
+ name: 'amountUserToken',
621
+ type: 'uint256',
622
+ indexed: false,
623
+ internalType: 'uint256',
624
+ },
625
+ {
626
+ name: 'amountValidatorToken',
627
+ type: 'uint256',
628
+ indexed: false,
629
+ internalType: 'uint256',
630
+ },
631
+ {
632
+ name: 'liquidity',
633
+ type: 'uint256',
634
+ indexed: false,
635
+ internalType: 'uint256',
636
+ },
637
+ { name: 'to', type: 'address', indexed: false, internalType: 'address' },
638
+ ],
639
+ anonymous: false,
640
+ },
641
+ {
642
+ type: 'event',
643
+ name: 'FeeSwap',
644
+ inputs: [
645
+ {
646
+ name: 'userToken',
647
+ type: 'address',
648
+ indexed: true,
649
+ internalType: 'address',
650
+ },
651
+ {
652
+ name: 'validatorToken',
653
+ type: 'address',
654
+ indexed: true,
655
+ internalType: 'address',
656
+ },
657
+ {
658
+ name: 'amountIn',
659
+ type: 'uint256',
660
+ indexed: false,
661
+ internalType: 'uint256',
662
+ },
663
+ {
664
+ name: 'amountOut',
665
+ type: 'uint256',
666
+ indexed: false,
667
+ internalType: 'uint256',
668
+ },
669
+ ],
670
+ anonymous: false,
671
+ },
672
+ {
673
+ type: 'event',
674
+ name: 'Mint',
675
+ inputs: [
676
+ {
677
+ name: 'sender',
678
+ type: 'address',
679
+ indexed: true,
680
+ internalType: 'address',
681
+ },
682
+ {
683
+ name: 'userToken',
684
+ type: 'address',
685
+ indexed: true,
686
+ internalType: 'address',
687
+ },
688
+ {
689
+ name: 'validatorToken',
690
+ type: 'address',
691
+ indexed: true,
692
+ internalType: 'address',
693
+ },
694
+ {
695
+ name: 'amountUserToken',
696
+ type: 'uint256',
697
+ indexed: false,
698
+ internalType: 'uint256',
699
+ },
700
+ {
701
+ name: 'amountValidatorToken',
702
+ type: 'uint256',
703
+ indexed: false,
704
+ internalType: 'uint256',
705
+ },
706
+ {
707
+ name: 'liquidity',
708
+ type: 'uint256',
709
+ indexed: false,
710
+ internalType: 'uint256',
711
+ },
712
+ ],
713
+ anonymous: false,
714
+ },
715
+ {
716
+ type: 'event',
717
+ name: 'RebalanceSwap',
718
+ inputs: [
719
+ {
720
+ name: 'userToken',
721
+ type: 'address',
722
+ indexed: true,
723
+ internalType: 'address',
724
+ },
725
+ {
726
+ name: 'validatorToken',
727
+ type: 'address',
728
+ indexed: true,
729
+ internalType: 'address',
730
+ },
731
+ {
732
+ name: 'swapper',
733
+ type: 'address',
734
+ indexed: true,
735
+ internalType: 'address',
736
+ },
737
+ {
738
+ name: 'amountIn',
739
+ type: 'uint256',
740
+ indexed: false,
741
+ internalType: 'uint256',
742
+ },
743
+ {
744
+ name: 'amountOut',
745
+ type: 'uint256',
746
+ indexed: false,
747
+ internalType: 'uint256',
748
+ },
749
+ ],
750
+ anonymous: false,
751
+ },
752
+ {
753
+ type: 'event',
754
+ name: 'UserTokenSet',
755
+ inputs: [
756
+ { name: 'user', type: 'address', indexed: true, internalType: 'address' },
757
+ {
758
+ name: 'token',
759
+ type: 'address',
760
+ indexed: true,
761
+ internalType: 'address',
762
+ },
763
+ ],
764
+ anonymous: false,
765
+ },
766
+ {
767
+ type: 'event',
768
+ name: 'ValidatorTokenSet',
769
+ inputs: [
770
+ {
771
+ name: 'validator',
772
+ type: 'address',
773
+ indexed: true,
774
+ internalType: 'address',
775
+ },
776
+ {
777
+ name: 'token',
778
+ type: 'address',
779
+ indexed: true,
780
+ internalType: 'address',
781
+ },
782
+ ],
783
+ anonymous: false,
784
+ },
785
+ ])
786
+
787
+ export const tip20Abi = Abi.from([
788
+ {
789
+ type: 'constructor',
790
+ inputs: [
791
+ { name: '_name', type: 'string', internalType: 'string' },
792
+ { name: '_symbol', type: 'string', internalType: 'string' },
793
+ { name: '_currency', type: 'string', internalType: 'string' },
794
+ { name: 'admin', type: 'address', internalType: 'address' },
795
+ ],
796
+ stateMutability: 'nonpayable',
797
+ },
798
+ {
799
+ type: 'function',
800
+ name: 'BURN_BLOCKED_ROLE',
801
+ inputs: [],
802
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
803
+ stateMutability: 'view',
804
+ },
805
+ {
806
+ type: 'function',
807
+ name: 'DOMAIN_SEPARATOR',
808
+ inputs: [],
809
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
810
+ stateMutability: 'view',
811
+ },
812
+ {
813
+ type: 'function',
814
+ name: 'ISSUER_ROLE',
815
+ inputs: [],
816
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
817
+ stateMutability: 'view',
818
+ },
819
+ {
820
+ type: 'function',
821
+ name: 'PAUSE_ROLE',
822
+ inputs: [],
823
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
824
+ stateMutability: 'view',
825
+ },
826
+ {
827
+ type: 'function',
828
+ name: 'UNPAUSE_ROLE',
829
+ inputs: [],
830
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
831
+ stateMutability: 'view',
832
+ },
833
+ {
834
+ type: 'function',
835
+ name: 'allowance',
836
+ inputs: [
837
+ { name: '', type: 'address', internalType: 'address' },
838
+ { name: '', type: 'address', internalType: 'address' },
839
+ ],
840
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
841
+ stateMutability: 'view',
842
+ },
843
+ {
844
+ type: 'function',
845
+ name: 'approve',
846
+ inputs: [
847
+ { name: 'spender', type: 'address', internalType: 'address' },
848
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
849
+ ],
850
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
851
+ stateMutability: 'nonpayable',
852
+ },
853
+ {
854
+ type: 'function',
855
+ name: 'balanceOf',
856
+ inputs: [{ name: '', type: 'address', internalType: 'address' }],
857
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
858
+ stateMutability: 'view',
859
+ },
860
+ {
861
+ type: 'function',
862
+ name: 'burn',
863
+ inputs: [{ name: 'amount', type: 'uint256', internalType: 'uint256' }],
864
+ outputs: [],
865
+ stateMutability: 'nonpayable',
866
+ },
867
+ {
868
+ type: 'function',
869
+ name: 'burnBlocked',
870
+ inputs: [
871
+ { name: 'from', type: 'address', internalType: 'address' },
872
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
873
+ ],
874
+ outputs: [],
875
+ stateMutability: 'nonpayable',
876
+ },
877
+ {
878
+ type: 'function',
879
+ name: 'burnWithMemo',
880
+ inputs: [
881
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
882
+ { name: 'memo', type: 'bytes32', internalType: 'bytes32' },
883
+ ],
884
+ outputs: [],
885
+ stateMutability: 'nonpayable',
886
+ },
887
+ {
888
+ type: 'function',
889
+ name: 'changeTransferPolicyId',
890
+ inputs: [{ name: 'newPolicyId', type: 'uint64', internalType: 'uint64' }],
891
+ outputs: [],
892
+ stateMutability: 'nonpayable',
893
+ },
894
+ {
895
+ type: 'function',
896
+ name: 'currency',
897
+ inputs: [],
898
+ outputs: [{ name: '', type: 'string', internalType: 'string' }],
899
+ stateMutability: 'view',
900
+ },
901
+ {
902
+ type: 'function',
903
+ name: 'decimals',
904
+ inputs: [],
905
+ outputs: [{ name: '', type: 'uint8', internalType: 'uint8' }],
906
+ stateMutability: 'view',
907
+ },
908
+ {
909
+ type: 'function',
910
+ name: 'grantRole',
911
+ inputs: [
912
+ { name: 'role', type: 'bytes32', internalType: 'bytes32' },
913
+ { name: 'account', type: 'address', internalType: 'address' },
914
+ ],
915
+ outputs: [],
916
+ stateMutability: 'nonpayable',
917
+ },
918
+ {
919
+ type: 'function',
920
+ name: 'mint',
921
+ inputs: [
922
+ { name: 'to', type: 'address', internalType: 'address' },
923
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
924
+ ],
925
+ outputs: [],
926
+ stateMutability: 'nonpayable',
927
+ },
928
+ {
929
+ type: 'function',
930
+ name: 'mintWithMemo',
931
+ inputs: [
932
+ { name: 'to', type: 'address', internalType: 'address' },
933
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
934
+ { name: 'memo', type: 'bytes32', internalType: 'bytes32' },
935
+ ],
936
+ outputs: [],
937
+ stateMutability: 'nonpayable',
938
+ },
939
+ {
940
+ type: 'function',
941
+ name: 'name',
942
+ inputs: [],
943
+ outputs: [{ name: '', type: 'string', internalType: 'string' }],
944
+ stateMutability: 'view',
945
+ },
946
+ {
947
+ type: 'function',
948
+ name: 'nonces',
949
+ inputs: [{ name: '', type: 'address', internalType: 'address' }],
950
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
951
+ stateMutability: 'view',
952
+ },
953
+ {
954
+ type: 'function',
955
+ name: 'pause',
956
+ inputs: [],
957
+ outputs: [],
958
+ stateMutability: 'nonpayable',
959
+ },
960
+ {
961
+ type: 'function',
962
+ name: 'paused',
963
+ inputs: [],
964
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
965
+ stateMutability: 'view',
966
+ },
967
+ {
968
+ type: 'function',
969
+ name: 'permit',
970
+ inputs: [
971
+ { name: 'owner', type: 'address', internalType: 'address' },
972
+ { name: 'spender', type: 'address', internalType: 'address' },
973
+ { name: 'value', type: 'uint256', internalType: 'uint256' },
974
+ { name: 'deadline', type: 'uint256', internalType: 'uint256' },
975
+ { name: 'v', type: 'uint8', internalType: 'uint8' },
976
+ { name: 'r', type: 'bytes32', internalType: 'bytes32' },
977
+ { name: 's', type: 'bytes32', internalType: 'bytes32' },
978
+ ],
979
+ outputs: [],
980
+ stateMutability: 'nonpayable',
981
+ },
982
+ {
983
+ type: 'function',
984
+ name: 'renounceRole',
985
+ inputs: [{ name: 'role', type: 'bytes32', internalType: 'bytes32' }],
986
+ outputs: [],
987
+ stateMutability: 'nonpayable',
988
+ },
989
+ {
990
+ type: 'function',
991
+ name: 'revokeRole',
992
+ inputs: [
993
+ { name: 'role', type: 'bytes32', internalType: 'bytes32' },
994
+ { name: 'account', type: 'address', internalType: 'address' },
995
+ ],
996
+ outputs: [],
997
+ stateMutability: 'nonpayable',
998
+ },
999
+ {
1000
+ type: 'function',
1001
+ name: 'setRoleAdmin',
1002
+ inputs: [
1003
+ { name: 'role', type: 'bytes32', internalType: 'bytes32' },
1004
+ { name: 'adminRole', type: 'bytes32', internalType: 'bytes32' },
1005
+ ],
1006
+ outputs: [],
1007
+ stateMutability: 'nonpayable',
1008
+ },
1009
+ {
1010
+ type: 'function',
1011
+ name: 'setSupplyCap',
1012
+ inputs: [
1013
+ { name: 'newSupplyCap', type: 'uint256', internalType: 'uint256' },
1014
+ ],
1015
+ outputs: [],
1016
+ stateMutability: 'nonpayable',
1017
+ },
1018
+ {
1019
+ type: 'function',
1020
+ name: 'supplyCap',
1021
+ inputs: [],
1022
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
1023
+ stateMutability: 'view',
1024
+ },
1025
+ {
1026
+ type: 'function',
1027
+ name: 'symbol',
1028
+ inputs: [],
1029
+ outputs: [{ name: '', type: 'string', internalType: 'string' }],
1030
+ stateMutability: 'view',
1031
+ },
1032
+ {
1033
+ type: 'function',
1034
+ name: 'systemTransferFrom',
1035
+ inputs: [
1036
+ { name: 'from', type: 'address', internalType: 'address' },
1037
+ { name: 'to', type: 'address', internalType: 'address' },
1038
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
1039
+ ],
1040
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
1041
+ stateMutability: 'nonpayable',
1042
+ },
1043
+ {
1044
+ type: 'function',
1045
+ name: 'totalSupply',
1046
+ inputs: [],
1047
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
1048
+ stateMutability: 'view',
1049
+ },
1050
+ {
1051
+ type: 'function',
1052
+ name: 'transfer',
1053
+ inputs: [
1054
+ { name: 'to', type: 'address', internalType: 'address' },
1055
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
1056
+ ],
1057
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
1058
+ stateMutability: 'nonpayable',
1059
+ },
1060
+ {
1061
+ type: 'function',
1062
+ name: 'transferFeePostTx',
1063
+ inputs: [
1064
+ { name: 'to', type: 'address', internalType: 'address' },
1065
+ { name: 'refund', type: 'uint256', internalType: 'uint256' },
1066
+ { name: 'actualUsed', type: 'uint256', internalType: 'uint256' },
1067
+ ],
1068
+ outputs: [],
1069
+ stateMutability: 'nonpayable',
1070
+ },
1071
+ {
1072
+ type: 'function',
1073
+ name: 'transferFeePreTx',
1074
+ inputs: [
1075
+ { name: 'from', type: 'address', internalType: 'address' },
1076
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
1077
+ ],
1078
+ outputs: [],
1079
+ stateMutability: 'nonpayable',
1080
+ },
1081
+ {
1082
+ type: 'function',
1083
+ name: 'transferFrom',
1084
+ inputs: [
1085
+ { name: 'from', type: 'address', internalType: 'address' },
1086
+ { name: 'to', type: 'address', internalType: 'address' },
1087
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
1088
+ ],
1089
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
1090
+ stateMutability: 'nonpayable',
1091
+ },
1092
+ {
1093
+ type: 'function',
1094
+ name: 'transferFromWithMemo',
1095
+ inputs: [
1096
+ { name: 'from', type: 'address', internalType: 'address' },
1097
+ { name: 'to', type: 'address', internalType: 'address' },
1098
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
1099
+ { name: 'memo', type: 'bytes32', internalType: 'bytes32' },
1100
+ ],
1101
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
1102
+ stateMutability: 'nonpayable',
1103
+ },
1104
+ {
1105
+ type: 'function',
1106
+ name: 'transferPolicyId',
1107
+ inputs: [],
1108
+ outputs: [{ name: '', type: 'uint64', internalType: 'uint64' }],
1109
+ stateMutability: 'view',
1110
+ },
1111
+ {
1112
+ type: 'function',
1113
+ name: 'transferWithMemo',
1114
+ inputs: [
1115
+ { name: 'to', type: 'address', internalType: 'address' },
1116
+ { name: 'amount', type: 'uint256', internalType: 'uint256' },
1117
+ { name: 'memo', type: 'bytes32', internalType: 'bytes32' },
1118
+ ],
1119
+ outputs: [],
1120
+ stateMutability: 'nonpayable',
1121
+ },
1122
+ {
1123
+ type: 'function',
1124
+ name: 'unpause',
1125
+ inputs: [],
1126
+ outputs: [],
1127
+ stateMutability: 'nonpayable',
1128
+ },
1129
+ {
1130
+ type: 'event',
1131
+ name: 'Approval',
1132
+ inputs: [
1133
+ {
1134
+ name: 'owner',
1135
+ type: 'address',
1136
+ indexed: true,
1137
+ internalType: 'address',
1138
+ },
1139
+ {
1140
+ name: 'spender',
1141
+ type: 'address',
1142
+ indexed: true,
1143
+ internalType: 'address',
1144
+ },
1145
+ {
1146
+ name: 'amount',
1147
+ type: 'uint256',
1148
+ indexed: false,
1149
+ internalType: 'uint256',
1150
+ },
1151
+ ],
1152
+ anonymous: false,
1153
+ },
1154
+ {
1155
+ type: 'event',
1156
+ name: 'Burn',
1157
+ inputs: [
1158
+ { name: 'from', type: 'address', indexed: true, internalType: 'address' },
1159
+ {
1160
+ name: 'amount',
1161
+ type: 'uint256',
1162
+ indexed: false,
1163
+ internalType: 'uint256',
1164
+ },
1165
+ ],
1166
+ anonymous: false,
1167
+ },
1168
+ {
1169
+ type: 'event',
1170
+ name: 'BurnBlocked',
1171
+ inputs: [
1172
+ { name: 'from', type: 'address', indexed: true, internalType: 'address' },
1173
+ {
1174
+ name: 'amount',
1175
+ type: 'uint256',
1176
+ indexed: false,
1177
+ internalType: 'uint256',
1178
+ },
1179
+ ],
1180
+ anonymous: false,
1181
+ },
1182
+ {
1183
+ type: 'event',
1184
+ name: 'Mint',
1185
+ inputs: [
1186
+ { name: 'to', type: 'address', indexed: true, internalType: 'address' },
1187
+ {
1188
+ name: 'amount',
1189
+ type: 'uint256',
1190
+ indexed: false,
1191
+ internalType: 'uint256',
1192
+ },
1193
+ ],
1194
+ anonymous: false,
1195
+ },
1196
+ {
1197
+ type: 'event',
1198
+ name: 'PauseStateUpdate',
1199
+ inputs: [
1200
+ {
1201
+ name: 'updater',
1202
+ type: 'address',
1203
+ indexed: true,
1204
+ internalType: 'address',
1205
+ },
1206
+ { name: 'isPaused', type: 'bool', indexed: false, internalType: 'bool' },
1207
+ ],
1208
+ anonymous: false,
1209
+ },
1210
+ {
1211
+ type: 'event',
1212
+ name: 'RoleAdminUpdated',
1213
+ inputs: [
1214
+ { name: 'role', type: 'bytes32', indexed: true, internalType: 'bytes32' },
1215
+ {
1216
+ name: 'newAdminRole',
1217
+ type: 'bytes32',
1218
+ indexed: true,
1219
+ internalType: 'bytes32',
1220
+ },
1221
+ {
1222
+ name: 'sender',
1223
+ type: 'address',
1224
+ indexed: true,
1225
+ internalType: 'address',
1226
+ },
1227
+ ],
1228
+ anonymous: false,
1229
+ },
1230
+ {
1231
+ type: 'event',
1232
+ name: 'RoleMembershipUpdated',
1233
+ inputs: [
1234
+ { name: 'role', type: 'bytes32', indexed: true, internalType: 'bytes32' },
1235
+ {
1236
+ name: 'account',
1237
+ type: 'address',
1238
+ indexed: true,
1239
+ internalType: 'address',
1240
+ },
1241
+ {
1242
+ name: 'sender',
1243
+ type: 'address',
1244
+ indexed: true,
1245
+ internalType: 'address',
1246
+ },
1247
+ { name: 'hasRole', type: 'bool', indexed: false, internalType: 'bool' },
1248
+ ],
1249
+ anonymous: false,
1250
+ },
1251
+ {
1252
+ type: 'event',
1253
+ name: 'SupplyCapUpdate',
1254
+ inputs: [
1255
+ {
1256
+ name: 'updater',
1257
+ type: 'address',
1258
+ indexed: true,
1259
+ internalType: 'address',
1260
+ },
1261
+ {
1262
+ name: 'newSupplyCap',
1263
+ type: 'uint256',
1264
+ indexed: true,
1265
+ internalType: 'uint256',
1266
+ },
1267
+ ],
1268
+ anonymous: false,
1269
+ },
1270
+ {
1271
+ type: 'event',
1272
+ name: 'Transfer',
1273
+ inputs: [
1274
+ { name: 'from', type: 'address', indexed: true, internalType: 'address' },
1275
+ { name: 'to', type: 'address', indexed: true, internalType: 'address' },
1276
+ {
1277
+ name: 'amount',
1278
+ type: 'uint256',
1279
+ indexed: false,
1280
+ internalType: 'uint256',
1281
+ },
1282
+ ],
1283
+ anonymous: false,
1284
+ },
1285
+ {
1286
+ type: 'event',
1287
+ name: 'TransferPolicyUpdate',
1288
+ inputs: [
1289
+ {
1290
+ name: 'updater',
1291
+ type: 'address',
1292
+ indexed: true,
1293
+ internalType: 'address',
1294
+ },
1295
+ {
1296
+ name: 'newPolicyId',
1297
+ type: 'uint64',
1298
+ indexed: true,
1299
+ internalType: 'uint64',
1300
+ },
1301
+ ],
1302
+ anonymous: false,
1303
+ },
1304
+ {
1305
+ type: 'event',
1306
+ name: 'TransferWithMemo',
1307
+ inputs: [
1308
+ { name: 'from', type: 'address', indexed: true, internalType: 'address' },
1309
+ { name: 'to', type: 'address', indexed: true, internalType: 'address' },
1310
+ {
1311
+ name: 'amount',
1312
+ type: 'uint256',
1313
+ indexed: false,
1314
+ internalType: 'uint256',
1315
+ },
1316
+ { name: 'memo', type: 'bytes32', indexed: true, internalType: 'bytes32' },
1317
+ ],
1318
+ anonymous: false,
1319
+ },
1320
+ { type: 'error', name: 'ContractPaused', inputs: [] },
1321
+ { type: 'error', name: 'Expired', inputs: [] },
1322
+ { type: 'error', name: 'InsufficientAllowance', inputs: [] },
1323
+ { type: 'error', name: 'InsufficientBalance', inputs: [] },
1324
+ { type: 'error', name: 'InvalidCurrency', inputs: [] },
1325
+ { type: 'error', name: 'InvalidRecipient', inputs: [] },
1326
+ { type: 'error', name: 'InvalidSignature', inputs: [] },
1327
+ { type: 'error', name: 'PolicyForbids', inputs: [] },
1328
+ { type: 'error', name: 'SupplyCapExceeded', inputs: [] },
1329
+ { type: 'error', name: 'Unauthorized', inputs: [] },
1330
+ ])
1331
+
1332
+ export const tip20FactoryAbi = Abi.from([
1333
+ {
1334
+ type: 'function',
1335
+ name: 'createToken',
1336
+ inputs: [
1337
+ { name: 'name', type: 'string', internalType: 'string' },
1338
+ { name: 'symbol', type: 'string', internalType: 'string' },
1339
+ { name: 'currency', type: 'string', internalType: 'string' },
1340
+ { name: 'admin', type: 'address', internalType: 'address' },
1341
+ ],
1342
+ outputs: [{ name: '', type: 'address', internalType: 'address' }],
1343
+ stateMutability: 'nonpayable',
1344
+ },
1345
+ {
1346
+ type: 'function',
1347
+ name: 'tokenIdCounter',
1348
+ inputs: [],
1349
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
1350
+ stateMutability: 'view',
1351
+ },
1352
+ {
1353
+ type: 'event',
1354
+ name: 'TokenCreated',
1355
+ inputs: [
1356
+ {
1357
+ name: 'token',
1358
+ type: 'address',
1359
+ indexed: true,
1360
+ internalType: 'address',
1361
+ },
1362
+ {
1363
+ name: 'tokenId',
1364
+ type: 'uint256',
1365
+ indexed: true,
1366
+ internalType: 'uint256',
1367
+ },
1368
+ { name: 'name', type: 'string', indexed: false, internalType: 'string' },
1369
+ {
1370
+ name: 'symbol',
1371
+ type: 'string',
1372
+ indexed: false,
1373
+ internalType: 'string',
1374
+ },
1375
+ {
1376
+ name: 'currency',
1377
+ type: 'string',
1378
+ indexed: false,
1379
+ internalType: 'string',
1380
+ },
1381
+ {
1382
+ name: 'admin',
1383
+ type: 'address',
1384
+ indexed: false,
1385
+ internalType: 'address',
1386
+ },
1387
+ ],
1388
+ anonymous: false,
1389
+ },
1390
+ ])
1391
+
1392
+ export const tip4217RegistryAbi = Abi.from([
1393
+ {
1394
+ type: 'function',
1395
+ name: 'getCurrencyDecimals',
1396
+ inputs: [{ name: 'currency', type: 'string', internalType: 'string' }],
1397
+ outputs: [{ name: '', type: 'uint8', internalType: 'uint8' }],
1398
+ stateMutability: 'view',
1399
+ },
1400
+ ])
1401
+
1402
+ export const tip403RegistryAbi = Abi.from([
1403
+ {
1404
+ type: 'function',
1405
+ name: 'createPolicy',
1406
+ inputs: [
1407
+ { name: 'admin', type: 'address', internalType: 'address' },
1408
+ {
1409
+ name: 'policyType',
1410
+ type: 'uint8',
1411
+ internalType: 'enum TIP403Registry.PolicyType',
1412
+ },
1413
+ { name: 'accounts', type: 'address[]', internalType: 'address[]' },
1414
+ ],
1415
+ outputs: [{ name: 'newPolicyId', type: 'uint64', internalType: 'uint64' }],
1416
+ stateMutability: 'nonpayable',
1417
+ },
1418
+ {
1419
+ type: 'function',
1420
+ name: 'createPolicy',
1421
+ inputs: [
1422
+ { name: 'admin', type: 'address', internalType: 'address' },
1423
+ {
1424
+ name: 'policyType',
1425
+ type: 'uint8',
1426
+ internalType: 'enum TIP403Registry.PolicyType',
1427
+ },
1428
+ ],
1429
+ outputs: [{ name: 'newPolicyId', type: 'uint64', internalType: 'uint64' }],
1430
+ stateMutability: 'nonpayable',
1431
+ },
1432
+ {
1433
+ type: 'function',
1434
+ name: 'isAuthorized',
1435
+ inputs: [
1436
+ { name: 'policyId', type: 'uint64', internalType: 'uint64' },
1437
+ { name: 'user', type: 'address', internalType: 'address' },
1438
+ ],
1439
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
1440
+ stateMutability: 'view',
1441
+ },
1442
+ {
1443
+ type: 'function',
1444
+ name: 'modifyPolicyBlacklist',
1445
+ inputs: [
1446
+ { name: 'policyId', type: 'uint64', internalType: 'uint64' },
1447
+ { name: 'account', type: 'address', internalType: 'address' },
1448
+ { name: 'restricted', type: 'bool', internalType: 'bool' },
1449
+ ],
1450
+ outputs: [],
1451
+ stateMutability: 'nonpayable',
1452
+ },
1453
+ {
1454
+ type: 'function',
1455
+ name: 'modifyPolicyWhitelist',
1456
+ inputs: [
1457
+ { name: 'policyId', type: 'uint64', internalType: 'uint64' },
1458
+ { name: 'account', type: 'address', internalType: 'address' },
1459
+ { name: 'allowed', type: 'bool', internalType: 'bool' },
1460
+ ],
1461
+ outputs: [],
1462
+ stateMutability: 'nonpayable',
1463
+ },
1464
+ {
1465
+ type: 'function',
1466
+ name: 'policyData',
1467
+ inputs: [{ name: '', type: 'uint64', internalType: 'uint64' }],
1468
+ outputs: [
1469
+ {
1470
+ name: 'policyType',
1471
+ type: 'uint8',
1472
+ internalType: 'enum TIP403Registry.PolicyType',
1473
+ },
1474
+ { name: 'admin', type: 'address', internalType: 'address' },
1475
+ ],
1476
+ stateMutability: 'view',
1477
+ },
1478
+ {
1479
+ type: 'function',
1480
+ name: 'policyIdCounter',
1481
+ inputs: [],
1482
+ outputs: [{ name: '', type: 'uint64', internalType: 'uint64' }],
1483
+ stateMutability: 'view',
1484
+ },
1485
+ {
1486
+ type: 'function',
1487
+ name: 'setPolicyAdmin',
1488
+ inputs: [
1489
+ { name: 'policyId', type: 'uint64', internalType: 'uint64' },
1490
+ { name: 'admin', type: 'address', internalType: 'address' },
1491
+ ],
1492
+ outputs: [],
1493
+ stateMutability: 'nonpayable',
1494
+ },
1495
+ {
1496
+ type: 'event',
1497
+ name: 'BlacklistUpdated',
1498
+ inputs: [
1499
+ {
1500
+ name: 'policyId',
1501
+ type: 'uint64',
1502
+ indexed: true,
1503
+ internalType: 'uint64',
1504
+ },
1505
+ {
1506
+ name: 'updater',
1507
+ type: 'address',
1508
+ indexed: true,
1509
+ internalType: 'address',
1510
+ },
1511
+ {
1512
+ name: 'account',
1513
+ type: 'address',
1514
+ indexed: true,
1515
+ internalType: 'address',
1516
+ },
1517
+ {
1518
+ name: 'restricted',
1519
+ type: 'bool',
1520
+ indexed: false,
1521
+ internalType: 'bool',
1522
+ },
1523
+ ],
1524
+ anonymous: false,
1525
+ },
1526
+ {
1527
+ type: 'event',
1528
+ name: 'PolicyAdminUpdated',
1529
+ inputs: [
1530
+ {
1531
+ name: 'policyId',
1532
+ type: 'uint64',
1533
+ indexed: true,
1534
+ internalType: 'uint64',
1535
+ },
1536
+ {
1537
+ name: 'updater',
1538
+ type: 'address',
1539
+ indexed: true,
1540
+ internalType: 'address',
1541
+ },
1542
+ {
1543
+ name: 'admin',
1544
+ type: 'address',
1545
+ indexed: true,
1546
+ internalType: 'address',
1547
+ },
1548
+ ],
1549
+ anonymous: false,
1550
+ },
1551
+ {
1552
+ type: 'event',
1553
+ name: 'PolicyCreated',
1554
+ inputs: [
1555
+ {
1556
+ name: 'policyId',
1557
+ type: 'uint64',
1558
+ indexed: true,
1559
+ internalType: 'uint64',
1560
+ },
1561
+ {
1562
+ name: 'updater',
1563
+ type: 'address',
1564
+ indexed: true,
1565
+ internalType: 'address',
1566
+ },
1567
+ {
1568
+ name: 'policyType',
1569
+ type: 'uint8',
1570
+ indexed: false,
1571
+ internalType: 'enum TIP403Registry.PolicyType',
1572
+ },
1573
+ ],
1574
+ anonymous: false,
1575
+ },
1576
+ {
1577
+ type: 'event',
1578
+ name: 'WhitelistUpdated',
1579
+ inputs: [
1580
+ {
1581
+ name: 'policyId',
1582
+ type: 'uint64',
1583
+ indexed: true,
1584
+ internalType: 'uint64',
1585
+ },
1586
+ {
1587
+ name: 'updater',
1588
+ type: 'address',
1589
+ indexed: true,
1590
+ internalType: 'address',
1591
+ },
1592
+ {
1593
+ name: 'account',
1594
+ type: 'address',
1595
+ indexed: true,
1596
+ internalType: 'address',
1597
+ },
1598
+ { name: 'allowed', type: 'bool', indexed: false, internalType: 'bool' },
1599
+ ],
1600
+ anonymous: false,
1601
+ },
1602
+ { type: 'error', name: 'ArrayLengthMismatch', inputs: [] },
1603
+ { type: 'error', name: 'IncompatiblePolicyType', inputs: [] },
1604
+ { type: 'error', name: 'PolicyDoesNotExist', inputs: [] },
1605
+ { type: 'error', name: 'Unauthorized', inputs: [] },
1606
+ ])