|
1 | | -import { CallData, RawArgs, json, stark } from '../../src'; |
2 | | -import { FeeEstimate } from '../../src/types/api'; |
| 1 | +import { CallData, RawArgs, UniversalDetails, json, stark } from '../../src'; |
| 2 | +import { EDataAvailabilityMode, FeeEstimate } from '../../src/types/api'; |
3 | 3 | import { toBigInt, toHex } from '../../src/utils/num'; |
4 | 4 | import { compiledOpenZeppelinAccount } from '../config/fixtures'; |
5 | 5 |
|
@@ -83,4 +83,25 @@ describe('stark', () => { |
83 | 83 | l1_gas: { max_amount: '0x6e', max_price_per_unit: '0xf' }, |
84 | 84 | }); |
85 | 85 | }); |
| 86 | + |
| 87 | + test('v3Details', () => { |
| 88 | + const setValues = (o: {}, v: any) => Object.fromEntries(Object.keys(o).map((k) => [k, v])); |
| 89 | + |
| 90 | + const details: UniversalDetails = { |
| 91 | + tip: 99n, |
| 92 | + paymasterData: [99n, 99n], |
| 93 | + accountDeploymentData: [99n, 99n], |
| 94 | + nonceDataAvailabilityMode: EDataAvailabilityMode.L2, |
| 95 | + feeDataAvailabilityMode: EDataAvailabilityMode.L2, |
| 96 | + resourceBounds: { |
| 97 | + l1_gas: { max_amount: '0x99', max_price_per_unit: '0x99' }, |
| 98 | + l2_gas: { max_amount: '0x99', max_price_per_unit: '0x99' }, |
| 99 | + }, |
| 100 | + }; |
| 101 | + const detailsUndefined = setValues(details, undefined); |
| 102 | + const detailsAnything = setValues(details, expect.anything()); |
| 103 | + |
| 104 | + expect(stark.v3Details(details)).toMatchObject(details); |
| 105 | + expect(stark.v3Details(detailsUndefined)).toEqual(expect.objectContaining(detailsAnything)); |
| 106 | + }); |
86 | 107 | }); |
0 commit comments