@@ -960,5 +960,125 @@ describe('Simulation Utils', () => {
960
960
} ) ;
961
961
} ) ;
962
962
} ) ;
963
+
964
+ it ( 'includes authorization list in API request if in params' , async ( ) => {
965
+ await getBalanceChanges ( {
966
+ ...REQUEST_MOCK ,
967
+ txParams : {
968
+ ...REQUEST_MOCK . txParams ,
969
+ authorizationList : [
970
+ {
971
+ address : CONTRACT_ADDRESS_2_MOCK ,
972
+ chainId : '0x321' ,
973
+ nonce : '0x1' ,
974
+ r : '0x2' ,
975
+ s : '0x3' ,
976
+ yParity : '0x1' ,
977
+ } ,
978
+ ] ,
979
+ } ,
980
+ } ) ;
981
+
982
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledTimes ( 1 ) ;
983
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledWith (
984
+ expect . any ( String ) ,
985
+ expect . objectContaining ( {
986
+ transactions : [
987
+ expect . objectContaining ( {
988
+ authorizationList : [
989
+ {
990
+ address : CONTRACT_ADDRESS_2_MOCK ,
991
+ from : USER_ADDRESS_MOCK ,
992
+ } ,
993
+ ] ,
994
+ } ) ,
995
+ ] ,
996
+ } ) ,
997
+ ) ;
998
+ } ) ;
999
+
1000
+ describe ( 'overrides balance in API request if insufficient balance due to' , ( ) => {
1001
+ it ( 'gas fee' , async ( ) => {
1002
+ queryMock . mockResolvedValue ( '0x7d182d' ) ;
1003
+
1004
+ await getBalanceChanges ( {
1005
+ ...REQUEST_MOCK ,
1006
+ txParams : {
1007
+ ...REQUEST_MOCK . txParams ,
1008
+ value : '0x0' ,
1009
+ } ,
1010
+ } ) ;
1011
+
1012
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledTimes ( 1 ) ;
1013
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledWith (
1014
+ expect . any ( String ) ,
1015
+ expect . objectContaining ( {
1016
+ overrides : {
1017
+ [ USER_ADDRESS_MOCK ] : {
1018
+ balance : '0x7d182e' ,
1019
+ } ,
1020
+ } ,
1021
+ } ) ,
1022
+ ) ;
1023
+ } ) ;
1024
+
1025
+ it ( 'value' , async ( ) => {
1026
+ queryMock . mockResolvedValue ( '0x122' ) ;
1027
+
1028
+ await getBalanceChanges ( {
1029
+ ...REQUEST_MOCK ,
1030
+ txParams : {
1031
+ ...REQUEST_MOCK . txParams ,
1032
+ gas : '0x0' ,
1033
+ value : '0x123' ,
1034
+ } ,
1035
+ } ) ;
1036
+
1037
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledTimes ( 1 ) ;
1038
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledWith (
1039
+ expect . any ( String ) ,
1040
+ expect . objectContaining ( {
1041
+ overrides : {
1042
+ [ USER_ADDRESS_MOCK ] : {
1043
+ balance : '0x123' ,
1044
+ } ,
1045
+ } ,
1046
+ } ) ,
1047
+ ) ;
1048
+ } ) ;
1049
+
1050
+ it ( 'nested transaction value' , async ( ) => {
1051
+ queryMock . mockResolvedValue ( '0x332' ) ;
1052
+
1053
+ await getBalanceChanges ( {
1054
+ ...REQUEST_MOCK ,
1055
+ nestedTransactions : [
1056
+ {
1057
+ value : '0x111' ,
1058
+ } ,
1059
+ {
1060
+ value : '0x222' ,
1061
+ } ,
1062
+ ] ,
1063
+ txParams : {
1064
+ ...REQUEST_MOCK . txParams ,
1065
+ gas : '0x0' ,
1066
+ value : '0x0' ,
1067
+ } ,
1068
+ } ) ;
1069
+
1070
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledTimes ( 1 ) ;
1071
+ expect ( simulateTransactionsMock ) . toHaveBeenCalledWith (
1072
+ expect . any ( String ) ,
1073
+ expect . objectContaining ( {
1074
+ overrides : {
1075
+ [ USER_ADDRESS_MOCK ] : {
1076
+ balance : '0x333' ,
1077
+ } ,
1078
+ } ,
1079
+ } ) ,
1080
+ ) ;
1081
+ } ) ;
1082
+ } ) ;
963
1083
} ) ;
964
1084
} ) ;
0 commit comments