@axelar-network/axelarjs-sdk 0.15.0-alpha.4 → 0.15.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.
- package/dist/src/libs/fee/getL1Fee.d.ts +0 -5
- package/dist/src/libs/fee/getL1Fee.d.ts.map +1 -1
- package/dist/src/libs/fee/getL1Fee.js +4 -39
- package/dist/src/libs/fee/getL1Fee.js.map +1 -1
- package/dist/src/libs/fee/getL1Fee.spec.js +10 -4
- package/dist/src/libs/fee/getL1Fee.spec.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { BigNumber, ethers } from "ethers";
|
|
2
2
|
import { EstimateL1FeeParams } from "../types";
|
|
3
|
-
export declare type ContractCallContext = {
|
|
4
|
-
reference: string;
|
|
5
|
-
contractAddress: string;
|
|
6
|
-
abi: any;
|
|
7
|
-
};
|
|
8
3
|
/**
|
|
9
4
|
* Get the estimated L1 fee for a given L2 chain.
|
|
10
5
|
* @param env The environment to use. Either "mainnet" or "testnet".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getL1Fee.d.ts","sourceRoot":"","sources":["../../../../src/libs/fee/getL1Fee.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"getL1Fee.d.ts","sourceRoot":"","sources":["../../../../src/libs/fee/getL1Fee.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAM/C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,EAC1C,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,SAAS,CAAC,CAiBpB"}
|
|
@@ -13,14 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.getL1FeeForL2 = void 0;
|
|
14
14
|
const ethers_1 = require("ethers");
|
|
15
15
|
const ABI = {
|
|
16
|
-
Optimism: [
|
|
17
|
-
// "function getL1GasUsed(bytes executeData) view returns (uint256)",
|
|
18
|
-
"function getL1Fee(bytes executeData) view returns (uint256)",
|
|
19
|
-
],
|
|
20
|
-
Mantle: [
|
|
21
|
-
"function overhead() view returns (uint256)",
|
|
22
|
-
"function scalar() view returns (uint256)",
|
|
23
|
-
],
|
|
16
|
+
Optimism: ["function getL1Fee(bytes executeData) view returns (uint256)"],
|
|
24
17
|
};
|
|
25
18
|
/**
|
|
26
19
|
* Get the estimated L1 fee for a given L2 chain.
|
|
@@ -33,11 +26,10 @@ function getL1FeeForL2(provider, params) {
|
|
|
33
26
|
const { l1GasOracleAddress } = params;
|
|
34
27
|
const _l1GasOracleAddress = l1GasOracleAddress || "0x420000000000000000000000000000000000000F";
|
|
35
28
|
switch (params.l2Type) {
|
|
36
|
-
case "mantle":
|
|
37
|
-
return getMantleL1Fee(provider, Object.assign(Object.assign({}, params), { l1GasOracleAddress: _l1GasOracleAddress }));
|
|
38
29
|
case "op":
|
|
39
30
|
return getOptimismL1Fee(provider, Object.assign(Object.assign({}, params), { l1GasOracleAddress: _l1GasOracleAddress }));
|
|
40
|
-
//
|
|
31
|
+
// RPC clients for Arbitrum and Mantle include both L1 and L2 components in gasLimit.
|
|
32
|
+
case "mantle":
|
|
41
33
|
case "arb":
|
|
42
34
|
default:
|
|
43
35
|
return Promise.resolve(ethers_1.BigNumber.from(0));
|
|
@@ -47,35 +39,8 @@ exports.getL1FeeForL2 = getL1FeeForL2;
|
|
|
47
39
|
function getOptimismL1Fee(provider, estimateL1FeeParams) {
|
|
48
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
41
|
const { executeData, l1GasOracleAddress } = estimateL1FeeParams;
|
|
50
|
-
const
|
|
51
|
-
const contract = new ethers_1.ethers.Contract(callContext.contractAddress, callContext.abi, provider);
|
|
42
|
+
const contract = new ethers_1.ethers.Contract(l1GasOracleAddress, ABI.Optimism, provider);
|
|
52
43
|
return contract.getL1Fee(executeData);
|
|
53
44
|
});
|
|
54
45
|
}
|
|
55
|
-
function getMantleL1Fee(provider, estimateL1FeeParams) {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const { l1GasPrice, l1GasOracleAddress } = estimateL1FeeParams;
|
|
58
|
-
const callContext = buildContractCallContext("mantle", l1GasOracleAddress);
|
|
59
|
-
const contract = new ethers_1.ethers.Contract(callContext.contractAddress, callContext.abi, provider);
|
|
60
|
-
const fixedOverhead = yield contract.overhead();
|
|
61
|
-
return ethers_1.BigNumber.from(l1GasPrice.value).mul(fixedOverhead || 2100);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
function buildContractCallContext(type, l1GasOracleAddress) {
|
|
65
|
-
if (type === "optimism") {
|
|
66
|
-
return {
|
|
67
|
-
reference: "gasOracle",
|
|
68
|
-
contractAddress: l1GasOracleAddress,
|
|
69
|
-
abi: ABI.Optimism,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
else if (type === "mantle") {
|
|
73
|
-
return {
|
|
74
|
-
reference: "gasOracle",
|
|
75
|
-
contractAddress: l1GasOracleAddress,
|
|
76
|
-
abi: ABI.Mantle,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
throw new Error("Invalid contract call type");
|
|
80
|
-
}
|
|
81
46
|
//# sourceMappingURL=getL1Fee.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getL1Fee.js","sourceRoot":"","sources":["../../../../src/libs/fee/getL1Fee.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;;;;;;;;;;AAExD,mCAA2C;AAG3C,MAAM,GAAG,GAAG;IACV,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"getL1Fee.js","sourceRoot":"","sources":["../../../../src/libs/fee/getL1Fee.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;;;;;;;;;;AAExD,mCAA2C;AAG3C,MAAM,GAAG,GAAG;IACV,QAAQ,EAAE,CAAC,6DAA6D,CAAC;CAC1E,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,QAA0C,EAC1C,MAA2B;IAE3B,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAEtC,MAAM,mBAAmB,GAAG,kBAAkB,IAAI,4CAA4C,CAAC;IAE/F,QAAQ,MAAM,CAAC,MAAM,EAAE;QACrB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC,QAAQ,kCAC3B,MAAM,KACT,kBAAkB,EAAE,mBAAmB,IACvC,CAAC;QACL,qFAAqF;QACrF,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC;QACX;YACE,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;AACH,CAAC;AApBD,sCAoBC;AAED,SAAe,gBAAgB,CAC7B,QAAmC,EACnC,mBAAwC;;QAExC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,CAAC;QAEhE,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,kBAA4B,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;CAAA"}
|
|
@@ -24,6 +24,7 @@ function getL1Fee(srcChain, destChain) {
|
|
|
24
24
|
executeData: constants_1.DEFAULT_L1_EXECUTE_DATA,
|
|
25
25
|
destChain,
|
|
26
26
|
l1GasPrice: destToken.l1_gas_price_in_units,
|
|
27
|
+
l1GasOracleAddress: destToken.l1_gas_oracle_address,
|
|
27
28
|
l2Type: l2_type,
|
|
28
29
|
};
|
|
29
30
|
const provider = new ethers_1.ethers.providers.JsonRpcProvider(mainnet_1.rpcMap[destChain]);
|
|
@@ -34,11 +35,16 @@ function getL1Fee(srcChain, destChain) {
|
|
|
34
35
|
describe("getL1Fee", () => {
|
|
35
36
|
it("query l1 fee for l2 chains should work", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
37
|
const srcChain = "ethereum";
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const fees = yield Promise.all(
|
|
40
|
-
expect(fees.length).toBe(
|
|
38
|
+
const destChainsThatShouldIncludeL1Fees = ["optimism", "blast", "fraxtal", "base", "scroll"];
|
|
39
|
+
const l1FeeQueries = destChainsThatShouldIncludeL1Fees.map((destChain) => getL1Fee(srcChain, destChain));
|
|
40
|
+
const fees = yield Promise.all(l1FeeQueries);
|
|
41
|
+
expect(fees.length).toBe(destChainsThatShouldIncludeL1Fees.length);
|
|
41
42
|
expect(fees.every((fee) => fee.gt(0))).toBe(true);
|
|
43
|
+
const destChainsThatShouldNotIncludeL1Fees = ["mantle", "arbitrum"];
|
|
44
|
+
const ZeroL1FeeQueries = destChainsThatShouldNotIncludeL1Fees.map((destChain) => getL1Fee(srcChain, destChain));
|
|
45
|
+
const fees2 = yield Promise.all(ZeroL1FeeQueries);
|
|
46
|
+
expect(fees2.length).toBe(destChainsThatShouldNotIncludeL1Fees.length);
|
|
47
|
+
expect(fees2.every((fee) => fee.eq(0))).toBe(true);
|
|
42
48
|
}));
|
|
43
49
|
});
|
|
44
50
|
//# sourceMappingURL=getL1Fee.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getL1Fee.spec.js","sourceRoot":"","sources":["../../../../src/libs/fee/getL1Fee.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAgC;AAChC,+EAA2E;AAC3E,oCAA4D;AAC5D,yCAA2C;AAC3C,sDAAmD;AACnD,+CAA0D;AAE1D,MAAM,GAAG,GAAG,mBAAW,CAAC,OAAO,CAAC;AAEhC,SAAe,QAAQ,CAAC,QAAgB,EAAE,SAAiB;;QACzD,MAAM,QAAQ,GAAG,IAAI,+BAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAwB;YAClC,WAAW,EAAE,mCAAuB;YACpC,SAAS;YACT,UAAU,EAAE,SAAS,CAAC,qBAAsB;YAC5C,MAAM,EAAE,OAAO;SAChB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,gBAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,MAAM,IAAA,wBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,GAAG,CAAC;IACb,CAAC;CAAA;AAED,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"getL1Fee.spec.js","sourceRoot":"","sources":["../../../../src/libs/fee/getL1Fee.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAgC;AAChC,+EAA2E;AAC3E,oCAA4D;AAC5D,yCAA2C;AAC3C,sDAAmD;AACnD,+CAA0D;AAE1D,MAAM,GAAG,GAAG,mBAAW,CAAC,OAAO,CAAC;AAEhC,SAAe,QAAQ,CAAC,QAAgB,EAAE,SAAiB;;QACzD,MAAM,QAAQ,GAAG,IAAI,+BAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAwB;YAClC,WAAW,EAAE,mCAAuB;YACpC,SAAS;YACT,UAAU,EAAE,SAAS,CAAC,qBAAsB;YAC5C,kBAAkB,EAAE,SAAS,CAAC,qBAAqB;YACnD,MAAM,EAAE,OAAO;SAChB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,gBAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,MAAM,IAAA,wBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,GAAG,CAAC;IACb,CAAC;CAAA;AAED,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,MAAM,iCAAiC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE7F,MAAM,YAAY,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAC9B,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,oCAAoC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,gBAAgB,GAAG,oCAAoC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9E,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAC9B,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAElD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|