Skip to content

Commit 709e9ca

Browse files
author
Juan Ignacio Ubeira
committed
Merge branch 'master' into 20250530-v3-balancer-fee-burner
2 parents feb9ab6 + 982db0a commit 709e9ca

File tree

242 files changed

+10948
-268
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

242 files changed

+10948
-268
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
BASE_RPC_ENDPOINT: ${{ secrets.BASE_RPC_ENDPOINT }}
6969
FRAXTAL_RPC_ENDPOINT: ${{ secrets.FRAXTAL_RPC_ENDPOINT }}
7070
MODE_RPC_ENDPOINT: ${{ secrets.MODE_RPC_ENDPOINT }}
71+
HYPEREVM_RPC_ENDPOINT: ${{ secrets.HYPEREVM_RPC_ENDPOINT }}
7172
SEPOLIA_RPC_ENDPOINT: ${{ secrets.SEPOLIA_RPC_ENDPOINT }}
7273
- name: Test
7374
run: yarn test --bail

.github/workflows/deployment-checks.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,16 @@ jobs:
127127
MODE_RPC_ENDPOINT: ${{ secrets.MODE_RPC_ENDPOINT }}
128128
with:
129129
network-name: mode
130+
check-hyperevm-deployments:
131+
runs-on: ubuntu-latest
132+
steps:
133+
- uses: actions/checkout@v4
134+
- name: Check Hyperevm Deployment Addresses
135+
uses: ./.github/actions/check-network-deployments
136+
env:
137+
HYPEREVM_RPC_ENDPOINT: ${{ secrets.HYPEREVM_RPC_ENDPOINT }}
138+
with:
139+
network-name: hyperevm
130140
check-sepolia-deployments:
131141
runs-on: ubuntu-latest
132142
steps:
@@ -248,6 +258,16 @@ jobs:
248258
MODE_RPC_ENDPOINT: ${{ secrets.MODE_RPC_ENDPOINT }}
249259
with:
250260
network-name: mode
261+
check-hyperevm-action-ids:
262+
runs-on: ubuntu-latest
263+
steps:
264+
- uses: actions/checkout@v4
265+
- name: Check Hyperevm Action IDs
266+
uses: ./.github/actions/check-network-action-ids
267+
env:
268+
HYPEREVM_RPC_ENDPOINT: ${{ secrets.HYPEREVM_RPC_ENDPOINT }}
269+
with:
270+
network-name: hyperevm
251271
check-sepolia-action-ids:
252272
runs-on: ubuntu-latest
253273
steps:

.github/workflows/timelock-authorizer-config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,17 @@ jobs:
131131
with:
132132
network-name: mode
133133

134+
verify-hyperevm-timelock-authorizer-config:
135+
runs-on: ubuntu-latest
136+
steps:
137+
- uses: actions/checkout@v4
138+
- name: Verify Hyperevm Timelock Authorizer Configuration
139+
uses: ./.github/actions/verify-network-timelock-authorizer-config
140+
env:
141+
HYPEREVM_RPC_ENDPOINT: ${{ secrets.HYPEREVM_RPC_ENDPOINT }}
142+
with:
143+
network-name: hyperevm
144+
134145
verify-sepolia-timelock-authorizer-config:
135146
runs-on: ubuntu-latest
136147
steps:

.solhint.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"reason-string": ["error", {"maxLength": 64}],
1111
"func-visibility": ["error", {"ignoreConstructors": true}],
1212
"compiler-version": ["off"],
13-
"no-global-import": ["off"]
13+
"no-global-import": ["off"],
14+
"one-contract-per-file": "off"
1415
}
1516
}

CHANGELOG.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
- Deployed V3 Aggregator Router to all networks.
2020
- Deployed V3 MEV Capture Hook to all networks.
2121
- Deployed V3 Router (V2) to all networks.
22-
- Deployed V3 Cow Swap Fee Burner to Mainnet, Gnosis, Arbitrum, Base and Sepolia.
2322
- Deployed V3 Liquidity Bootstrapping Pool to all networks.
2423
- Deployed V3 Hook Examples to Sepolia.
2524
- Deployed V3 Protocol Fee Controller V2 to all networks.
@@ -33,7 +32,12 @@
3332
- Deployed V3 Vault Explorer V2 to all networks.
3433
- Deployed V3 Wrapped BPT Factory to all networks.
3534
- Deployed V3 Protocol Fee Sweeper V2 to all networks.
36-
- Deployed V3 ERC4626 Cow Swap Fee Burner to all networks.
35+
- Deployed V3 ERC4626 Cow Swap Fee Burner V2 to all networks.
36+
- Deployed V3 Cow Swap Fee Burner V2 to all networks.
37+
- Deployed V3 Aggregator Batch Router to all networks.
38+
- Deployed V3 ReClamm Pool Factory to all networks.
39+
- Deployed V3 Pool Pause Helper to all networks.
40+
- Deployed V3 Pool Swap Fee Helper to all networks.
3741

3842
#### V2
3943

@@ -79,6 +83,8 @@
7983
- Deprecated `20250121-v3-stable-surge`.
8084
- Deprecated `20241205-v3-vault-explorer`.
8185
- Deprecated `20250228-v3-protocol-fee-sweeper`.
86+
- Deprecated `20250221-v3-cow-swap-fee-burner`.
87+
- Deprecated `20250507-v3-erc4626-cow-swap-fee-burner`.
8288

8389
#### V2
8490

DEPLOYING.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ This data is accessed via the [`local-networks-config`](https://www.npmjs.com/pa
130130
"mode": {
131131
"url": "https://mode.rpc.endpoint/myAPIKey",
132132
"verificationAPIKey": "mode-etherscan-API-key"
133+
},
134+
"hyperevm": {
135+
"url": "https://hyperevm.rpc.endpoint/myAPIKey",
136+
"verificationAPIKey": "hyperevm-etherscan-API-key"
133137
}
134138
},
135139
"defaultConfig": {
@@ -152,6 +156,19 @@ Deployment addresses will be automatically saved to the appropriate file in the
152156

153157
Further runs of the task will not attempt to redeploy contracts for which an output already exists: use the `--force` flag to do a redeployment.
154158

159+
This mechanism should work for EVM-equivalent networks, i.e. anywhere the artifact compiled for mainnet can run as is.
160+
161+
### HyperEVM deployment
162+
163+
HyperEVM can reuse the same artifacts as every other network, but it has a [dual-block architecture](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm/dual-block-architecture) with small and large blocks with different gas limits.
164+
165+
Most contracts deployments require large blocks. To target them, the deployer account needs to be setup for it beforehand.
166+
One possible way to achieve this is through this [web application](https://hyperevm-block-toggle.vercel.app/); connect the deployer address and sign the required messages to use large blocks on deployment.
167+
168+
Other than that, it is required to deposit 10 USDC to hypercore via the [hyperliquid app](https://app.hyperliquid.xyz).
169+
170+
After these two steps are performed, the deployer account is ready to execute the deployment tasks as usual.
171+
155172
## Checking Deployments
156173

157174
The deployments package is able to verify that the addresses found in the `output` directories correspond exactly to a run of the task as described by `index.ts`, using the inputs at `input.ts` and the data from the `build-info` directory.

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# <img src="logo.svg" alt="Balancer" height="128px">
22

3-
# Balancer V2 Deployments
3+
# Balancer V2 & V3 Deployments
44

55
[![NPM Package](https://img.shields.io/npm/v/@balancer-labs/v2-deployments.svg)](https://www.npmjs.org/package/@balancer-labs/v2-deployments)
66
[![GitHub Repository](https://img.shields.io/badge/github-deployments-lightgrey?logo=github)](https://github.com/balancer-labs/balancer-v2-monorepo/tree/master/pkg/deployments)
@@ -91,7 +91,6 @@ Returns an object with all contracts from a deployment and their addresses.
9191
| Polygon Root Gauges V2, for veBAL voting | [`20220823-polygon-root-gauge-factory-v2`](./v2/tasks/20220823-polygon-root-gauge-factory-v2) |
9292
| Pool Recovery Helper | [`20221123-pool-recovery-helper`](./v2/tasks/20221123-pool-recovery-helper) |
9393
| Authorizer Adaptor Entrypoint | [`20221124-authorizer-adaptor-entrypoint`](./v2/tasks/20221124-authorizer-adaptor-entrypoint) |
94-
| VeBoost V2 | [`20221205-veboost-v2`](./v2/tasks/20221205-veboost-v2) |
9594
| Single Recipient Stakeless Gauges V2 | [`20230215-single-recipient-gauge-factory`](./v2/tasks/20230215-single-recipient-gauge-factory-v2) |
9695
| Gnosis Root Gauge, for veBAL voting | [`20230217-gnosis-root-gauge-factory`](./v2/tasks/20230217-gnosis-root-gauge-factory) |
9796
| Merkle Orchard Distributor V2 | [`20230222-merkle-orchard-v2`](./v2/tasks/20230222-merkle-orchard-v2) |
@@ -141,14 +140,17 @@ Returns an object with all contracts from a deployment and their addresses.
141140
| V3 Stable Surge Hook (V2) | [`20250403-v3-stable-surge-hook-v2`](./v3/tasks/20250403-v3-stable-surge-hook-v2) |
142141
| V3 Stable Surge Pool (V2) | [`20250404-v3-stable-surge-pool-factory-v2`](./v3/tasks/20250404-v3-stable-surge-pool-factory-v2) |
143142
| V3 Vault Explorer V2 | [`20250407-v3-vault-explorer-v2`](./v3/tasks/20250407-v3-vault-explorer-v2) |
143+
| V3 ReClamm Pool | [`20250409-v3-reclamm-pool`](./v3/tasks/20250409-v3-reclamm-pool) |
144144
| V3 Wrapped BPT Factory | [`20250418-v3-wrapped-bpt`](./v3/tasks/20250418-v3-wrapped-bpt) |
145145
| V3 Pool Pause Helper | [`20250430-v3-pool-pause-helper`](./v3/tasks/20250430-v3-pool-pause-helper) |
146146
| V3 Pool Swap Fee Helper | [`20250430-v3-pool-swap-fee-helper`](./v3/tasks/20250430-v3-pool-swap-fee-helper) |
147147
| V3 Protocol Fee Helper | [`20250430-v3-protocol-fee-helper`](./v3/tasks/20250430-v3-protocol-fee-helper) |
148148
| V3 Protocol Fee Percentages Provider | [`20250502-v3-fee-percentages-provider`](./v3/tasks/20250502-v3-fee-percentages-provider) |
149149
| V3 Protocol Fee Sweeper (V2) | [`20250503-v3-protocol-fee-sweeper-v2`](./v3/tasks/20250503-v3-protocol-fee-sweeper-v2) |
150+
| V3 Aggregator Batch Router | [`20250507-v3-aggregator-batch-router`](./v3/tasks/20250507-v3-aggregator-batch-router) |
150151
| V3 ERC4626 Cow Swap Fee Burner | [`20250507-v3-erc4626-cow-swap-fee-burner`](./v3/tasks/20250507-v3-erc4626-cow-swap-fee-burner) |
151152
| V3 Balancer Burner | [`20250530-v3-balancer-fee-burner`](./v3/tasks/20250530-v3-balancer-fee-burner) |
153+
| V2 VeBoost V2.1 | [`20250613-veboost-v2.1`](./v2/tasks/20250613-veboost-v2.1) |
152154

153155
## Scripts
154156

@@ -213,6 +215,7 @@ Go to each deprecated deployment's readme file to learn more about why it is dep
213215
| Batch Relayer V4 | [`20220916-batch-relayer-v4`](./v2/deprecated/20220916-batch-relayer-v4) |
214216
| Managed Pool | [`20221021-managed-pool`](./v2/deprecated/20221021-managed-pool) |
215217
| Composable Stable Pools V2 | [`20221122-composable-stable-pool-v2`](./v2/deprecated/20221122-composable-stable-pool-v2) |
218+
| VeBoost V2 | [`20221205-veboost-v2`](./v2/deprecated/20221205-veboost-v2) |
216219
| Linear Pools for Aave aTokens (with rebalancing) V3 | [`20221207-aave-rebalanced-linear-pool-v3`](./v2/deprecated/20221207-aave-rebalanced-linear-pool-v3) |
217220
| Gauge Registrant V3 | [`20230109-gauge-adder-v3`](./v2/deprecated/20230109-gauge-adder-v3) |
218221
| Weighted Pool V3 | [`20230206-weighted-pool-v3`](./v2/deprecated/20230206-weighted-pool-v3) |

action-ids/arbitrum/action-ids.json

Lines changed: 69 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -860,29 +860,29 @@
860860
}
861861
},
862862
"VaultExtension": {
863-
"useAdaptor": true,
863+
"useAdaptor": false,
864864
"actionIds": {
865-
"approve(address,address,uint256)": "0xedba44a12a3f70ef9bd4081cca87202279d8f331f327987c63803f7eed621565",
866-
"emitAuxiliaryEvent(bytes32,bytes)": "0x7f2238c8bc73ed89244945af97707b146b20dff798848bb298038071ecd00d18",
867-
"initialize(address,address,address[],uint256[],uint256,bytes)": "0x4029f25f9d7f607eb0216c84ad51aa79208f12df32c3104efdd0e9e3cfbcaa38",
868-
"quote(bytes)": "0xe70327c8bd1eab2568e3cbc53635114c26c605227211db85ee83714a90597c42",
869-
"quoteAndRevert(bytes)": "0xf22dea43faecbaf73748a24f1d0116e748ea694b7d6656597e91636477187b4d",
870-
"registerPool(address,(address,uint8,address,bool)[],uint256,uint32,bool,(address,address,address),address,(bool,bool,bool,bool))": "0x50118d2ca25ad62e8773e8f8cf2d852524ec84322d7d53de6276553ac18e4aea",
871-
"removeLiquidityRecovery(address,address,uint256,uint256[])": "0xdf161cbff5b68e1194d92d0f6bce22bc50af94dcf8559bf25d7737034875465b"
865+
"approve(address,address,uint256)": "0xe2698d2c010c562d530026a614d67fc90416d5672f5f9699efc78ca4bd089c62",
866+
"emitAuxiliaryEvent(bytes32,bytes)": "0xcdac1c5a83ca5b07680832b86ed7ed0276ef4258580c7fe73bf16c7664ed408b",
867+
"initialize(address,address,address[],uint256[],uint256,bytes)": "0x6a12b6361b762769195238791276c0cb3d840e10be620bb362544275a2c70423",
868+
"quote(bytes)": "0xc62780cd2227f2b4371c0fc003ad7b22b5659a6651df4a9de9e0bea54e9772d1",
869+
"quoteAndRevert(bytes)": "0x3be38941153aeaef3e14c31e9f23924b93e86842141a6ff8f5f59324be566b07",
870+
"registerPool(address,(address,uint8,address,bool)[],uint256,uint32,bool,(address,address,address),address,(bool,bool,bool,bool))": "0x380e34ec1eb3440c2da270815979d4c3803d178081454bffb751105bdf5f83a0",
871+
"removeLiquidityRecovery(address,address,uint256,uint256[])": "0xc48eacd28c0ebf0e8e0012c3f32de74207564dd445e0b36df1517ca01856c4b5"
872872
}
873873
},
874874
"Vault": {
875-
"useAdaptor": true,
875+
"useAdaptor": false,
876876
"actionIds": {
877-
"addLiquidity((address,address,uint256[],uint256,uint8,bytes))": "0x3611bd6ae88cc0bf401f38dab06b8476b710eaa16291e4c42734e6acfd006dd8",
878-
"erc4626BufferWrapOrUnwrap((uint8,uint8,address,uint256,uint256))": "0x4953352871abaff2408417c47b61303c76d9dd18a2bc74543b80856056b7a148",
879-
"removeLiquidity((address,address,uint256,uint256[],uint8,bytes))": "0x2c1bc66a045f37b57ba757b276ad6b194d127b8e483f94e74ad91c9575337042",
880-
"sendTo(address,address,uint256)": "0xd9e134664c97352a18de869922c521edb2baf3f39221d37ba9d7be5670efa211",
881-
"settle(address,uint256)": "0x27abf6047fb026e94be2e1b01841cb58c2a0b96d09c8b65a69534a42445473bc",
882-
"swap((uint8,address,address,address,uint256,uint256,bytes))": "0x381e61e0a68937cd750f611771b3f7f182fb361ed3d89882493059d5414b4531",
883-
"transfer(address,address,uint256)": "0x337eb6850c3a6ab343fd79dd01d270fd0187fd303c4241bd6b824f63787a9942",
884-
"transferFrom(address,address,address,uint256)": "0x1b8878a384ca40db66da9df8ec98ac857744d49946c81514772582dbfe24fe04",
885-
"unlock(bytes)": "0xbff62bffa0703647cd32fbc92052c16c80b5079e9e5ab8cb9fd1e98800fa1d05"
877+
"addLiquidity((address,address,uint256[],uint256,uint8,bytes))": "0x792ef3643259be92153b359b9c79dde2318e841a24976beae6cb8c61c809bb85",
878+
"erc4626BufferWrapOrUnwrap((uint8,uint8,address,uint256,uint256))": "0xe57bb1964c071ad7ba1c604268533c7899c5cdd871740b8c4f780a5c86ba5b6b",
879+
"removeLiquidity((address,address,uint256,uint256[],uint8,bytes))": "0x0b261c520f4a1ff73e728c389a69078dc35c0fbfe4837fa1169dd89ed8259e14",
880+
"sendTo(address,address,uint256)": "0xbb9c2c19bf6165b26469367ff647daa9fbb092c6b1aceb8aeb3fe410b01605d9",
881+
"settle(address,uint256)": "0x52c2bd581f62bb99081d94342bb13b6e654d01a0696e94206438c957272c8fa6",
882+
"swap((uint8,address,address,address,uint256,uint256,bytes))": "0xc30d11c4e9e35f17d48b5e857d598cba172cf226a823d584066e2636de2cac6f",
883+
"transfer(address,address,uint256)": "0x8899b66dc27fa35096627ada288e1fd3d1af3d2bd37352e6431090819bce7bf2",
884+
"transferFrom(address,address,address,uint256)": "0x46bdb1914e2480bc86e502f93c887ae154eace91312fbd3362b73a80879558cc",
885+
"unlock(bytes)": "0xd4836d9453603e68a44f9955680f7c023538529cd89ec5c8f154841e413d43f5"
886886
}
887887
}
888888
},
@@ -1125,5 +1125,56 @@
11251125
"sweepProtocolFeesForWrappedToken(address,address,uint256,uint256,address)": "0xe804beeda244417d4f174b615090e88cd0ade3ba64e3307cd01cedf9306ee16c"
11261126
}
11271127
}
1128+
},
1129+
"20250409-v3-reclamm-pool": {
1130+
"ReClammPoolFactory": {
1131+
"useAdaptor": false,
1132+
"actionIds": {
1133+
"create(string,string,(address,uint8,address,bool)[],(address,address,address),uint256,(uint256,uint256,uint256,bool,bool),uint256,uint256,bytes32)": "0x4efa5556322782acf20974bccf741581d19fb2cc6581ac550cd982a40b9d0e60",
1134+
"disable()": "0x668986fc2832f58b18f6dbb6bd3930239eb176f8c74768d3386c75061f84eabd"
1135+
}
1136+
},
1137+
"ReClammPool": {
1138+
"useAdaptor": false,
1139+
"factoryOutput": "0xe482ef529B8f7fFC6ECCDea7eaF29C717E9ed079",
1140+
"actionIds": {
1141+
"emitApproval(address,address,uint256)": "0xcbbabb89098f451fe6c60a154c6795dafef990f12c0d38444ae0dd7b7056cb34",
1142+
"emitTransfer(address,address,uint256)": "0x89694f123239ed64397b948170e3fd33a12690139d4545136ed960ba0a0aab67",
1143+
"incrementNonce()": "0xa38af8ba8fc07b92f47bc1dd181a0d2ce609baac34d36331574b3d8a45fe0ac2",
1144+
"onAfterAddLiquidity(address,address,uint8,uint256[],uint256[],uint256,uint256[],bytes)": "0x228d993fa99634b90640a2acaae447e89d3cf36986b36506526ddc1cd3b78a80",
1145+
"onAfterInitialize(uint256[],uint256,bytes)": "0xc4f4d8edaa6b397551df96fe3c896045fdd002157e7104db9444c6d310d04c36",
1146+
"onAfterRemoveLiquidity(address,address,uint8,uint256,uint256[],uint256[],uint256[],bytes)": "0x9624778816c37b4da60cb5dc3c9fe527d59860175407e8618ed2297bf55e92a5",
1147+
"onAfterSwap((uint8,address,address,uint256,uint256,uint256,uint256,uint256,uint256,address,address,bytes))": "0xb448aa3d4e29bd8e73c606b83205a2e9c608255a3e342711dc621d03492e63fe",
1148+
"onBeforeAddLiquidity(address,address,uint8,uint256[],uint256,uint256[],bytes)": "0xd2ecae2f48c3d8c5afea29092191fff488cda5fe4bcae8507703783e1e3676f1",
1149+
"onBeforeInitialize(uint256[],bytes)": "0xe2917b9c1589e8b57dbb55da6e5dc66f2c8ef1c398a4e6b35ebc1814ef70a60b",
1150+
"onBeforeRemoveLiquidity(address,address,uint8,uint256,uint256[],uint256[],bytes)": "0xc7e4e84fba20422c0f179a90264f5744b10b6bd4bc2b1a6bbb1a99ddc17501bd",
1151+
"onBeforeSwap((uint8,uint256,uint256[],uint256,uint256,address,bytes),address)": "0x9d806b6ed9c39ae98d7fdfa3ef217391f7c827e24993c3d5ba6f22fd7f70287d",
1152+
"onSwap((uint8,uint256,uint256[],uint256,uint256,address,bytes))": "0x8875924c357f4da7062e9398fc80fb068954e9c1213deea6526c47726fe61bc9",
1153+
"setCenterednessMargin(uint256)": "0x5a0f2587cf3923c4c723345de0c97eb51231505849b8be143b7f5d2d7ba0d210",
1154+
"setDailyPriceShiftExponent(uint256)": "0xf0965833ab10492aee52b7abc365544892b981527e54e0780c886c3aa0ad47b4",
1155+
"startPriceRatioUpdate(uint256,uint256,uint256)": "0x5fb8b6cd494cbe90988ca6d485eae55c2de57e694219ce25be7f4d38addac178",
1156+
"stopPriceRatioUpdate()": "0x88231e1b202c07a43d9358792a93fe8f997690cddc3de65936ad6dca17ccebac"
1157+
}
1158+
}
1159+
},
1160+
"20250430-v3-pool-pause-helper": {
1161+
"PoolPauseHelper": {
1162+
"useAdaptor": false,
1163+
"actionIds": {
1164+
"addPools(address[])": "0x9bb888dae1eaf11ea44457768fd94cb118912fc391fa7c462ff27540bb8e82f3",
1165+
"pausePools(address[])": "0xa69b92809d981bbb1e0d49a23a0cc4fe7db78e5bba73fd06bebabe75749db14d",
1166+
"removePools(address[])": "0xdd69bc481c47fcd33959e000151759d556500e327eac0b005d9ddfba400682d1"
1167+
}
1168+
}
1169+
},
1170+
"20250430-v3-pool-swap-fee-helper": {
1171+
"PoolSwapFeeHelper": {
1172+
"useAdaptor": false,
1173+
"actionIds": {
1174+
"addPools(address[])": "0xc6e86198e62a9a39f90dcfa03d49b2ffa57cc8e7441554cb2caae20487100d02",
1175+
"removePools(address[])": "0x3ef88091dc45ac269b157e8236994d17a9fa82f0015df6854e2499d5f834f0b6",
1176+
"setStaticSwapFeePercentage(address,uint256)": "0x7a470a182124564ab7961e2c83c63597b7d4c1a90681c8b6e49d1770ac144ec6"
1177+
}
1178+
}
11281179
}
11291180
}

0 commit comments

Comments
 (0)