@gibs/abis 1.13.1 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,12 +10,30 @@ Each export is an ABI built with viem's `parseAbi`. Pass it to `readContract`, `
10
10
  npm install @gibs/abis viem
11
11
  ```
12
12
 
13
- `viem` is a peer dependency. The supported range is `>=2.37.0 <3`.
13
+ `viem` is a peer dependency. The supported range is `>=2.35.0 <3`.
14
14
 
15
15
  ## Requirements
16
16
 
17
- - Node 20 or later.
18
- - The package is ESM only. Use `import`, not `require`.
17
+ - Node 20 or later, a browser, or React Native under Hermes.
18
+
19
+ ## Ways to use the package
20
+
21
+ The package ships two builds of the same code. The `exports` map picks one, so
22
+ you need no configuration.
23
+
24
+ | Option | What you write | What loads |
25
+ |---|---|---|
26
+ | ECMAScript modules | `import { inputBridge } from '@gibs/abis'` | `dist/index.js` |
27
+ | CommonJS | `const { inputBridge } = require('@gibs/abis')` | `dist/cjs/index.js` |
28
+ | React Native (Metro) | either of the above | `import` gets `dist/`, `require` gets `dist/cjs/` |
29
+ | React Native (jest) | either of the above | `dist/cjs/` |
30
+
31
+ React Native 0.77 or later needs no change to `metro.config.js`, no
32
+ `resolveRequest` hook, no jest `transformIgnorePatterns` and no polyfill.
33
+ Metro's default configuration in React Native 0.79 or later reads the
34
+ `exports` map. Metro in React Native 0.77 and 0.78 ignores
35
+ `exports` and reads the `react-native` field, which points at the CommonJS
36
+ build.
19
37
 
20
38
  ## Example
21
39
 
@@ -0,0 +1,595 @@
1
+ /** the abi for the input bridge */
2
+ export declare const inputBridge: readonly [{
3
+ readonly name: "minPerTx";
4
+ readonly type: "function";
5
+ readonly stateMutability: "view";
6
+ readonly inputs: readonly [{
7
+ readonly type: "address";
8
+ readonly name: "token";
9
+ }];
10
+ readonly outputs: readonly [{
11
+ readonly type: "uint256";
12
+ }];
13
+ }, {
14
+ readonly name: "foreignTokenAddress";
15
+ readonly type: "function";
16
+ readonly stateMutability: "view";
17
+ readonly inputs: readonly [{
18
+ readonly type: "address";
19
+ readonly name: "token";
20
+ }];
21
+ readonly outputs: readonly [{
22
+ readonly type: "address";
23
+ }];
24
+ }, {
25
+ readonly name: "homeTokenAddress";
26
+ readonly type: "function";
27
+ readonly stateMutability: "view";
28
+ readonly inputs: readonly [{
29
+ readonly type: "address";
30
+ readonly name: "token";
31
+ }];
32
+ readonly outputs: readonly [{
33
+ readonly type: "address";
34
+ }];
35
+ }, {
36
+ readonly name: "bridgedTokenAddress";
37
+ readonly type: "function";
38
+ readonly stateMutability: "view";
39
+ readonly inputs: readonly [{
40
+ readonly type: "address";
41
+ readonly name: "token";
42
+ }];
43
+ readonly outputs: readonly [{
44
+ readonly type: "address";
45
+ }];
46
+ }, {
47
+ readonly name: "nativeTokenAddress";
48
+ readonly type: "function";
49
+ readonly stateMutability: "view";
50
+ readonly inputs: readonly [{
51
+ readonly type: "address";
52
+ readonly name: "token";
53
+ }];
54
+ readonly outputs: readonly [{
55
+ readonly type: "address";
56
+ }];
57
+ }, {
58
+ readonly name: "feeManager";
59
+ readonly type: "function";
60
+ readonly stateMutability: "view";
61
+ readonly inputs: readonly [];
62
+ readonly outputs: readonly [{
63
+ readonly type: "address";
64
+ }];
65
+ }, {
66
+ readonly name: "relayTokensAndCall";
67
+ readonly type: "function";
68
+ readonly stateMutability: "nonpayable";
69
+ readonly inputs: readonly [{
70
+ readonly type: "address";
71
+ readonly name: "token";
72
+ }, {
73
+ readonly type: "address";
74
+ readonly name: "_receiver";
75
+ }, {
76
+ readonly type: "uint256";
77
+ readonly name: "_value";
78
+ }, {
79
+ readonly type: "bytes";
80
+ readonly name: "_data";
81
+ }];
82
+ readonly outputs: readonly [];
83
+ }, {
84
+ readonly name: "relayTokens";
85
+ readonly type: "function";
86
+ readonly stateMutability: "nonpayable";
87
+ readonly inputs: readonly [{
88
+ readonly type: "address";
89
+ readonly name: "token";
90
+ }, {
91
+ readonly type: "address";
92
+ readonly name: "_receiver";
93
+ }, {
94
+ readonly type: "uint256";
95
+ readonly name: "_value";
96
+ }];
97
+ readonly outputs: readonly [];
98
+ }];
99
+ /** the abi for the input bridge with extra input for the sender origin (tokensex) */
100
+ export declare const inputBridgeExtraInput: readonly [{
101
+ readonly name: "relayTokensAndCall";
102
+ readonly type: "function";
103
+ readonly stateMutability: "nonpayable";
104
+ readonly inputs: readonly [{
105
+ readonly type: "address";
106
+ readonly name: "token";
107
+ }, {
108
+ readonly type: "address";
109
+ readonly name: "_receiver";
110
+ }, {
111
+ readonly type: "uint256";
112
+ readonly name: "_value";
113
+ }, {
114
+ readonly type: "bytes";
115
+ readonly name: "_data";
116
+ }, {
117
+ readonly type: "address";
118
+ readonly name: "_senderOrigin";
119
+ }];
120
+ readonly outputs: readonly [];
121
+ }, {
122
+ readonly name: "relayTokens";
123
+ readonly type: "function";
124
+ readonly stateMutability: "nonpayable";
125
+ readonly inputs: readonly [{
126
+ readonly type: "address";
127
+ readonly name: "token";
128
+ }, {
129
+ readonly type: "address";
130
+ readonly name: "_receiver";
131
+ }, {
132
+ readonly type: "uint256";
133
+ readonly name: "_value";
134
+ }, {
135
+ readonly type: "address";
136
+ readonly name: "_senderOrigin";
137
+ }];
138
+ readonly outputs: readonly [];
139
+ }];
140
+ /** the abi for erc677 tokens */
141
+ export declare const erc677: readonly [{
142
+ readonly name: "transferAndCall";
143
+ readonly type: "function";
144
+ readonly stateMutability: "nonpayable";
145
+ readonly inputs: readonly [{
146
+ readonly type: "address";
147
+ }, {
148
+ readonly type: "uint256";
149
+ }, {
150
+ readonly type: "bytes";
151
+ }];
152
+ readonly outputs: readonly [];
153
+ }];
154
+ /** the abi for erc677 tokens bridge with extra input for the sender origin (tokensex) */
155
+ export declare const erc677ExtraInput: readonly [{
156
+ readonly name: "transferAndCall";
157
+ readonly type: "function";
158
+ readonly stateMutability: "nonpayable";
159
+ readonly inputs: readonly [{
160
+ readonly type: "address";
161
+ }, {
162
+ readonly type: "uint256";
163
+ }, {
164
+ readonly type: "bytes";
165
+ }, {
166
+ readonly type: "address";
167
+ readonly name: "sender";
168
+ }];
169
+ readonly outputs: readonly [];
170
+ }];
171
+ /** the abi to read data from the output router */
172
+ export declare const outputRouter: readonly [{
173
+ readonly name: "onTokenBridged";
174
+ readonly type: "function";
175
+ readonly stateMutability: "payable";
176
+ readonly inputs: readonly [{
177
+ readonly type: "address";
178
+ readonly name: "_token";
179
+ }, {
180
+ readonly type: "uint256";
181
+ readonly name: "_value";
182
+ }, {
183
+ readonly type: "bytes";
184
+ readonly name: "_data";
185
+ }];
186
+ readonly outputs: readonly [];
187
+ }, {
188
+ readonly name: "WETH";
189
+ readonly type: "function";
190
+ readonly stateMutability: "view";
191
+ readonly inputs: readonly [];
192
+ readonly outputs: readonly [{
193
+ readonly type: "address";
194
+ }];
195
+ }, {
196
+ readonly name: "bridge";
197
+ readonly type: "function";
198
+ readonly stateMutability: "view";
199
+ readonly inputs: readonly [];
200
+ readonly outputs: readonly [{
201
+ readonly type: "address";
202
+ }];
203
+ }, {
204
+ readonly name: "safeExecuteSignaturesWithAutoGasLimit";
205
+ readonly type: "function";
206
+ readonly stateMutability: "payable";
207
+ readonly inputs: readonly [{
208
+ readonly type: "address";
209
+ readonly name: "runner";
210
+ }, {
211
+ readonly type: "bytes";
212
+ readonly name: "_data";
213
+ }, {
214
+ readonly type: "bytes";
215
+ readonly name: "_signatures";
216
+ }];
217
+ readonly outputs: readonly [];
218
+ }];
219
+ /** the abi for the output bridge */
220
+ export declare const outputBridge: readonly [{
221
+ readonly name: "bridgeContract";
222
+ readonly type: "function";
223
+ readonly stateMutability: "view";
224
+ readonly inputs: readonly [];
225
+ readonly outputs: readonly [{
226
+ readonly type: "address";
227
+ }];
228
+ }];
229
+ /** the abi for the fee manager */
230
+ export declare const feeManager: readonly [{
231
+ readonly name: "FeeUpdated";
232
+ readonly type: "event";
233
+ readonly inputs: readonly [{
234
+ readonly type: "bytes32";
235
+ readonly name: "feeType";
236
+ }, {
237
+ readonly type: "address";
238
+ readonly name: "token";
239
+ readonly indexed: true;
240
+ }, {
241
+ readonly type: "uint256";
242
+ readonly name: "fee";
243
+ }];
244
+ }, {
245
+ readonly name: "FOREIGN_TO_HOME_FEE";
246
+ readonly type: "function";
247
+ readonly stateMutability: "view";
248
+ readonly inputs: readonly [];
249
+ readonly outputs: readonly [{
250
+ readonly type: "bytes32";
251
+ }];
252
+ }, {
253
+ readonly name: "HOME_TO_FOREIGN_FEE";
254
+ readonly type: "function";
255
+ readonly stateMutability: "view";
256
+ readonly inputs: readonly [];
257
+ readonly outputs: readonly [{
258
+ readonly type: "bytes32";
259
+ }];
260
+ }, {
261
+ readonly name: "calculateFee";
262
+ readonly type: "function";
263
+ readonly stateMutability: "view";
264
+ readonly inputs: readonly [{
265
+ readonly type: "bytes32";
266
+ readonly name: "feeType";
267
+ }, {
268
+ readonly type: "address";
269
+ readonly name: "token";
270
+ }, {
271
+ readonly type: "uint256";
272
+ readonly name: "value";
273
+ }];
274
+ readonly outputs: readonly [{
275
+ readonly type: "uint256";
276
+ }];
277
+ }, {
278
+ readonly name: "distributeFee";
279
+ readonly type: "function";
280
+ readonly stateMutability: "nonpayable";
281
+ readonly inputs: readonly [{
282
+ readonly type: "address";
283
+ readonly name: "token";
284
+ }];
285
+ readonly outputs: readonly [];
286
+ }, {
287
+ readonly name: "getFee";
288
+ readonly type: "function";
289
+ readonly stateMutability: "view";
290
+ readonly inputs: readonly [{
291
+ readonly type: "bytes32";
292
+ readonly name: "feeType";
293
+ }, {
294
+ readonly type: "address";
295
+ readonly name: "token";
296
+ }];
297
+ readonly outputs: readonly [{
298
+ readonly type: "uint256";
299
+ }];
300
+ }, {
301
+ readonly name: "setFee";
302
+ readonly type: "function";
303
+ readonly stateMutability: "nonpayable";
304
+ readonly inputs: readonly [{
305
+ readonly type: "bytes32";
306
+ readonly name: "feeType";
307
+ }, {
308
+ readonly type: "address";
309
+ readonly name: "token";
310
+ }, {
311
+ readonly type: "uint256";
312
+ readonly name: "fee";
313
+ }];
314
+ readonly outputs: readonly [];
315
+ }, {
316
+ readonly name: "addRewardAddress";
317
+ readonly type: "function";
318
+ readonly stateMutability: "nonpayable";
319
+ readonly inputs: readonly [{
320
+ readonly type: "address";
321
+ readonly name: "addr";
322
+ }];
323
+ readonly outputs: readonly [];
324
+ }, {
325
+ readonly name: "isRewardAddress";
326
+ readonly type: "function";
327
+ readonly stateMutability: "view";
328
+ readonly inputs: readonly [{
329
+ readonly type: "address";
330
+ readonly name: "addr";
331
+ }];
332
+ readonly outputs: readonly [{
333
+ readonly type: "bool";
334
+ }];
335
+ }, {
336
+ readonly name: "removeRewardAddress";
337
+ readonly type: "function";
338
+ readonly stateMutability: "nonpayable";
339
+ readonly inputs: readonly [{
340
+ readonly type: "address";
341
+ readonly name: "addr";
342
+ }];
343
+ readonly outputs: readonly [];
344
+ }, {
345
+ readonly name: "rewardAddressCount";
346
+ readonly type: "function";
347
+ readonly stateMutability: "view";
348
+ readonly inputs: readonly [];
349
+ readonly outputs: readonly [{
350
+ readonly type: "uint256";
351
+ }];
352
+ }, {
353
+ readonly name: "rewardAddressList";
354
+ readonly type: "function";
355
+ readonly stateMutability: "view";
356
+ readonly inputs: readonly [];
357
+ readonly outputs: readonly [{
358
+ readonly type: "address[]";
359
+ }];
360
+ }, {
361
+ readonly name: "getModuleInterfacesVersion";
362
+ readonly type: "function";
363
+ readonly stateMutability: "pure";
364
+ readonly inputs: readonly [];
365
+ readonly outputs: readonly [{
366
+ readonly type: "uint64";
367
+ readonly name: "major";
368
+ }, {
369
+ readonly type: "uint64";
370
+ readonly name: "minor";
371
+ }, {
372
+ readonly type: "uint64";
373
+ readonly name: "patch";
374
+ }];
375
+ }, {
376
+ readonly name: "mediator";
377
+ readonly type: "function";
378
+ readonly stateMutability: "view";
379
+ readonly inputs: readonly [];
380
+ readonly outputs: readonly [{
381
+ readonly type: "address";
382
+ }];
383
+ }, {
384
+ readonly name: "owner";
385
+ readonly type: "function";
386
+ readonly stateMutability: "view";
387
+ readonly inputs: readonly [];
388
+ readonly outputs: readonly [{
389
+ readonly type: "address";
390
+ }];
391
+ }, {
392
+ readonly name: "transferOwnership";
393
+ readonly type: "function";
394
+ readonly stateMutability: "nonpayable";
395
+ readonly inputs: readonly [{
396
+ readonly type: "address";
397
+ readonly name: "newOwner";
398
+ }];
399
+ readonly outputs: readonly [];
400
+ }];
401
+ /** the abi for the native router */
402
+ export declare const nativeRouter: readonly [{
403
+ readonly name: "wrapAndRelayTokens";
404
+ readonly type: "function";
405
+ readonly stateMutability: "payable";
406
+ readonly inputs: readonly [{
407
+ readonly type: "address";
408
+ readonly name: "receiver";
409
+ }];
410
+ readonly outputs: readonly [];
411
+ }, {
412
+ readonly name: "relayTokensAndCall";
413
+ readonly type: "function";
414
+ readonly stateMutability: "payable";
415
+ readonly inputs: readonly [{
416
+ readonly type: "address";
417
+ readonly name: "receiver";
418
+ }, {
419
+ readonly type: "bytes";
420
+ readonly name: "data";
421
+ }];
422
+ readonly outputs: readonly [];
423
+ }];
424
+ /** the abi for the native router with extra input for the sender origin (tokensex) */
425
+ export declare const nativeRouterExtraInput: readonly [{
426
+ readonly name: "wrapAndRelayTokens";
427
+ readonly type: "function";
428
+ readonly stateMutability: "payable";
429
+ readonly inputs: readonly [{
430
+ readonly type: "address";
431
+ readonly name: "receiver";
432
+ }, {
433
+ readonly type: "address";
434
+ readonly name: "sender";
435
+ }];
436
+ readonly outputs: readonly [];
437
+ }, {
438
+ readonly name: "relayTokensAndCall";
439
+ readonly type: "function";
440
+ readonly stateMutability: "payable";
441
+ readonly inputs: readonly [{
442
+ readonly type: "address";
443
+ readonly name: "receiver";
444
+ }, {
445
+ readonly type: "bytes";
446
+ readonly name: "data";
447
+ }, {
448
+ readonly type: "address";
449
+ readonly name: "sender";
450
+ }];
451
+ readonly outputs: readonly [];
452
+ }];
453
+ /** the abi for the univ2 router */
454
+ export declare const univ2Router: readonly [{
455
+ readonly name: "getAmountsOut";
456
+ readonly type: "function";
457
+ readonly stateMutability: "view";
458
+ readonly inputs: readonly [{
459
+ readonly type: "uint256";
460
+ readonly name: "amountIn";
461
+ }, {
462
+ readonly type: "address[]";
463
+ readonly name: "path";
464
+ }];
465
+ readonly outputs: readonly [{
466
+ readonly type: "uint256[]";
467
+ }];
468
+ }, {
469
+ readonly name: "swapExactTokensForTokens";
470
+ readonly type: "function";
471
+ readonly stateMutability: "nonpayable";
472
+ readonly inputs: readonly [{
473
+ readonly type: "uint256";
474
+ readonly name: "amountIn";
475
+ }, {
476
+ readonly type: "uint256";
477
+ readonly name: "amountOutMin";
478
+ }, {
479
+ readonly type: "address[]";
480
+ readonly name: "path";
481
+ }, {
482
+ readonly type: "address";
483
+ readonly name: "to";
484
+ }, {
485
+ readonly type: "uint256";
486
+ readonly name: "deadline";
487
+ }];
488
+ readonly outputs: readonly [{
489
+ readonly type: "uint256[]";
490
+ readonly name: "amounts";
491
+ }];
492
+ }, {
493
+ readonly name: "swapExactETHForTokens";
494
+ readonly type: "function";
495
+ readonly stateMutability: "payable";
496
+ readonly inputs: readonly [{
497
+ readonly type: "uint256";
498
+ readonly name: "amountOutMin";
499
+ }, {
500
+ readonly type: "address[]";
501
+ readonly name: "path";
502
+ }, {
503
+ readonly type: "address";
504
+ readonly name: "to";
505
+ }, {
506
+ readonly type: "uint256";
507
+ readonly name: "deadline";
508
+ }];
509
+ readonly outputs: readonly [{
510
+ readonly type: "uint256[]";
511
+ readonly name: "amounts";
512
+ }];
513
+ }, {
514
+ readonly name: "swapExactTokensForETH";
515
+ readonly type: "function";
516
+ readonly stateMutability: "nonpayable";
517
+ readonly inputs: readonly [{
518
+ readonly type: "uint256";
519
+ readonly name: "amountIn";
520
+ }, {
521
+ readonly type: "uint256";
522
+ readonly name: "amountOutMin";
523
+ }, {
524
+ readonly type: "address[]";
525
+ readonly name: "path";
526
+ }, {
527
+ readonly type: "address";
528
+ readonly name: "to";
529
+ }, {
530
+ readonly type: "uint256";
531
+ readonly name: "deadline";
532
+ }];
533
+ readonly outputs: readonly [{
534
+ readonly type: "uint256[]";
535
+ readonly name: "amounts";
536
+ }];
537
+ }];
538
+ /** the abi for the fee delivery struct */
539
+ export declare const feeDeliveryStruct: readonly [{
540
+ readonly type: "tuple";
541
+ readonly components: readonly [{
542
+ readonly type: "address";
543
+ }, {
544
+ readonly type: "uint256";
545
+ }, {
546
+ readonly type: "uint256";
547
+ }, {
548
+ readonly type: "uint256";
549
+ }];
550
+ }];
551
+ /** the abi for the relay tokens direct */
552
+ export declare const relayTokensDirect: readonly [{
553
+ readonly name: "safeExecuteSignaturesWithAutoGasLimit";
554
+ readonly type: "function";
555
+ readonly stateMutability: "nonpayable";
556
+ readonly inputs: readonly [{
557
+ readonly type: "bytes";
558
+ readonly name: "data";
559
+ }, {
560
+ readonly type: "bytes";
561
+ readonly name: "signatures";
562
+ }];
563
+ readonly outputs: readonly [];
564
+ }];
565
+ /** the abi for the home amb */
566
+ export declare const homeAmb: readonly [{
567
+ readonly name: "submitSignature";
568
+ readonly type: "function";
569
+ readonly stateMutability: "nonpayable";
570
+ readonly inputs: readonly [{
571
+ readonly type: "bytes";
572
+ readonly name: "message";
573
+ }, {
574
+ readonly type: "bytes";
575
+ readonly name: "signature";
576
+ }];
577
+ readonly outputs: readonly [];
578
+ }];
579
+ /** the abi for the univ2 pair */
580
+ export declare const pair: readonly [{
581
+ readonly name: "getReserves";
582
+ readonly type: "function";
583
+ readonly stateMutability: "view";
584
+ readonly inputs: readonly [];
585
+ readonly outputs: readonly [{
586
+ readonly type: "uint112";
587
+ readonly name: "reserve0";
588
+ }, {
589
+ readonly type: "uint112";
590
+ readonly name: "reserve1";
591
+ }, {
592
+ readonly type: "uint32";
593
+ readonly name: "blockTimestampLast";
594
+ }];
595
+ }];
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pair = exports.homeAmb = exports.relayTokensDirect = exports.feeDeliveryStruct = exports.univ2Router = exports.nativeRouterExtraInput = exports.nativeRouter = exports.feeManager = exports.outputBridge = exports.outputRouter = exports.erc677ExtraInput = exports.erc677 = exports.inputBridgeExtraInput = exports.inputBridge = void 0;
4
+ const viem_1 = require("viem");
5
+ /** the abi for the input bridge */
6
+ exports.inputBridge = (0, viem_1.parseAbi)([
7
+ 'function minPerTx(address token) external view returns(uint256)',
8
+ 'function foreignTokenAddress(address token) external view returns(address)',
9
+ 'function homeTokenAddress(address token) external view returns(address)',
10
+ 'function bridgedTokenAddress(address token) external view returns(address)',
11
+ 'function nativeTokenAddress(address token) external view returns(address)',
12
+ 'function feeManager() external view returns(address)',
13
+ 'function relayTokensAndCall(address token, address _receiver, uint256 _value, bytes memory _data) external',
14
+ 'function relayTokens(address token, address _receiver, uint256 _value) external',
15
+ ]);
16
+ /** the abi for the input bridge with extra input for the sender origin (tokensex) */
17
+ exports.inputBridgeExtraInput = (0, viem_1.parseAbi)([
18
+ 'function relayTokensAndCall(address token, address _receiver, uint256 _value, bytes memory _data, address _senderOrigin) external',
19
+ 'function relayTokens(address token, address _receiver, uint256 _value, address _senderOrigin) external',
20
+ ]);
21
+ /** the abi for erc677 tokens */
22
+ exports.erc677 = (0, viem_1.parseAbi)([
23
+ 'function transferAndCall(address, uint256, bytes calldata) external',
24
+ ]);
25
+ /** the abi for erc677 tokens bridge with extra input for the sender origin (tokensex) */
26
+ exports.erc677ExtraInput = (0, viem_1.parseAbi)([
27
+ 'function transferAndCall(address, uint256, bytes calldata, address sender) external',
28
+ ]);
29
+ /** the abi to read data from the output router */
30
+ exports.outputRouter = (0, viem_1.parseAbi)([
31
+ 'function onTokenBridged(address _token, uint256 _value, bytes memory _data) external payable',
32
+ 'function WETH() external view returns(address)',
33
+ 'function bridge() external view returns(address)',
34
+ 'function safeExecuteSignaturesWithAutoGasLimit(address runner,bytes calldata _data,bytes calldata _signatures) external payable',
35
+ ]);
36
+ /** the abi for the output bridge */
37
+ exports.outputBridge = (0, viem_1.parseAbi)(['function bridgeContract() external view returns(address)']);
38
+ /** the abi for the fee manager */
39
+ exports.feeManager = (0, viem_1.parseAbi)([
40
+ // ---- Events ----
41
+ 'event FeeUpdated(bytes32 feeType, address indexed token, uint256 fee)',
42
+ // ---- Fee type identifiers ----
43
+ 'function FOREIGN_TO_HOME_FEE() view returns (bytes32)',
44
+ 'function HOME_TO_FOREIGN_FEE() view returns (bytes32)',
45
+ // ---- Fee calculation & distribution ----
46
+ 'function calculateFee(bytes32 feeType, address token, uint256 value) view returns (uint256)',
47
+ 'function distributeFee(address token)',
48
+ 'function getFee(bytes32 feeType, address token) view returns (uint256)',
49
+ 'function setFee(bytes32 feeType, address token, uint256 fee)',
50
+ // ---- Reward address management (no events — call rewardAddressList() to snapshot) ----
51
+ 'function addRewardAddress(address addr)',
52
+ 'function isRewardAddress(address addr) view returns (bool)',
53
+ 'function removeRewardAddress(address addr)',
54
+ 'function rewardAddressCount() view returns (uint256)',
55
+ 'function rewardAddressList() view returns (address[])',
56
+ // ---- Admin & introspection ----
57
+ 'function getModuleInterfacesVersion() pure returns (uint64 major, uint64 minor, uint64 patch)',
58
+ 'function mediator() view returns (address)',
59
+ 'function owner() view returns (address)',
60
+ 'function transferOwnership(address newOwner)',
61
+ ]);
62
+ /** the abi for the native router */
63
+ exports.nativeRouter = (0, viem_1.parseAbi)([
64
+ 'function wrapAndRelayTokens(address receiver) external payable',
65
+ 'function relayTokensAndCall(address receiver, bytes calldata data) external payable',
66
+ ]);
67
+ /** the abi for the native router with extra input for the sender origin (tokensex) */
68
+ exports.nativeRouterExtraInput = (0, viem_1.parseAbi)([
69
+ 'function wrapAndRelayTokens(address receiver, address sender) external payable',
70
+ 'function relayTokensAndCall(address receiver, bytes calldata data, address sender) external payable',
71
+ ]);
72
+ /** the abi for the univ2 router */
73
+ exports.univ2Router = (0, viem_1.parseAbi)([
74
+ 'function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns(uint256[] memory)',
75
+ 'function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns(uint256[] memory amounts)',
76
+ // The router's own native-coin variants: it wraps the native coin in on the
77
+ // way in, and unwraps it back out on the way out. This is the SAME router
78
+ // contract `swapExactTokensForTokens` already targets, not a second one — a
79
+ // same-chain swap into or out of the native coin uses these instead of a
80
+ // separate wrap/unwrap step.
81
+ 'function swapExactETHForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable returns(uint256[] memory amounts)',
82
+ 'function swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns(uint256[] memory amounts)',
83
+ ]);
84
+ /** the abi for the fee delivery struct */
85
+ exports.feeDeliveryStruct = (0, viem_1.parseAbiParameters)('(address, uint256, uint256, uint256)');
86
+ /** the abi for the relay tokens direct */
87
+ exports.relayTokensDirect = (0, viem_1.parseAbi)([
88
+ 'function safeExecuteSignaturesWithAutoGasLimit(bytes calldata data, bytes calldata signatures) external',
89
+ ]);
90
+ /** the abi for the home amb */
91
+ exports.homeAmb = (0, viem_1.parseAbi)([
92
+ 'function submitSignature(bytes message, bytes signature) external',
93
+ ]);
94
+ /** the abi for the univ2 pair */
95
+ exports.pair = (0, viem_1.parseAbi)([
96
+ 'function getReserves() view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)',
97
+ ]);
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
package/llms.txt CHANGED
@@ -7,9 +7,10 @@
7
7
  ## Install
8
8
 
9
9
  - Run `npm install @gibs/abis viem`.
10
- - The package is ESM only. Use `import`, not `require`.
11
- - It needs Node 20 or later.
12
- - viem is a peer dependency. The range is `>=2.37.0 <3`.
10
+ - It runs on Node 20 or later, in browsers, and in React Native under Hermes.
11
+ - `import` loads the ECMAScript module build (`dist/`). `require` loads the CommonJS build (`dist/cjs/`).
12
+ - React Native 0.77 or later: Metro's default configuration and the React Native jest preset load it with no extra setup. Add no `resolveRequest` hook and no `transformIgnorePatterns`. The `react-native` condition gives an `import` statement the ECMAScript module build and a `require` call the CommonJS build.
13
+ - viem is a peer dependency. The range is `>=2.35.0 <3`.
13
14
  - Version note: 1.12.0 and older on npm are broken. 1.13.0 is the first usable version.
14
15
 
15
16
  ## Entry point
@@ -43,6 +44,6 @@ export const minimumPerTransfer = (bridge: Address, token: Address) =>
43
44
 
44
45
  ## Links
45
46
 
46
- - [README](https://github.com/gibsfinance/bridge/blob/staging/packages/abis/README.md)
47
- - [@gibs/bridge-sdk llms.txt](https://github.com/gibsfinance/bridge/blob/staging/packages/bridge-sdk/llms.txt)
47
+ - [README](https://www.npmjs.com/package/@gibs/abis)
48
+ - [@gibs/bridge-sdk llms.txt](https://next.gibs.finance/docs/packages/bridge-sdk/llms.txt)
48
49
  - [Gibs Finance llms.txt](https://next.gibs.finance/llms.txt): the whole platform.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gibs/abis",
3
- "version": "1.13.1",
3
+ "version": "1.18.0",
4
4
  "description": "Contract interfaces for the Gibs Finance bridge, as viem-ready constants.",
5
5
  "keywords": [
6
6
  "ethereum",
@@ -25,14 +25,39 @@
25
25
  },
26
26
  "type": "module",
27
27
  "sideEffects": false,
28
- "main": "./dist/index.js",
28
+ "main": "./dist/cjs/index.js",
29
+ "module": "./dist/index.js",
30
+ "react-native": "./dist/cjs/index.js",
29
31
  "types": "./dist/index.d.ts",
30
32
  "exports": {
31
33
  ".": {
32
34
  "gibs-source": "./src/index.ts",
35
+ "react-native": {
36
+ "import": {
37
+ "types": "./dist/index.d.ts",
38
+ "default": "./dist/index.js"
39
+ },
40
+ "require": {
41
+ "types": "./dist/cjs/index.d.ts",
42
+ "default": "./dist/cjs/index.js"
43
+ },
44
+ "default": {
45
+ "types": "./dist/cjs/index.d.ts",
46
+ "default": "./dist/cjs/index.js"
47
+ }
48
+ },
49
+ "import": {
50
+ "types": "./dist/index.d.ts",
51
+ "default": "./dist/index.js"
52
+ },
53
+ "require": {
54
+ "types": "./dist/cjs/index.d.ts",
55
+ "default": "./dist/cjs/index.js"
56
+ },
33
57
  "types": "./dist/index.d.ts",
34
58
  "default": "./dist/index.js"
35
- }
59
+ },
60
+ "./package.json": "./package.json"
36
61
  },
37
62
  "files": [
38
63
  "dist",
@@ -44,11 +69,15 @@
44
69
  ],
45
70
  "scripts": {
46
71
  "prepublishOnly": "npx tsc",
72
+ "prepack": "npm run build:cjs && npm run build:stubs",
73
+ "postpack": "node ../../scripts/subpath-stubs.mjs remove",
47
74
  "build": "npx tsc",
75
+ "build:cjs": "node ../../scripts/build-cjs.mjs",
76
+ "build:stubs": "node ../../scripts/subpath-stubs.mjs write",
48
77
  "test": "vitest run"
49
78
  },
50
79
  "peerDependencies": {
51
- "viem": ">=2.37.0 <3"
80
+ "viem": ">=2.35.0 <3"
52
81
  },
53
82
  "devDependencies": {
54
83
  "@types/node": "^24",