1
- import { zeroAddress } from 'viem'
1
+ import { decodeAbiParameters , zeroAddress } from 'viem'
2
2
3
- import { CallPlanner } from './callPlanner'
3
+ import { CALL_ABI_PARAMS , CallPlanner } from './callPlanner'
4
4
5
5
6
6
// Test constants
@@ -53,13 +53,14 @@ describe('CallPlanner', () => {
53
53
describe ( 'encode' , ( ) => {
54
54
it ( 'should correctly abi encode the calls' , ( ) => {
55
55
const planner = new CallPlanner ( [
56
- { to : TEST_ADDRESS_1 , data : TEST_DATA_1 , value : TEST_VALUE_1 }
56
+ { to : TEST_ADDRESS_1 , value : TEST_VALUE_1 , data : TEST_DATA_1 }
57
57
] )
58
58
59
59
const encoded = planner . encode ( )
60
- // We're just checking that it returns a hex string and doesn't throw
61
- expect ( encoded ) . toMatch ( / ^ 0 x / )
62
- expect ( typeof encoded ) . toBe ( 'string' )
60
+
61
+ // decode the encoded data
62
+ const decoded = decodeAbiParameters ( CALL_ABI_PARAMS , encoded )
63
+ expect ( decoded ) . toEqual ( [ [ { to : TEST_ADDRESS_1 , value : TEST_VALUE_1 , data : TEST_DATA_1 } ] ] )
63
64
} )
64
65
65
66
it ( 'should throw an error if there are no calls to encode' , ( ) => {
@@ -71,31 +72,31 @@ describe('CallPlanner', () => {
71
72
describe ( 'add' , ( ) => {
72
73
it ( 'should add a new call to the calls array' , ( ) => {
73
74
const planner = new CallPlanner ( )
74
- planner . add ( TEST_ADDRESS_1 , TEST_DATA_1 , TEST_VALUE_1 )
75
+ planner . add ( TEST_ADDRESS_1 , TEST_VALUE_1 , TEST_DATA_1 )
75
76
expect ( planner . calls ) . toEqual ( [ { to : TEST_ADDRESS_1 , data : TEST_DATA_1 , value : TEST_VALUE_1 } ] )
76
77
} )
77
78
78
79
it ( 'should add a new call with bigint value' , ( ) => {
79
80
const planner = new CallPlanner ( )
80
- planner . add ( TEST_ADDRESS_1 , TEST_DATA_1 , 100n )
81
+ planner . add ( TEST_ADDRESS_1 , 100n , TEST_DATA_1 )
81
82
expect ( planner . calls ) . toEqual ( [ { to : TEST_ADDRESS_1 , data : TEST_DATA_1 , value : 100n } ] )
82
83
} )
83
84
84
85
it ( 'should return the planner instance for chaining' , ( ) => {
85
86
const planner = new CallPlanner ( )
86
- const result = planner . add ( TEST_ADDRESS_1 , TEST_DATA_1 , TEST_VALUE_1 )
87
+ const result = planner . add ( TEST_ADDRESS_1 , TEST_VALUE_1 , TEST_DATA_1 )
87
88
expect ( result ) . toBe ( planner )
88
89
} )
89
90
90
91
it ( 'should allow chaining multiple add calls' , ( ) => {
91
92
const planner = new CallPlanner ( )
92
93
planner
93
- . add ( TEST_ADDRESS_1 , TEST_DATA_1 , TEST_VALUE_1 )
94
- . add ( TEST_ADDRESS_1 , TEST_DATA_2 , TEST_VALUE_2 )
94
+ . add ( TEST_ADDRESS_1 , TEST_VALUE_1 , TEST_DATA_1 )
95
+ . add ( TEST_ADDRESS_1 , TEST_VALUE_2 , TEST_DATA_2 )
95
96
96
97
expect ( planner . calls ) . toEqual ( [
97
- { to : TEST_ADDRESS_1 , data : TEST_DATA_1 , value : TEST_VALUE_1 } ,
98
- { to : TEST_ADDRESS_1 , data : TEST_DATA_2 , value : TEST_VALUE_2 }
98
+ { to : TEST_ADDRESS_1 , value : TEST_VALUE_1 , data : TEST_DATA_1 } ,
99
+ { to : TEST_ADDRESS_1 , value : TEST_VALUE_2 , data : TEST_DATA_2 }
99
100
] )
100
101
} )
101
102
} )
0 commit comments