@lidofinance/lido-csm-sdk 2.0.0-alpha.62 → 2.0.0-alpha.64
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/README.md +3 -1
- package/dist/common/constants/module-config.cjs +21 -1
- package/dist/common/constants/module-config.cjs.map +1 -1
- package/dist/common/constants/module-config.mjs +21 -1
- package/dist/common/constants/module-config.mjs.map +1 -1
- package/dist/common/utils/sdk-error.cjs +9 -0
- package/dist/common/utils/sdk-error.cjs.map +1 -1
- package/dist/common/utils/sdk-error.d.cts +7 -0
- package/dist/common/utils/sdk-error.d.cts.map +1 -1
- package/dist/common/utils/sdk-error.d.mts +7 -0
- package/dist/common/utils/sdk-error.d.mts.map +1 -1
- package/dist/common/utils/sdk-error.mjs +9 -0
- package/dist/common/utils/sdk-error.mjs.map +1 -1
- package/dist/curated-gates-collection-sdk/curated-gates-collection-sdk.cjs +1 -4
- package/dist/curated-gates-collection-sdk/curated-gates-collection-sdk.cjs.map +1 -1
- package/dist/curated-gates-collection-sdk/curated-gates-collection-sdk.d.cts.map +1 -1
- package/dist/curated-gates-collection-sdk/curated-gates-collection-sdk.d.mts.map +1 -1
- package/dist/curated-gates-collection-sdk/curated-gates-collection-sdk.mjs +1 -4
- package/dist/curated-gates-collection-sdk/curated-gates-collection-sdk.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
19
|
+
Requires **Node.js >= 24**, `@lidofinance/lido-ethereum-sdk >= 4.8.0`, and `viem >= 2.46.0` (peer dependencies).
|
|
20
|
+
|
|
19
21
|
Install via npm or yarn:
|
|
20
22
|
|
|
21
23
|
```bash
|
|
@@ -118,7 +120,7 @@ The SDK is designed for extensibility. You can instantiate individual modules di
|
|
|
118
120
|
|
|
119
121
|
## License
|
|
120
122
|
|
|
121
|
-
This project is licensed under the
|
|
123
|
+
This project is licensed under the GPL-3.0-or-later License. See the [LICENSE.txt](LICENSE.txt) file for details.
|
|
122
124
|
|
|
123
125
|
## Changelog
|
|
124
126
|
|
|
@@ -2,6 +2,7 @@ require("../../_virtual/_rolldown/runtime.cjs");
|
|
|
2
2
|
const require_contract_names = require("./contract-names.cjs");
|
|
3
3
|
const require_module_name = require("./module-name.cjs");
|
|
4
4
|
let _lidofinance_lido_ethereum_sdk = require("@lidofinance/lido-ethereum-sdk");
|
|
5
|
+
let viem = require("viem");
|
|
5
6
|
//#region src/common/constants/module-config.ts
|
|
6
7
|
const COMMON_ADDRESSES = {
|
|
7
8
|
[_lidofinance_lido_ethereum_sdk.CHAINS.Mainnet]: {
|
|
@@ -65,7 +66,26 @@ const MODULE_CONFIG = {
|
|
|
65
66
|
},
|
|
66
67
|
[require_module_name.MODULE_NAME.CM]: {
|
|
67
68
|
[_lidofinance_lido_ethereum_sdk.CHAINS.Mainnet]: {
|
|
68
|
-
contractAddresses: {
|
|
69
|
+
contractAddresses: {
|
|
70
|
+
[require_contract_names.CONTRACT_NAMES.curatedModule]: viem.zeroAddress,
|
|
71
|
+
[require_contract_names.CONTRACT_NAMES.accounting]: viem.zeroAddress,
|
|
72
|
+
[require_contract_names.CONTRACT_NAMES.ejector]: viem.zeroAddress,
|
|
73
|
+
[require_contract_names.CONTRACT_NAMES.exitPenalties]: viem.zeroAddress,
|
|
74
|
+
[require_contract_names.CONTRACT_NAMES.feeDistributor]: viem.zeroAddress,
|
|
75
|
+
[require_contract_names.CONTRACT_NAMES.feeOracle]: viem.zeroAddress,
|
|
76
|
+
[require_contract_names.CONTRACT_NAMES.parametersRegistry]: viem.zeroAddress,
|
|
77
|
+
[require_contract_names.CONTRACT_NAMES.validatorStrikes]: viem.zeroAddress,
|
|
78
|
+
[require_contract_names.CONTRACT_NAMES.verifier]: viem.zeroAddress,
|
|
79
|
+
[require_contract_names.CONTRACT_NAMES.hashConsensus]: viem.zeroAddress,
|
|
80
|
+
[require_contract_names.CONTRACT_NAMES.metaRegistry]: viem.zeroAddress,
|
|
81
|
+
[require_contract_names.CONTRACT_NAMES.curatedGatePO]: viem.zeroAddress,
|
|
82
|
+
[require_contract_names.CONTRACT_NAMES.curatedGatePTO]: viem.zeroAddress,
|
|
83
|
+
[require_contract_names.CONTRACT_NAMES.curatedGatePGO]: viem.zeroAddress,
|
|
84
|
+
[require_contract_names.CONTRACT_NAMES.curatedGateDO]: viem.zeroAddress,
|
|
85
|
+
[require_contract_names.CONTRACT_NAMES.curatedGateEEO]: viem.zeroAddress,
|
|
86
|
+
[require_contract_names.CONTRACT_NAMES.curatedGateIODC]: viem.zeroAddress,
|
|
87
|
+
[require_contract_names.CONTRACT_NAMES.curatedGateIODCP]: viem.zeroAddress
|
|
88
|
+
},
|
|
69
89
|
moduleId: 4n
|
|
70
90
|
},
|
|
71
91
|
[_lidofinance_lido_ethereum_sdk.CHAINS.Hoodi]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-config.cjs","names":[],"sources":["../../../src/common/constants/module-config.ts"],"sourcesContent":["import { CHAINS } from '@lidofinance/lido-ethereum-sdk';\nimport { Address } from 'viem';\n\nimport { CONTRACT_NAMES } from './contract-names';\nimport { MODULE_NAME, PerModule } from './module-name';\nimport { PerSupportedChain } from './supported-chains';\n\ntype ContractAddressMap = { [key in CONTRACT_NAMES]?: Address };\n\ntype ModuleChainConfig = {\n contractAddresses: ContractAddressMap;\n moduleId: bigint;\n deploymentBlockNumber?: bigint;\n};\n\nexport type ModuleConfig = PerSupportedChain<ModuleChainConfig>;\n\nexport const COMMON_ADDRESSES: PerSupportedChain<ContractAddressMap> = {\n [CHAINS.Mainnet]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xFdDf38947aFB03C621C71b06C9C70bce73f12999',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e',\n [CONTRACT_NAMES.withdrawalVault]:\n '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x388C818CA8B9251b393131C08a736A67ccB19297',\n [CONTRACT_NAMES.stETH]: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n [CONTRACT_NAMES.wstETH]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [CONTRACT_NAMES.smDiscovery]: '0x32893b74064160c626652c2c21a849fdd0bddfd6',\n },\n [CHAINS.Hoodi]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xCc820558B39ee15C7C45B59390B503b83fb499A8',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x8664d394C2B3278F26A1B44B967aEf99707eeAB2',\n [CONTRACT_NAMES.withdrawalVault]:\n '0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x9b108015fe433F173696Af3Aa0CF7CDb3E104258',\n [CONTRACT_NAMES.stETH]: '0x3508A952176b3c15387C97BE809eaffB1982176a',\n [CONTRACT_NAMES.wstETH]: '0x7E99eE3C66636DE415D2d7C880938F2f40f94De4',\n [CONTRACT_NAMES.smDiscovery]: '0xd4523c0925b2246325dcc1d919f2b84c0bcacad9',\n },\n};\n\nexport const MODULE_CONFIG: PerModule<ModuleConfig> = {\n [MODULE_NAME.CSM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F',\n [CONTRACT_NAMES.accounting]:\n '0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da',\n [CONTRACT_NAMES.ejector]: '0xc72b58aa02E0e98cF8A4a0E9Dce75e763800802C',\n [CONTRACT_NAMES.exitPenalties]:\n '0x06cd61045f958A209a0f8D746e103eCc625f4193',\n [CONTRACT_NAMES.feeDistributor]:\n '0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0',\n [CONTRACT_NAMES.feeOracle]:\n '0x4D4074628678Bd302921c20573EEa1ed38DdF7FB',\n [CONTRACT_NAMES.parametersRegistry]:\n '0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428',\n [CONTRACT_NAMES.validatorStrikes]:\n '0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f',\n [CONTRACT_NAMES.verifier]: '0xdC5FE1782B6943f318E05230d688713a560063DC',\n [CONTRACT_NAMES.hashConsensus]:\n '0x71093efF8D8599b5fA340D665Ad60fA7C80688e4',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xcF33a38111d0B1246A3F38a838fb41D626B454f0',\n [CONTRACT_NAMES.icsGate]: '0xB314D4A76C457c93150d308787939063F4Cc67E0',\n },\n moduleId: 3n,\n deploymentBlockNumber: BigInt('0x13f7326'),\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0x79CEf36D84743222f37765204Bec41E92a93E59d',\n [CONTRACT_NAMES.accounting]:\n '0xA54b90BA34C5f326BC1485054080994e38FB4C60',\n [CONTRACT_NAMES.ejector]: '0xCAe028378d69D54dc8bF809e6C44CF751F997b80',\n [CONTRACT_NAMES.exitPenalties]:\n '0xD259b31083Be841E5C85b2D481Cfc17C14276800',\n [CONTRACT_NAMES.feeDistributor]:\n '0xaCd9820b0A2229a82dc1A0770307ce5522FF3582',\n [CONTRACT_NAMES.feeOracle]:\n '0xe7314f561B2e72f9543F1004e741bab6Fc51028B',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xA4aD5236963f9Fe4229864712269D8d79B65C5Ad',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x8fBA385C3c334D251eE413e79d4D3890db98693c',\n [CONTRACT_NAMES.verifier]: '0xC96406b0eADdAC5708aFCa04DcCA67BAdC9642Fd',\n [CONTRACT_NAMES.hashConsensus]:\n '0x54f74a10e4397dDeF85C4854d9dfcA129D72C637',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xd7bD8D2A9888D1414c770B35ACF55890B15de26a',\n [CONTRACT_NAMES.icsGate]: '0x10a254E724fe2b7f305F76f3F116a3969c53845f',\n [CONTRACT_NAMES.idvtcGate]:\n '0x887F8512F9998045f4b5993e6eaa6BCfE5F02A94',\n },\n moduleId: 4n,\n deploymentBlockNumber: BigInt('0x1374'),\n },\n },\n\n [MODULE_NAME.CM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {},\n moduleId: 4n,\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.curatedModule]:\n '0x87EB69Ae51317405FD285efD2326a4a11f6173b9',\n [CONTRACT_NAMES.accounting]:\n '0x7f7356D29aCd915F1934220956c3305808ceB235',\n [CONTRACT_NAMES.ejector]: '0xfDbde2B3554B69C84e0f8d7daB68D390Ff0f4394',\n [CONTRACT_NAMES.exitPenalties]:\n '0xad79e1d3B380cEb1a0e188fBAB91f85A446E9E54',\n [CONTRACT_NAMES.feeDistributor]:\n '0x0ced6de191E2A15f7BBAf9E32307626C9f6BD0Cd',\n [CONTRACT_NAMES.feeOracle]:\n '0x5D2F27000C80f6f7A03015Fd49dB7FEba3fBfa83',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xefb8e4091A75C4828826bf64595F392f87A07b37',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x4c427Ec826F403339719C0FABfb3209e80939eA6',\n [CONTRACT_NAMES.verifier]: '0x209190Ebc2Be80367a15d05e626784Eb94d6A880',\n [CONTRACT_NAMES.hashConsensus]:\n '0x920883908A78c1554f682006a8aB32E62Be09F33',\n [CONTRACT_NAMES.metaRegistry]:\n '0x857289cCBFBc4C134Cc312022a104CD9b38d8AAE',\n [CONTRACT_NAMES.curatedGatePO]:\n '0xF1862d120831eBE31f7202378Ff3Ae63A5658ae3',\n [CONTRACT_NAMES.curatedGatePTO]:\n '0x410A309dF81B782190188CDB3d215729cc6bC1f3',\n [CONTRACT_NAMES.curatedGatePGO]:\n '0xa5A604b172787e017b1b118F02fE54fC1D696519',\n [CONTRACT_NAMES.curatedGateDO]:\n '0xE966874cDB6A4282ED75Cd10439e3799e5531a2D',\n [CONTRACT_NAMES.curatedGateEEO]:\n '0x5c063da03e3f21443716D75a2205EE16706e1153',\n [CONTRACT_NAMES.curatedGateIODC]:\n '0x1cD655Ac53CfE8269DE0DBfc0140B074623C4A6B',\n [CONTRACT_NAMES.curatedGateIODCP]:\n '0x28518be9894C20135F280a9539617783b08a04c7',\n },\n moduleId: 5n,\n deploymentBlockNumber: BigInt('0x28a0f0'),\n },\n },\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-config.cjs","names":[],"sources":["../../../src/common/constants/module-config.ts"],"sourcesContent":["import { CHAINS } from '@lidofinance/lido-ethereum-sdk';\nimport { Address, zeroAddress } from 'viem';\n\nimport { CONTRACT_NAMES } from './contract-names';\nimport { MODULE_NAME, PerModule } from './module-name';\nimport { PerSupportedChain } from './supported-chains';\n\ntype ContractAddressMap = { [key in CONTRACT_NAMES]?: Address };\n\ntype ModuleChainConfig = {\n contractAddresses: ContractAddressMap;\n moduleId: bigint;\n deploymentBlockNumber?: bigint;\n};\n\nexport type ModuleConfig = PerSupportedChain<ModuleChainConfig>;\n\nexport const COMMON_ADDRESSES: PerSupportedChain<ContractAddressMap> = {\n [CHAINS.Mainnet]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xFdDf38947aFB03C621C71b06C9C70bce73f12999',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e',\n [CONTRACT_NAMES.withdrawalVault]:\n '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x388C818CA8B9251b393131C08a736A67ccB19297',\n [CONTRACT_NAMES.stETH]: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n [CONTRACT_NAMES.wstETH]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [CONTRACT_NAMES.smDiscovery]: '0x32893b74064160c626652c2c21a849fdd0bddfd6',\n },\n [CHAINS.Hoodi]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xCc820558B39ee15C7C45B59390B503b83fb499A8',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x8664d394C2B3278F26A1B44B967aEf99707eeAB2',\n [CONTRACT_NAMES.withdrawalVault]:\n '0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x9b108015fe433F173696Af3Aa0CF7CDb3E104258',\n [CONTRACT_NAMES.stETH]: '0x3508A952176b3c15387C97BE809eaffB1982176a',\n [CONTRACT_NAMES.wstETH]: '0x7E99eE3C66636DE415D2d7C880938F2f40f94De4',\n [CONTRACT_NAMES.smDiscovery]: '0xd4523c0925b2246325dcc1d919f2b84c0bcacad9',\n },\n};\n\nexport const MODULE_CONFIG: PerModule<ModuleConfig> = {\n [MODULE_NAME.CSM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F',\n [CONTRACT_NAMES.accounting]:\n '0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da',\n [CONTRACT_NAMES.ejector]: '0xc72b58aa02E0e98cF8A4a0E9Dce75e763800802C',\n [CONTRACT_NAMES.exitPenalties]:\n '0x06cd61045f958A209a0f8D746e103eCc625f4193',\n [CONTRACT_NAMES.feeDistributor]:\n '0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0',\n [CONTRACT_NAMES.feeOracle]:\n '0x4D4074628678Bd302921c20573EEa1ed38DdF7FB',\n [CONTRACT_NAMES.parametersRegistry]:\n '0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428',\n [CONTRACT_NAMES.validatorStrikes]:\n '0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f',\n [CONTRACT_NAMES.verifier]: '0xdC5FE1782B6943f318E05230d688713a560063DC',\n [CONTRACT_NAMES.hashConsensus]:\n '0x71093efF8D8599b5fA340D665Ad60fA7C80688e4',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xcF33a38111d0B1246A3F38a838fb41D626B454f0',\n [CONTRACT_NAMES.icsGate]: '0xB314D4A76C457c93150d308787939063F4Cc67E0',\n },\n moduleId: 3n,\n deploymentBlockNumber: BigInt('0x13f7326'),\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0x79CEf36D84743222f37765204Bec41E92a93E59d',\n [CONTRACT_NAMES.accounting]:\n '0xA54b90BA34C5f326BC1485054080994e38FB4C60',\n [CONTRACT_NAMES.ejector]: '0xCAe028378d69D54dc8bF809e6C44CF751F997b80',\n [CONTRACT_NAMES.exitPenalties]:\n '0xD259b31083Be841E5C85b2D481Cfc17C14276800',\n [CONTRACT_NAMES.feeDistributor]:\n '0xaCd9820b0A2229a82dc1A0770307ce5522FF3582',\n [CONTRACT_NAMES.feeOracle]:\n '0xe7314f561B2e72f9543F1004e741bab6Fc51028B',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xA4aD5236963f9Fe4229864712269D8d79B65C5Ad',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x8fBA385C3c334D251eE413e79d4D3890db98693c',\n [CONTRACT_NAMES.verifier]: '0xC96406b0eADdAC5708aFCa04DcCA67BAdC9642Fd',\n [CONTRACT_NAMES.hashConsensus]:\n '0x54f74a10e4397dDeF85C4854d9dfcA129D72C637',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xd7bD8D2A9888D1414c770B35ACF55890B15de26a',\n [CONTRACT_NAMES.icsGate]: '0x10a254E724fe2b7f305F76f3F116a3969c53845f',\n [CONTRACT_NAMES.idvtcGate]:\n '0x887F8512F9998045f4b5993e6eaa6BCfE5F02A94',\n },\n moduleId: 4n,\n deploymentBlockNumber: BigInt('0x1374'),\n },\n },\n\n [MODULE_NAME.CM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {\n [CONTRACT_NAMES.curatedModule]: zeroAddress,\n [CONTRACT_NAMES.accounting]: zeroAddress,\n [CONTRACT_NAMES.ejector]: zeroAddress,\n [CONTRACT_NAMES.exitPenalties]: zeroAddress,\n [CONTRACT_NAMES.feeDistributor]: zeroAddress,\n [CONTRACT_NAMES.feeOracle]: zeroAddress,\n [CONTRACT_NAMES.parametersRegistry]: zeroAddress,\n [CONTRACT_NAMES.validatorStrikes]: zeroAddress,\n [CONTRACT_NAMES.verifier]: zeroAddress,\n [CONTRACT_NAMES.hashConsensus]: zeroAddress,\n [CONTRACT_NAMES.metaRegistry]: zeroAddress,\n [CONTRACT_NAMES.curatedGatePO]: zeroAddress,\n [CONTRACT_NAMES.curatedGatePTO]: zeroAddress,\n [CONTRACT_NAMES.curatedGatePGO]: zeroAddress,\n [CONTRACT_NAMES.curatedGateDO]: zeroAddress,\n [CONTRACT_NAMES.curatedGateEEO]: zeroAddress,\n [CONTRACT_NAMES.curatedGateIODC]: zeroAddress,\n [CONTRACT_NAMES.curatedGateIODCP]: zeroAddress,\n },\n moduleId: 4n,\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.curatedModule]:\n '0x87EB69Ae51317405FD285efD2326a4a11f6173b9',\n [CONTRACT_NAMES.accounting]:\n '0x7f7356D29aCd915F1934220956c3305808ceB235',\n [CONTRACT_NAMES.ejector]: '0xfDbde2B3554B69C84e0f8d7daB68D390Ff0f4394',\n [CONTRACT_NAMES.exitPenalties]:\n '0xad79e1d3B380cEb1a0e188fBAB91f85A446E9E54',\n [CONTRACT_NAMES.feeDistributor]:\n '0x0ced6de191E2A15f7BBAf9E32307626C9f6BD0Cd',\n [CONTRACT_NAMES.feeOracle]:\n '0x5D2F27000C80f6f7A03015Fd49dB7FEba3fBfa83',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xefb8e4091A75C4828826bf64595F392f87A07b37',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x4c427Ec826F403339719C0FABfb3209e80939eA6',\n [CONTRACT_NAMES.verifier]: '0x209190Ebc2Be80367a15d05e626784Eb94d6A880',\n [CONTRACT_NAMES.hashConsensus]:\n '0x920883908A78c1554f682006a8aB32E62Be09F33',\n [CONTRACT_NAMES.metaRegistry]:\n '0x857289cCBFBc4C134Cc312022a104CD9b38d8AAE',\n [CONTRACT_NAMES.curatedGatePO]:\n '0xF1862d120831eBE31f7202378Ff3Ae63A5658ae3',\n [CONTRACT_NAMES.curatedGatePTO]:\n '0x410A309dF81B782190188CDB3d215729cc6bC1f3',\n [CONTRACT_NAMES.curatedGatePGO]:\n '0xa5A604b172787e017b1b118F02fE54fC1D696519',\n [CONTRACT_NAMES.curatedGateDO]:\n '0xE966874cDB6A4282ED75Cd10439e3799e5531a2D',\n [CONTRACT_NAMES.curatedGateEEO]:\n '0x5c063da03e3f21443716D75a2205EE16706e1153',\n [CONTRACT_NAMES.curatedGateIODC]:\n '0x1cD655Ac53CfE8269DE0DBfc0140B074623C4A6B',\n [CONTRACT_NAMES.curatedGateIODCP]:\n '0x28518be9894C20135F280a9539617783b08a04c7',\n },\n moduleId: 5n,\n deploymentBlockNumber: BigInt('0x28a0f0'),\n },\n },\n};\n"],"mappings":";;;;;;AAiBO,MAAM,mBAA0D;EACpE,+BAAA,OAAO,UAAU;GACf,uBAAA,eAAe,gBACd;GACD,uBAAA,eAAe,0BACd;GACD,uBAAA,eAAe,kBACd;GACD,uBAAA,eAAe,mBACd;GACD,uBAAA,eAAe,QAAQ;GACvB,uBAAA,eAAe,SAAS;GACxB,uBAAA,eAAe,cAAc;EAChC;EACC,+BAAA,OAAO,QAAQ;GACb,uBAAA,eAAe,gBACd;GACD,uBAAA,eAAe,0BACd;GACD,uBAAA,eAAe,kBACd;GACD,uBAAA,eAAe,mBACd;GACD,uBAAA,eAAe,QAAQ;GACvB,uBAAA,eAAe,SAAS;GACxB,uBAAA,eAAe,cAAc;EAChC;CACF;AAEO,MAAM,gBAAyC;EACnD,oBAAA,YAAY,MAAM;GAChB,+BAAA,OAAO,UAAU;GAChB,mBAAmB;KAChB,uBAAA,eAAe,WAAW;KAC1B,uBAAA,eAAe,aACd;KACD,uBAAA,eAAe,UAAU;KACzB,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,iBACd;KACD,uBAAA,eAAe,YACd;KACD,uBAAA,eAAe,qBACd;KACD,uBAAA,eAAe,mBACd;KACD,uBAAA,eAAe,WAAW;KAC1B,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,qBACd;KACD,uBAAA,eAAe,UAAU;IAC5B;GACA,UAAU;GACV,uBAAuB,OAAO,YAAW;GAC3C;GACC,+BAAA,OAAO,QAAQ;GACd,mBAAmB;KAChB,uBAAA,eAAe,WAAW;KAC1B,uBAAA,eAAe,aACd;KACD,uBAAA,eAAe,UAAU;KACzB,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,iBACd;KACD,uBAAA,eAAe,YACd;KACD,uBAAA,eAAe,qBACd;KACD,uBAAA,eAAe,mBACd;KACD,uBAAA,eAAe,WAAW;KAC1B,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,qBACd;KACD,uBAAA,eAAe,UAAU;KACzB,uBAAA,eAAe,YACd;IACJ;GACA,UAAU;GACV,uBAAuB,OAAO,SAAQ;GACxC;EACF;EAEC,oBAAA,YAAY,KAAK;GACf,+BAAA,OAAO,UAAU;GAChB,mBAAmB;KAChB,uBAAA,eAAe,gBAAgB,KAAA;KAC/B,uBAAA,eAAe,aAAa,KAAA;KAC5B,uBAAA,eAAe,UAAU,KAAA;KACzB,uBAAA,eAAe,gBAAgB,KAAA;KAC/B,uBAAA,eAAe,iBAAiB,KAAA;KAChC,uBAAA,eAAe,YAAY,KAAA;KAC3B,uBAAA,eAAe,qBAAqB,KAAA;KACpC,uBAAA,eAAe,mBAAmB,KAAA;KAClC,uBAAA,eAAe,WAAW,KAAA;KAC1B,uBAAA,eAAe,gBAAgB,KAAA;KAC/B,uBAAA,eAAe,eAAe,KAAA;KAC9B,uBAAA,eAAe,gBAAgB,KAAA;KAC/B,uBAAA,eAAe,iBAAiB,KAAA;KAChC,uBAAA,eAAe,iBAAiB,KAAA;KAChC,uBAAA,eAAe,gBAAgB,KAAA;KAC/B,uBAAA,eAAe,iBAAiB,KAAA;KAChC,uBAAA,eAAe,kBAAkB,KAAA;KACjC,uBAAA,eAAe,mBAAmB,KAAA;IACrC;GACA,UAAU;GACZ;GACC,+BAAA,OAAO,QAAQ;GACd,mBAAmB;KAChB,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,aACd;KACD,uBAAA,eAAe,UAAU;KACzB,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,iBACd;KACD,uBAAA,eAAe,YACd;KACD,uBAAA,eAAe,qBACd;KACD,uBAAA,eAAe,mBACd;KACD,uBAAA,eAAe,WAAW;KAC1B,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,eACd;KACD,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,iBACd;KACD,uBAAA,eAAe,iBACd;KACD,uBAAA,eAAe,gBACd;KACD,uBAAA,eAAe,iBACd;KACD,uBAAA,eAAe,kBACd;KACD,uBAAA,eAAe,mBACd;IACJ;GACA,UAAU;GACV,uBAAuB,OAAO,WAAU;GAC1C;EACF;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CONTRACT_NAMES } from "./contract-names.mjs";
|
|
2
2
|
import { MODULE_NAME } from "./module-name.mjs";
|
|
3
3
|
import { CHAINS } from "@lidofinance/lido-ethereum-sdk";
|
|
4
|
+
import { zeroAddress } from "viem";
|
|
4
5
|
//#region src/common/constants/module-config.ts
|
|
5
6
|
const COMMON_ADDRESSES = {
|
|
6
7
|
[CHAINS.Mainnet]: {
|
|
@@ -64,7 +65,26 @@ const MODULE_CONFIG = {
|
|
|
64
65
|
},
|
|
65
66
|
[MODULE_NAME.CM]: {
|
|
66
67
|
[CHAINS.Mainnet]: {
|
|
67
|
-
contractAddresses: {
|
|
68
|
+
contractAddresses: {
|
|
69
|
+
[CONTRACT_NAMES.curatedModule]: zeroAddress,
|
|
70
|
+
[CONTRACT_NAMES.accounting]: zeroAddress,
|
|
71
|
+
[CONTRACT_NAMES.ejector]: zeroAddress,
|
|
72
|
+
[CONTRACT_NAMES.exitPenalties]: zeroAddress,
|
|
73
|
+
[CONTRACT_NAMES.feeDistributor]: zeroAddress,
|
|
74
|
+
[CONTRACT_NAMES.feeOracle]: zeroAddress,
|
|
75
|
+
[CONTRACT_NAMES.parametersRegistry]: zeroAddress,
|
|
76
|
+
[CONTRACT_NAMES.validatorStrikes]: zeroAddress,
|
|
77
|
+
[CONTRACT_NAMES.verifier]: zeroAddress,
|
|
78
|
+
[CONTRACT_NAMES.hashConsensus]: zeroAddress,
|
|
79
|
+
[CONTRACT_NAMES.metaRegistry]: zeroAddress,
|
|
80
|
+
[CONTRACT_NAMES.curatedGatePO]: zeroAddress,
|
|
81
|
+
[CONTRACT_NAMES.curatedGatePTO]: zeroAddress,
|
|
82
|
+
[CONTRACT_NAMES.curatedGatePGO]: zeroAddress,
|
|
83
|
+
[CONTRACT_NAMES.curatedGateDO]: zeroAddress,
|
|
84
|
+
[CONTRACT_NAMES.curatedGateEEO]: zeroAddress,
|
|
85
|
+
[CONTRACT_NAMES.curatedGateIODC]: zeroAddress,
|
|
86
|
+
[CONTRACT_NAMES.curatedGateIODCP]: zeroAddress
|
|
87
|
+
},
|
|
68
88
|
moduleId: 4n
|
|
69
89
|
},
|
|
70
90
|
[CHAINS.Hoodi]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-config.mjs","names":[],"sources":["../../../src/common/constants/module-config.ts"],"sourcesContent":["import { CHAINS } from '@lidofinance/lido-ethereum-sdk';\nimport { Address } from 'viem';\n\nimport { CONTRACT_NAMES } from './contract-names';\nimport { MODULE_NAME, PerModule } from './module-name';\nimport { PerSupportedChain } from './supported-chains';\n\ntype ContractAddressMap = { [key in CONTRACT_NAMES]?: Address };\n\ntype ModuleChainConfig = {\n contractAddresses: ContractAddressMap;\n moduleId: bigint;\n deploymentBlockNumber?: bigint;\n};\n\nexport type ModuleConfig = PerSupportedChain<ModuleChainConfig>;\n\nexport const COMMON_ADDRESSES: PerSupportedChain<ContractAddressMap> = {\n [CHAINS.Mainnet]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xFdDf38947aFB03C621C71b06C9C70bce73f12999',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e',\n [CONTRACT_NAMES.withdrawalVault]:\n '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x388C818CA8B9251b393131C08a736A67ccB19297',\n [CONTRACT_NAMES.stETH]: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n [CONTRACT_NAMES.wstETH]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [CONTRACT_NAMES.smDiscovery]: '0x32893b74064160c626652c2c21a849fdd0bddfd6',\n },\n [CHAINS.Hoodi]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xCc820558B39ee15C7C45B59390B503b83fb499A8',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x8664d394C2B3278F26A1B44B967aEf99707eeAB2',\n [CONTRACT_NAMES.withdrawalVault]:\n '0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x9b108015fe433F173696Af3Aa0CF7CDb3E104258',\n [CONTRACT_NAMES.stETH]: '0x3508A952176b3c15387C97BE809eaffB1982176a',\n [CONTRACT_NAMES.wstETH]: '0x7E99eE3C66636DE415D2d7C880938F2f40f94De4',\n [CONTRACT_NAMES.smDiscovery]: '0xd4523c0925b2246325dcc1d919f2b84c0bcacad9',\n },\n};\n\nexport const MODULE_CONFIG: PerModule<ModuleConfig> = {\n [MODULE_NAME.CSM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F',\n [CONTRACT_NAMES.accounting]:\n '0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da',\n [CONTRACT_NAMES.ejector]: '0xc72b58aa02E0e98cF8A4a0E9Dce75e763800802C',\n [CONTRACT_NAMES.exitPenalties]:\n '0x06cd61045f958A209a0f8D746e103eCc625f4193',\n [CONTRACT_NAMES.feeDistributor]:\n '0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0',\n [CONTRACT_NAMES.feeOracle]:\n '0x4D4074628678Bd302921c20573EEa1ed38DdF7FB',\n [CONTRACT_NAMES.parametersRegistry]:\n '0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428',\n [CONTRACT_NAMES.validatorStrikes]:\n '0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f',\n [CONTRACT_NAMES.verifier]: '0xdC5FE1782B6943f318E05230d688713a560063DC',\n [CONTRACT_NAMES.hashConsensus]:\n '0x71093efF8D8599b5fA340D665Ad60fA7C80688e4',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xcF33a38111d0B1246A3F38a838fb41D626B454f0',\n [CONTRACT_NAMES.icsGate]: '0xB314D4A76C457c93150d308787939063F4Cc67E0',\n },\n moduleId: 3n,\n deploymentBlockNumber: BigInt('0x13f7326'),\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0x79CEf36D84743222f37765204Bec41E92a93E59d',\n [CONTRACT_NAMES.accounting]:\n '0xA54b90BA34C5f326BC1485054080994e38FB4C60',\n [CONTRACT_NAMES.ejector]: '0xCAe028378d69D54dc8bF809e6C44CF751F997b80',\n [CONTRACT_NAMES.exitPenalties]:\n '0xD259b31083Be841E5C85b2D481Cfc17C14276800',\n [CONTRACT_NAMES.feeDistributor]:\n '0xaCd9820b0A2229a82dc1A0770307ce5522FF3582',\n [CONTRACT_NAMES.feeOracle]:\n '0xe7314f561B2e72f9543F1004e741bab6Fc51028B',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xA4aD5236963f9Fe4229864712269D8d79B65C5Ad',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x8fBA385C3c334D251eE413e79d4D3890db98693c',\n [CONTRACT_NAMES.verifier]: '0xC96406b0eADdAC5708aFCa04DcCA67BAdC9642Fd',\n [CONTRACT_NAMES.hashConsensus]:\n '0x54f74a10e4397dDeF85C4854d9dfcA129D72C637',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xd7bD8D2A9888D1414c770B35ACF55890B15de26a',\n [CONTRACT_NAMES.icsGate]: '0x10a254E724fe2b7f305F76f3F116a3969c53845f',\n [CONTRACT_NAMES.idvtcGate]:\n '0x887F8512F9998045f4b5993e6eaa6BCfE5F02A94',\n },\n moduleId: 4n,\n deploymentBlockNumber: BigInt('0x1374'),\n },\n },\n\n [MODULE_NAME.CM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {},\n moduleId: 4n,\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.curatedModule]:\n '0x87EB69Ae51317405FD285efD2326a4a11f6173b9',\n [CONTRACT_NAMES.accounting]:\n '0x7f7356D29aCd915F1934220956c3305808ceB235',\n [CONTRACT_NAMES.ejector]: '0xfDbde2B3554B69C84e0f8d7daB68D390Ff0f4394',\n [CONTRACT_NAMES.exitPenalties]:\n '0xad79e1d3B380cEb1a0e188fBAB91f85A446E9E54',\n [CONTRACT_NAMES.feeDistributor]:\n '0x0ced6de191E2A15f7BBAf9E32307626C9f6BD0Cd',\n [CONTRACT_NAMES.feeOracle]:\n '0x5D2F27000C80f6f7A03015Fd49dB7FEba3fBfa83',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xefb8e4091A75C4828826bf64595F392f87A07b37',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x4c427Ec826F403339719C0FABfb3209e80939eA6',\n [CONTRACT_NAMES.verifier]: '0x209190Ebc2Be80367a15d05e626784Eb94d6A880',\n [CONTRACT_NAMES.hashConsensus]:\n '0x920883908A78c1554f682006a8aB32E62Be09F33',\n [CONTRACT_NAMES.metaRegistry]:\n '0x857289cCBFBc4C134Cc312022a104CD9b38d8AAE',\n [CONTRACT_NAMES.curatedGatePO]:\n '0xF1862d120831eBE31f7202378Ff3Ae63A5658ae3',\n [CONTRACT_NAMES.curatedGatePTO]:\n '0x410A309dF81B782190188CDB3d215729cc6bC1f3',\n [CONTRACT_NAMES.curatedGatePGO]:\n '0xa5A604b172787e017b1b118F02fE54fC1D696519',\n [CONTRACT_NAMES.curatedGateDO]:\n '0xE966874cDB6A4282ED75Cd10439e3799e5531a2D',\n [CONTRACT_NAMES.curatedGateEEO]:\n '0x5c063da03e3f21443716D75a2205EE16706e1153',\n [CONTRACT_NAMES.curatedGateIODC]:\n '0x1cD655Ac53CfE8269DE0DBfc0140B074623C4A6B',\n [CONTRACT_NAMES.curatedGateIODCP]:\n '0x28518be9894C20135F280a9539617783b08a04c7',\n },\n moduleId: 5n,\n deploymentBlockNumber: BigInt('0x28a0f0'),\n },\n },\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-config.mjs","names":[],"sources":["../../../src/common/constants/module-config.ts"],"sourcesContent":["import { CHAINS } from '@lidofinance/lido-ethereum-sdk';\nimport { Address, zeroAddress } from 'viem';\n\nimport { CONTRACT_NAMES } from './contract-names';\nimport { MODULE_NAME, PerModule } from './module-name';\nimport { PerSupportedChain } from './supported-chains';\n\ntype ContractAddressMap = { [key in CONTRACT_NAMES]?: Address };\n\ntype ModuleChainConfig = {\n contractAddresses: ContractAddressMap;\n moduleId: bigint;\n deploymentBlockNumber?: bigint;\n};\n\nexport type ModuleConfig = PerSupportedChain<ModuleChainConfig>;\n\nexport const COMMON_ADDRESSES: PerSupportedChain<ContractAddressMap> = {\n [CHAINS.Mainnet]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xFdDf38947aFB03C621C71b06C9C70bce73f12999',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e',\n [CONTRACT_NAMES.withdrawalVault]:\n '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x388C818CA8B9251b393131C08a736A67ccB19297',\n [CONTRACT_NAMES.stETH]: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n [CONTRACT_NAMES.wstETH]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [CONTRACT_NAMES.smDiscovery]: '0x32893b74064160c626652c2c21a849fdd0bddfd6',\n },\n [CHAINS.Hoodi]: {\n [CONTRACT_NAMES.stakingRouter]:\n '0xCc820558B39ee15C7C45B59390B503b83fb499A8',\n [CONTRACT_NAMES.validatorsExitBusOracle]:\n '0x8664d394C2B3278F26A1B44B967aEf99707eeAB2',\n [CONTRACT_NAMES.withdrawalVault]:\n '0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2',\n [CONTRACT_NAMES.lidoRewardsVault]:\n '0x9b108015fe433F173696Af3Aa0CF7CDb3E104258',\n [CONTRACT_NAMES.stETH]: '0x3508A952176b3c15387C97BE809eaffB1982176a',\n [CONTRACT_NAMES.wstETH]: '0x7E99eE3C66636DE415D2d7C880938F2f40f94De4',\n [CONTRACT_NAMES.smDiscovery]: '0xd4523c0925b2246325dcc1d919f2b84c0bcacad9',\n },\n};\n\nexport const MODULE_CONFIG: PerModule<ModuleConfig> = {\n [MODULE_NAME.CSM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F',\n [CONTRACT_NAMES.accounting]:\n '0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da',\n [CONTRACT_NAMES.ejector]: '0xc72b58aa02E0e98cF8A4a0E9Dce75e763800802C',\n [CONTRACT_NAMES.exitPenalties]:\n '0x06cd61045f958A209a0f8D746e103eCc625f4193',\n [CONTRACT_NAMES.feeDistributor]:\n '0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0',\n [CONTRACT_NAMES.feeOracle]:\n '0x4D4074628678Bd302921c20573EEa1ed38DdF7FB',\n [CONTRACT_NAMES.parametersRegistry]:\n '0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428',\n [CONTRACT_NAMES.validatorStrikes]:\n '0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f',\n [CONTRACT_NAMES.verifier]: '0xdC5FE1782B6943f318E05230d688713a560063DC',\n [CONTRACT_NAMES.hashConsensus]:\n '0x71093efF8D8599b5fA340D665Ad60fA7C80688e4',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xcF33a38111d0B1246A3F38a838fb41D626B454f0',\n [CONTRACT_NAMES.icsGate]: '0xB314D4A76C457c93150d308787939063F4Cc67E0',\n },\n moduleId: 3n,\n deploymentBlockNumber: BigInt('0x13f7326'),\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.csModule]: '0x79CEf36D84743222f37765204Bec41E92a93E59d',\n [CONTRACT_NAMES.accounting]:\n '0xA54b90BA34C5f326BC1485054080994e38FB4C60',\n [CONTRACT_NAMES.ejector]: '0xCAe028378d69D54dc8bF809e6C44CF751F997b80',\n [CONTRACT_NAMES.exitPenalties]:\n '0xD259b31083Be841E5C85b2D481Cfc17C14276800',\n [CONTRACT_NAMES.feeDistributor]:\n '0xaCd9820b0A2229a82dc1A0770307ce5522FF3582',\n [CONTRACT_NAMES.feeOracle]:\n '0xe7314f561B2e72f9543F1004e741bab6Fc51028B',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xA4aD5236963f9Fe4229864712269D8d79B65C5Ad',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x8fBA385C3c334D251eE413e79d4D3890db98693c',\n [CONTRACT_NAMES.verifier]: '0xC96406b0eADdAC5708aFCa04DcCA67BAdC9642Fd',\n [CONTRACT_NAMES.hashConsensus]:\n '0x54f74a10e4397dDeF85C4854d9dfcA129D72C637',\n [CONTRACT_NAMES.permissionlessGate]:\n '0xd7bD8D2A9888D1414c770B35ACF55890B15de26a',\n [CONTRACT_NAMES.icsGate]: '0x10a254E724fe2b7f305F76f3F116a3969c53845f',\n [CONTRACT_NAMES.idvtcGate]:\n '0x887F8512F9998045f4b5993e6eaa6BCfE5F02A94',\n },\n moduleId: 4n,\n deploymentBlockNumber: BigInt('0x1374'),\n },\n },\n\n [MODULE_NAME.CM]: {\n [CHAINS.Mainnet]: {\n contractAddresses: {\n [CONTRACT_NAMES.curatedModule]: zeroAddress,\n [CONTRACT_NAMES.accounting]: zeroAddress,\n [CONTRACT_NAMES.ejector]: zeroAddress,\n [CONTRACT_NAMES.exitPenalties]: zeroAddress,\n [CONTRACT_NAMES.feeDistributor]: zeroAddress,\n [CONTRACT_NAMES.feeOracle]: zeroAddress,\n [CONTRACT_NAMES.parametersRegistry]: zeroAddress,\n [CONTRACT_NAMES.validatorStrikes]: zeroAddress,\n [CONTRACT_NAMES.verifier]: zeroAddress,\n [CONTRACT_NAMES.hashConsensus]: zeroAddress,\n [CONTRACT_NAMES.metaRegistry]: zeroAddress,\n [CONTRACT_NAMES.curatedGatePO]: zeroAddress,\n [CONTRACT_NAMES.curatedGatePTO]: zeroAddress,\n [CONTRACT_NAMES.curatedGatePGO]: zeroAddress,\n [CONTRACT_NAMES.curatedGateDO]: zeroAddress,\n [CONTRACT_NAMES.curatedGateEEO]: zeroAddress,\n [CONTRACT_NAMES.curatedGateIODC]: zeroAddress,\n [CONTRACT_NAMES.curatedGateIODCP]: zeroAddress,\n },\n moduleId: 4n,\n },\n [CHAINS.Hoodi]: {\n contractAddresses: {\n [CONTRACT_NAMES.curatedModule]:\n '0x87EB69Ae51317405FD285efD2326a4a11f6173b9',\n [CONTRACT_NAMES.accounting]:\n '0x7f7356D29aCd915F1934220956c3305808ceB235',\n [CONTRACT_NAMES.ejector]: '0xfDbde2B3554B69C84e0f8d7daB68D390Ff0f4394',\n [CONTRACT_NAMES.exitPenalties]:\n '0xad79e1d3B380cEb1a0e188fBAB91f85A446E9E54',\n [CONTRACT_NAMES.feeDistributor]:\n '0x0ced6de191E2A15f7BBAf9E32307626C9f6BD0Cd',\n [CONTRACT_NAMES.feeOracle]:\n '0x5D2F27000C80f6f7A03015Fd49dB7FEba3fBfa83',\n [CONTRACT_NAMES.parametersRegistry]:\n '0xefb8e4091A75C4828826bf64595F392f87A07b37',\n [CONTRACT_NAMES.validatorStrikes]:\n '0x4c427Ec826F403339719C0FABfb3209e80939eA6',\n [CONTRACT_NAMES.verifier]: '0x209190Ebc2Be80367a15d05e626784Eb94d6A880',\n [CONTRACT_NAMES.hashConsensus]:\n '0x920883908A78c1554f682006a8aB32E62Be09F33',\n [CONTRACT_NAMES.metaRegistry]:\n '0x857289cCBFBc4C134Cc312022a104CD9b38d8AAE',\n [CONTRACT_NAMES.curatedGatePO]:\n '0xF1862d120831eBE31f7202378Ff3Ae63A5658ae3',\n [CONTRACT_NAMES.curatedGatePTO]:\n '0x410A309dF81B782190188CDB3d215729cc6bC1f3',\n [CONTRACT_NAMES.curatedGatePGO]:\n '0xa5A604b172787e017b1b118F02fE54fC1D696519',\n [CONTRACT_NAMES.curatedGateDO]:\n '0xE966874cDB6A4282ED75Cd10439e3799e5531a2D',\n [CONTRACT_NAMES.curatedGateEEO]:\n '0x5c063da03e3f21443716D75a2205EE16706e1153',\n [CONTRACT_NAMES.curatedGateIODC]:\n '0x1cD655Ac53CfE8269DE0DBfc0140B074623C4A6B',\n [CONTRACT_NAMES.curatedGateIODCP]:\n '0x28518be9894C20135F280a9539617783b08a04c7',\n },\n moduleId: 5n,\n deploymentBlockNumber: BigInt('0x28a0f0'),\n },\n },\n};\n"],"mappings":";;;;;AAiBO,MAAM,mBAA0D;EACpE,OAAO,UAAU;GACf,eAAe,gBACd;GACD,eAAe,0BACd;GACD,eAAe,kBACd;GACD,eAAe,mBACd;GACD,eAAe,QAAQ;GACvB,eAAe,SAAS;GACxB,eAAe,cAAc;EAChC;EACC,OAAO,QAAQ;GACb,eAAe,gBACd;GACD,eAAe,0BACd;GACD,eAAe,kBACd;GACD,eAAe,mBACd;GACD,eAAe,QAAQ;GACvB,eAAe,SAAS;GACxB,eAAe,cAAc;EAChC;CACF;AAEO,MAAM,gBAAyC;EACnD,YAAY,MAAM;GAChB,OAAO,UAAU;GAChB,mBAAmB;KAChB,eAAe,WAAW;KAC1B,eAAe,aACd;KACD,eAAe,UAAU;KACzB,eAAe,gBACd;KACD,eAAe,iBACd;KACD,eAAe,YACd;KACD,eAAe,qBACd;KACD,eAAe,mBACd;KACD,eAAe,WAAW;KAC1B,eAAe,gBACd;KACD,eAAe,qBACd;KACD,eAAe,UAAU;IAC5B;GACA,UAAU;GACV,uBAAuB,OAAO,YAAW;GAC3C;GACC,OAAO,QAAQ;GACd,mBAAmB;KAChB,eAAe,WAAW;KAC1B,eAAe,aACd;KACD,eAAe,UAAU;KACzB,eAAe,gBACd;KACD,eAAe,iBACd;KACD,eAAe,YACd;KACD,eAAe,qBACd;KACD,eAAe,mBACd;KACD,eAAe,WAAW;KAC1B,eAAe,gBACd;KACD,eAAe,qBACd;KACD,eAAe,UAAU;KACzB,eAAe,YACd;IACJ;GACA,UAAU;GACV,uBAAuB,OAAO,SAAQ;GACxC;EACF;EAEC,YAAY,KAAK;GACf,OAAO,UAAU;GAChB,mBAAmB;KAChB,eAAe,gBAAgB;KAC/B,eAAe,aAAa;KAC5B,eAAe,UAAU;KACzB,eAAe,gBAAgB;KAC/B,eAAe,iBAAiB;KAChC,eAAe,YAAY;KAC3B,eAAe,qBAAqB;KACpC,eAAe,mBAAmB;KAClC,eAAe,WAAW;KAC1B,eAAe,gBAAgB;KAC/B,eAAe,eAAe;KAC9B,eAAe,gBAAgB;KAC/B,eAAe,iBAAiB;KAChC,eAAe,iBAAiB;KAChC,eAAe,gBAAgB;KAC/B,eAAe,iBAAiB;KAChC,eAAe,kBAAkB;KACjC,eAAe,mBAAmB;IACrC;GACA,UAAU;GACZ;GACC,OAAO,QAAQ;GACd,mBAAmB;KAChB,eAAe,gBACd;KACD,eAAe,aACd;KACD,eAAe,UAAU;KACzB,eAAe,gBACd;KACD,eAAe,iBACd;KACD,eAAe,YACd;KACD,eAAe,qBACd;KACD,eAAe,mBACd;KACD,eAAe,WAAW;KAC1B,eAAe,gBACd;KACD,eAAe,eACd;KACD,eAAe,gBACd;KACD,eAAe,iBACd;KACD,eAAe,iBACd;KACD,eAAe,gBACd;KACD,eAAe,iBACd;KACD,eAAe,kBACd;KACD,eAAe,mBACd;IACJ;GACA,UAAU;GACV,uBAAuB,OAAO,WAAU;GAC1C;EACF;CACF"}
|
|
@@ -42,6 +42,15 @@ var SDKError = class SDKError extends Error {
|
|
|
42
42
|
this.code = code ?? require_sdk_error_code.ERROR_CODE.UNKNOWN_ERROR;
|
|
43
43
|
this.decodedRevert = decodedRevert;
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use `message` (the idiomatic `Error` field) instead — this is
|
|
47
|
+
* a thin alias kept for pre-refactor consumers and will be removed in the
|
|
48
|
+
* next major. For structured access to a decoded contract revert, read
|
|
49
|
+
* `decodedRevert` ({ name, args }).
|
|
50
|
+
*/
|
|
51
|
+
get errorMessage() {
|
|
52
|
+
return this.message || void 0;
|
|
53
|
+
}
|
|
45
54
|
};
|
|
46
55
|
function invariant(condition, message, code) {
|
|
47
56
|
if (condition) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-error.cjs","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"sourcesContent":["import { classifyError } from './classify-error';\nimport { type DecodedRevert, decodeRevertData } from './decode-revert-data';\nimport { ERROR_CODE } from './sdk-error-code';\n\nexport { ERROR_CODE } from './sdk-error-code';\n\nexport type SDKErrorProps = {\n code?: ERROR_CODE;\n error?: unknown;\n message?: string;\n decodedRevert?: DecodedRevert;\n};\n\nconst messageOf = (error: unknown): string =>\n typeof error === 'object' &&\n error !== null &&\n 'message' in error &&\n typeof error.message === 'string'\n ? error.message\n : 'something went wrong';\n\n/**\n * Canonical `Name(arg1, arg2, ...)` label for a decoded contract revert.\n * Falls back to bare `Name` when the error has no args. Exposed so consumers\n * with a raw `decodedRevert` (e.g. from logs) can render the same string the\n * SDK uses as `Error.message`.\n */\nexport const formatDecodedRevert = (decoded: DecodedRevert): string => {\n if (!decoded.args.length) return decoded.name;\n const args = (decoded.args as readonly unknown[]).map(String).join(', ');\n return `${decoded.name}(${args})`;\n};\n\n/**\n * Typed wrapper around every error thrown by the SDK. Invariants:\n * - `code` is always set (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n * - `cause` preserves the original upstream error (typically a viem\n * `BaseError`) so consumers can walk the chain.\n * - `decodedRevert` is present iff the underlying error carried a custom\n * error selector decodable against the SDK's known ABIs.\n *\n * Branch on `code` for wallet / network conditions; narrow on\n * `decodedRevert.name` for typed contract revert args.\n *\n * @example\n * try { await sdk.bond.claimBondStETH(...) } catch (e) {\n * if (!(e instanceof SDKError)) throw e;\n * if (e.code === ERROR_CODE.USER_REJECTED) return;\n * if (e.decodedRevert?.name === 'AccessControlUnauthorizedAccount') {\n * const [account, role] = e.decodedRevert.args; // typed tuple\n * showRoleErrorToast(account, role);\n * }\n * }\n */\nexport class SDKError extends Error {\n /**\n * Wrap any thrown value into an `SDKError`. Pass `code` as a context hint\n * (e.g. `TRANSACTION_ERROR`); it is only used when {@link classifyError}\n * yields nothing. The classifier always wins because viem class detection\n * is strictly more specific than a context code.\n */\n public static from(error: unknown, code?: ERROR_CODE): SDKError {\n if (error instanceof SDKError) return error;\n\n const decodedRevert = decodeRevertData(error);\n const message = decodedRevert\n ? formatDecodedRevert(decodedRevert)\n : messageOf(error);\n\n const finalCode =\n classifyError(error, decodedRevert) ?? code ?? ERROR_CODE.UNKNOWN_ERROR;\n\n return new SDKError({ code: finalCode, error, message, decodedRevert });\n }\n\n /** Classified error category. Always set. See {@link ERROR_CODE}. */\n public code: ERROR_CODE;\n\n /**\n * Decoded contract revert, when the upstream error carried a selector\n * decodable against the SDK's combined ABI. Discriminated union: narrow on\n * `name` to get a typed `args` tuple.\n */\n public decodedRevert: DecodedRevert | undefined;\n\n /**\n * Original upstream error (typically a viem `BaseError`). Inherited from\n * `Error.cause`. Walk via `e.cause` to inspect the full chain.\n */\n declare public cause?: unknown;\n\n constructor({ code, error, message, decodedRevert }: SDKErrorProps) {\n super(message);\n this.name = 'SDKError';\n // Preserve full upstream error as `cause` — consumers walk it via the\n // standard Error chain. Previous code assigned `error.cause` and silently\n // dropped the top viem BaseError.\n if (error !== undefined) {\n this.cause = error;\n }\n if (error instanceof Error && error.stack) {\n this.stack = error.stack;\n }\n this.code = code ?? ERROR_CODE.UNKNOWN_ERROR;\n this.decodedRevert = decodedRevert;\n }\n}\n\n/**\n * Assert `condition` is truthy, otherwise throw an `SDKError` with the given\n * `message` and optional `code` (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n */\n// eslint-disable-next-line func-style\nexport function invariant(\n condition: any,\n message: string,\n code?: ERROR_CODE,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ message, code });\n}\n\n/**\n * Shortcut for argument validation: throws with\n * {@link ERROR_CODE.INVALID_ARGUMENT}.\n */\n// eslint-disable-next-line func-style\nexport function invariantArgument(\n condition: any,\n message: string,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ code: ERROR_CODE.INVALID_ARGUMENT, message });\n}\n\n/**\n * Await `func`; on rejection, rethrow as `SDKError.from(error, code)`.\n * `code` is a context fallback — the classifier still wins when it matches.\n */\nexport const withSDKError = async <TResult>(\n func: Promise<TResult>,\n code?: ERROR_CODE,\n): Promise<TResult> => {\n try {\n return await func;\n } catch (error) {\n throw SDKError.from(error, code);\n }\n};\n"],"mappings":";;;;AAaA,MAAM,aAAa,UACjB,OAAO,UAAU,YACjB,UAAU,QACV,aAAa,SACb,OAAO,MAAM,YAAY,WACrB,MAAM,UACN;AAQC,MAAM,uBAAuB,YAAmC;AACrE,KAAI,CAAC,QAAQ,KAAK,OAAQ,QAAO,QAAQ;CACzC,MAAM,OAAQ,QAAQ,KAA4B,IAAI,OAAM,CAAE,KAAK,KAAI;AACvE,QAAO,GAAG,QAAQ,KAAI,GAAI,KAAI;;AAwBzB,IAAM,WAAN,MAAM,iBAAiB,MAAM;;;;;;;CAOlC,OAAc,KAAK,OAAgB,MAA6B;AAC9D,MAAI,iBAAiB,SAAU,QAAO;EAEtC,MAAM,gBAAgB,2BAAA,iBAAiB,MAAK;EAC5C,MAAM,UAAU,gBACZ,oBAAoB,cAAa,GACjC,UAAU,MAAK;AAKnB,SAAO,IAAI,SAAS;GAAE,MAFpB,uBAAA,cAAc,OAAO,cAAa,IAAK,QAAQ,uBAAA,WAAW;GAErB;GAAO;GAAS;GAAe,CAAA;;;CAIjE;;;;;;CAOA;CAQP,YAAY,EAAE,MAAM,OAAO,SAAS,iBAAgC;AAClE,QAAM,QAAO;AACb,OAAK,OAAO;AAIZ,MAAI,UAAU,KAAA,EACZ,MAAK,QAAQ;AAEf,MAAI,iBAAiB,SAAS,MAAM,MAClC,MAAK,QAAQ,MAAM;AAErB,OAAK,OAAO,QAAQ,uBAAA,WAAW;AAC/B,OAAK,gBAAgB;;;
|
|
1
|
+
{"version":3,"file":"sdk-error.cjs","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"sourcesContent":["import { classifyError } from './classify-error';\nimport { type DecodedRevert, decodeRevertData } from './decode-revert-data';\nimport { ERROR_CODE } from './sdk-error-code';\n\nexport { ERROR_CODE } from './sdk-error-code';\n\nexport type SDKErrorProps = {\n code?: ERROR_CODE;\n error?: unknown;\n message?: string;\n decodedRevert?: DecodedRevert;\n};\n\nconst messageOf = (error: unknown): string =>\n typeof error === 'object' &&\n error !== null &&\n 'message' in error &&\n typeof error.message === 'string'\n ? error.message\n : 'something went wrong';\n\n/**\n * Canonical `Name(arg1, arg2, ...)` label for a decoded contract revert.\n * Falls back to bare `Name` when the error has no args. Exposed so consumers\n * with a raw `decodedRevert` (e.g. from logs) can render the same string the\n * SDK uses as `Error.message`.\n */\nexport const formatDecodedRevert = (decoded: DecodedRevert): string => {\n if (!decoded.args.length) return decoded.name;\n const args = (decoded.args as readonly unknown[]).map(String).join(', ');\n return `${decoded.name}(${args})`;\n};\n\n/**\n * Typed wrapper around every error thrown by the SDK. Invariants:\n * - `code` is always set (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n * - `cause` preserves the original upstream error (typically a viem\n * `BaseError`) so consumers can walk the chain.\n * - `decodedRevert` is present iff the underlying error carried a custom\n * error selector decodable against the SDK's known ABIs.\n *\n * Branch on `code` for wallet / network conditions; narrow on\n * `decodedRevert.name` for typed contract revert args.\n *\n * @example\n * try { await sdk.bond.claimBondStETH(...) } catch (e) {\n * if (!(e instanceof SDKError)) throw e;\n * if (e.code === ERROR_CODE.USER_REJECTED) return;\n * if (e.decodedRevert?.name === 'AccessControlUnauthorizedAccount') {\n * const [account, role] = e.decodedRevert.args; // typed tuple\n * showRoleErrorToast(account, role);\n * }\n * }\n */\nexport class SDKError extends Error {\n /**\n * Wrap any thrown value into an `SDKError`. Pass `code` as a context hint\n * (e.g. `TRANSACTION_ERROR`); it is only used when {@link classifyError}\n * yields nothing. The classifier always wins because viem class detection\n * is strictly more specific than a context code.\n */\n public static from(error: unknown, code?: ERROR_CODE): SDKError {\n if (error instanceof SDKError) return error;\n\n const decodedRevert = decodeRevertData(error);\n const message = decodedRevert\n ? formatDecodedRevert(decodedRevert)\n : messageOf(error);\n\n const finalCode =\n classifyError(error, decodedRevert) ?? code ?? ERROR_CODE.UNKNOWN_ERROR;\n\n return new SDKError({ code: finalCode, error, message, decodedRevert });\n }\n\n /** Classified error category. Always set. See {@link ERROR_CODE}. */\n public code: ERROR_CODE;\n\n /**\n * Decoded contract revert, when the upstream error carried a selector\n * decodable against the SDK's combined ABI. Discriminated union: narrow on\n * `name` to get a typed `args` tuple.\n */\n public decodedRevert: DecodedRevert | undefined;\n\n /**\n * Original upstream error (typically a viem `BaseError`). Inherited from\n * `Error.cause`. Walk via `e.cause` to inspect the full chain.\n */\n declare public cause?: unknown;\n\n constructor({ code, error, message, decodedRevert }: SDKErrorProps) {\n super(message);\n this.name = 'SDKError';\n // Preserve full upstream error as `cause` — consumers walk it via the\n // standard Error chain. Previous code assigned `error.cause` and silently\n // dropped the top viem BaseError.\n if (error !== undefined) {\n this.cause = error;\n }\n if (error instanceof Error && error.stack) {\n this.stack = error.stack;\n }\n this.code = code ?? ERROR_CODE.UNKNOWN_ERROR;\n this.decodedRevert = decodedRevert;\n }\n\n /**\n * @deprecated Use `message` (the idiomatic `Error` field) instead — this is\n * a thin alias kept for pre-refactor consumers and will be removed in the\n * next major. For structured access to a decoded contract revert, read\n * `decodedRevert` ({ name, args }).\n */\n public get errorMessage(): string | undefined {\n return this.message || undefined;\n }\n}\n\n/**\n * Assert `condition` is truthy, otherwise throw an `SDKError` with the given\n * `message` and optional `code` (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n */\n// eslint-disable-next-line func-style\nexport function invariant(\n condition: any,\n message: string,\n code?: ERROR_CODE,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ message, code });\n}\n\n/**\n * Shortcut for argument validation: throws with\n * {@link ERROR_CODE.INVALID_ARGUMENT}.\n */\n// eslint-disable-next-line func-style\nexport function invariantArgument(\n condition: any,\n message: string,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ code: ERROR_CODE.INVALID_ARGUMENT, message });\n}\n\n/**\n * Await `func`; on rejection, rethrow as `SDKError.from(error, code)`.\n * `code` is a context fallback — the classifier still wins when it matches.\n */\nexport const withSDKError = async <TResult>(\n func: Promise<TResult>,\n code?: ERROR_CODE,\n): Promise<TResult> => {\n try {\n return await func;\n } catch (error) {\n throw SDKError.from(error, code);\n }\n};\n"],"mappings":";;;;AAaA,MAAM,aAAa,UACjB,OAAO,UAAU,YACjB,UAAU,QACV,aAAa,SACb,OAAO,MAAM,YAAY,WACrB,MAAM,UACN;AAQC,MAAM,uBAAuB,YAAmC;AACrE,KAAI,CAAC,QAAQ,KAAK,OAAQ,QAAO,QAAQ;CACzC,MAAM,OAAQ,QAAQ,KAA4B,IAAI,OAAM,CAAE,KAAK,KAAI;AACvE,QAAO,GAAG,QAAQ,KAAI,GAAI,KAAI;;AAwBzB,IAAM,WAAN,MAAM,iBAAiB,MAAM;;;;;;;CAOlC,OAAc,KAAK,OAAgB,MAA6B;AAC9D,MAAI,iBAAiB,SAAU,QAAO;EAEtC,MAAM,gBAAgB,2BAAA,iBAAiB,MAAK;EAC5C,MAAM,UAAU,gBACZ,oBAAoB,cAAa,GACjC,UAAU,MAAK;AAKnB,SAAO,IAAI,SAAS;GAAE,MAFpB,uBAAA,cAAc,OAAO,cAAa,IAAK,QAAQ,uBAAA,WAAW;GAErB;GAAO;GAAS;GAAe,CAAA;;;CAIjE;;;;;;CAOA;CAQP,YAAY,EAAE,MAAM,OAAO,SAAS,iBAAgC;AAClE,QAAM,QAAO;AACb,OAAK,OAAO;AAIZ,MAAI,UAAU,KAAA,EACZ,MAAK,QAAQ;AAEf,MAAI,iBAAiB,SAAS,MAAM,MAClC,MAAK,QAAQ,MAAM;AAErB,OAAK,OAAO,QAAQ,uBAAA,WAAW;AAC/B,OAAK,gBAAgB;;;;;;;;CASvB,IAAW,eAAmC;AAC5C,SAAO,KAAK,WAAW,KAAA;;;AASpB,SAAS,UACd,WACA,SACA,MACmB;AACnB,KAAI,UAAW;AAEf,OAAM,IAAI,SAAS;EAAE;EAAS;EAAM,CAAA;;AAQ/B,SAAS,kBACd,WACA,SACmB;AACnB,KAAI,UAAW;AAEf,OAAM,IAAI,SAAS;EAAE,MAAM,uBAAA,WAAW;EAAkB;EAAS,CAAA;;AAO5D,MAAM,eAAe,OAC1B,MACA,SACqB;AACrB,KAAI;AACF,SAAO,MAAM;UACN,OAAO;AACd,QAAM,SAAS,KAAK,OAAO,KAAI"}
|
|
@@ -63,6 +63,13 @@ declare class SDKError extends Error {
|
|
|
63
63
|
message,
|
|
64
64
|
decodedRevert
|
|
65
65
|
}: SDKErrorProps);
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated Use `message` (the idiomatic `Error` field) instead — this is
|
|
68
|
+
* a thin alias kept for pre-refactor consumers and will be removed in the
|
|
69
|
+
* next major. For structured access to a decoded contract revert, read
|
|
70
|
+
* `decodedRevert` ({ name, args }).
|
|
71
|
+
*/
|
|
72
|
+
get errorMessage(): string | undefined;
|
|
66
73
|
}
|
|
67
74
|
/**
|
|
68
75
|
* Assert `condition` is truthy, otherwise throw an `SDKError` with the given
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-error.d.cts","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"mappings":";;;;KAMY,aAAA;EACV,IAAA,GAAO,UAAA;EACP,KAAA;EACA,OAAA;EACA,aAAA,GAAgB,aAAA;AAAA;;;;;;;cAiBL,mBAAA,GAAuB,OAAA,EAAS,aAAA;AAA7C;;;;;AA2BA;;;;;;;;;;;;;;;;AA3BA,cA2Ba,QAAA,SAAiB,KAAA;EAOT;;;;;;EAAA,OAAL,IAAA,CAAK,KAAA,WAAgB,IAAA,GAAO,UAAA,GAAa,QAAA;EAsBjC;EAPf,IAAA,EAAM,UAAA;;;;;;EAON,aAAA,EAAe,aAAA;EAQK;;;;EAFZ,KAAA;;IAED,IAAA;IAAM,KAAA;IAAO,OAAA;IAAS;EAAA,GAAiB,aAAA;AAAA;;;;;
|
|
1
|
+
{"version":3,"file":"sdk-error.d.cts","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"mappings":";;;;KAMY,aAAA;EACV,IAAA,GAAO,UAAA;EACP,KAAA;EACA,OAAA;EACA,aAAA,GAAgB,aAAA;AAAA;;;;;;;cAiBL,mBAAA,GAAuB,OAAA,EAAS,aAAA;AAA7C;;;;;AA2BA;;;;;;;;;;;;;;;;AA3BA,cA2Ba,QAAA,SAAiB,KAAA;EAOT;;;;;;EAAA,OAAL,IAAA,CAAK,KAAA,WAAgB,IAAA,GAAO,UAAA,GAAa,QAAA;EAsBjC;EAPf,IAAA,EAAM,UAAA;;;;;;EAON,aAAA,EAAe,aAAA;EAQK;;;;EAFZ,KAAA;;IAED,IAAA;IAAM,KAAA;IAAO,OAAA;IAAS;EAAA,GAAiB,aAAA;EAsB9B;AAUzB;;;;;EAVyB,IAAZ,YAAA,CAAA;AAAA;;;;;iBAUG,SAAA,CACd,SAAA,OACA,OAAA,UACA,IAAA,GAAO,UAAA,WACE,SAAA;;;;;iBAWK,iBAAA,CACd,SAAA,OACA,OAAA,mBACS,SAAA;;;;AAUX;cAAa,YAAA,YACX,IAAA,EAAM,OAAA,CAAQ,OAAA,GACd,IAAA,GAAO,UAAA,KACN,OAAA,CAAQ,OAAA"}
|
|
@@ -63,6 +63,13 @@ declare class SDKError extends Error {
|
|
|
63
63
|
message,
|
|
64
64
|
decodedRevert
|
|
65
65
|
}: SDKErrorProps);
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated Use `message` (the idiomatic `Error` field) instead — this is
|
|
68
|
+
* a thin alias kept for pre-refactor consumers and will be removed in the
|
|
69
|
+
* next major. For structured access to a decoded contract revert, read
|
|
70
|
+
* `decodedRevert` ({ name, args }).
|
|
71
|
+
*/
|
|
72
|
+
get errorMessage(): string | undefined;
|
|
66
73
|
}
|
|
67
74
|
/**
|
|
68
75
|
* Assert `condition` is truthy, otherwise throw an `SDKError` with the given
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-error.d.mts","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"mappings":";;;;KAMY,aAAA;EACV,IAAA,GAAO,UAAA;EACP,KAAA;EACA,OAAA;EACA,aAAA,GAAgB,aAAA;AAAA;;;;;;;cAiBL,mBAAA,GAAuB,OAAA,EAAS,aAAA;AAA7C;;;;;AA2BA;;;;;;;;;;;;;;;;AA3BA,cA2Ba,QAAA,SAAiB,KAAA;EAOT;;;;;;EAAA,OAAL,IAAA,CAAK,KAAA,WAAgB,IAAA,GAAO,UAAA,GAAa,QAAA;EAsBjC;EAPf,IAAA,EAAM,UAAA;;;;;;EAON,aAAA,EAAe,aAAA;EAQK;;;;EAFZ,KAAA;;IAED,IAAA;IAAM,KAAA;IAAO,OAAA;IAAS;EAAA,GAAiB,aAAA;AAAA;;;;;
|
|
1
|
+
{"version":3,"file":"sdk-error.d.mts","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"mappings":";;;;KAMY,aAAA;EACV,IAAA,GAAO,UAAA;EACP,KAAA;EACA,OAAA;EACA,aAAA,GAAgB,aAAA;AAAA;;;;;;;cAiBL,mBAAA,GAAuB,OAAA,EAAS,aAAA;AAA7C;;;;;AA2BA;;;;;;;;;;;;;;;;AA3BA,cA2Ba,QAAA,SAAiB,KAAA;EAOT;;;;;;EAAA,OAAL,IAAA,CAAK,KAAA,WAAgB,IAAA,GAAO,UAAA,GAAa,QAAA;EAsBjC;EAPf,IAAA,EAAM,UAAA;;;;;;EAON,aAAA,EAAe,aAAA;EAQK;;;;EAFZ,KAAA;;IAED,IAAA;IAAM,KAAA;IAAO,OAAA;IAAS;EAAA,GAAiB,aAAA;EAsB9B;AAUzB;;;;;EAVyB,IAAZ,YAAA,CAAA;AAAA;;;;;iBAUG,SAAA,CACd,SAAA,OACA,OAAA,UACA,IAAA,GAAO,UAAA,WACE,SAAA;;;;;iBAWK,iBAAA,CACd,SAAA,OACA,OAAA,mBACS,SAAA;;;;AAUX;cAAa,YAAA,YACX,IAAA,EAAM,OAAA,CAAQ,OAAA,GACd,IAAA,GAAO,UAAA,KACN,OAAA,CAAQ,OAAA"}
|
|
@@ -42,6 +42,15 @@ var SDKError = class SDKError extends Error {
|
|
|
42
42
|
this.code = code ?? ERROR_CODE.UNKNOWN_ERROR;
|
|
43
43
|
this.decodedRevert = decodedRevert;
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use `message` (the idiomatic `Error` field) instead — this is
|
|
47
|
+
* a thin alias kept for pre-refactor consumers and will be removed in the
|
|
48
|
+
* next major. For structured access to a decoded contract revert, read
|
|
49
|
+
* `decodedRevert` ({ name, args }).
|
|
50
|
+
*/
|
|
51
|
+
get errorMessage() {
|
|
52
|
+
return this.message || void 0;
|
|
53
|
+
}
|
|
45
54
|
};
|
|
46
55
|
function invariant(condition, message, code) {
|
|
47
56
|
if (condition) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-error.mjs","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"sourcesContent":["import { classifyError } from './classify-error';\nimport { type DecodedRevert, decodeRevertData } from './decode-revert-data';\nimport { ERROR_CODE } from './sdk-error-code';\n\nexport { ERROR_CODE } from './sdk-error-code';\n\nexport type SDKErrorProps = {\n code?: ERROR_CODE;\n error?: unknown;\n message?: string;\n decodedRevert?: DecodedRevert;\n};\n\nconst messageOf = (error: unknown): string =>\n typeof error === 'object' &&\n error !== null &&\n 'message' in error &&\n typeof error.message === 'string'\n ? error.message\n : 'something went wrong';\n\n/**\n * Canonical `Name(arg1, arg2, ...)` label for a decoded contract revert.\n * Falls back to bare `Name` when the error has no args. Exposed so consumers\n * with a raw `decodedRevert` (e.g. from logs) can render the same string the\n * SDK uses as `Error.message`.\n */\nexport const formatDecodedRevert = (decoded: DecodedRevert): string => {\n if (!decoded.args.length) return decoded.name;\n const args = (decoded.args as readonly unknown[]).map(String).join(', ');\n return `${decoded.name}(${args})`;\n};\n\n/**\n * Typed wrapper around every error thrown by the SDK. Invariants:\n * - `code` is always set (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n * - `cause` preserves the original upstream error (typically a viem\n * `BaseError`) so consumers can walk the chain.\n * - `decodedRevert` is present iff the underlying error carried a custom\n * error selector decodable against the SDK's known ABIs.\n *\n * Branch on `code` for wallet / network conditions; narrow on\n * `decodedRevert.name` for typed contract revert args.\n *\n * @example\n * try { await sdk.bond.claimBondStETH(...) } catch (e) {\n * if (!(e instanceof SDKError)) throw e;\n * if (e.code === ERROR_CODE.USER_REJECTED) return;\n * if (e.decodedRevert?.name === 'AccessControlUnauthorizedAccount') {\n * const [account, role] = e.decodedRevert.args; // typed tuple\n * showRoleErrorToast(account, role);\n * }\n * }\n */\nexport class SDKError extends Error {\n /**\n * Wrap any thrown value into an `SDKError`. Pass `code` as a context hint\n * (e.g. `TRANSACTION_ERROR`); it is only used when {@link classifyError}\n * yields nothing. The classifier always wins because viem class detection\n * is strictly more specific than a context code.\n */\n public static from(error: unknown, code?: ERROR_CODE): SDKError {\n if (error instanceof SDKError) return error;\n\n const decodedRevert = decodeRevertData(error);\n const message = decodedRevert\n ? formatDecodedRevert(decodedRevert)\n : messageOf(error);\n\n const finalCode =\n classifyError(error, decodedRevert) ?? code ?? ERROR_CODE.UNKNOWN_ERROR;\n\n return new SDKError({ code: finalCode, error, message, decodedRevert });\n }\n\n /** Classified error category. Always set. See {@link ERROR_CODE}. */\n public code: ERROR_CODE;\n\n /**\n * Decoded contract revert, when the upstream error carried a selector\n * decodable against the SDK's combined ABI. Discriminated union: narrow on\n * `name` to get a typed `args` tuple.\n */\n public decodedRevert: DecodedRevert | undefined;\n\n /**\n * Original upstream error (typically a viem `BaseError`). Inherited from\n * `Error.cause`. Walk via `e.cause` to inspect the full chain.\n */\n declare public cause?: unknown;\n\n constructor({ code, error, message, decodedRevert }: SDKErrorProps) {\n super(message);\n this.name = 'SDKError';\n // Preserve full upstream error as `cause` — consumers walk it via the\n // standard Error chain. Previous code assigned `error.cause` and silently\n // dropped the top viem BaseError.\n if (error !== undefined) {\n this.cause = error;\n }\n if (error instanceof Error && error.stack) {\n this.stack = error.stack;\n }\n this.code = code ?? ERROR_CODE.UNKNOWN_ERROR;\n this.decodedRevert = decodedRevert;\n }\n}\n\n/**\n * Assert `condition` is truthy, otherwise throw an `SDKError` with the given\n * `message` and optional `code` (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n */\n// eslint-disable-next-line func-style\nexport function invariant(\n condition: any,\n message: string,\n code?: ERROR_CODE,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ message, code });\n}\n\n/**\n * Shortcut for argument validation: throws with\n * {@link ERROR_CODE.INVALID_ARGUMENT}.\n */\n// eslint-disable-next-line func-style\nexport function invariantArgument(\n condition: any,\n message: string,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ code: ERROR_CODE.INVALID_ARGUMENT, message });\n}\n\n/**\n * Await `func`; on rejection, rethrow as `SDKError.from(error, code)`.\n * `code` is a context fallback — the classifier still wins when it matches.\n */\nexport const withSDKError = async <TResult>(\n func: Promise<TResult>,\n code?: ERROR_CODE,\n): Promise<TResult> => {\n try {\n return await func;\n } catch (error) {\n throw SDKError.from(error, code);\n }\n};\n"],"mappings":";;;;AAaA,MAAM,aAAa,UACjB,OAAO,UAAU,YACjB,UAAU,QACV,aAAa,SACb,OAAO,MAAM,YAAY,WACrB,MAAM,UACN;AAQC,MAAM,uBAAuB,YAAmC;AACrE,KAAI,CAAC,QAAQ,KAAK,OAAQ,QAAO,QAAQ;CACzC,MAAM,OAAQ,QAAQ,KAA4B,IAAI,OAAM,CAAE,KAAK,KAAI;AACvE,QAAO,GAAG,QAAQ,KAAI,GAAI,KAAI;;AAwBzB,IAAM,WAAN,MAAM,iBAAiB,MAAM;;;;;;;CAOlC,OAAc,KAAK,OAAgB,MAA6B;AAC9D,MAAI,iBAAiB,SAAU,QAAO;EAEtC,MAAM,gBAAgB,iBAAiB,MAAK;EAC5C,MAAM,UAAU,gBACZ,oBAAoB,cAAa,GACjC,UAAU,MAAK;AAKnB,SAAO,IAAI,SAAS;GAAE,MAFpB,cAAc,OAAO,cAAa,IAAK,QAAQ,WAAW;GAErB;GAAO;GAAS;GAAe,CAAA;;;CAIjE;;;;;;CAOA;CAQP,YAAY,EAAE,MAAM,OAAO,SAAS,iBAAgC;AAClE,QAAM,QAAO;AACb,OAAK,OAAO;AAIZ,MAAI,UAAU,KAAA,EACZ,MAAK,QAAQ;AAEf,MAAI,iBAAiB,SAAS,MAAM,MAClC,MAAK,QAAQ,MAAM;AAErB,OAAK,OAAO,QAAQ,WAAW;AAC/B,OAAK,gBAAgB;;;
|
|
1
|
+
{"version":3,"file":"sdk-error.mjs","names":[],"sources":["../../../src/common/utils/sdk-error.ts"],"sourcesContent":["import { classifyError } from './classify-error';\nimport { type DecodedRevert, decodeRevertData } from './decode-revert-data';\nimport { ERROR_CODE } from './sdk-error-code';\n\nexport { ERROR_CODE } from './sdk-error-code';\n\nexport type SDKErrorProps = {\n code?: ERROR_CODE;\n error?: unknown;\n message?: string;\n decodedRevert?: DecodedRevert;\n};\n\nconst messageOf = (error: unknown): string =>\n typeof error === 'object' &&\n error !== null &&\n 'message' in error &&\n typeof error.message === 'string'\n ? error.message\n : 'something went wrong';\n\n/**\n * Canonical `Name(arg1, arg2, ...)` label for a decoded contract revert.\n * Falls back to bare `Name` when the error has no args. Exposed so consumers\n * with a raw `decodedRevert` (e.g. from logs) can render the same string the\n * SDK uses as `Error.message`.\n */\nexport const formatDecodedRevert = (decoded: DecodedRevert): string => {\n if (!decoded.args.length) return decoded.name;\n const args = (decoded.args as readonly unknown[]).map(String).join(', ');\n return `${decoded.name}(${args})`;\n};\n\n/**\n * Typed wrapper around every error thrown by the SDK. Invariants:\n * - `code` is always set (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n * - `cause` preserves the original upstream error (typically a viem\n * `BaseError`) so consumers can walk the chain.\n * - `decodedRevert` is present iff the underlying error carried a custom\n * error selector decodable against the SDK's known ABIs.\n *\n * Branch on `code` for wallet / network conditions; narrow on\n * `decodedRevert.name` for typed contract revert args.\n *\n * @example\n * try { await sdk.bond.claimBondStETH(...) } catch (e) {\n * if (!(e instanceof SDKError)) throw e;\n * if (e.code === ERROR_CODE.USER_REJECTED) return;\n * if (e.decodedRevert?.name === 'AccessControlUnauthorizedAccount') {\n * const [account, role] = e.decodedRevert.args; // typed tuple\n * showRoleErrorToast(account, role);\n * }\n * }\n */\nexport class SDKError extends Error {\n /**\n * Wrap any thrown value into an `SDKError`. Pass `code` as a context hint\n * (e.g. `TRANSACTION_ERROR`); it is only used when {@link classifyError}\n * yields nothing. The classifier always wins because viem class detection\n * is strictly more specific than a context code.\n */\n public static from(error: unknown, code?: ERROR_CODE): SDKError {\n if (error instanceof SDKError) return error;\n\n const decodedRevert = decodeRevertData(error);\n const message = decodedRevert\n ? formatDecodedRevert(decodedRevert)\n : messageOf(error);\n\n const finalCode =\n classifyError(error, decodedRevert) ?? code ?? ERROR_CODE.UNKNOWN_ERROR;\n\n return new SDKError({ code: finalCode, error, message, decodedRevert });\n }\n\n /** Classified error category. Always set. See {@link ERROR_CODE}. */\n public code: ERROR_CODE;\n\n /**\n * Decoded contract revert, when the upstream error carried a selector\n * decodable against the SDK's combined ABI. Discriminated union: narrow on\n * `name` to get a typed `args` tuple.\n */\n public decodedRevert: DecodedRevert | undefined;\n\n /**\n * Original upstream error (typically a viem `BaseError`). Inherited from\n * `Error.cause`. Walk via `e.cause` to inspect the full chain.\n */\n declare public cause?: unknown;\n\n constructor({ code, error, message, decodedRevert }: SDKErrorProps) {\n super(message);\n this.name = 'SDKError';\n // Preserve full upstream error as `cause` — consumers walk it via the\n // standard Error chain. Previous code assigned `error.cause` and silently\n // dropped the top viem BaseError.\n if (error !== undefined) {\n this.cause = error;\n }\n if (error instanceof Error && error.stack) {\n this.stack = error.stack;\n }\n this.code = code ?? ERROR_CODE.UNKNOWN_ERROR;\n this.decodedRevert = decodedRevert;\n }\n\n /**\n * @deprecated Use `message` (the idiomatic `Error` field) instead — this is\n * a thin alias kept for pre-refactor consumers and will be removed in the\n * next major. For structured access to a decoded contract revert, read\n * `decodedRevert` ({ name, args }).\n */\n public get errorMessage(): string | undefined {\n return this.message || undefined;\n }\n}\n\n/**\n * Assert `condition` is truthy, otherwise throw an `SDKError` with the given\n * `message` and optional `code` (defaults to {@link ERROR_CODE.UNKNOWN_ERROR}).\n */\n// eslint-disable-next-line func-style\nexport function invariant(\n condition: any,\n message: string,\n code?: ERROR_CODE,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ message, code });\n}\n\n/**\n * Shortcut for argument validation: throws with\n * {@link ERROR_CODE.INVALID_ARGUMENT}.\n */\n// eslint-disable-next-line func-style\nexport function invariantArgument(\n condition: any,\n message: string,\n): asserts condition {\n if (condition) return;\n\n throw new SDKError({ code: ERROR_CODE.INVALID_ARGUMENT, message });\n}\n\n/**\n * Await `func`; on rejection, rethrow as `SDKError.from(error, code)`.\n * `code` is a context fallback — the classifier still wins when it matches.\n */\nexport const withSDKError = async <TResult>(\n func: Promise<TResult>,\n code?: ERROR_CODE,\n): Promise<TResult> => {\n try {\n return await func;\n } catch (error) {\n throw SDKError.from(error, code);\n }\n};\n"],"mappings":";;;;AAaA,MAAM,aAAa,UACjB,OAAO,UAAU,YACjB,UAAU,QACV,aAAa,SACb,OAAO,MAAM,YAAY,WACrB,MAAM,UACN;AAQC,MAAM,uBAAuB,YAAmC;AACrE,KAAI,CAAC,QAAQ,KAAK,OAAQ,QAAO,QAAQ;CACzC,MAAM,OAAQ,QAAQ,KAA4B,IAAI,OAAM,CAAE,KAAK,KAAI;AACvE,QAAO,GAAG,QAAQ,KAAI,GAAI,KAAI;;AAwBzB,IAAM,WAAN,MAAM,iBAAiB,MAAM;;;;;;;CAOlC,OAAc,KAAK,OAAgB,MAA6B;AAC9D,MAAI,iBAAiB,SAAU,QAAO;EAEtC,MAAM,gBAAgB,iBAAiB,MAAK;EAC5C,MAAM,UAAU,gBACZ,oBAAoB,cAAa,GACjC,UAAU,MAAK;AAKnB,SAAO,IAAI,SAAS;GAAE,MAFpB,cAAc,OAAO,cAAa,IAAK,QAAQ,WAAW;GAErB;GAAO;GAAS;GAAe,CAAA;;;CAIjE;;;;;;CAOA;CAQP,YAAY,EAAE,MAAM,OAAO,SAAS,iBAAgC;AAClE,QAAM,QAAO;AACb,OAAK,OAAO;AAIZ,MAAI,UAAU,KAAA,EACZ,MAAK,QAAQ;AAEf,MAAI,iBAAiB,SAAS,MAAM,MAClC,MAAK,QAAQ,MAAM;AAErB,OAAK,OAAO,QAAQ,WAAW;AAC/B,OAAK,gBAAgB;;;;;;;;CASvB,IAAW,eAAmC;AAC5C,SAAO,KAAK,WAAW,KAAA;;;AASpB,SAAS,UACd,WACA,SACA,MACmB;AACnB,KAAI,UAAW;AAEf,OAAM,IAAI,SAAS;EAAE;EAAS;EAAM,CAAA;;AAQ/B,SAAS,kBACd,WACA,SACmB;AACnB,KAAI,UAAW;AAEf,OAAM,IAAI,SAAS;EAAE,MAAM,WAAW;EAAkB;EAAS,CAAA;;AAO5D,MAAM,eAAe,OAC1B,MACA,SACqB;AACrB,KAAI;AACF,SAAO,MAAM;UACN,OAAO;AACd,QAAM,SAAS,KAAK,OAAO,KAAI"}
|
|
@@ -100,10 +100,7 @@ var CuratedGatesCollectionSDK = class extends (_a = require_csm_sdk_module.CsmSD
|
|
|
100
100
|
super(props, name);
|
|
101
101
|
__runInitializers(_init, 5, this);
|
|
102
102
|
__publicField(this, "gates", /* @__PURE__ */ new Map());
|
|
103
|
-
for (const gateName of require_contract_names.CURATED_GATES)
|
|
104
|
-
require_sdk_error.invariant(this.core.contractAddresses[gateName], `Curated gate ${gateName} address is not configured`, require_sdk_error_code.ERROR_CODE.NOT_SUPPORTED);
|
|
105
|
-
this.gates.set(gateName, new require_curated_gate_sdk.CuratedGateSDK(props, gateName));
|
|
106
|
-
}
|
|
103
|
+
for (const gateName of require_contract_names.CURATED_GATES) this.gates.set(gateName, new require_curated_gate_sdk.CuratedGateSDK(props, gateName));
|
|
107
104
|
}
|
|
108
105
|
getCount() {
|
|
109
106
|
return this.gates.size;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curated-gates-collection-sdk.cjs","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport {\n CsmSDKModule,\n CsmSDKProps,\n} from '../common/class-primitives/csm-sdk-module';\nimport { CURATED_GATES } from '../common/constants/contract-names';\nimport {\n Access,\n AccessLevel,\n ErrorHandler,\n Logger,\n} from '../common/decorators/index';\nimport { ERROR_CODE, invariant } from '../common/index';\nimport { CuratedGateSDK } from '../curated-gate-sdk/curated-gate-sdk';\nimport { TxSDK } from '../tx-sdk/index';\nimport type {\n CreateNodeOperatorInGateProps,\n GateItemEligibility,\n} from './types';\n\nexport class CuratedGatesCollectionSDK extends CsmSDKModule<{\n tx: TxSDK;\n}> {\n private readonly gates: Map<CURATED_GATES, CuratedGateSDK> = new Map();\n\n constructor(props: CsmSDKProps, name?: string) {\n super(props, name);\n\n for (const gateName of CURATED_GATES) {\n
|
|
1
|
+
{"version":3,"file":"curated-gates-collection-sdk.cjs","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport {\n CsmSDKModule,\n CsmSDKProps,\n} from '../common/class-primitives/csm-sdk-module';\nimport { CURATED_GATES } from '../common/constants/contract-names';\nimport {\n Access,\n AccessLevel,\n ErrorHandler,\n Logger,\n} from '../common/decorators/index';\nimport { ERROR_CODE, invariant } from '../common/index';\nimport { CuratedGateSDK } from '../curated-gate-sdk/curated-gate-sdk';\nimport { TxSDK } from '../tx-sdk/index';\nimport type {\n CreateNodeOperatorInGateProps,\n GateItemEligibility,\n} from './types';\n\nexport class CuratedGatesCollectionSDK extends CsmSDKModule<{\n tx: TxSDK;\n}> {\n private readonly gates: Map<CURATED_GATES, CuratedGateSDK> = new Map();\n\n constructor(props: CsmSDKProps, name?: string) {\n super(props, name);\n\n for (const gateName of CURATED_GATES) {\n this.gates.set(gateName, new CuratedGateSDK(props, gateName));\n }\n }\n\n public getCount(): number {\n return this.gates.size;\n }\n\n public getAll(): ReadonlyMap<CURATED_GATES, CuratedGateSDK> {\n return this.gates;\n }\n\n public get(gateName: CURATED_GATES): CuratedGateSDK | undefined {\n return this.gates.get(gateName);\n }\n\n @Logger('Utils:')\n @ErrorHandler()\n public getOrThrow(gateName: CURATED_GATES): CuratedGateSDK {\n const gate = this.gates.get(gateName);\n invariant(gate, `Gate ${gateName} not found`, ERROR_CODE.NOT_SUPPORTED);\n return gate;\n }\n\n @Logger('Utils:')\n @ErrorHandler()\n public async getEligibility(\n address: Address,\n ): Promise<GateItemEligibility[]> {\n return Promise.all(\n Array.from(this.gates, async ([gateName, gate]) => {\n const eligibility = await gate.getEligibility(address);\n return {\n ...eligibility,\n gateName,\n };\n }),\n );\n }\n\n @Access({ level: AccessLevel.ANYONE })\n @Logger('Call:')\n @ErrorHandler()\n public async createNodeOperator(props: CreateNodeOperatorInGateProps) {\n const { gateName, ...gateProps } = props;\n\n const gate = this.getOrThrow(gateName);\n\n return gate.createNodeOperator(gateProps);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,yBAAA,qBAAA,iBAAA,IAAA;AAoBO,IAAM,4BAAN,eAAwC,KAAA,uBAAA,cAyB7C,kBAAA,CAAC,eAAA,OAAO,SAAQ,EACf,sBAAA,cAAa,CAAA,EAOd,sBAAA,CAAC,eAAA,OAAO,SAAQ,EACf,sBAAA,cAAa,CAAA,EAed,0BAAA;CAAC,eAAA,OAAO,EAAE,OAAO,qBAAA,YAAY,QAAQ,CAAA;CACpC,eAAA,OAAO,QAAO;CACd,sBAAA,cAAa;CAAA,EAnD+B,IAE5C;CAGD,YAAY,OAAoB,MAAe;AAC7C,QAAM,OAAO,KAAI;AANd,oBAAA,OAAA,GAAA,KAAA;AAGL,gBAAA,MAAiB,yBAA4C,IAAI,KAAI,CAAA;AAKnE,OAAA,MAAW,YAAY,uBAAA,cACrB,MAAK,MAAM,IAAI,UAAU,IAAI,yBAAA,eAAe,OAAO,SAAS,CAAA;;CAIzD,WAAmB;AACxB,SAAO,KAAK,MAAM;;CAGb,SAAqD;AAC1D,SAAO,KAAK;;CAGP,IAAI,UAAqD;AAC9D,SAAO,KAAK,MAAM,IAAI,SAAQ;;CAKzB,WAAW,UAAyC;EACzD,MAAM,OAAO,KAAK,MAAM,IAAI,SAAQ;AACpC,oBAAA,UAAU,MAAM,QAAQ,SAAQ,aAAc,uBAAA,WAAW,cAAa;AACtE,SAAO;;CAKT,MAAa,eACX,SACgC;AAChC,SAAO,QAAQ,IACb,MAAM,KAAK,KAAK,OAAO,OAAO,CAAC,UAAU,UAAU;AAEjD,UAAO;IACL,GAFkB,MAAM,KAAK,eAAe,QAAO;IAGnD;IACF;IACD,CACH;;CAMF,MAAa,mBAAmB,OAAsC;EACpE,MAAM,EAAE,UAAU,GAAG,cAAc;AAInC,SAFa,KAAK,WAAW,SAAQ,CAEzB,mBAAmB,UAAS;;;AAzDrC,QAAA,iBAAA,GAAA;AA2BL,kBAAA,OAAA,GAAO,cAFP,iBAzBW,0BAAA;AAmCX,kBAAA,OAAA,GAAa,kBAFb,qBAjCW,0BAAA;AAoDX,kBAAA,OAAA,GAAa,sBAHb,yBAjDW,0BAAA;AAAN,oBAAA,OAAM,0BAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curated-gates-collection-sdk.d.cts","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"mappings":";;;;;;;;;;cAoBa,yBAAA,SAAkC,YAAA;EAC7C,EAAA,EAAI,KAAA;AAAA;EAAA,iBAEa,KAAA;cAEL,KAAA,EAAO,WAAA,EAAa,IAAA;
|
|
1
|
+
{"version":3,"file":"curated-gates-collection-sdk.d.cts","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"mappings":";;;;;;;;;;cAoBa,yBAAA,SAAkC,YAAA;EAC7C,EAAA,EAAI,KAAA;AAAA;EAAA,iBAEa,KAAA;cAEL,KAAA,EAAO,WAAA,EAAa,IAAA;EAQzB,QAAA,CAAA;EAIA,MAAA,CAAA,GAAU,WAAA,CAAY,aAAA,EAAe,cAAA;EAIrC,GAAA,CAAI,QAAA,EAAU,aAAA,GAAgB,cAAA;EAM9B,UAAA,CAAW,QAAA,EAAU,aAAA,GAAgB,cAAA;EAQ/B,cAAA,CACX,OAAA,EAAS,OAAA,GACR,OAAA,CAAQ,mBAAA;EAeE,kBAAA,CAAmB,KAAA,EAAO,6BAAA,GAA6B,OAAA,CAAA,iCAAA,CAAA,iBAAA,CAAA,qBAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curated-gates-collection-sdk.d.mts","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"mappings":";;;;;;;;;;cAoBa,yBAAA,SAAkC,YAAA;EAC7C,EAAA,EAAI,KAAA;AAAA;EAAA,iBAEa,KAAA;cAEL,KAAA,EAAO,WAAA,EAAa,IAAA;
|
|
1
|
+
{"version":3,"file":"curated-gates-collection-sdk.d.mts","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"mappings":";;;;;;;;;;cAoBa,yBAAA,SAAkC,YAAA;EAC7C,EAAA,EAAI,KAAA;AAAA;EAAA,iBAEa,KAAA;cAEL,KAAA,EAAO,WAAA,EAAa,IAAA;EAQzB,QAAA,CAAA;EAIA,MAAA,CAAA,GAAU,WAAA,CAAY,aAAA,EAAe,cAAA;EAIrC,GAAA,CAAI,QAAA,EAAU,aAAA,GAAgB,cAAA;EAM9B,UAAA,CAAW,QAAA,EAAU,aAAA,GAAgB,cAAA;EAQ/B,cAAA,CACX,OAAA,EAAS,OAAA,GACR,OAAA,CAAQ,mBAAA;EAeE,kBAAA,CAAmB,KAAA,EAAO,6BAAA,GAA6B,OAAA,CAAA,iCAAA,CAAA,iBAAA,CAAA,qBAAA;AAAA"}
|
|
@@ -100,10 +100,7 @@ var CuratedGatesCollectionSDK = class extends (_a = CsmSDKModule, _getOrThrow_de
|
|
|
100
100
|
super(props, name);
|
|
101
101
|
__runInitializers(_init, 5, this);
|
|
102
102
|
__publicField(this, "gates", /* @__PURE__ */ new Map());
|
|
103
|
-
for (const gateName of CURATED_GATES)
|
|
104
|
-
invariant(this.core.contractAddresses[gateName], `Curated gate ${gateName} address is not configured`, ERROR_CODE.NOT_SUPPORTED);
|
|
105
|
-
this.gates.set(gateName, new CuratedGateSDK(props, gateName));
|
|
106
|
-
}
|
|
103
|
+
for (const gateName of CURATED_GATES) this.gates.set(gateName, new CuratedGateSDK(props, gateName));
|
|
107
104
|
}
|
|
108
105
|
getCount() {
|
|
109
106
|
return this.gates.size;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curated-gates-collection-sdk.mjs","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport {\n CsmSDKModule,\n CsmSDKProps,\n} from '../common/class-primitives/csm-sdk-module';\nimport { CURATED_GATES } from '../common/constants/contract-names';\nimport {\n Access,\n AccessLevel,\n ErrorHandler,\n Logger,\n} from '../common/decorators/index';\nimport { ERROR_CODE, invariant } from '../common/index';\nimport { CuratedGateSDK } from '../curated-gate-sdk/curated-gate-sdk';\nimport { TxSDK } from '../tx-sdk/index';\nimport type {\n CreateNodeOperatorInGateProps,\n GateItemEligibility,\n} from './types';\n\nexport class CuratedGatesCollectionSDK extends CsmSDKModule<{\n tx: TxSDK;\n}> {\n private readonly gates: Map<CURATED_GATES, CuratedGateSDK> = new Map();\n\n constructor(props: CsmSDKProps, name?: string) {\n super(props, name);\n\n for (const gateName of CURATED_GATES) {\n
|
|
1
|
+
{"version":3,"file":"curated-gates-collection-sdk.mjs","names":[],"sources":["../../src/curated-gates-collection-sdk/curated-gates-collection-sdk.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport {\n CsmSDKModule,\n CsmSDKProps,\n} from '../common/class-primitives/csm-sdk-module';\nimport { CURATED_GATES } from '../common/constants/contract-names';\nimport {\n Access,\n AccessLevel,\n ErrorHandler,\n Logger,\n} from '../common/decorators/index';\nimport { ERROR_CODE, invariant } from '../common/index';\nimport { CuratedGateSDK } from '../curated-gate-sdk/curated-gate-sdk';\nimport { TxSDK } from '../tx-sdk/index';\nimport type {\n CreateNodeOperatorInGateProps,\n GateItemEligibility,\n} from './types';\n\nexport class CuratedGatesCollectionSDK extends CsmSDKModule<{\n tx: TxSDK;\n}> {\n private readonly gates: Map<CURATED_GATES, CuratedGateSDK> = new Map();\n\n constructor(props: CsmSDKProps, name?: string) {\n super(props, name);\n\n for (const gateName of CURATED_GATES) {\n this.gates.set(gateName, new CuratedGateSDK(props, gateName));\n }\n }\n\n public getCount(): number {\n return this.gates.size;\n }\n\n public getAll(): ReadonlyMap<CURATED_GATES, CuratedGateSDK> {\n return this.gates;\n }\n\n public get(gateName: CURATED_GATES): CuratedGateSDK | undefined {\n return this.gates.get(gateName);\n }\n\n @Logger('Utils:')\n @ErrorHandler()\n public getOrThrow(gateName: CURATED_GATES): CuratedGateSDK {\n const gate = this.gates.get(gateName);\n invariant(gate, `Gate ${gateName} not found`, ERROR_CODE.NOT_SUPPORTED);\n return gate;\n }\n\n @Logger('Utils:')\n @ErrorHandler()\n public async getEligibility(\n address: Address,\n ): Promise<GateItemEligibility[]> {\n return Promise.all(\n Array.from(this.gates, async ([gateName, gate]) => {\n const eligibility = await gate.getEligibility(address);\n return {\n ...eligibility,\n gateName,\n };\n }),\n );\n }\n\n @Access({ level: AccessLevel.ANYONE })\n @Logger('Call:')\n @ErrorHandler()\n public async createNodeOperator(props: CreateNodeOperatorInGateProps) {\n const { gateName, ...gateProps } = props;\n\n const gate = this.getOrThrow(gateName);\n\n return gate.createNodeOperator(gateProps);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,yBAAA,qBAAA,iBAAA,IAAA;AAoBO,IAAM,4BAAN,eAAwC,KAAA,cAyB7C,kBAAA,CAAC,OAAO,SAAQ,EACf,cAAa,CAAA,EAOd,sBAAA,CAAC,OAAO,SAAQ,EACf,cAAa,CAAA,EAed,0BAAA;CAAC,OAAO,EAAE,OAAO,YAAY,QAAQ,CAAA;CACpC,OAAO,QAAO;CACd,cAAa;CAAA,EAnD+B,IAE5C;CAGD,YAAY,OAAoB,MAAe;AAC7C,QAAM,OAAO,KAAI;AANd,oBAAA,OAAA,GAAA,KAAA;AAGL,gBAAA,MAAiB,yBAA4C,IAAI,KAAI,CAAA;AAKnE,OAAA,MAAW,YAAY,cACrB,MAAK,MAAM,IAAI,UAAU,IAAI,eAAe,OAAO,SAAS,CAAA;;CAIzD,WAAmB;AACxB,SAAO,KAAK,MAAM;;CAGb,SAAqD;AAC1D,SAAO,KAAK;;CAGP,IAAI,UAAqD;AAC9D,SAAO,KAAK,MAAM,IAAI,SAAQ;;CAKzB,WAAW,UAAyC;EACzD,MAAM,OAAO,KAAK,MAAM,IAAI,SAAQ;AACpC,YAAU,MAAM,QAAQ,SAAQ,aAAc,WAAW,cAAa;AACtE,SAAO;;CAKT,MAAa,eACX,SACgC;AAChC,SAAO,QAAQ,IACb,MAAM,KAAK,KAAK,OAAO,OAAO,CAAC,UAAU,UAAU;AAEjD,UAAO;IACL,GAFkB,MAAM,KAAK,eAAe,QAAO;IAGnD;IACF;IACD,CACH;;CAMF,MAAa,mBAAmB,OAAsC;EACpE,MAAM,EAAE,UAAU,GAAG,cAAc;AAInC,SAFa,KAAK,WAAW,SAAQ,CAEzB,mBAAmB,UAAS;;;AAzDrC,QAAA,iBAAA,GAAA;AA2BL,kBAAA,OAAA,GAAO,cAFP,iBAzBW,0BAAA;AAmCX,kBAAA,OAAA,GAAa,kBAFb,qBAjCW,0BAAA;AAoDX,kBAAA,OAAA,GAAa,sBAHb,yBAjDW,0BAAA;AAAN,oBAAA,OAAM,0BAAA"}
|