@gearbox-protocol/sdk 9.14.1 → 9.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/cjs/permissionless/bindings/address-provider.js +51 -0
- package/dist/cjs/permissionless/bindings/base-contract.js +173 -0
- package/dist/cjs/permissionless/bindings/bytecode-repository.js +526 -0
- package/dist/cjs/permissionless/bindings/compressors/index.js +24 -0
- package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +110 -0
- package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +60 -0
- package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +355 -0
- package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +52 -0
- package/dist/cjs/permissionless/bindings/factory/credit-factory.js +197 -0
- package/dist/cjs/permissionless/bindings/factory/pool-factory.js +69 -0
- package/dist/cjs/permissionless/bindings/factory/price-oracle-factory.js +47 -0
- package/dist/cjs/permissionless/bindings/governance/batches-chain.js +41 -0
- package/dist/cjs/permissionless/bindings/governance/governor.js +243 -0
- package/dist/cjs/permissionless/bindings/governance/index.js +26 -0
- package/dist/cjs/permissionless/bindings/governance/timelock.js +104 -0
- package/dist/cjs/permissionless/bindings/governance/types.js +16 -0
- package/dist/cjs/permissionless/bindings/index.js +48 -0
- package/dist/cjs/permissionless/bindings/instance-manager.js +244 -0
- package/dist/cjs/permissionless/bindings/market-configurator-factory.js +75 -0
- package/dist/cjs/permissionless/bindings/market-configurator.js +771 -0
- package/dist/cjs/permissionless/bindings/price-feed-store.js +395 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/balancer-stable.js +63 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/balancer-weighted.js +63 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/bounded.js +47 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/composite.js +43 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/constant.js +42 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/curve-crypto.js +67 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/curve-stable.js +67 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/curve-twap.js +70 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/curve-usd.js +50 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/erc4626.js +72 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/external.js +38 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/index.js +63 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/kodiak.js +50 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/mellow-lrt.js +122 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/pendle-pt-twap.js +51 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/pyth.js +65 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/redstone.js +81 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/wsteth.js +63 -0
- package/dist/cjs/permissionless/bindings/pricefeeds/zero.js +33 -0
- package/dist/cjs/permissionless/bindings/router/index.js +22 -0
- package/dist/cjs/permissionless/bindings/router/routing-manager.js +58 -0
- package/dist/cjs/permissionless/bindings/treasury-splitter.js +60 -0
- package/dist/cjs/permissionless/bindings/types.js +16 -0
- package/dist/cjs/permissionless/chains/archive-transport.js +274 -0
- package/dist/cjs/permissionless/core/auditor.js +16 -0
- package/dist/cjs/permissionless/core/bytecode.js +16 -0
- package/dist/cjs/permissionless/core/index.js +32 -0
- package/dist/cjs/permissionless/core/pricefeed-builder.js +16 -0
- package/dist/cjs/permissionless/core/pricefeed.js +16 -0
- package/dist/cjs/permissionless/core/proposal.js +16 -0
- package/dist/cjs/permissionless/core/raw-tx.js +38 -0
- package/dist/cjs/permissionless/deployment/addresses.js +35 -0
- package/dist/cjs/permissionless/deployment/mainnet.js +54 -0
- package/dist/cjs/permissionless/index.js +32 -0
- package/dist/cjs/permissionless/package.json +1 -0
- package/dist/cjs/permissionless/plugins/index.js +40 -0
- package/dist/cjs/permissionless/plugins/irm/constructor-params-abi.js +81 -0
- package/dist/cjs/permissionless/plugins/loss-policies/constructor-params-abi.js +79 -0
- package/dist/cjs/permissionless/plugins/rate-keepers/constructor-params-abi.js +89 -0
- package/dist/cjs/permissionless/utils/abi-decoder.js +72 -0
- package/dist/cjs/permissionless/utils/abi-encoder.js +89 -0
- package/dist/cjs/permissionless/utils/block-utils.js +55 -0
- package/dist/cjs/permissionless/utils/create2.js +113 -0
- package/dist/cjs/permissionless/utils/format.js +97 -0
- package/dist/cjs/permissionless/utils/governance/batch.js +114 -0
- package/dist/cjs/permissionless/utils/governance/index.js +26 -0
- package/dist/cjs/permissionless/utils/governance/timelock-txs.js +44 -0
- package/dist/cjs/permissionless/utils/governance/types.js +16 -0
- package/dist/cjs/permissionless/utils/index.js +38 -0
- package/dist/cjs/permissionless/utils/literals.js +46 -0
- package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +91 -0
- package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +84 -0
- package/dist/cjs/permissionless/utils/price-update/get-prices.js +123 -0
- package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +52 -0
- package/dist/cjs/permissionless/utils/price-update/index.js +28 -0
- package/dist/cjs/permissionless/utils/signature.js +35 -0
- package/dist/esm/permissionless/bindings/address-provider.js +27 -0
- package/dist/esm/permissionless/bindings/base-contract.js +151 -0
- package/dist/esm/permissionless/bindings/bytecode-repository.js +508 -0
- package/dist/esm/permissionless/bindings/compressors/index.js +2 -0
- package/dist/esm/permissionless/bindings/compressors/token-compressor.js +89 -0
- package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +38 -0
- package/dist/esm/permissionless/bindings/cross-chain-multisig.js +336 -0
- package/dist/esm/permissionless/bindings/factory/abstract-factory.js +28 -0
- package/dist/esm/permissionless/bindings/factory/credit-factory.js +177 -0
- package/dist/esm/permissionless/bindings/factory/pool-factory.js +45 -0
- package/dist/esm/permissionless/bindings/factory/price-oracle-factory.js +23 -0
- package/dist/esm/permissionless/bindings/governance/batches-chain.js +17 -0
- package/dist/esm/permissionless/bindings/governance/governor.js +224 -0
- package/dist/esm/permissionless/bindings/governance/index.js +3 -0
- package/dist/esm/permissionless/bindings/governance/timelock.js +80 -0
- package/dist/esm/permissionless/bindings/governance/types.js +0 -0
- package/dist/esm/permissionless/bindings/index.js +14 -0
- package/dist/esm/permissionless/bindings/instance-manager.js +223 -0
- package/dist/esm/permissionless/bindings/market-configurator-factory.js +51 -0
- package/dist/esm/permissionless/bindings/market-configurator.js +765 -0
- package/dist/esm/permissionless/bindings/price-feed-store.js +376 -0
- package/dist/esm/permissionless/bindings/pricefeeds/balancer-stable.js +39 -0
- package/dist/esm/permissionless/bindings/pricefeeds/balancer-weighted.js +39 -0
- package/dist/esm/permissionless/bindings/pricefeeds/bounded.js +23 -0
- package/dist/esm/permissionless/bindings/pricefeeds/composite.js +19 -0
- package/dist/esm/permissionless/bindings/pricefeeds/constant.js +18 -0
- package/dist/esm/permissionless/bindings/pricefeeds/curve-crypto.js +43 -0
- package/dist/esm/permissionless/bindings/pricefeeds/curve-stable.js +43 -0
- package/dist/esm/permissionless/bindings/pricefeeds/curve-twap.js +46 -0
- package/dist/esm/permissionless/bindings/pricefeeds/curve-usd.js +26 -0
- package/dist/esm/permissionless/bindings/pricefeeds/erc4626.js +48 -0
- package/dist/esm/permissionless/bindings/pricefeeds/external.js +14 -0
- package/dist/esm/permissionless/bindings/pricefeeds/index.js +39 -0
- package/dist/esm/permissionless/bindings/pricefeeds/kodiak.js +26 -0
- package/dist/esm/permissionless/bindings/pricefeeds/mellow-lrt.js +98 -0
- package/dist/esm/permissionless/bindings/pricefeeds/pendle-pt-twap.js +27 -0
- package/dist/esm/permissionless/bindings/pricefeeds/pyth.js +41 -0
- package/dist/esm/permissionless/bindings/pricefeeds/redstone.js +57 -0
- package/dist/esm/permissionless/bindings/pricefeeds/wsteth.js +39 -0
- package/dist/esm/permissionless/bindings/pricefeeds/zero.js +9 -0
- package/dist/esm/permissionless/bindings/router/index.js +1 -0
- package/dist/esm/permissionless/bindings/router/routing-manager.js +36 -0
- package/dist/esm/permissionless/bindings/treasury-splitter.js +36 -0
- package/dist/esm/permissionless/bindings/types.js +0 -0
- package/dist/esm/permissionless/chains/archive-transport.js +250 -0
- package/dist/esm/permissionless/core/auditor.js +0 -0
- package/dist/esm/permissionless/core/bytecode.js +0 -0
- package/dist/esm/permissionless/core/index.js +6 -0
- package/dist/esm/permissionless/core/pricefeed-builder.js +0 -0
- package/dist/esm/permissionless/core/pricefeed.js +0 -0
- package/dist/esm/permissionless/core/proposal.js +0 -0
- package/dist/esm/permissionless/core/raw-tx.js +14 -0
- package/dist/esm/permissionless/deployment/addresses.js +11 -0
- package/dist/esm/permissionless/deployment/mainnet.js +27 -0
- package/dist/esm/permissionless/index.js +6 -0
- package/dist/esm/permissionless/package.json +1 -0
- package/dist/esm/permissionless/plugins/index.js +20 -0
- package/dist/esm/permissionless/plugins/irm/constructor-params-abi.js +52 -0
- package/dist/esm/permissionless/plugins/loss-policies/constructor-params-abi.js +50 -0
- package/dist/esm/permissionless/plugins/rate-keepers/constructor-params-abi.js +59 -0
- package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
- package/dist/esm/permissionless/utils/abi-encoder.js +65 -0
- package/dist/esm/permissionless/utils/block-utils.js +31 -0
- package/dist/esm/permissionless/utils/create2.js +85 -0
- package/dist/esm/permissionless/utils/format.js +67 -0
- package/dist/esm/permissionless/utils/governance/batch.js +87 -0
- package/dist/esm/permissionless/utils/governance/index.js +3 -0
- package/dist/esm/permissionless/utils/governance/timelock-txs.js +20 -0
- package/dist/esm/permissionless/utils/governance/types.js +0 -0
- package/dist/esm/permissionless/utils/index.js +9 -0
- package/dist/esm/permissionless/utils/literals.js +16 -0
- package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +65 -0
- package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +65 -0
- package/dist/esm/permissionless/utils/price-update/get-prices.js +103 -0
- package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +31 -0
- package/dist/esm/permissionless/utils/price-update/index.js +4 -0
- package/dist/esm/permissionless/utils/signature.js +11 -0
- package/dist/types/permissionless/bindings/address-provider.d.ts +259 -0
- package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
- package/dist/types/permissionless/bindings/bytecode-repository.d.ts +1352 -0
- package/dist/types/permissionless/bindings/compressors/index.d.ts +2 -0
- package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +118 -0
- package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +331 -0
- package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +835 -0
- package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +17 -0
- package/dist/types/permissionless/bindings/factory/credit-factory.d.ts +224 -0
- package/dist/types/permissionless/bindings/factory/pool-factory.d.ts +86 -0
- package/dist/types/permissionless/bindings/factory/price-oracle-factory.d.ts +38 -0
- package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +39 -0
- package/dist/types/permissionless/bindings/governance/governor.d.ts +615 -0
- package/dist/types/permissionless/bindings/governance/index.d.ts +3 -0
- package/dist/types/permissionless/bindings/governance/timelock.d.ts +10 -0
- package/dist/types/permissionless/bindings/governance/types.d.ts +42 -0
- package/dist/types/permissionless/bindings/index.d.ts +14 -0
- package/dist/types/permissionless/bindings/instance-manager.d.ts +361 -0
- package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +244 -0
- package/dist/types/permissionless/bindings/market-configurator.d.ts +1656 -0
- package/dist/types/permissionless/bindings/price-feed-store.d.ts +605 -0
- package/dist/types/permissionless/bindings/pricefeeds/balancer-stable.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/balancer-weighted.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/bounded.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/composite.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/constant.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/curve-crypto.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/curve-stable.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/curve-twap.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/curve-usd.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/erc4626.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/external.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/index.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/kodiak.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/mellow-lrt.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/pendle-pt-twap.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/pyth.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/redstone.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/wsteth.d.ts +2 -0
- package/dist/types/permissionless/bindings/pricefeeds/zero.d.ts +2 -0
- package/dist/types/permissionless/bindings/router/index.d.ts +1 -0
- package/dist/types/permissionless/bindings/router/routing-manager.d.ts +502 -0
- package/dist/types/permissionless/bindings/treasury-splitter.d.ts +21 -0
- package/dist/types/permissionless/bindings/types.d.ts +65 -0
- package/dist/types/permissionless/chains/archive-transport.d.ts +49 -0
- package/dist/types/permissionless/core/auditor.d.ts +7 -0
- package/dist/types/permissionless/core/bytecode.d.ts +46 -0
- package/dist/types/permissionless/core/index.d.ts +6 -0
- package/dist/types/permissionless/core/pricefeed-builder.d.ts +59 -0
- package/dist/types/permissionless/core/pricefeed.d.ts +10 -0
- package/dist/types/permissionless/core/proposal.d.ts +33 -0
- package/dist/types/permissionless/core/raw-tx.d.ts +4 -0
- package/dist/types/permissionless/deployment/addresses.d.ts +7 -0
- package/dist/types/permissionless/deployment/mainnet.d.ts +10 -0
- package/dist/types/permissionless/index.d.ts +6 -0
- package/dist/types/permissionless/plugins/index.d.ts +3 -0
- package/dist/types/permissionless/plugins/irm/constructor-params-abi.d.ts +63 -0
- package/dist/types/permissionless/plugins/loss-policies/constructor-params-abi.d.ts +48 -0
- package/dist/types/permissionless/plugins/rate-keepers/constructor-params-abi.d.ts +55 -0
- package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
- package/dist/types/permissionless/utils/abi-encoder.d.ts +7 -0
- package/dist/types/permissionless/utils/block-utils.d.ts +8 -0
- package/dist/types/permissionless/utils/create2.d.ts +17 -0
- package/dist/types/permissionless/utils/format.d.ts +7 -0
- package/dist/types/permissionless/utils/governance/batch.d.ts +17 -0
- package/dist/types/permissionless/utils/governance/index.d.ts +3 -0
- package/dist/types/permissionless/utils/governance/timelock-txs.d.ts +2 -0
- package/dist/types/permissionless/utils/governance/types.d.ts +16 -0
- package/dist/types/permissionless/utils/index.d.ts +9 -0
- package/dist/types/permissionless/utils/literals.d.ts +7 -0
- package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +8 -0
- package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +9 -0
- package/dist/types/permissionless/utils/price-update/get-prices.d.ts +6 -0
- package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +8 -0
- package/dist/types/permissionless/utils/price-update/index.d.ts +4 -0
- package/dist/types/permissionless/utils/signature.d.ts +2 -0
- package/package.json +11 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var withdrawal_compressor_exports = {};
|
|
20
|
+
__export(withdrawal_compressor_exports, {
|
|
21
|
+
WithdrawalCompressorContract: () => WithdrawalCompressorContract
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(withdrawal_compressor_exports);
|
|
24
|
+
var import_viem = require("viem");
|
|
25
|
+
var import_withdrawalCompressor = require("../../../abi/compressors/withdrawalCompressor.js");
|
|
26
|
+
var import_base_contract = require("../base-contract");
|
|
27
|
+
const abi = import_withdrawalCompressor.withdrawalCompressorAbi;
|
|
28
|
+
class WithdrawalCompressorContract extends import_base_contract.BaseContract {
|
|
29
|
+
constructor(address, client) {
|
|
30
|
+
super(abi, address, client, "RoutingManager");
|
|
31
|
+
}
|
|
32
|
+
parseFunctionParams(params) {
|
|
33
|
+
const { functionName, args } = params;
|
|
34
|
+
switch (functionName) {
|
|
35
|
+
case "setWithdrawableTypeToCompressorType": {
|
|
36
|
+
const [withdrawableType, compressorType] = args;
|
|
37
|
+
return {
|
|
38
|
+
chainId: 0,
|
|
39
|
+
target: this.address,
|
|
40
|
+
label: this.name,
|
|
41
|
+
functionName,
|
|
42
|
+
args: {
|
|
43
|
+
withdrawableType: (0, import_viem.hexToString)(withdrawableType, {
|
|
44
|
+
size: 32
|
|
45
|
+
}),
|
|
46
|
+
compressorType: (0, import_viem.hexToString)(compressorType, {
|
|
47
|
+
size: 32
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
default:
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
58
|
+
0 && (module.exports = {
|
|
59
|
+
WithdrawalCompressorContract
|
|
60
|
+
});
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var cross_chain_multisig_exports = {};
|
|
20
|
+
__export(cross_chain_multisig_exports, {
|
|
21
|
+
CrossChainMultisigContract: () => CrossChainMultisigContract
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(cross_chain_multisig_exports);
|
|
24
|
+
var import_viem = require("viem");
|
|
25
|
+
var import_crossChainMultisig = require("../../abi/310/crossChainMultisig.js");
|
|
26
|
+
var import_utils = require("../../sdk/utils/index.js");
|
|
27
|
+
var import_addresses = require("../deployment/addresses");
|
|
28
|
+
var import_utils2 = require("../utils");
|
|
29
|
+
var import_literals = require("../utils/literals");
|
|
30
|
+
var import_base_contract = require("./base-contract");
|
|
31
|
+
var import_instance_manager = require("./instance-manager");
|
|
32
|
+
var import_market_configurator_factory = require("./market-configurator-factory");
|
|
33
|
+
const abi = import_crossChainMultisig.crossChainMultisigAbi;
|
|
34
|
+
class CrossChainMultisigContract extends import_base_contract.BaseContract {
|
|
35
|
+
constructor(address, client) {
|
|
36
|
+
super(abi, address, client, "CrossChainMultisig");
|
|
37
|
+
}
|
|
38
|
+
async getExecutedBatches(fromBlock, toBlock) {
|
|
39
|
+
const events = await this.getEvents("ExecuteBatch", fromBlock, toBlock);
|
|
40
|
+
const batches = await Promise.all(
|
|
41
|
+
events.map(async (event) => {
|
|
42
|
+
return this.getBatchData({
|
|
43
|
+
proposalHash: event.args.batchHash,
|
|
44
|
+
blockNumber: Number(event.blockNumber),
|
|
45
|
+
transactionHash: event.transactionHash
|
|
46
|
+
});
|
|
47
|
+
})
|
|
48
|
+
);
|
|
49
|
+
return batches;
|
|
50
|
+
}
|
|
51
|
+
async getCurrentBatches() {
|
|
52
|
+
const hashes = await this.contract.read.getCurrentBatchHashes();
|
|
53
|
+
return await Promise.all(
|
|
54
|
+
hashes.map(async (hash) => this.getBatchData({ proposalHash: hash }))
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
async getBatchData(args) {
|
|
58
|
+
const { proposalHash, blockNumber, transactionHash, timestamp } = args;
|
|
59
|
+
const proposal = await this.contract.read.getBatch([args.proposalHash]);
|
|
60
|
+
const signatures = [];
|
|
61
|
+
for (const sig of proposal.signatures) {
|
|
62
|
+
const recoveredSigner = await (0, import_viem.recoverTypedDataAddress)({
|
|
63
|
+
...this.computeEIP712digest(
|
|
64
|
+
proposal.name,
|
|
65
|
+
proposalHash,
|
|
66
|
+
proposal.prevHash
|
|
67
|
+
),
|
|
68
|
+
signature: sig
|
|
69
|
+
});
|
|
70
|
+
signatures.push({
|
|
71
|
+
signer: recoveredSigner,
|
|
72
|
+
signature: sig
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const calls = proposal.calls.map((c) => ({
|
|
76
|
+
chainId: Number(c.chainId),
|
|
77
|
+
target: c.target,
|
|
78
|
+
callData: c.callData
|
|
79
|
+
}));
|
|
80
|
+
return {
|
|
81
|
+
...proposal,
|
|
82
|
+
calls,
|
|
83
|
+
timestamp,
|
|
84
|
+
transactionHash,
|
|
85
|
+
blockNumber,
|
|
86
|
+
hash: proposalHash,
|
|
87
|
+
parsedCalls: calls.map((c) => import_base_contract.BaseContract.parseCall(c)),
|
|
88
|
+
signatures
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
computeEIP712digest(name, batchHash, prevHash) {
|
|
92
|
+
return {
|
|
93
|
+
domain: {
|
|
94
|
+
name: import_literals.CROSS_CHAIN_MULTISIG,
|
|
95
|
+
version: "310",
|
|
96
|
+
chainId: 1,
|
|
97
|
+
verifyingContract: this.address
|
|
98
|
+
},
|
|
99
|
+
types: {
|
|
100
|
+
CompactBatch: [
|
|
101
|
+
{ name: "name", type: "string" },
|
|
102
|
+
{ name: "batchHash", type: "bytes32" },
|
|
103
|
+
{ name: "prevHash", type: "bytes32" }
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
primaryType: "CompactBatch",
|
|
107
|
+
message: {
|
|
108
|
+
name,
|
|
109
|
+
batchHash,
|
|
110
|
+
prevHash
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
computeRecoveryDigest(chainId, startingBatchHash) {
|
|
115
|
+
return {
|
|
116
|
+
domain: {
|
|
117
|
+
name: import_literals.CROSS_CHAIN_MULTISIG,
|
|
118
|
+
version: "310",
|
|
119
|
+
chainId: 1,
|
|
120
|
+
verifyingContract: this.address
|
|
121
|
+
},
|
|
122
|
+
types: {
|
|
123
|
+
RecoveryMode: [
|
|
124
|
+
{ name: "chainId", type: "uint256" },
|
|
125
|
+
{ name: "startingBatchHash", type: "bytes32" }
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
primaryType: "RecoveryMode",
|
|
129
|
+
message: {
|
|
130
|
+
chainId: BigInt(chainId),
|
|
131
|
+
startingBatchHash
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// signCompactBatchTypeData(name: string, batchHash: Hex, prevHash: Hex) {
|
|
136
|
+
// const typedData = this.computeEIP712digest(name, batchHash, prevHash);
|
|
137
|
+
// return {
|
|
138
|
+
// domain: typedData.domain,
|
|
139
|
+
// types: typedData.types,
|
|
140
|
+
// primaryType: typedData.primaryType,
|
|
141
|
+
// message: typedData.message,
|
|
142
|
+
// };
|
|
143
|
+
// }
|
|
144
|
+
async signBatch(batchHash, signature, sponsor) {
|
|
145
|
+
const normalizedSignature = (0, import_utils2.normalizeSignature)(signature);
|
|
146
|
+
const hash = await this.contract.write.signBatch(
|
|
147
|
+
[batchHash, normalizedSignature],
|
|
148
|
+
{
|
|
149
|
+
account: sponsor.account,
|
|
150
|
+
chain: sponsor.chain
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
return hash;
|
|
154
|
+
}
|
|
155
|
+
async enableRecovery(recovery, sponsor) {
|
|
156
|
+
const signatures = recovery.signatures.map(
|
|
157
|
+
(s) => (0, import_utils2.normalizeSignature)(s.signature)
|
|
158
|
+
);
|
|
159
|
+
return await this.contract.write.enableRecoveryMode(
|
|
160
|
+
[
|
|
161
|
+
{
|
|
162
|
+
chainId: BigInt(recovery.chainId),
|
|
163
|
+
startingBatchHash: recovery.startingBatchHash,
|
|
164
|
+
signatures
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
{
|
|
168
|
+
account: sponsor.account,
|
|
169
|
+
chain: sponsor.chain
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
async getConfirmationThreshold() {
|
|
174
|
+
return await this.contract.read.confirmationThreshold();
|
|
175
|
+
}
|
|
176
|
+
async getSigners() {
|
|
177
|
+
return [...await this.contract.read.getSigners()];
|
|
178
|
+
}
|
|
179
|
+
decodeFunctionData(target, calldata) {
|
|
180
|
+
switch (target.toLowerCase()) {
|
|
181
|
+
case this.address.toLowerCase(): {
|
|
182
|
+
return this.parseFunctionData(calldata);
|
|
183
|
+
}
|
|
184
|
+
case import_addresses.Addresses.INSTANCE_MANAGER.toLowerCase(): {
|
|
185
|
+
const instanceManager = new import_instance_manager.InstanceManagerContract(
|
|
186
|
+
target,
|
|
187
|
+
this.client
|
|
188
|
+
);
|
|
189
|
+
return instanceManager.parseFunctionData(calldata);
|
|
190
|
+
}
|
|
191
|
+
default: {
|
|
192
|
+
try {
|
|
193
|
+
let parsedData;
|
|
194
|
+
const marketConfiguratorFactory = new import_market_configurator_factory.MarketConfiguratorFactoryContract(target, this.client);
|
|
195
|
+
parsedData = marketConfiguratorFactory.parseFunctionData(calldata);
|
|
196
|
+
if (!parsedData.functionName.startsWith("Unknown function")) {
|
|
197
|
+
return parsedData;
|
|
198
|
+
}
|
|
199
|
+
} catch {
|
|
200
|
+
return void 0;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
parseFunctionParams(params) {
|
|
206
|
+
switch (params.functionName) {
|
|
207
|
+
case "addSigner": {
|
|
208
|
+
const [signer] = params.args;
|
|
209
|
+
return this.wrapParseCall(params, {
|
|
210
|
+
signer
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
case "removeSigner": {
|
|
214
|
+
const [signer] = params.args;
|
|
215
|
+
return this.wrapParseCall(params, {
|
|
216
|
+
signer
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
case "setConfirmationThreshold": {
|
|
220
|
+
const [threshold] = params.args;
|
|
221
|
+
return this.wrapParseCall(params, {
|
|
222
|
+
threshold: threshold.toString()
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
case "submitBatch": {
|
|
226
|
+
const [name, calls, prevHash] = params.args;
|
|
227
|
+
return this.wrapParseCall(params, {
|
|
228
|
+
name,
|
|
229
|
+
calls: (0, import_utils.json_stringify)(
|
|
230
|
+
calls.map(({ chainId, target, callData }) => ({
|
|
231
|
+
...this.decodeFunctionData(target, callData),
|
|
232
|
+
chainId: Number(chainId),
|
|
233
|
+
target
|
|
234
|
+
}))
|
|
235
|
+
),
|
|
236
|
+
prevHash
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
default:
|
|
240
|
+
return void 0;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
async validateProposalSignature(proposalHash, signature) {
|
|
244
|
+
const normalizedSignature = (0, import_utils2.normalizeSignature)(signature);
|
|
245
|
+
const proposal = await this.getBatchData({ proposalHash });
|
|
246
|
+
const currentPrevHash = await this.contract.read.lastBatchHash();
|
|
247
|
+
if (proposal.prevHash !== currentPrevHash) {
|
|
248
|
+
return { success: false, error: "Proposal is not the latest" };
|
|
249
|
+
}
|
|
250
|
+
const signer = await this.getSignerFromSignature(
|
|
251
|
+
proposal.name,
|
|
252
|
+
proposalHash,
|
|
253
|
+
proposal.prevHash,
|
|
254
|
+
normalizedSignature
|
|
255
|
+
);
|
|
256
|
+
console.log("signer", signer);
|
|
257
|
+
const signers = await this.getSigners();
|
|
258
|
+
if (!signers.map((s) => s.toLowerCase()).includes(signer.toLowerCase())) {
|
|
259
|
+
return { success: false, error: "Signer is not a valid signer" };
|
|
260
|
+
}
|
|
261
|
+
const threshold = await this.getConfirmationThreshold();
|
|
262
|
+
if (proposal.signatures.length >= threshold) {
|
|
263
|
+
return { success: false, error: "Proposal has enough signatures" };
|
|
264
|
+
}
|
|
265
|
+
return { success: true };
|
|
266
|
+
}
|
|
267
|
+
async getSignerFromSignature(proposalName, proposalHash, prevHash, signature) {
|
|
268
|
+
return await (0, import_viem.recoverTypedDataAddress)({
|
|
269
|
+
...this.computeEIP712digest(proposalName, proposalHash, prevHash),
|
|
270
|
+
signature
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
async executeProposal(signedProposal, sponsor) {
|
|
274
|
+
return await this.contract.write.executeBatch([signedProposal], {
|
|
275
|
+
account: sponsor.account,
|
|
276
|
+
chain: sponsor.chain
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
wrapSubmitBatch(args) {
|
|
280
|
+
const { proposal, prevHash } = args;
|
|
281
|
+
return this.createRawTx({
|
|
282
|
+
functionName: "submitBatch",
|
|
283
|
+
args: [proposal.name, proposal.calls, prevHash],
|
|
284
|
+
description: `CrossChainMultisig.submitBatch(${proposal.name})`
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
executeProposalTx(signedProposal) {
|
|
288
|
+
return this.createRawTx({
|
|
289
|
+
functionName: "executeBatch",
|
|
290
|
+
args: [signedProposal]
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
async submitBatch(proposal, sponsor) {
|
|
294
|
+
const prevHash = await this.getLastBatchHash();
|
|
295
|
+
return await this.contract.write.submitBatch(
|
|
296
|
+
[proposal.name, proposal.calls, prevHash],
|
|
297
|
+
{
|
|
298
|
+
account: sponsor.account,
|
|
299
|
+
chain: sponsor.chain
|
|
300
|
+
}
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
async getLastBatchHash() {
|
|
304
|
+
return await this.contract.read.lastBatchHash();
|
|
305
|
+
}
|
|
306
|
+
async computeBatchHash(args) {
|
|
307
|
+
const { proposal, prevHash } = args;
|
|
308
|
+
return await this.contract.read.computeBatchHash([
|
|
309
|
+
proposal.name,
|
|
310
|
+
proposal.calls,
|
|
311
|
+
prevHash
|
|
312
|
+
]);
|
|
313
|
+
}
|
|
314
|
+
async getConstructorParams() {
|
|
315
|
+
const latestBlock = await this.client.getBlockNumber();
|
|
316
|
+
const result = await this.getEvents(
|
|
317
|
+
"SetConfirmationThreshold",
|
|
318
|
+
0n,
|
|
319
|
+
latestBlock
|
|
320
|
+
);
|
|
321
|
+
const event = result[0];
|
|
322
|
+
const threshold = event.args.newConfirmationThreshold;
|
|
323
|
+
const receipt = await this.client.getTransactionReceipt({
|
|
324
|
+
hash: event.transactionHash
|
|
325
|
+
});
|
|
326
|
+
const signers = [];
|
|
327
|
+
let dao = import_viem.zeroAddress;
|
|
328
|
+
(0, import_viem.parseEventLogs)({
|
|
329
|
+
abi: (0, import_viem.parseAbi)([
|
|
330
|
+
"event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
|
|
331
|
+
"event AddSigner(address indexed signer)"
|
|
332
|
+
]),
|
|
333
|
+
logs: receipt.logs
|
|
334
|
+
}).forEach((p) => {
|
|
335
|
+
if (p.eventName === "AddSigner") {
|
|
336
|
+
signers.push(p.args.signer);
|
|
337
|
+
}
|
|
338
|
+
if (p.eventName === "OwnershipTransferred") {
|
|
339
|
+
dao = p.args.newOwner;
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
console.log("signers", signers);
|
|
343
|
+
console.log("threshold", threshold);
|
|
344
|
+
console.log("dao", dao);
|
|
345
|
+
return {
|
|
346
|
+
signers,
|
|
347
|
+
threshold,
|
|
348
|
+
dao
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
353
|
+
0 && (module.exports = {
|
|
354
|
+
CrossChainMultisigContract
|
|
355
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var abstract_factory_exports = {};
|
|
20
|
+
__export(abstract_factory_exports, {
|
|
21
|
+
AbstractFactory: () => AbstractFactory
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(abstract_factory_exports);
|
|
24
|
+
var import_raw_tx = require("../../core/raw-tx");
|
|
25
|
+
var import_abi_decoder = require("../../utils/abi-decoder");
|
|
26
|
+
class AbstractFactory {
|
|
27
|
+
abi;
|
|
28
|
+
constructor(abi) {
|
|
29
|
+
this.abi = abi;
|
|
30
|
+
}
|
|
31
|
+
createCallData(parameters) {
|
|
32
|
+
const callData = (0, import_raw_tx.createCallData)(this.abi, parameters);
|
|
33
|
+
return callData;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Decodes configuration calldata using the ABI
|
|
37
|
+
* @param calldata - The encoded function call data
|
|
38
|
+
* @returns Decoded function name and arguments, or null if decoding fails
|
|
39
|
+
*/
|
|
40
|
+
decodeConfig(calldata) {
|
|
41
|
+
const decoded = (0, import_abi_decoder.decodeFunctionWithNamedArgs)(this.abi, calldata);
|
|
42
|
+
if (!decoded) return null;
|
|
43
|
+
return {
|
|
44
|
+
functionName: decoded.functionName,
|
|
45
|
+
args: decoded.args
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
AbstractFactory
|
|
52
|
+
});
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var credit_factory_exports = {};
|
|
20
|
+
__export(credit_factory_exports, {
|
|
21
|
+
CreditFactory: () => CreditFactory
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(credit_factory_exports);
|
|
24
|
+
var import_viem = require("viem");
|
|
25
|
+
var import_iCreditConfigureActions = require("../../../abi/310/configure/iCreditConfigureActions.js");
|
|
26
|
+
var import_adapters = require("../../../plugins/adapters/index.js");
|
|
27
|
+
var import_abstract_factory = require("./abstract-factory");
|
|
28
|
+
const abi = import_iCreditConfigureActions.iCreditConfigureActionsAbi;
|
|
29
|
+
class CreditFactory extends import_abstract_factory.AbstractFactory {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(abi);
|
|
32
|
+
}
|
|
33
|
+
pause() {
|
|
34
|
+
return this.createCallData({
|
|
35
|
+
functionName: "pause"
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
unpause() {
|
|
39
|
+
return this.createCallData({
|
|
40
|
+
functionName: "unpause"
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
addCollateralToken(args) {
|
|
44
|
+
return this.createCallData({
|
|
45
|
+
functionName: "addCollateralToken",
|
|
46
|
+
args: [args.token, args.liquidationThreshold]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
allowAdapter(deployParams) {
|
|
50
|
+
return this.createCallData({
|
|
51
|
+
functionName: "allowAdapter",
|
|
52
|
+
args: [deployParams]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
allowToken(token) {
|
|
56
|
+
return this.createCallData({
|
|
57
|
+
functionName: "allowToken",
|
|
58
|
+
args: [token]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
forbidToken(token) {
|
|
62
|
+
return this.createCallData({
|
|
63
|
+
functionName: "forbidToken",
|
|
64
|
+
args: [token]
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
configureAdapterFor(targetContract, data) {
|
|
68
|
+
return this.createCallData({
|
|
69
|
+
functionName: "configureAdapterFor",
|
|
70
|
+
args: [targetContract, data]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
forbidAdapter(adapter) {
|
|
74
|
+
return this.createCallData({
|
|
75
|
+
functionName: "forbidAdapter",
|
|
76
|
+
args: [adapter]
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
rampLiquidationThreshold(args) {
|
|
80
|
+
return this.createCallData({
|
|
81
|
+
functionName: "rampLiquidationThreshold",
|
|
82
|
+
args: [
|
|
83
|
+
args.token,
|
|
84
|
+
args.liquidationThresholdFinal,
|
|
85
|
+
args.rampStart,
|
|
86
|
+
args.rampDuration
|
|
87
|
+
]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
setExpirationDate(params) {
|
|
91
|
+
return this.createCallData({
|
|
92
|
+
functionName: "setExpirationDate",
|
|
93
|
+
args: [params.expirationDate]
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
setFees(params) {
|
|
97
|
+
return this.createCallData({
|
|
98
|
+
functionName: "setFees",
|
|
99
|
+
args: [
|
|
100
|
+
params.params.feeLiquidation,
|
|
101
|
+
params.params.feeLiquidationPremium,
|
|
102
|
+
params.params.feeLiquidationExpired,
|
|
103
|
+
params.params.feeLiquidationPremiumExpired
|
|
104
|
+
]
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
setMaxDebtPerBlockMultiplier(newMaxDebtLimitPerBlockMultiplier) {
|
|
108
|
+
return this.createCallData({
|
|
109
|
+
functionName: "setMaxDebtPerBlockMultiplier",
|
|
110
|
+
args: [newMaxDebtLimitPerBlockMultiplier]
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
upgradeCreditConfigurator() {
|
|
114
|
+
return this.createCallData({
|
|
115
|
+
functionName: "upgradeCreditConfigurator"
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
upgradeCreditFacade(params) {
|
|
119
|
+
return this.createCallData({
|
|
120
|
+
functionName: "upgradeCreditFacade",
|
|
121
|
+
args: [params]
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
decodeConfig(calldata) {
|
|
125
|
+
function getMaxVerBelowN(adapterPostfix, n) {
|
|
126
|
+
const keys = Object.keys(
|
|
127
|
+
import_adapters.adapterConstructorAbi[adapterPostfix]
|
|
128
|
+
).map(Number).filter((k) => k < n);
|
|
129
|
+
if (keys.length === 0) return void 0;
|
|
130
|
+
return Math.max(...keys);
|
|
131
|
+
}
|
|
132
|
+
function parseAdapterParams(adapterPostfix, version, data) {
|
|
133
|
+
if (version < 310) return null;
|
|
134
|
+
try {
|
|
135
|
+
return (0, import_adapters.parseAdapterDeployParams)(adapterPostfix, version, data);
|
|
136
|
+
} catch {
|
|
137
|
+
const v = getMaxVerBelowN(adapterPostfix, version);
|
|
138
|
+
if (v) return parseAdapterParams(adapterPostfix, v, data);
|
|
139
|
+
else return null;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
const decoded = (0, import_viem.decodeFunctionData)({
|
|
144
|
+
abi: this.abi,
|
|
145
|
+
data: calldata
|
|
146
|
+
});
|
|
147
|
+
if (decoded.functionName === "allowAdapter") {
|
|
148
|
+
const deployParams = decoded.args[0];
|
|
149
|
+
const adapterType = (0, import_viem.hexToString)(deployParams.postfix, {
|
|
150
|
+
size: 32
|
|
151
|
+
});
|
|
152
|
+
const latest = Math.max(
|
|
153
|
+
...Object.keys(import_adapters.adapterConstructorAbi[adapterType]).map(
|
|
154
|
+
Number
|
|
155
|
+
)
|
|
156
|
+
);
|
|
157
|
+
const constructorArgs = parseAdapterParams(
|
|
158
|
+
adapterType,
|
|
159
|
+
latest,
|
|
160
|
+
deployParams.constructorParams
|
|
161
|
+
);
|
|
162
|
+
if (!constructorArgs) {
|
|
163
|
+
return super.decodeConfig(calldata);
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
functionName: "allowAdapter",
|
|
167
|
+
args: {
|
|
168
|
+
adapterType,
|
|
169
|
+
salt: deployParams.salt,
|
|
170
|
+
constructorArgs: JSON.stringify(constructorArgs)
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
if (decoded.functionName === "configureAdapterFor") {
|
|
175
|
+
const [targetContract, data] = decoded.args;
|
|
176
|
+
const adapterAction = (0, import_adapters.parseAdapterAction)(data);
|
|
177
|
+
if (!adapterAction) {
|
|
178
|
+
return super.decodeConfig(calldata);
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
functionName: "configureAdapterFor",
|
|
182
|
+
args: {
|
|
183
|
+
targetContract,
|
|
184
|
+
adapterAction: JSON.stringify(adapterAction)
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return super.decodeConfig(calldata);
|
|
189
|
+
} catch {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
195
|
+
0 && (module.exports = {
|
|
196
|
+
CreditFactory
|
|
197
|
+
});
|