@0xsquid/react-hooks 3.0.7 → 3.0.8
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/dist/services/internal/estimateService.d.ts +3 -3
- package/dist/services/internal/estimateService.js +3 -4
- package/dist/services/internal/estimateService.js.map +1 -1
- package/dist/tests/estimateService.test.js +147 -2
- package/dist/tests/estimateService.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,9 +8,9 @@ export declare const formatAmount: (amountInWei: string | undefined, decimals: n
|
|
|
8
8
|
export declare const parseToAmountUSD: (toAmountUSD: string | undefined) => number;
|
|
9
9
|
export declare const calculateExpectedGasRefundCost: (firstFeeCost: PartialFeeCost | undefined, fromChainType?: ChainType) => bigint;
|
|
10
10
|
export declare const calculateTotalNativeFees: ({ expressFeeCost, firstFeeCost, firstGasCost, sameTokenBetweenFees, }: {
|
|
11
|
-
expressFeeCost: FeeCost | undefined;
|
|
12
|
-
firstFeeCost: FeeCost | undefined;
|
|
13
|
-
firstGasCost: GasCost | undefined;
|
|
11
|
+
expressFeeCost: Pick<FeeCost, "amount"> | undefined;
|
|
12
|
+
firstFeeCost: Pick<FeeCost, "amount"> | undefined;
|
|
13
|
+
firstGasCost: Pick<GasCost, "amount"> | undefined;
|
|
14
14
|
sameTokenBetweenFees: boolean;
|
|
15
15
|
}) => bigint;
|
|
16
16
|
export declare const isFromBalanceEnoughToSwap: ({ isFromTokenNative, fromAmount, fromTokenDecimals, totalFeesInNativeTokenPlusRatio, nativeTokenBalanceFromChainWei, sourceChainNativeTokenDecimals, }: {
|
|
@@ -12,11 +12,10 @@ export const calculateExpectedGasRefundCost = (firstFeeCost, fromChainType) => {
|
|
|
12
12
|
const refundMultiplier = BigInt(gasRefundMultiplier);
|
|
13
13
|
return (amount * refundMultiplier) / BigInt(100);
|
|
14
14
|
};
|
|
15
|
-
export const calculateTotalNativeFees = ({ expressFeeCost, firstFeeCost, firstGasCost, sameTokenBetweenFees, }) =>
|
|
15
|
+
export const calculateTotalNativeFees = ({ expressFeeCost, firstFeeCost, firstGasCost, sameTokenBetweenFees, }) => BigInt(expressFeeCost?.amount ?? "0") +
|
|
16
16
|
(sameTokenBetweenFees
|
|
17
|
-
?
|
|
18
|
-
|
|
19
|
-
: parseToBigInt(firstGasCost?.amount ?? "0", firstGasCost?.token.decimals ?? 0));
|
|
17
|
+
? BigInt(firstFeeCost?.amount ?? "0") + BigInt(firstGasCost?.amount ?? "0")
|
|
18
|
+
: BigInt(firstGasCost?.amount ?? "0"));
|
|
20
19
|
export const isFromBalanceEnoughToSwap = ({ isFromTokenNative, fromAmount, fromTokenDecimals, totalFeesInNativeTokenPlusRatio, nativeTokenBalanceFromChainWei, sourceChainNativeTokenDecimals, }) => isFromTokenNative
|
|
21
20
|
? parseToBigInt(fromAmount ?? "0", fromTokenDecimals) +
|
|
22
21
|
totalFeesInNativeTokenPlusRatio <=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateService.js","sourceRoot":"","sources":["../../../src/services/internal/estimateService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAMzB,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,WAA+B,EAC/B,QAA4B,EAC5B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAA+B,EAAE,EAAE,CAClE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,YAAwC,EACxC,aAAyB,EACzB,EAAE;IACF,IAAI,aAAa,KAAK,SAAS,CAAC,GAAG,EAAE;QACnC,OAAO,EAAE,CAAC;KACX;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,oBAAoB,GAMrB,EAAE,EAAE,CACH,
|
|
1
|
+
{"version":3,"file":"estimateService.js","sourceRoot":"","sources":["../../../src/services/internal/estimateService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
+
import { formatUnits } from "ethers";
|
|
2
3
|
import { gasRefundMultiplier } from "../core/constants";
|
|
3
4
|
import { findNativeToken, findToken } from "../services";
|
|
4
|
-
import { calculateExpectedGasRefundCost, formatAmount, formatEstimatedRouteDuration, parseToAmountUSD, } from "../services/internal/estimateService";
|
|
5
|
+
import { calculateExpectedGasRefundCost, calculateTotalNativeFees, formatAmount, formatEstimatedRouteDuration, parseToAmountUSD, } from "../services/internal/estimateService";
|
|
5
6
|
describe("estimateService", () => {
|
|
6
7
|
const mockTokens = [
|
|
7
8
|
{ chainId: "1", address: "0x123", symbol: "ETH", decimals: 18 },
|
|
@@ -87,6 +88,150 @@ describe("estimateService", () => {
|
|
|
87
88
|
expect(result.seconds).toBe(1);
|
|
88
89
|
});
|
|
89
90
|
});
|
|
90
|
-
|
|
91
|
+
describe("calculateTotalNativeFees", () => {
|
|
92
|
+
test("should calculate total native fees when sameTokenBetweenFees is true", () => {
|
|
93
|
+
// Example route: Arbitrum USDC to Base ETH
|
|
94
|
+
const expressFeeCost = {
|
|
95
|
+
amount: "0",
|
|
96
|
+
token: {
|
|
97
|
+
type: "evm",
|
|
98
|
+
chainId: "42161",
|
|
99
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
100
|
+
name: "Ethereum",
|
|
101
|
+
symbol: "ETH",
|
|
102
|
+
decimals: 18,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
const firstFeeCost = {
|
|
106
|
+
amount: "65468481457747",
|
|
107
|
+
token: {
|
|
108
|
+
type: "evm",
|
|
109
|
+
chainId: "42161",
|
|
110
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
111
|
+
name: "Ethereum",
|
|
112
|
+
symbol: "ETH",
|
|
113
|
+
decimals: 18,
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
const firstGasCost = {
|
|
117
|
+
amount: "1137193150903875",
|
|
118
|
+
token: {
|
|
119
|
+
type: "evm",
|
|
120
|
+
chainId: "42161",
|
|
121
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
122
|
+
name: "Ethereum",
|
|
123
|
+
symbol: "ETH",
|
|
124
|
+
decimals: 18,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
const result = calculateTotalNativeFees({
|
|
128
|
+
expressFeeCost,
|
|
129
|
+
firstFeeCost,
|
|
130
|
+
firstGasCost,
|
|
131
|
+
sameTokenBetweenFees: true,
|
|
132
|
+
});
|
|
133
|
+
expect(result.toString()).toBe("1202661632361622");
|
|
134
|
+
expect(formatUnits(result.toString(), firstGasCost.token.decimals).toString()).toBe("0.001202661632361622");
|
|
135
|
+
});
|
|
136
|
+
test("should calculate total native fees when sameTokenBetweenFees is false", () => {
|
|
137
|
+
// Example route: Arbitrum USDC to Noble USDC
|
|
138
|
+
const firstGasCost = {
|
|
139
|
+
amount: "241600000000000",
|
|
140
|
+
token: {
|
|
141
|
+
type: "evm",
|
|
142
|
+
chainId: "42161",
|
|
143
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
144
|
+
name: "Ethereum",
|
|
145
|
+
symbol: "ETH",
|
|
146
|
+
decimals: 18,
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
const result = calculateTotalNativeFees({
|
|
150
|
+
expressFeeCost: undefined,
|
|
151
|
+
firstFeeCost: undefined,
|
|
152
|
+
firstGasCost,
|
|
153
|
+
sameTokenBetweenFees: false,
|
|
154
|
+
});
|
|
155
|
+
expect(result.toString()).toBe("241600000000000");
|
|
156
|
+
expect(formatUnits(result.toString(), firstGasCost.token.decimals).toString()).toBe("0.0002416");
|
|
157
|
+
});
|
|
158
|
+
test("should calculate total native fees for a bridge route", () => {
|
|
159
|
+
// Example route: Polygon axlfrxETH to Polygon axlfrxETH
|
|
160
|
+
const expressFeeCost = {
|
|
161
|
+
amount: "386269740211982349",
|
|
162
|
+
token: {
|
|
163
|
+
type: "evm",
|
|
164
|
+
chainId: "137",
|
|
165
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
166
|
+
name: "POL",
|
|
167
|
+
symbol: "POL",
|
|
168
|
+
decimals: 18,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
const firstFeeCost = {
|
|
172
|
+
amount: "1778362549068611127",
|
|
173
|
+
token: {
|
|
174
|
+
type: "evm",
|
|
175
|
+
chainId: "137",
|
|
176
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
177
|
+
name: "POL",
|
|
178
|
+
symbol: "POL",
|
|
179
|
+
decimals: 18,
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
const firstGasCost = {
|
|
183
|
+
amount: "10395000010560000",
|
|
184
|
+
token: {
|
|
185
|
+
type: "evm",
|
|
186
|
+
chainId: "137",
|
|
187
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
188
|
+
name: "POL",
|
|
189
|
+
symbol: "POL",
|
|
190
|
+
decimals: 18,
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
const result = calculateTotalNativeFees({
|
|
194
|
+
expressFeeCost,
|
|
195
|
+
firstFeeCost,
|
|
196
|
+
firstGasCost,
|
|
197
|
+
sameTokenBetweenFees: false,
|
|
198
|
+
});
|
|
199
|
+
expect(result.toString()).toBe("396664740222542349");
|
|
200
|
+
expect(formatUnits(result.toString(), firstGasCost.token.decimals).toString()).toBe("0.396664740222542349");
|
|
201
|
+
});
|
|
202
|
+
test("should calculate total native fees when express fee is zero", () => {
|
|
203
|
+
// Example route: Ethereum AI (ITS) to Optimism AI (ITS)
|
|
204
|
+
const firstFeeCost = {
|
|
205
|
+
amount: "75695654412533",
|
|
206
|
+
token: {
|
|
207
|
+
type: "evm",
|
|
208
|
+
chainId: "1",
|
|
209
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
210
|
+
name: "Ethereum",
|
|
211
|
+
symbol: "ETH",
|
|
212
|
+
decimals: 18,
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
const firstGasCost = {
|
|
216
|
+
token: {
|
|
217
|
+
type: "evm",
|
|
218
|
+
chainId: "1",
|
|
219
|
+
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
220
|
+
name: "Ethereum",
|
|
221
|
+
symbol: "ETH",
|
|
222
|
+
decimals: 18,
|
|
223
|
+
},
|
|
224
|
+
amount: "1560682282775000",
|
|
225
|
+
};
|
|
226
|
+
const result = calculateTotalNativeFees({
|
|
227
|
+
expressFeeCost: undefined,
|
|
228
|
+
firstFeeCost,
|
|
229
|
+
firstGasCost,
|
|
230
|
+
sameTokenBetweenFees: false,
|
|
231
|
+
});
|
|
232
|
+
expect(result.toString()).toBe("1560682282775000");
|
|
233
|
+
expect(formatUnits(result.toString(), firstGasCost.token.decimals).toString()).toBe("0.001560682282775");
|
|
234
|
+
});
|
|
235
|
+
});
|
|
91
236
|
});
|
|
92
237
|
//# sourceMappingURL=estimateService.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateService.test.js","sourceRoot":"","sources":["../../src/tests/estimateService.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"estimateService.test.js","sourceRoot":"","sources":["../../src/tests/estimateService.test.ts"],"names":[],"mappings":"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"}
|