@hyperlane-xyz/provider-sdk 5.0.3 → 6.0.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.
@@ -0,0 +1,582 @@
1
+ import { expect } from 'chai';
2
+ import { assert } from '@hyperlane-xyz/utils';
3
+ import { ArtifactState } from './artifact.js';
4
+ import { FeeStrategyType, FeeType, feeArtifactToDerivedConfig, feeConfigToArtifact, mergeFeeArtifacts, shouldDeployNewFee, } from './fee.js';
5
+ const chainLookup = {
6
+ getChainMetadata: () => {
7
+ throw new Error('not needed');
8
+ },
9
+ getDomainId: (chain) => {
10
+ if (chain === 'ethereum')
11
+ return 1;
12
+ if (chain === 'polygon')
13
+ return 137;
14
+ return null;
15
+ },
16
+ getChainName: (domainId) => {
17
+ if (domainId === 1)
18
+ return 'ethereum';
19
+ if (domainId === 137)
20
+ return 'polygon';
21
+ return null;
22
+ },
23
+ getKnownChainNames: () => ['ethereum', 'polygon'],
24
+ };
25
+ describe('fee type support', () => {
26
+ describe('feeConfigToArtifact', () => {
27
+ it('passes through linear fee config unchanged', () => {
28
+ const config = {
29
+ type: FeeType.linear,
30
+ owner: '0xowner',
31
+ beneficiary: '0xbeneficiary',
32
+ maxFee: '1000',
33
+ halfAmount: '500',
34
+ };
35
+ const artifact = feeConfigToArtifact(config, chainLookup);
36
+ expect(artifact).to.deep.equal({
37
+ artifactState: ArtifactState.NEW,
38
+ config,
39
+ });
40
+ });
41
+ it('passes through regressive fee config unchanged', () => {
42
+ const config = {
43
+ type: FeeType.regressive,
44
+ owner: '0xowner',
45
+ beneficiary: '0xbeneficiary',
46
+ maxFee: '2000',
47
+ halfAmount: '1000',
48
+ };
49
+ const artifact = feeConfigToArtifact(config, chainLookup);
50
+ expect(artifact.config).to.deep.equal(config);
51
+ });
52
+ it('passes through progressive fee config unchanged', () => {
53
+ const config = {
54
+ type: FeeType.progressive,
55
+ owner: '0xowner',
56
+ beneficiary: '0xbeneficiary',
57
+ maxFee: '3000',
58
+ halfAmount: '1500',
59
+ };
60
+ const artifact = feeConfigToArtifact(config, chainLookup);
61
+ expect(artifact.config).to.deep.equal(config);
62
+ });
63
+ it('passes through offchainQuotedLinear fee config unchanged', () => {
64
+ const config = {
65
+ type: FeeType.offchainQuotedLinear,
66
+ owner: '0xowner',
67
+ beneficiary: '0xbeneficiary',
68
+ maxFee: '1000',
69
+ halfAmount: '500',
70
+ quoteSigners: ['0xsigner1'],
71
+ };
72
+ const artifact = feeConfigToArtifact(config, chainLookup);
73
+ expect(artifact.config).to.deep.equal(config);
74
+ });
75
+ it('converts routing fee chain names to domain IDs', () => {
76
+ const config = {
77
+ type: FeeType.routing,
78
+ owner: '0xowner',
79
+ beneficiary: '0xbeneficiary',
80
+ routes: {
81
+ ethereum: {
82
+ type: FeeStrategyType.linear,
83
+ maxFee: '1000',
84
+ halfAmount: '500',
85
+ },
86
+ polygon: {
87
+ type: FeeStrategyType.regressive,
88
+ maxFee: '2000',
89
+ halfAmount: '1000',
90
+ },
91
+ },
92
+ };
93
+ const artifact = feeConfigToArtifact(config, chainLookup);
94
+ const expectedArtifactConfig = {
95
+ type: FeeType.routing,
96
+ owner: '0xowner',
97
+ beneficiary: '0xbeneficiary',
98
+ routes: {
99
+ 1: {
100
+ type: FeeStrategyType.linear,
101
+ maxFee: '1000',
102
+ halfAmount: '500',
103
+ },
104
+ 137: {
105
+ type: FeeStrategyType.regressive,
106
+ maxFee: '2000',
107
+ halfAmount: '1000',
108
+ },
109
+ },
110
+ };
111
+ expect(artifact.config).to.deep.equal(expectedArtifactConfig);
112
+ });
113
+ it('converts CC routing fee chain names to domain IDs', () => {
114
+ const config = {
115
+ type: FeeType.crossCollateralRouting,
116
+ owner: '0xowner',
117
+ beneficiary: '0xbeneficiary',
118
+ routes: {
119
+ ethereum: {
120
+ '0xrouter1': {
121
+ type: FeeStrategyType.progressive,
122
+ maxFee: '5000',
123
+ halfAmount: '2500',
124
+ },
125
+ },
126
+ },
127
+ };
128
+ const artifact = feeConfigToArtifact(config, chainLookup);
129
+ const expectedArtifactConfig = {
130
+ type: FeeType.crossCollateralRouting,
131
+ owner: '0xowner',
132
+ beneficiary: '0xbeneficiary',
133
+ routes: {
134
+ 1: {
135
+ '0xrouter1': {
136
+ type: FeeStrategyType.progressive,
137
+ maxFee: '5000',
138
+ halfAmount: '2500',
139
+ },
140
+ },
141
+ },
142
+ };
143
+ expect(artifact.config).to.deep.equal(expectedArtifactConfig);
144
+ });
145
+ it('skips unknown chains in routing routes', () => {
146
+ const config = {
147
+ type: FeeType.routing,
148
+ owner: '0xowner',
149
+ beneficiary: '0xbeneficiary',
150
+ routes: {
151
+ ethereum: {
152
+ type: FeeStrategyType.linear,
153
+ maxFee: '1000',
154
+ halfAmount: '500',
155
+ },
156
+ unknownchain: {
157
+ type: FeeStrategyType.linear,
158
+ maxFee: '2000',
159
+ halfAmount: '1000',
160
+ },
161
+ },
162
+ };
163
+ const artifact = feeConfigToArtifact(config, chainLookup);
164
+ assert(artifact.config.type === FeeType.routing, 'Expected routing fee');
165
+ expect(Object.keys(artifact.config.routes)).to.deep.equal(['1']);
166
+ });
167
+ it('throws for unsupported fee types', () => {
168
+ expect(() => feeConfigToArtifact({ type: 'futureFee' }, chainLookup)).to.throw(/Unsupported fee type/);
169
+ });
170
+ });
171
+ describe('feeArtifactToDerivedConfig', () => {
172
+ it('derives linear fee config with address', () => {
173
+ const derived = feeArtifactToDerivedConfig({
174
+ artifactState: ArtifactState.DEPLOYED,
175
+ config: {
176
+ type: FeeType.linear,
177
+ owner: '0xowner',
178
+ beneficiary: '0xbeneficiary',
179
+ maxFee: '1000',
180
+ halfAmount: '500',
181
+ },
182
+ deployed: { address: '0xfee' },
183
+ }, chainLookup);
184
+ expect(derived).to.deep.equal({
185
+ type: FeeType.linear,
186
+ owner: '0xowner',
187
+ beneficiary: '0xbeneficiary',
188
+ maxFee: '1000',
189
+ halfAmount: '500',
190
+ address: '0xfee',
191
+ });
192
+ });
193
+ it('converts routing fee domain IDs back to chain names', () => {
194
+ const derived = feeArtifactToDerivedConfig({
195
+ artifactState: ArtifactState.DEPLOYED,
196
+ config: {
197
+ type: FeeType.routing,
198
+ owner: '0xowner',
199
+ beneficiary: '0xbeneficiary',
200
+ routes: {
201
+ 1: {
202
+ type: FeeStrategyType.linear,
203
+ maxFee: '1000',
204
+ halfAmount: '500',
205
+ },
206
+ 137: {
207
+ type: FeeStrategyType.regressive,
208
+ maxFee: '2000',
209
+ halfAmount: '1000',
210
+ },
211
+ },
212
+ },
213
+ deployed: { address: '0xfee' },
214
+ }, chainLookup);
215
+ const expectedDerived = {
216
+ type: FeeType.routing,
217
+ owner: '0xowner',
218
+ beneficiary: '0xbeneficiary',
219
+ routes: {
220
+ ethereum: {
221
+ type: FeeStrategyType.linear,
222
+ maxFee: '1000',
223
+ halfAmount: '500',
224
+ },
225
+ polygon: {
226
+ type: FeeStrategyType.regressive,
227
+ maxFee: '2000',
228
+ halfAmount: '1000',
229
+ },
230
+ },
231
+ address: '0xfee',
232
+ };
233
+ expect(derived).to.deep.equal(expectedDerived);
234
+ });
235
+ it('converts crossCollateralRouting fee domain IDs back to chain names', () => {
236
+ const derived = feeArtifactToDerivedConfig({
237
+ artifactState: ArtifactState.DEPLOYED,
238
+ config: {
239
+ type: FeeType.crossCollateralRouting,
240
+ owner: '0xowner',
241
+ beneficiary: '0xbeneficiary',
242
+ routes: {
243
+ 1: {
244
+ '0xrouter1': {
245
+ type: FeeStrategyType.linear,
246
+ maxFee: '1000',
247
+ halfAmount: '500',
248
+ },
249
+ },
250
+ 137: {
251
+ '0xrouter2': {
252
+ type: FeeStrategyType.regressive,
253
+ maxFee: '2000',
254
+ halfAmount: '1000',
255
+ },
256
+ },
257
+ },
258
+ },
259
+ deployed: { address: '0xfee' },
260
+ }, chainLookup);
261
+ const expectedDerived = {
262
+ type: FeeType.crossCollateralRouting,
263
+ owner: '0xowner',
264
+ beneficiary: '0xbeneficiary',
265
+ routes: {
266
+ ethereum: {
267
+ '0xrouter1': {
268
+ type: FeeStrategyType.linear,
269
+ maxFee: '1000',
270
+ halfAmount: '500',
271
+ },
272
+ },
273
+ polygon: {
274
+ '0xrouter2': {
275
+ type: FeeStrategyType.regressive,
276
+ maxFee: '2000',
277
+ halfAmount: '1000',
278
+ },
279
+ },
280
+ },
281
+ address: '0xfee',
282
+ };
283
+ expect(derived).to.deep.equal(expectedDerived);
284
+ });
285
+ it('skips unknown domain IDs in routing fee derived config', () => {
286
+ const derived = feeArtifactToDerivedConfig({
287
+ artifactState: ArtifactState.DEPLOYED,
288
+ config: {
289
+ type: FeeType.routing,
290
+ owner: '0xowner',
291
+ beneficiary: '0xbeneficiary',
292
+ routes: {
293
+ 1: {
294
+ type: FeeStrategyType.linear,
295
+ maxFee: '1000',
296
+ halfAmount: '500',
297
+ },
298
+ 99999: {
299
+ type: FeeStrategyType.regressive,
300
+ maxFee: '2000',
301
+ halfAmount: '1000',
302
+ },
303
+ },
304
+ },
305
+ deployed: { address: '0xfee' },
306
+ }, chainLookup);
307
+ const expectedDerived = {
308
+ type: FeeType.routing,
309
+ owner: '0xowner',
310
+ beneficiary: '0xbeneficiary',
311
+ routes: {
312
+ ethereum: {
313
+ type: FeeStrategyType.linear,
314
+ maxFee: '1000',
315
+ halfAmount: '500',
316
+ },
317
+ },
318
+ address: '0xfee',
319
+ };
320
+ expect(derived).to.deep.equal(expectedDerived);
321
+ });
322
+ it('skips unknown domain IDs in crossCollateralRouting fee derived config', () => {
323
+ const derived = feeArtifactToDerivedConfig({
324
+ artifactState: ArtifactState.DEPLOYED,
325
+ config: {
326
+ type: FeeType.crossCollateralRouting,
327
+ owner: '0xowner',
328
+ beneficiary: '0xbeneficiary',
329
+ routes: {
330
+ 1: {
331
+ '0xrouter1': {
332
+ type: FeeStrategyType.linear,
333
+ maxFee: '1000',
334
+ halfAmount: '500',
335
+ },
336
+ },
337
+ 99999: {
338
+ '0xrouter2': {
339
+ type: FeeStrategyType.progressive,
340
+ maxFee: '3000',
341
+ halfAmount: '1500',
342
+ },
343
+ },
344
+ },
345
+ },
346
+ deployed: { address: '0xfee' },
347
+ }, chainLookup);
348
+ const expectedDerived = {
349
+ type: FeeType.crossCollateralRouting,
350
+ owner: '0xowner',
351
+ beneficiary: '0xbeneficiary',
352
+ routes: {
353
+ ethereum: {
354
+ '0xrouter1': {
355
+ type: FeeStrategyType.linear,
356
+ maxFee: '1000',
357
+ halfAmount: '500',
358
+ },
359
+ },
360
+ },
361
+ address: '0xfee',
362
+ };
363
+ expect(derived).to.deep.equal(expectedDerived);
364
+ });
365
+ it('throws for unhandled fee types', () => {
366
+ expect(() => feeArtifactToDerivedConfig({
367
+ artifactState: ArtifactState.DEPLOYED,
368
+ config: { type: 'futureFee' },
369
+ deployed: { address: '0xfee' },
370
+ }, chainLookup)).to.throw(/Unhandled fee type/);
371
+ });
372
+ });
373
+ describe('shouldDeployNewFee', () => {
374
+ it('requires redeploy when fee type changes', () => {
375
+ const actual = {
376
+ type: FeeType.linear,
377
+ owner: '0xowner',
378
+ beneficiary: '0xbeneficiary',
379
+ maxFee: '1000',
380
+ halfAmount: '500',
381
+ };
382
+ const expected = {
383
+ type: FeeType.regressive,
384
+ owner: '0xowner',
385
+ beneficiary: '0xbeneficiary',
386
+ maxFee: '1000',
387
+ halfAmount: '500',
388
+ };
389
+ expect(shouldDeployNewFee(actual, expected)).to.equal(true);
390
+ });
391
+ it('requires redeploy when linear fee params change', () => {
392
+ const actual = {
393
+ type: FeeType.linear,
394
+ owner: '0xowner',
395
+ beneficiary: '0xbeneficiary',
396
+ maxFee: '1000',
397
+ halfAmount: '500',
398
+ };
399
+ const expected = {
400
+ type: FeeType.linear,
401
+ owner: '0xowner',
402
+ beneficiary: '0xbeneficiary',
403
+ maxFee: '2000',
404
+ halfAmount: '1000',
405
+ };
406
+ expect(shouldDeployNewFee(actual, expected)).to.equal(true);
407
+ });
408
+ it('does not redeploy linear fee when config unchanged', () => {
409
+ const config = {
410
+ type: FeeType.linear,
411
+ owner: '0xowner',
412
+ beneficiary: '0xbeneficiary',
413
+ maxFee: '1000',
414
+ halfAmount: '500',
415
+ };
416
+ expect(shouldDeployNewFee(config, config)).to.equal(false);
417
+ });
418
+ it('requires redeploy when offchainQuotedLinear params change', () => {
419
+ const actual = {
420
+ type: FeeType.offchainQuotedLinear,
421
+ owner: '0xowner',
422
+ beneficiary: '0xbeneficiary',
423
+ maxFee: '1000',
424
+ halfAmount: '500',
425
+ quoteSigners: ['0xsigner1'],
426
+ };
427
+ const expected = {
428
+ type: FeeType.offchainQuotedLinear,
429
+ owner: '0xowner',
430
+ beneficiary: '0xbeneficiary',
431
+ maxFee: '2000',
432
+ halfAmount: '500',
433
+ quoteSigners: ['0xsigner1'],
434
+ };
435
+ expect(shouldDeployNewFee(actual, expected)).to.equal(true);
436
+ });
437
+ it('does not redeploy routing fee (mutable)', () => {
438
+ const actual = {
439
+ type: FeeType.routing,
440
+ owner: '0xowner',
441
+ beneficiary: '0xbeneficiary',
442
+ routes: {},
443
+ };
444
+ const expected = {
445
+ type: FeeType.routing,
446
+ owner: '0xnewowner',
447
+ beneficiary: '0xnewbeneficiary',
448
+ routes: {
449
+ 1: {
450
+ type: FeeStrategyType.linear,
451
+ maxFee: '1000',
452
+ halfAmount: '500',
453
+ },
454
+ },
455
+ };
456
+ expect(shouldDeployNewFee(actual, expected)).to.equal(false);
457
+ });
458
+ it('does not redeploy crossCollateralRouting fee (mutable)', () => {
459
+ const actual = {
460
+ type: FeeType.crossCollateralRouting,
461
+ owner: '0xowner',
462
+ beneficiary: '0xbeneficiary',
463
+ routes: {},
464
+ };
465
+ const expected = {
466
+ type: FeeType.crossCollateralRouting,
467
+ owner: '0xnewowner',
468
+ beneficiary: '0xnewbeneficiary',
469
+ routes: {
470
+ 1: {
471
+ '0xrouter': {
472
+ type: FeeStrategyType.linear,
473
+ maxFee: '1000',
474
+ halfAmount: '500',
475
+ },
476
+ },
477
+ },
478
+ };
479
+ expect(shouldDeployNewFee(actual, expected)).to.equal(false);
480
+ });
481
+ it('throws for unhandled fee types', () => {
482
+ expect(() => shouldDeployNewFee({ type: 'futureFee' }, { type: 'futureFee' })).to.throw(/Unhandled fee type in shouldDeployNewFee/);
483
+ });
484
+ });
485
+ describe('mergeFeeArtifacts', () => {
486
+ it('returns expected artifact when no current exists', () => {
487
+ const expected = {
488
+ artifactState: ArtifactState.NEW,
489
+ config: {
490
+ type: FeeType.linear,
491
+ owner: '0xowner',
492
+ beneficiary: '0xbeneficiary',
493
+ maxFee: '1000',
494
+ halfAmount: '500',
495
+ },
496
+ };
497
+ const result = mergeFeeArtifacts(undefined, expected);
498
+ expect(result).to.deep.equal(expected);
499
+ });
500
+ it('deploys new fee when type changes', () => {
501
+ const current = {
502
+ artifactState: ArtifactState.DEPLOYED,
503
+ config: {
504
+ type: FeeType.linear,
505
+ owner: '0xowner',
506
+ beneficiary: '0xbeneficiary',
507
+ maxFee: '1000',
508
+ halfAmount: '500',
509
+ },
510
+ deployed: { address: '0xold' },
511
+ };
512
+ const expected = {
513
+ artifactState: ArtifactState.NEW,
514
+ config: {
515
+ type: FeeType.regressive,
516
+ owner: '0xowner',
517
+ beneficiary: '0xbeneficiary',
518
+ maxFee: '1000',
519
+ halfAmount: '500',
520
+ },
521
+ };
522
+ const result = mergeFeeArtifacts(current, expected);
523
+ expect(result.artifactState).to.equal(ArtifactState.NEW);
524
+ });
525
+ it('reuses current address for mutable routing fee updates', () => {
526
+ const current = {
527
+ artifactState: ArtifactState.DEPLOYED,
528
+ config: {
529
+ type: FeeType.routing,
530
+ owner: '0xowner',
531
+ beneficiary: '0xbeneficiary',
532
+ routes: {},
533
+ },
534
+ deployed: { address: '0xexisting' },
535
+ };
536
+ const expected = {
537
+ artifactState: ArtifactState.NEW,
538
+ config: {
539
+ type: FeeType.routing,
540
+ owner: '0xnewowner',
541
+ beneficiary: '0xbeneficiary',
542
+ routes: {
543
+ 1: {
544
+ type: FeeStrategyType.linear,
545
+ maxFee: '1000',
546
+ halfAmount: '500',
547
+ },
548
+ },
549
+ },
550
+ };
551
+ const result = mergeFeeArtifacts(current, expected);
552
+ expect(result.artifactState).to.equal(ArtifactState.DEPLOYED);
553
+ expect(result.deployed.address).to.equal('0xexisting');
554
+ });
555
+ it('deploys new linear fee when params change', () => {
556
+ const current = {
557
+ artifactState: ArtifactState.DEPLOYED,
558
+ config: {
559
+ type: FeeType.linear,
560
+ owner: '0xowner',
561
+ beneficiary: '0xbeneficiary',
562
+ maxFee: '1000',
563
+ halfAmount: '500',
564
+ },
565
+ deployed: { address: '0xold' },
566
+ };
567
+ const expected = {
568
+ artifactState: ArtifactState.NEW,
569
+ config: {
570
+ type: FeeType.linear,
571
+ owner: '0xowner',
572
+ beneficiary: '0xbeneficiary',
573
+ maxFee: '2000',
574
+ halfAmount: '1000',
575
+ },
576
+ };
577
+ const result = mergeFeeArtifacts(current, expected);
578
+ expect(result.artifactState).to.equal(ArtifactState.NEW);
579
+ });
580
+ });
581
+ });
582
+ //# sourceMappingURL=fee.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.test.js","sourceRoot":"","sources":["../src/fee.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,8 @@ export * as AltVM from './altvm.js';
2
2
  export { ChainMetadataForAltVM } from './chain.js';
3
3
  export { coreConfigToArtifact, coreResultToDeployedAddresses } from './core.js';
4
4
  export { MinimumRequiredGasByAction, GasAction } from './mingas.js';
5
- export { ProtocolType, ProtocolTypeValue, ProtocolSmallestUnit, SignerConfig, ProtocolProvider, registerProtocol, getProtocolProvider, hasProtocol, listProtocols, } from './protocol.js';
5
+ export { ProtocolType, ProtocolTypeValue, ProtocolSmallestUnit, } from './protocolType.js';
6
+ export { SignerConfig, ProtocolProvider, registerProtocol, getProtocolProvider, hasProtocol, listProtocols, } from './protocol.js';
6
7
  export { ITransactionSubmitter, TransactionSubmitterConfig, JsonRpcSubmitterConfig, FileSubmitterConfig, } from './submitter.js';
7
8
  export { MockProvider } from './test/AltVMMockProvider.js';
8
9
  export { MockSigner } from './test/AltVMMockSigner.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export * as AltVM from './altvm.js';
2
2
  export { coreConfigToArtifact, coreResultToDeployedAddresses } from './core.js';
3
3
  export { GasAction } from './mingas.js';
4
- export { ProtocolType, ProtocolSmallestUnit, registerProtocol, getProtocolProvider, hasProtocol, listProtocols, } from './protocol.js';
4
+ export { ProtocolType, ProtocolSmallestUnit, } from './protocolType.js';
5
+ export { registerProtocol, getProtocolProvider, hasProtocol, listProtocols, } from './protocol.js';
5
6
  export { MockProvider } from './test/AltVMMockProvider.js';
6
7
  export { MockSigner } from './test/AltVMMockSigner.js';
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAA8B,SAAS,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,YAAY,EAEZ,oBAAoB,EAGpB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAA8B,SAAS,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,YAAY,EAEZ,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}