diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4eb88dfbd..7951547a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,6 +66,7 @@ jobs: AVALANCHE_RPC_ENDPOINT: ${{ secrets.AVALANCHE_RPC_ENDPOINT }} ZKEVM_RPC_ENDPOINT: ${{ secrets.ZKEVM_RPC_ENDPOINT }} BASE_RPC_ENDPOINT: ${{ secrets.BASE_RPC_ENDPOINT }} + FRAXTAL_RPC_ENDPOINT: ${{ secrets.FRAXTAL_RPC_ENDPOINT }} SEPOLIA_RPC_ENDPOINT: ${{ secrets.SEPOLIA_RPC_ENDPOINT }} - name: Test run: yarn test diff --git a/.github/workflows/deployment-checks.yml b/.github/workflows/deployment-checks.yml index f31c18ebe..85864f8c0 100644 --- a/.github/workflows/deployment-checks.yml +++ b/.github/workflows/deployment-checks.yml @@ -107,6 +107,16 @@ jobs: BASE_RPC_ENDPOINT: ${{ secrets.BASE_RPC_ENDPOINT }} with: network-name: base + check-fraxtal-deployments: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Check Fraxtal Deployment Addresses + uses: ./.github/actions/check-network-deployments + env: + FRAXTAL_RPC_ENDPOINT: ${{ secrets.FRAXTAL_RPC_ENDPOINT }} + with: + network-name: fraxtal check-sepolia-deployments: runs-on: ubuntu-latest steps: @@ -208,6 +218,16 @@ jobs: BASE_RPC_ENDPOINT: ${{ secrets.BASE_RPC_ENDPOINT }} with: network-name: base + check-fraxtal-action-ids: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Check Fraxtal Action IDs + uses: ./.github/actions/check-network-action-ids + env: + FRAXTAL_RPC_ENDPOINT: ${{ secrets.fraxtal_RPC_ENDPOINT }} + with: + network-name: fraxtal check-sepolia-action-ids: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/timelock-authorizer-config.yml b/.github/workflows/timelock-authorizer-config.yml index af453b905..41633f2e3 100644 --- a/.github/workflows/timelock-authorizer-config.yml +++ b/.github/workflows/timelock-authorizer-config.yml @@ -109,6 +109,17 @@ jobs: with: network-name: base + verify-fraxtal-timelock-authorizer-config: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Verify Fraxtal Timelock Authorizer Configuration + uses: ./.github/actions/verify-network-timelock-authorizer-config + env: + FRAXTAL_RPC_ENDPOINT: ${{ secrets.FRAXTAL_RPC_ENDPOINT }} + with: + network-name: fraxtal + verify-sepolia-timelock-authorizer-config: runs-on: ubuntu-latest steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 05071f3ce..954ef4f53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### New Deployments +- Deployed contracts to Fraxtal. - Deployed `TimelockAuthorizer` and `TimelockAuthorizerMigrator` to Goerli. - Deployed `BatchRelayerLibrary` V5 to all networks. - Deployed `L2BalancerPseudoMinter` to all networks except Ethereum. diff --git a/DEPLOYING.md b/DEPLOYING.md index ac4ad8e9e..cabc696c8 100644 --- a/DEPLOYING.md +++ b/DEPLOYING.md @@ -110,6 +110,22 @@ This data is accessed via the [`local-networks-config`](https://www.npmjs.com/pa "bsc": { "url": "https://bsc.rpc.endpoint/myAPIKey", "verificationAPIKey": "bsc-etherscan-API-key" + }, + "avalanche": { + "url": "https://avalanche.rpc.endpoint/myAPIKey", + "verificationAPIKey": "avalanche-etherscan-API-key" + }, + "zkevm": { + "url": "https://zkevm.rpc.endpoint/myAPIKey", + "verificationAPIKey": "zkevm-etherscan-API-key" + }, + "base": { + "url": "https://base.rpc.endpoint/myAPIKey", + "verificationAPIKey": "base-etherscan-API-key" + }, + "fraxtal": { + "url": "https://fraxtal.rpc.endpoint/myAPIKey", + "verificationAPIKey": "fraxtal-etherscan-API-key" } }, "defaultConfig": { diff --git a/action-ids/fraxtal/action-ids.json b/action-ids/fraxtal/action-ids.json new file mode 100644 index 000000000..4049b35e3 --- /dev/null +++ b/action-ids/fraxtal/action-ids.json @@ -0,0 +1,281 @@ +{ + "20210418-authorizer": { + "Authorizer": { + "useAdaptor": true, + "actionIds": { + "grantRole(bytes32,address)": "0x7a2d30f4928adbe0dba66f278eaa3cf0b86c7efe785b70d654b0d3e68a66f9b2", + "grantRoles(bytes32[],address)": "0x7f52d5e49a514813d856a91c7f9095048b2230ddbbfc53f12fa9ed7abc1612e3", + "grantRolesToMany(bytes32[],address[])": "0xd5b9719c623e58578f24a1763e64d025b42e9231060e7f6a1ca0ed353c75040e", + "renounceRole(bytes32,address)": "0xf180278c5092ba0183b5cec857ceaab0e9bd2d57f075742c6da8952a51bd1ad4", + "revokeRole(bytes32,address)": "0x9926592970929a429e2595a3af5416b8e20c9b50bfc0bc5ff470124546c14a95", + "revokeRoles(bytes32[],address)": "0x807f5498a85d8049b887dd7d969c2eed20724db66e1808bc046f4685e0bedabd", + "revokeRolesFromMany(bytes32[],address[])": "0xcf619db1ab3fb9718c5c980c048cdfea1b4e694a5f331c8ef3327df07cc2d926" + } + } + }, + "20210418-vault": { + "Vault": { + "useAdaptor": false, + "actionIds": { + "batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool),int256[],uint256)": "0x1282ab709b2b70070f829c46bc36f76b32ad4989fecb2fcb09a1b3ce00bbfc30", + "deregisterTokens(bytes32,address[])": "0xe4f8ff74aa05a4d54a06e035d5e86947bc6474f8d7b166ebeb49fc9178d28551", + "exitPool(bytes32,address,address,(address[],uint256[],bytes,bool))": "0xc149e88b59429ded7f601ab52ecd62331cac006ae07c16543439ed138dcb8d34", + "flashLoan(address,address[],uint256[],bytes)": "0x96ebe854ca6ab6242ad127dcd7809576513b0c64571e515cedd7b8885612c82d", + "joinPool(bytes32,address,address,(address[],uint256[],bytes,bool))": "0x78ad1b68d148c070372f8643c4648efbb63c6a8a338f3c24714868e791367653", + "managePoolBalance((uint8,bytes32,address,uint256)[])": "0x7275fb98594b03dc36a7de69051058e9e2d05cabeb4fe7d9c87bc69f94d9d084", + "manageUserBalance((uint8,address,uint256,address,address)[])": "0xeba777d811cd36c06d540d7ff2ed18ed042fd67bbf7c9afcf88c818c7ee6b498", + "queryBatchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool))": "0xf5f701b3adfba2adad8f16a8be5a989593e42a2caa84c5c6e60b22143db65a2f", + "registerPool(uint8)": "0x956dfce4343a6be4df20714d3dc413ef59e73fa9995d3d247e7c8d12efd33ac2", + "registerTokens(bytes32,address[],address[])": "0xad5bd4a1cc4243b4d772a8a55d24792c1f57cc45eb97ed1291b82d96125a7626", + "setAuthorizer(address)": "0x1cbb503dcc0f4acaedf71a098211ff8b15a220fc26a6974a8d9deaab040fa6e0", + "setPaused(bool)": "0xb5593fe09464f360ecf835d5b9319ce69900ae1b29d13844b73c250b1f5f92fb", + "setRelayerApproval(address,address,bool)": "0x0014a06d322ff07fcc02b12f93eb77bb76e28cdee4fc0670b9dec98d24bbfec8", + "swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256)": "0x7b8a1d293670124924a0f532213753b89db10bde737249d4540e9a03657d1aff" + } + }, + "ProtocolFeesCollector": { + "useAdaptor": false, + "actionIds": { + "setFlashLoanFeePercentage(uint256)": "0xbe2a180d5cc5d803a8eec4cea569989fc1c593d7eeadd1f262f360a68b0e842e", + "setSwapFeePercentage(uint256)": "0xb28b769768735d011b267f781c3be90bce51d5059ba015bc7a28b3e882fb2083", + "withdrawCollectedFees(address[],uint256[],address)": "0xb2b6e48fa160a7c887d9d7a68b6a9bb9d47d4953d33e07f3a39e175d75e97796" + } + }, + "BalancerHelpers": { + "useAdaptor": true, + "actionIds": { + "queryExit(bytes32,address,address,(address[],uint256[],bytes,bool))": "0x63eb724b4aa3d4e33a0056237ef5cfffc4698ee8276797ea965d519c93a8cbba", + "queryJoin(bytes32,address,address,(address[],uint256[],bytes,bool))": "0x7229e7e3698cda86530120785309d03886c3fd87060be322589d63b3aaada9b5" + } + } + }, + "20211202-no-protocol-fee-lbp": { + "NoProtocolFeeLiquidityBootstrappingPoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,address[],uint256[],uint256,address,bool)": "0x3a964df0cde58a0c208f6e8817d862caeb280e2394649ad76a1704e44a3f253e", + "disable()": "0x0ebf042d38f8e1bb630c3010c686232d7334f90360a82eb23623fd01fbe8e656" + } + }, + "NoProtocolFeeLiquidityBootstrappingPool": { + "useAdaptor": false, + "factoryOutput": "0xaeace3B34BcA1BFe585e4B0Bb303e60e0771F139", + "actionIds": { + "setAssetManagerPoolConfig(address,bytes)": "0x1a08d4fef97815fd30114a34ff1dbaa267e682388735fb00569f31d02a4d0d9e", + "setPaused(bool)": "0xb7f18df74d8a694667d94dcd249e8d9fd1b966af564e98bb5b634194a7332515", + "setSwapEnabled(bool)": "0xf3837872ed10113bb58a5662b32f607edeedad42e653b63d8dccd4ab766d54b6", + "setSwapFeePercentage(uint256)": "0x04dd8b85ae9bff95ec24f18269d23bd2d04784d5f5d8b35261545b82ed754a85", + "updateWeightsGradually(uint256,uint256,uint256[])": "0x829b9971da10d26f2cf2c8c083b01e119bc0eeb63d6c85453ad7cfd3b908e932" + } + } + }, + "20220517-protocol-fee-withdrawer": { + "ProtocolFeesWithdrawer": { + "useAdaptor": false, + "actionIds": { + "allowlistToken(address)": "0x5dbc1eb287772837d256be2f33837543371dd1eec44e876f71c48f7e5df9dafe", + "denylistToken(address)": "0x3d2eef14850cbbadfbbe943f0365f71562f347a7f22272c6fde14bc3b2e8890b", + "withdrawCollectedFees(address[],uint256[],address)": "0x0e9dc9cb7f6c04b4bd6a3a1454fea541139560e67c2305a90fa5021b5a9654a6" + } + } + }, + "20220725-protocol-fee-percentages-provider": { + "ProtocolFeePercentagesProvider": { + "useAdaptor": false, + "actionIds": { + "registerFeeType(uint256,string,uint256,uint256)": "0xf7a2b8040e510cbdb717279ef832255af8e385ab7f824966cd66ac5294d15958", + "setFeeTypePercentage(uint256,uint256)": "0x6a0dbf850b77efe39084cc09b1e400307ad6949c5b87efdec8381b88592862fa" + } + } + }, + "20221123-pool-recovery-helper": { + "PoolRecoveryHelper": { + "useAdaptor": false, + "actionIds": { + "addPoolFactory(address)": "0x8bd6c78035cf14d9a9eee5f76434919f54549515ffeb33ef262637ace4623751", + "enableRecoveryMode(address)": "0x897a55a801aefe3d33a5be1e17f2dcde5faf6c2a10e5a05a9feddef3a152b2ac", + "removePoolFactory(address)": "0xe59f99daac75c9e44d591c49a65423101c290813a1ebd1ef8833a4dab984fa9a" + } + } + }, + "20230223-protocol-id-registry": { + "ProtocolIdRegistry": { + "useAdaptor": false, + "actionIds": { + "registerProtocolId(uint256,string)": "0xafaf4ce764706ff75bea937f87b0d04970292af6c75a3e1bc4045bb9777dfa65", + "renameProtocolId(uint256,string)": "0x3ebf880359d778f39e7be152c0f9e08ca720deb5fec5c8d1f452538638a298db" + } + } + }, + "20230316-child-chain-gauge-factory-v2": { + "ChildChainGauge": { + "useAdaptor": true, + "actionIds": { + "add_reward(address,address)": "0x5136d1203b14ba22a937b7e444c8af4b759cc078fda17daabcc62cb16d44f770", + "claim_rewards()": "0x1af8a678ccebc92dab1d34264edb7bb5b54cbab261a8a531fbce5b37611723a6", + "claim_rewards(address)": "0x69f5ca907b97dd3e8eb5a0b68b4769a911e9967dbf439959151eafc96c0c1480", + "claim_rewards(address,address)": "0x9ebad38e814e0674d0a69daa6893005d8f0c4f8c38126d4f1711ee17738d2cad", + "claim_rewards(address,address,uint256[])": "0x8529f5ffc05c6001131ef70d12f761dc5eeae08d0ad41ac7bb807045dce3edd2", + "claimable_tokens(address)": "0x342e7be7854a5f5a788f3bd5c01d89156a0306222a034589f965142ad8b23a20", + "deposit(uint256)": "0x7c7dd18063f190e654a4e67be9534459dbdb831d2e416c5b986942bf5962b946", + "deposit(uint256,address)": "0x605dd06935e042d9c1e79e4c7b69b64fc445798698efa716f54917145f0c17b0", + "deposit_reward_token(address,uint256)": "0xf7c27f79e6fd20834dbfa95362990d0e3cfba97b0f7b54fcd79790d4f6c2a766", + "initialize(address,string)": "0x85cced832474c8c6a500f7eb9584d7dc3f7306ffce246fc14afe9b2202775ef1", + "killGauge()": "0x0f5720c684ab255f8cec98e3a8a03405fd964f1038e6a422f6c87a290100d214", + "set_reward_distributor(address,address)": "0x47c8a529e3b2e456350bd1fb2b5bdd61d0740858cd3fc3a95757ed080665b1b7", + "set_rewards_receiver(address)": "0x4d73824672d7d4e95ce51809736df151c98585baac91bbfd25e2fc4c7dc51307", + "unkillGauge()": "0x3ea5662838559ceea3dc9f58e8ce08f9bb77605868cdefc7851379544304be73", + "user_checkpoint(address)": "0x8ca214818620da3e32bb22bc61b399742409b8bf557a58a52fdbb9c501bbc751", + "withdraw(uint256)": "0x5273c908ee1386777e33eb01a91ad48a072e1283b04caee6367115797c8d4e55", + "withdraw(uint256,address)": "0x0ebbfb65aff8b6f6f8ce92ed29c73d3c594548b4801a8d58a8eb443f8445ce04" + } + }, + "ChildChainGaugeFactory": { + "useAdaptor": true, + "actionIds": { + "create(address)": "0x586cf983e73298b56dd53b159aca955016ae51bd421a55c8b8dacb4e65228fd3" + } + } + }, + "20230316-l2-balancer-pseudo-minter": { + "L2BalancerPseudoMinter": { + "useAdaptor": false, + "actionIds": { + "addGaugeFactory(address)": "0x9982b96c2fe5e96298fb726a0961f96e3b1b747460c05c75c71244df64b5248e", + "mint(address)": "0xbbe51a8a64ed343d94ccadda9dfe1d3262bb4cdae5cf64326338db14affe1f32", + "mintFor(address,address)": "0x574597d879674a77c2f49ef4037feebd092cc0d1817d790392939843659bc1b5", + "mintMany(address[])": "0x3b3f5b1127a88b4a647edb4dd371a4a2ca3d5a7965c79c756d1f1a416fbfc5b0", + "mintManyFor(address[],address)": "0x4e0a5b368d81cb65db27a8903916e32f6911d91207b2af1d0480c309ccc1ebe0", + "mint_for(address,address)": "0xfa9b3903b663dc7a24bf46ef6e5379fdb5b37b417e97b02f833745b9e8eae444", + "mint_many(address[8])": "0x1ea6e8347a1e103182b0c2972af55fa0355e59014b28b81cba85dc87cb31c9d7", + "removeGaugeFactory(address)": "0xbfbcbbb95e8f87cf331d2289ee456f572ec921322c39c7aaf0e430fc303d4f74", + "setMinterApproval(address,bool)": "0xc3a7f9d2f39ab658441161836e5e83a87d0ae2574e2654d923bc8c9f5b799509", + "setMinterApprovalWithSignature(address,bool,address,uint256,uint8,bytes32,bytes32)": "0x4ae8699c950463cf79b5e7a1ffcc09e7fa36549e2672a401bfd82a4eed9303aa", + "toggle_approve_mint(address)": "0x116646e96d981f704034a667b11e6175c113ad6993621bbd51a411cc7f4236a4" + } + } + }, + "20230316-l2-ve-delegation-proxy": { + "NullVotingEscrow": { + "useAdaptor": true, + "actionIds": {} + }, + "VotingEscrowDelegationProxy": { + "useAdaptor": false, + "actionIds": { + "killDelegation()": "0x8ac1cd61ab6c7adaf5fca90cb6f53ab11e272c9c93ddfd73cdfcbeaa0b900f13", + "setDelegation(address)": "0xd6a470b7515ff20313e51cfcb0941cc9bc6de272c8ef76595ca93c330a626a2f" + } + } + }, + "20230320-weighted-pool-v4": { + "WeightedPoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,address[],uint256[],address[],uint256,address,bytes32)": "0x1fa7a24bcc45371ef9e5c3f1e47deef1cb7c5d823f967477394c75f1625cfd37", + "disable()": "0xf27a3cfffd6082308886cb5ef66425202d4b3180e84c6852d7d8109b4228a5ec" + } + }, + "WeightedPool": { + "useAdaptor": false, + "factoryOutput": "0xBbCDB19D0Fb506e5E1a186A8893cF5C51c8dEff2", + "actionIds": { + "disableRecoveryMode()": "0x9445e55417916b0075c7d42cc8d936bf87a2e04096fe6e29f17d1e2f80eb4123", + "enableRecoveryMode()": "0x55183eaafc9e607c22ca713ce26b115fe0e7e47216af41fcec2f0fff0d6f622a", + "pause()": "0x9fca6ce6b2733f09e22be866cbbfc8b9b4b6822e7ff1e1c9b5c10895e2bbb6b0", + "setAssetManagerPoolConfig(address,bytes)": "0xf57c15865aa76709f77ab881bffa3a5e378dc8eabcf9922142d5a31b1db8550f", + "setSwapFeePercentage(uint256)": "0x2ae3adc781b5bd1b6741f6a0d64c69c177a309fa771c818a298f437b11e338a9", + "unpause()": "0xdf74aa35ca13699649afd09db6086f7d5c7c8f820ce90357c4825b982a2cbafa", + "updateProtocolFeePercentageCache()": "0xa587e3f49a85896c64965080df5cab72d59abe7c511d6ce704359527d41903bd" + } + } + }, + "20230404-l2-layer0-bridge-forwarder": { + "L2LayerZeroBridgeForwarder": { + "useAdaptor": false, + "actionIds": { + "onVeBalBridged(address)": "0x85fb282b1f03f7b9880e55e63c5619b4baa4db3a2741528ee112c5ba84093591", + "onVeBalSupplyUpdate()": "0xc9ab6e32a048bdfd1b7a80d5768be60618a6e29f9a4ef51be7ce27c2d36e7f03", + "setDelegation(address)": "0xdf0b5d4cbc35c73d80b5215d77d3dce0b5013b0ed5097b70044836b9481d1efc" + } + } + }, + "20230411-managed-pool-v2": { + "ManagedPoolAddRemoveTokenLib": { + "useAdaptor": true, + "actionIds": {} + }, + "CircuitBreakerLib": { + "useAdaptor": true, + "actionIds": {} + }, + "ManagedPoolAmmLib": { + "useAdaptor": true, + "actionIds": {} + }, + "ExternalWeightedMath": { + "useAdaptor": true, + "actionIds": {} + }, + "RecoveryModeHelper": { + "useAdaptor": true, + "actionIds": {} + }, + "ManagedPoolFactory": { + "useAdaptor": false, + "actionIds": { + "create((string,string,address[]),(address[],uint256[],uint256,bool,bool,uint256,uint256),address,bytes32)": "0x06625eb1411eb1f00fc4c9e3c92f20ff7ec7f6b70d198ea6be6f5998b6d2c729", + "disable()": "0xbd92af6a2dfb24acf76fcff3ee827e4d13aceb26a57d95e47b90581760c41049" + } + }, + "ManagedPool": { + "useAdaptor": false, + "factoryOutput": "0x1fB5653B800fa675F7b791652cF60D264198e5f2", + "actionIds": { + "addAllowedAddress(address)": "0x8bf5cd4f06d6f7e6d51231dc5be52e76bbf7e451ccc19f605b0f5a0049b3c209", + "addToken(address,address,uint256,uint256,address)": "0xfd28473156ee962d919fa8d20855d10634fff7a13a6fa72c2bd541e0810bcbe4", + "collectAumManagementFees()": "0x2b2c476749b18ba456667c2298775a9b0cb6795237603f12dfe1dd4f2df7c807", + "disableRecoveryMode()": "0x36ebee798381133a2ee1f7c3d18341d16bb4c39959018794ac1f00e11101d4f4", + "enableRecoveryMode()": "0x1d087bf5277f83a51abd0bb650d0f671ec1075c10fc740f941334329621bb89d", + "pause()": "0xda3af9541f52be1def53d54294a906c129ad5721f0b79b6a7efa9d0b6ed49de5", + "removeAllowedAddress(address)": "0xc4e980b133eba9e828814c5cb7bbc31db66b66ea91685eab585cef252fa8e4af", + "removeToken(address,uint256,address)": "0x5bb9dac61f4403d0cacd64257b465b2160273c5c935f230d48cc434a794b7b5d", + "setCircuitBreakers(address[],uint256[],uint256[],uint256[])": "0xf7846eb30ab247248bf6875293d8c1bf0cdb7b2b79b362112f673daf827e8570", + "setJoinExitEnabled(bool)": "0x4175a4b2ee86d48cf9d1f0aee0fe9065074b84f90bd27f47e3795c358623a225", + "setManagementAumFeePercentage(uint256)": "0x0d44738e47e5479f9ee9aa4f2d2100efcdcf9165515d629bfcb5f5dfd4938556", + "setMustAllowlistLPs(bool)": "0x2aa1a01eba958dc2db22e327dea5e8f7a0416626062494f28157c3ee66f065ae", + "setSwapEnabled(bool)": "0xaa5e48746abc90e3c01b011dc1d14e6108f3eea2f13b43c5566905e5c2fae314", + "unpause()": "0x7b28a9c6f089e874882026cafdbc29f6e3263580b8e7345a448dd555628699c8", + "updateProtocolFeePercentageCache()": "0xebbf7dbfece1eb389769ed1a883900828617547b2147e93e5f97ecb114329e62", + "updateSwapFeeGradually(uint256,uint256,uint256,uint256)": "0xcd0b8f2cd78d9f6f77476b50fcb977e92f947430af6de50c28c608b92f03a823", + "updateWeightsGradually(uint256,uint256,address[],uint256[])": "0x2e17f515013a76c35ed7491a8b7f0783edf119a2f7807c69fa60817f95553a40" + } + } + }, + "20240223-composable-stable-pool-v6": { + "ComposableStablePoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,address[],uint256,address[],uint256[],bool,uint256,address,bytes32)": "0xaadc4fc342b9d37032270d8adad7e12029667a841f7202b364cc1addd24a3ebc", + "disable()": "0x3dd110fd101a1be6115ceb811a85535de6c9c019360c7d67c022c48a3dd685d9" + } + }, + "ComposableStablePool": { + "useAdaptor": false, + "factoryOutput": "0xA65bc2c42697494a53DC53bf1a45c9e72201467F", + "actionIds": { + "disableRecoveryMode()": "0x8f33b1eaf9e2f2523d32b89a23d1a83e1225eb96ef489fde9b81bc44c7e207c1", + "enableRecoveryMode()": "0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff", + "pause()": "0x04221c483f49fe794f5ce394e0ffc086722e106b9fef863610ccfbe1a019b997", + "setAssetManagerPoolConfig(address,bytes)": "0xe2baca23794dbc02728408bd1d35a1819f58f0e598d3c004e7b0429144b843da", + "setSwapFeePercentage(uint256)": "0x22627da2e7670aed1292420d5f0a2a49a7bd5992e0aef001702aa3285b5979b3", + "setTokenRateCacheDuration(address,uint256)": "0xed896fdd237f2b79e8ae80a5e3432dbc85b53ff7a8ba91ea17ba7b2716aaee0a", + "startAmplificationParameterUpdate(uint256,uint256)": "0x86f2cd537c832d7823d7b51e7f52288e383427c8c41180561f0f8054bc216f56", + "stopAmplificationParameterUpdate()": "0x0c055dc6cd1d6558914ef49c536f751680f8c413a3563007992801443bcca7a5", + "unpause()": "0xd0d6f7e787daf1d2a410263e88c280721498432203c7bf5a5378158634cf6561", + "updateProtocolFeePercentageCache()": "0x9187594b83654bfb251ccb4533c48404ca136281c3729b90c69ddd0859e0cf18", + "updateTokenRateCache(address)": "0x498630c10c1b0dad33cc41f56c2186da11a12259cd4b65c8a5922a04c9e902a4" + } + } + } +} \ No newline at end of file diff --git a/addresses/.supported-networks.json b/addresses/.supported-networks.json index f3b35f477..a0df4fe05 100644 --- a/addresses/.supported-networks.json +++ b/addresses/.supported-networks.json @@ -38,5 +38,9 @@ "base": { "chainId": 8453, "block-explorer": "https://basescan.org" + }, + "fraxtal": { + "chainId": 252, + "block-explorer": "https://fraxscan.com" } } diff --git a/addresses/fraxtal.json b/addresses/fraxtal.json new file mode 100644 index 000000000..a53ba78aa --- /dev/null +++ b/addresses/fraxtal.json @@ -0,0 +1,260 @@ +{ + "20210418-authorizer": { + "contracts": [ + { + "name": "Authorizer", + "address": "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5" + } + ], + "status": "ACTIVE" + }, + "20210418-vault": { + "contracts": [ + { + "name": "Vault", + "address": "0xBA12222222228d8Ba445958a75a0704d566BF2C8" + }, + { + "name": "ProtocolFeesCollector", + "address": "0xce88686553686DA562CE7Cea497CE749DA109f9F" + }, + { + "name": "BalancerHelpers", + "address": "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9" + } + ], + "status": "ACTIVE" + }, + "20211202-no-protocol-fee-lbp": { + "contracts": [ + { + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory", + "address": "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288" + }, + { + "name": "MockLiquidityBootstrappingPool", + "address": "0xaeace3B34BcA1BFe585e4B0Bb303e60e0771F139" + } + ], + "status": "ACTIVE" + }, + "20220325-authorizer-adaptor": { + "contracts": [ + { + "name": "AuthorizerAdaptor", + "address": "0x36caC20dd805d128c1a6Dd16eeA845C574b5A17C" + } + ], + "status": "ACTIVE" + }, + "20220517-protocol-fee-withdrawer": { + "contracts": [ + { + "name": "ProtocolFeesWithdrawer", + "address": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062" + } + ], + "status": "ACTIVE" + }, + "20220721-balancer-queries": { + "contracts": [ + { + "name": "BalancerQueries", + "address": "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8" + } + ], + "status": "ACTIVE" + }, + "20220725-protocol-fee-percentages-provider": { + "contracts": [ + { + "name": "ProtocolFeePercentagesProvider", + "address": "0xf23b4DB826DbA14c0e857029dfF076b1c0264843" + } + ], + "status": "ACTIVE" + }, + "20221123-pool-recovery-helper": { + "contracts": [ + { + "name": "PoolRecoveryHelper", + "address": "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6" + } + ], + "status": "ACTIVE" + }, + "20221124-authorizer-adaptor-entrypoint": { + "contracts": [ + { + "name": "AuthorizerAdaptorEntrypoint", + "address": "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88" + } + ], + "status": "ACTIVE" + }, + "20230223-protocol-id-registry": { + "contracts": [ + { + "name": "ProtocolIdRegistry", + "address": "0x9dd5Db2d38b50bEF682cE532bCca5DfD203915E1" + } + ], + "status": "ACTIVE" + }, + "20230316-child-chain-gauge-factory-v2": { + "contracts": [ + { + "name": "ChildChainGauge", + "address": "0x4fb47126Fa83A8734991E41B942Ac29A3266C968" + }, + { + "name": "ChildChainGaugeFactory", + "address": "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68" + } + ], + "status": "ACTIVE" + }, + "20230316-l2-balancer-pseudo-minter": { + "contracts": [ + { + "name": "L2BalancerPseudoMinter", + "address": "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102" + } + ], + "status": "ACTIVE" + }, + "20230316-l2-ve-delegation-proxy": { + "contracts": [ + { + "name": "NullVotingEscrow", + "address": "0x5cF4928a3205728bd12830E1840F7DB85c62a4B9" + }, + { + "name": "VotingEscrowDelegationProxy", + "address": "0xE3881627B8DeeBCCF9c23B291430a549Fc0bE5F7" + } + ], + "status": "ACTIVE" + }, + "20230320-weighted-pool-v4": { + "contracts": [ + { + "name": "WeightedPoolFactory", + "address": "0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c" + }, + { + "name": "MockWeightedPool", + "address": "0xBbCDB19D0Fb506e5E1a186A8893cF5C51c8dEff2" + } + ], + "status": "ACTIVE" + }, + "20230404-l2-layer0-bridge-forwarder": { + "contracts": [ + { + "name": "L2LayerZeroBridgeForwarder", + "address": "0xa523f47A933D5020b23629dDf689695AA94612Dc" + } + ], + "status": "ACTIVE" + }, + "20230411-managed-pool-v2": { + "contracts": [ + { + "name": "ManagedPoolAddRemoveTokenLib", + "address": "0x6B5dA774890Db7B7b96C6f44e6a4b0F657399E2e" + }, + { + "name": "CircuitBreakerLib", + "address": "0x7Ba29fE8E83dd6097A7298075C4AFfdBda3121cC" + }, + { + "name": "ManagedPoolAmmLib", + "address": "0x043A2daD730d585C44FB79D2614F295D2d625412" + }, + { + "name": "ExternalWeightedMath", + "address": "0xA8920455934Da4D853faac1f94Fe7bEf72943eF1" + }, + { + "name": "RecoveryModeHelper", + "address": "0x013D4382F291be5688AFBcc741Ee8A24C66B2C92" + }, + { + "name": "ManagedPoolFactory", + "address": "0x7A2535f5fB47b8e44c02Ef5D9990588313fe8F05" + }, + { + "name": "MockManagedPool", + "address": "0x1fB5653B800fa675F7b791652cF60D264198e5f2" + } + ], + "status": "ACTIVE" + }, + "20230414-authorizer-wrapper": { + "contracts": [ + { + "name": "AuthorizerWithAdaptorValidation", + "address": "0x6817149cb753BF529565B4D023d7507eD2ff4Bc0" + } + ], + "status": "ACTIVE" + }, + "20230526-gauge-working-balance-helper": { + "contracts": [ + { + "name": "GaugeWorkingBalanceHelper", + "address": "0x83E443EF4f9963C77bd860f94500075556668cb8" + } + ], + "status": "ACTIVE" + }, + "20230613-balancer-pool-data-queries": { + "contracts": [ + { + "name": "BalancerPoolDataQueries", + "address": "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd" + } + ], + "status": "ACTIVE" + }, + "20230717-chainlink-rate-provider-factory": { + "contracts": [ + { + "name": "ChainlinkRateProviderFactory", + "address": "0x3f170631ed9821Ca51A59D996aB095162438DC10" + } + ], + "status": "ACTIVE" + }, + "20231031-batch-relayer-v6": { + "contracts": [ + { + "name": "BatchRelayerLibrary", + "address": "0x662112B8CB18889e81459b92CA0f894a2ef2c1B8" + }, + { + "name": "BatchRelayerQueryLibrary", + "address": "0x4DdFc173C8F67808AE8F7913DccFfa6bdBFE5b0e" + }, + { + "name": "BalancerRelayer", + "address": "0xb541765F540447646A9545E0A4800A0Bacf9E13D" + } + ], + "status": "ACTIVE" + }, + "20240223-composable-stable-pool-v6": { + "contracts": [ + { + "name": "ComposableStablePoolFactory", + "address": "0x4bdCc2fb18AEb9e2d281b0278D946445070EAda7" + }, + { + "name": "MockComposableStablePool", + "address": "0xA65bc2c42697494a53DC53bf1a45c9e72201467F" + } + ], + "status": "ACTIVE" + } +} \ No newline at end of file diff --git a/ci/prepare-config.ts b/ci/prepare-config.ts index e2a149799..eef5e3b25 100644 --- a/ci/prepare-config.ts +++ b/ci/prepare-config.ts @@ -39,6 +39,9 @@ if (process.env.CI) { }, "base": { "url": "${process.env.BASE_RPC_ENDPOINT}" + }, + "fraxtal": { + "url": "${process.env.FRAXTAL_RPC_ENDPOINT}" } }, "defaultConfig": { diff --git a/deployment-txs/fraxtal.json b/deployment-txs/fraxtal.json new file mode 100644 index 000000000..9e628660d --- /dev/null +++ b/deployment-txs/fraxtal.json @@ -0,0 +1,36 @@ +{ + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": "0xca922444d255f03fd64a4aabc624c76542af53635675999df1ebeeb6ca95ab9a", + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": "0x5666557e823a97903cec3d7cb0a39680a48254b9dac7f3bd8ab9b19885ba1299", + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": "0xd75c93b99a82043987a4ed2f0ba565a29c9f70025551545a12e8d75fee3d5d95", + "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": "0x3ecb2871af5e95b52993f083f06e1dc7861dfb9078ffa792e277bc275b9b24ad", + "0xaeace3B34BcA1BFe585e4B0Bb303e60e0771F139": "0xcbe9f44cd6e400563431d5928c9f3ec11d116111bd96d93d3585bc7467b830cc", + "0x36caC20dd805d128c1a6Dd16eeA845C574b5A17C": "0x3566a14f60f4fc7fd840ca5fe52c174c072201b2c225b17a0ff2b7b7c1ba1b31", + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": "0xa97ab6a7d26e10b4e26cd3e16d00e7c31613acdf23fae330393ee1ffde4ec717", + "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8": "0x02480e6d20a1a6cd1988c7e4b2703285fd48cb7761cdd8db688bef23cc565d22", + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": "0x29831d347cd7c5aed958500ba17ceca1f403e261b397477340ff7da7309e6e2a", + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": "0xbc0c8d8aa80c20ad17568f5244417a6276392a8c624d1680299cd87cd719b13d", + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": "0xea7e9a4c6c2e2390b5ec66f2802dbe083b0ac7b4c3490d60dac9eff7de0048f5", + "0x9dd5Db2d38b50bEF682cE532bCca5DfD203915E1": "0xea07b10bb5bc561b4ca8949c4995a9275a398459992bb09d0661964d43c28bcd", + "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102": "0x70270ae327059a726d5a19f57fbd4a5fbad8529a2ab2dcb6b81132ff61d49053", + "0x5cF4928a3205728bd12830E1840F7DB85c62a4B9": "0x5074b7bd8a69417c03791f48d7e84f47f03db477c8802d47f3036f74bf86187b", + "0xE3881627B8DeeBCCF9c23B291430a549Fc0bE5F7": "0x95e205b3f59a14d6537235aeca8df8d31193f4a4ee9cbfe93cbe601cf8539a32", + "0x4fb47126Fa83A8734991E41B942Ac29A3266C968": "0xc563a116e2f601c5b0e7febdd290754047b57b5238402725f49986a88bd62034", + "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68": "0x452831556b9acbeee4403b0210e81a40edde96c580ea132c91981a8ef57adb86", + "0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c": "0x15917265c1a92aff5bfae6d6768f92ff221bd6fdbcb3acc3101fb20a4f637f16", + "0xBbCDB19D0Fb506e5E1a186A8893cF5C51c8dEff2": "0x4b5ea38c71f35f849749b2babc4793b8f17c1c835372b16225d117be05065519", + "0xa523f47A933D5020b23629dDf689695AA94612Dc": "0x255503b626170b00e58c8a7afbeee943e23891855eca042f3060d2145a19b55f", + "0x6817149cb753BF529565B4D023d7507eD2ff4Bc0": "0x5fa6fb5f869370eb9d631fe22283f80bb0226b84e4b7114bc85e8ffd2f7408b2", + "0x6B5dA774890Db7B7b96C6f44e6a4b0F657399E2e": "0x1ec71d8a9defe8220997472f69037a5740ba4ea2a4f44d625c83eaf784b2d99c", + "0x7Ba29fE8E83dd6097A7298075C4AFfdBda3121cC": "0x6721a2c7fce0b908e306d5b9da861c1b9e1e23eb38254b3e1116822b4c6ad36e", + "0x043A2daD730d585C44FB79D2614F295D2d625412": "0x5ecb3f9fba946a45dd9aa4495e737a11f0b4294095b1c7987297e41d96922d9c", + "0xA8920455934Da4D853faac1f94Fe7bEf72943eF1": "0x2366a77c1cf368b26bdda77b737a7686c685727ad8df531b5ae17045117fb91f", + "0x013D4382F291be5688AFBcc741Ee8A24C66B2C92": "0xcde43ca87a34ec53c702d85d839c807e947ac900586c6fa736b2a0a67ac3f066", + "0x7A2535f5fB47b8e44c02Ef5D9990588313fe8F05": "0x6b99a66142112485fb0de51e683cea6047acca37b6753e4d861325341d016185", + "0x1fB5653B800fa675F7b791652cF60D264198e5f2": "0x409704ddef78a9572f66235ac9e8cb987d24d73891e855fe70f1794ee7b006bc", + "0x83E443EF4f9963C77bd860f94500075556668cb8": "0x70982ede912a22f7c1c2f696789b85bc285674559cdb73824e43e5346e775adb", + "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd": "0x641efc0201bea3524480e2525a4b36dbdae0d5c68dbd16303f68ece2e0b29a2d", + "0x3f170631ed9821Ca51A59D996aB095162438DC10": "0x4854c1b91e1cffc6f7a8d5bc25da1695b1d2eb561afe975db90307b498ad9063", + "0x662112B8CB18889e81459b92CA0f894a2ef2c1B8": "0x838062bb4d0d14b3e6cf00ff009733834af3ffa70bfa749ef6e24950f2c4e2bd", + "0x4bdCc2fb18AEb9e2d281b0278D946445070EAda7": "0xd11ef5c062019f9af7f9da881db570377e965531a36d3b54c5057e6f59aaff84", + "0xA65bc2c42697494a53DC53bf1a45c9e72201467F": "0x9b9fb9ea4ea5ce89eeff4b3cbe1405a9116697ab665a41b8085ef1e1c5a18eb5" +} \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index d286a5949..2acee0248 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -447,6 +447,14 @@ export default { browserURL: 'https://basescan.org/', }, }, + { + network: 'fraxtal', + chainId: 252, + urls: { + apiURL: 'https://api.fraxscan.com/api', + browserURL: 'https://fraxscan.com/', + }, + }, ], }, }; diff --git a/package.json b/package.json index 04d4c7ea4..8c8d02c97 100644 --- a/package.json +++ b/package.json @@ -25,16 +25,16 @@ "check": "yarn check-artifacts && yarn check-deployments", "check-artifacts": "hardhat check-artifacts", "check-network-deployments": "hardhat check-deployments --network", - "check-deployments": "hardhat check-deployments --network mainnet && hardhat check-deployments --network polygon && hardhat check-deployments --network arbitrum && hardhat check-deployments --network optimism && hardhat check-deployments --network gnosis && hardhat check-deployments --network bsc && hardhat check-deployments --network avalanche && hardhat check-deployments --network zkevm && hardhat check-deployments --network base && hardhat check-deployments --network sepolia", + "check-deployments": "hardhat check-deployments --network mainnet && hardhat check-deployments --network polygon && hardhat check-deployments --network arbitrum && hardhat check-deployments --network optimism && hardhat check-deployments --network gnosis && hardhat check-deployments --network bsc && hardhat check-deployments --network avalanche && hardhat check-deployments --network zkevm && hardhat check-deployments --network base && hardhat check-deployments --network fraxtal && hardhat check-deployments --network sepolia", "check-network-action-ids": "hardhat check-action-ids --network", - "check-action-ids": "hardhat check-action-ids --network mainnet && hardhat check-action-ids --network polygon && hardhat check-action-ids --network arbitrum && hardhat check-action-ids --network optimism && hardhat check-action-ids --network gnosis && hardhat check-action-ids --network bsc && hardhat check-action-ids --network avalanche && hardhat check-action-ids --network zkevm && hardhat check-action-ids --network base && hardhat check-action-ids --network sepolia", + "check-action-ids": "hardhat check-action-ids --network mainnet && hardhat check-action-ids --network polygon && hardhat check-action-ids --network arbitrum && hardhat check-action-ids --network optimism && hardhat check-action-ids --network gnosis && hardhat check-action-ids --network bsc && hardhat check-action-ids --network avalanche && hardhat check-action-ids --network zkevm && hardhat check-action-ids --network base && hardhat check-action-ids --network fraxtal && hardhat check-action-ids --network sepolia", "extract-artifacts": "hardhat extract-artifacts", - "build-address-lookup": "hardhat build-address-lookup --network mainnet && hardhat build-address-lookup --network polygon && hardhat build-address-lookup --network arbitrum && hardhat build-address-lookup --network optimism && hardhat build-address-lookup --network gnosis && hardhat build-address-lookup --network bsc && hardhat build-address-lookup --network avalanche && hardhat build-address-lookup --network zkevm && hardhat build-address-lookup --network base && hardhat build-address-lookup --network sepolia", - "check-address-lookup": "hardhat check-address-lookup --network mainnet && hardhat check-address-lookup --network polygon && hardhat check-address-lookup --network arbitrum && hardhat check-address-lookup --network optimism && hardhat check-address-lookup --network gnosis && hardhat check-address-lookup --network bsc && hardhat check-address-lookup --network avalanche && hardhat check-address-lookup --network zkevm && hardhat check-address-lookup --network base && hardhat check-address-lookup --network sepolia", - "build-timelock-authorizer-config": "hardhat build-timelock-authorizer-config --network mainnet && hardhat build-timelock-authorizer-config --network polygon && hardhat build-timelock-authorizer-config --network arbitrum && hardhat build-timelock-authorizer-config --network optimism && hardhat build-timelock-authorizer-config --network gnosis && hardhat build-timelock-authorizer-config --network bsc && hardhat build-timelock-authorizer-config --network avalanche && hardhat build-timelock-authorizer-config --network zkevm && hardhat build-timelock-authorizer-config --network base && hardhat build-timelock-authorizer-config --network sepolia", - "check-timelock-authorizer-config": "hardhat check-timelock-authorizer-config --network mainnet && hardhat check-timelock-authorizer-config --network polygon && hardhat check-timelock-authorizer-config --network arbitrum && hardhat check-timelock-authorizer-config --network optimism && hardhat check-timelock-authorizer-config --network gnosis && hardhat check-timelock-authorizer-config --network bsc && hardhat check-timelock-authorizer-config --network avalanche && hardhat check-timelock-authorizer-config --network zkevm && hardhat check-timelock-authorizer-config --network base && hardhat check-timelock-authorizer-config --network sepolia", + "build-address-lookup": "hardhat build-address-lookup --network mainnet && hardhat build-address-lookup --network polygon && hardhat build-address-lookup --network arbitrum && hardhat build-address-lookup --network optimism && hardhat build-address-lookup --network gnosis && hardhat build-address-lookup --network bsc && hardhat build-address-lookup --network avalanche && hardhat build-address-lookup --network zkevm && hardhat build-address-lookup --network base && hardhat build-address-lookup --network fraxtal && hardhat build-address-lookup --network sepolia", + "check-address-lookup": "hardhat check-address-lookup --network mainnet && hardhat check-address-lookup --network polygon && hardhat check-address-lookup --network arbitrum && hardhat check-address-lookup --network optimism && hardhat check-address-lookup --network gnosis && hardhat check-address-lookup --network bsc && hardhat check-address-lookup --network avalanche && hardhat check-address-lookup --network zkevm && hardhat check-address-lookup --network base && hardhat check-address-lookup --network fraxtal && hardhat check-address-lookup --network sepolia", + "build-timelock-authorizer-config": "hardhat build-timelock-authorizer-config --network mainnet && hardhat build-timelock-authorizer-config --network polygon && hardhat build-timelock-authorizer-config --network arbitrum && hardhat build-timelock-authorizer-config --network optimism && hardhat build-timelock-authorizer-config --network gnosis && hardhat build-timelock-authorizer-config --network bsc && hardhat build-timelock-authorizer-config --network avalanche && hardhat build-timelock-authorizer-config --network zkevm && hardhat build-timelock-authorizer-config --network base && hardhat build-timelock-authorizer-config --network fraxtal && hardhat build-timelock-authorizer-config --network sepolia", + "check-timelock-authorizer-config": "hardhat check-timelock-authorizer-config --network mainnet && hardhat check-timelock-authorizer-config --network polygon && hardhat check-timelock-authorizer-config --network arbitrum && hardhat check-timelock-authorizer-config --network optimism && hardhat check-timelock-authorizer-config --network gnosis && hardhat check-timelock-authorizer-config --network bsc && hardhat check-timelock-authorizer-config --network avalanche && hardhat check-timelock-authorizer-config --network zkevm && hardhat check-timelock-authorizer-config --network base && hardhat check-timelock-authorizer-config --network fraxtal && hardhat check-timelock-authorizer-config --network sepolia", "verify-network-timelock-authorizer-config": "hardhat verify-timelock-authorizer-config --network", - "verify-timelock-authorizer-config": "hardhat verify-timelock-authorizer-config --network mainnet && hardhat verify-timelock-authorizer-config --network polygon && hardhat verify-timelock-authorizer-config --network arbitrum && hardhat verify-timelock-authorizer-config --network optimism && hardhat verify-timelock-authorizer-config --network gnosis && hardhat verify-timelock-authorizer-config --network bsc && hardhat verify-timelock-authorizer-config --network avalanche && hardhat verify-timelock-authorizer-config --network zkevm && hardhat verify-timelock-authorizer-config --network base && hardhat verify-timelock-authorizer-config --network sepolia", + "verify-timelock-authorizer-config": "hardhat verify-timelock-authorizer-config --network mainnet && hardhat verify-timelock-authorizer-config --network polygon && hardhat verify-timelock-authorizer-config --network arbitrum && hardhat verify-timelock-authorizer-config --network optimism && hardhat verify-timelock-authorizer-config --network gnosis && hardhat verify-timelock-authorizer-config --network bsc && hardhat verify-timelock-authorizer-config --network avalanche && hardhat verify-timelock-authorizer-config --network zkevm && hardhat verify-timelock-authorizer-config --network base && hardhat verify-timelock-authorizer-config --network fraxtal && hardhat verify-timelock-authorizer-config --network sepolia", "lint": "yarn lint:solidity && yarn lint:typescript", "lint:solidity": "solhint 'src/helpers/contracts/**/*.sol'", "lint:typescript": "NODE_NO_WARNINGS=1 eslint . --ext .ts --ignore-path ./.eslintignore --max-warnings 0", diff --git a/src/types.ts b/src/types.ts index 7bde8702f..05505d534 100644 --- a/src/types.ts +++ b/src/types.ts @@ -16,6 +16,7 @@ export const NETWORKS = [ 'zkevm', 'sepolia', 'base', + 'fraxtal', ]; export type Network = (typeof NETWORKS)[number]; diff --git a/tasks/00000000-tokens/output/fraxtal.json b/tasks/00000000-tokens/output/fraxtal.json new file mode 100644 index 000000000..8c915e5b3 --- /dev/null +++ b/tasks/00000000-tokens/output/fraxtal.json @@ -0,0 +1,5 @@ +{ + "BAL": "0x2FC7447F6cF71f9aa9E7FF8814B37E55b268Ec91", + "WETH": "0xFC00000000000000000000000000000000000006" + } + \ No newline at end of file diff --git a/tasks/20210418-authorizer/input.ts b/tasks/20210418-authorizer/input.ts index 6a1e6d500..bf75600f7 100644 --- a/tasks/20210418-authorizer/input.ts +++ b/tasks/20210418-authorizer/input.ts @@ -33,4 +33,7 @@ export default { base: { admin: '0xC40DCFB13651e64C8551007aa57F9260827B6462', }, + fraxtal: { + admin: '0x4f22C2784Cbd2B24a172566491Ee73fee1A63c2e', + }, }; diff --git a/tasks/20210418-authorizer/output/fraxtal.json b/tasks/20210418-authorizer/output/fraxtal.json new file mode 100644 index 000000000..718a10d91 --- /dev/null +++ b/tasks/20210418-authorizer/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "Authorizer": "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5" +} \ No newline at end of file diff --git a/tasks/20210418-authorizer/readme.md b/tasks/20210418-authorizer/readme.md index c16c56ca7..414975de8 100644 --- a/tasks/20210418-authorizer/readme.md +++ b/tasks/20210418-authorizer/readme.md @@ -15,5 +15,6 @@ This contract is expected to be eventually replaced by one with a) native suppor - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`Authorizer` artifact](./artifact/Authorizer.json) diff --git a/tasks/20210418-vault/output/fraxtal.json b/tasks/20210418-vault/output/fraxtal.json new file mode 100644 index 000000000..475c1581c --- /dev/null +++ b/tasks/20210418-vault/output/fraxtal.json @@ -0,0 +1,5 @@ +{ + "Vault": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "ProtocolFeesCollector": "0xce88686553686DA562CE7Cea497CE749DA109f9F", + "BalancerHelpers": "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9" +} \ No newline at end of file diff --git a/tasks/20210418-vault/readme.md b/tasks/20210418-vault/readme.md index 447f1d857..19503d7eb 100644 --- a/tasks/20210418-vault/readme.md +++ b/tasks/20210418-vault/readme.md @@ -17,6 +17,7 @@ Aditionally, the `WETH` argument may represent different things in different net - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`Vault` artifact](./artifact/Vault.json) - [`BalancerHelpers` artifact](./artifact/BalancerHelpers.json) diff --git a/tasks/20211202-no-protocol-fee-lbp/artifact/LiquidityBootstrappingPool.json b/tasks/20211202-no-protocol-fee-lbp/artifact/LiquidityBootstrappingPool.json new file mode 100644 index 000000000..4f221b1ed --- /dev/null +++ b/tasks/20211202-no-protocol-fee-lbp/artifact/LiquidityBootstrappingPool.json @@ -0,0 +1,1062 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LiquidityBootstrappingPool", + "sourceName": "contracts/smart/LiquidityBootstrappingPool.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "contract IVault", + "name": "vault", + "type": "address" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "contract IERC20[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "normalizedWeights", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "swapFeePercentage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pauseWindowDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bufferPeriodDuration", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "swapEnabledOnStart", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "startWeights", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "endWeights", + "type": "uint256[]" + } + ], + "name": "GradualWeightUpdateScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "paused", + "type": "bool" + } + ], + "name": "PausedStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "swapEnabled", + "type": "bool" + } + ], + "name": "SwapEnabledSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "swapFeePercentage", + "type": "uint256" + } + ], + "name": "SwapFeePercentageChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" + } + ], + "name": "getActionId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getAuthorizer", + "outputs": [ + { + "internalType": "contract IAuthorizer", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGradualWeightUpdateParams", + "outputs": [ + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "endWeights", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInvariant", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLastInvariant", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNormalizedWeights", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPausedState", + "outputs": [ + { + "internalType": "bool", + "name": "paused", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "pauseWindowEndTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bufferPeriodEndTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPoolId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getScalingFactors", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSwapEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSwapFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getVault", + "outputs": [ + { + "internalType": "contract IVault", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "poolId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "balances", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "lastChangeBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "protocolSwapFeePercentage", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + } + ], + "name": "onExitPool", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "poolId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "balances", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "lastChangeBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "protocolSwapFeePercentage", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + } + ], + "name": "onJoinPool", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "enum IVault.SwapKind", + "name": "kind", + "type": "uint8" + }, + { + "internalType": "contract IERC20", + "name": "tokenIn", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "tokenOut", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "poolId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "lastChangeBlock", + "type": "uint256" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + } + ], + "internalType": "struct IPoolSwapStructs.SwapRequest", + "name": "request", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "balanceTokenIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceTokenOut", + "type": "uint256" + } + ], + "name": "onSwap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "poolId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "balances", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "lastChangeBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "protocolSwapFeePercentage", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + } + ], + "name": "queryExit", + "outputs": [ + { + "internalType": "uint256", + "name": "bptIn", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "amountsOut", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "poolId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "balances", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "lastChangeBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "protocolSwapFeePercentage", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + } + ], + "name": "queryJoin", + "outputs": [ + { + "internalType": "uint256", + "name": "bptOut", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "amountsIn", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "bytes", + "name": "poolConfig", + "type": "bytes" + } + ], + "name": "setAssetManagerPoolConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "paused", + "type": "bool" + } + ], + "name": "setPaused", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "swapEnabled", + "type": "bool" + } + ], + "name": "setSwapEnabled", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "swapFeePercentage", + "type": "uint256" + } + ], + "name": "setSwapFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "endWeights", + "type": "uint256[]" + } + ], + "name": "updateWeightsGradually", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6102e06040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120523480156200003757600080fd5b506040516200603c3803806200603c8339810160408190526200005a9162000d48565b898989898a516001600160401b03811180156200007657600080fd5b50604051908082528060200260200182016040528015620000a1578160200160208202803683370190505b5089898989888651600214620000b9576001620000bc565b60025b8989898989898989828289898180604051806040016040528060018152602001603160f81b815250848489336001600160a01b031660001b806080818152505050806001600160a01b031660a0816001600160a01b031660601b815250505081600390805190602001906200013392919062000b00565b5080516200014990600490602084019062000b00565b50506005805460ff1916601217905550815160209283012060c052805191012060e05250507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6101005250620001a86276a70083111561019462000511565b620001bc62278d0082111561019562000511565b4290910161014081905201610160528551620001de906002111560c862000511565b620001f8620001ec62000526565b8751111560c962000511565b6200020e866200052b60201b620010291760201c565b620002198462000537565b6040516309b2760f60e01b81526000906001600160a01b038c16906309b2760f906200024a908d9060040162000f5d565b602060405180830381600087803b1580156200026557600080fd5b505af11580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a0919062000d2f565b604051633354e3e960e11b81529091506001600160a01b038c16906366a9c7d290620002d59084908b908b9060040162000ec1565b600060405180830381600087803b158015620002f057600080fd5b505af115801562000305573d6000803e3d6000fd5b505050508a6001600160a01b0316610180816001600160a01b031660601b81525050806101a0818152505050505050505050505050505050505050505050506001600a819055506000875190506200036a818851620005c360201b620010331760201c565b6101c0819052875188906000906200037e57fe5b60200260200101516001600160a01b03166101e0816001600160a01b031660601b8152505087600181518110620003b157fe5b60200260200101516001600160a01b0316610200816001600160a01b031660601b8152505060028111620003e7576000620003fe565b87600281518110620003f557fe5b60200260200101515b60601b6001600160601b03191661022052600381116200042057600062000437565b876003815181106200042e57fe5b60200260200101515b6001600160a01b0316610240816001600160a01b031660601b815250506200047a886000815181106200046657fe5b6020026020010151620005d260201b60201c565b6102605287516200049390899060019081106200046657fe5b6102805260028111620004a8576000620004ba565b620004ba886002815181106200046657fe5b6102a05260038111620004cf576000620004e1565b620004e1886003815181106200046657fe5b6102c05242620004f481808a806200067e565b620004ff836200080c565b50505050505050505050505062001024565b816200052257620005228162000860565b5050565b600490565b806200052281620008b3565b6200054c64e8d4a5100082101560cb62000511565b6200056467016345785d8a000082111560ca62000511565b620005838160c06008546200094060201b62001040179092919060201c565b6008556040517fa9ba3ffe0b6c366b81232caab38605a0699ad5398d6cce76f91ee809e322dafc90620005b890839062000f72565b60405180910390a150565b62000522828214606762000511565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200060f57600080fd5b505afa15801562000624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200064a919062000e57565b60ff1690506000620006696012836200095560201b620010561760201c565b600a0a670de0b6b3a764000002949350505050565b600b546000805b83518110156200076f5760008482815181106200069e57fe5b60200260200101519050620006c6662386f26fc1000082101561012e6200051160201b60201c565b62000747620006e0826200097260201b6200106c1760201c565b8360100260800162000732620007158a8781518110620006fc57fe5b6020026020010151620009b360201b6200108c1760201c565b86601f0260040189620009e060201b620010a8179092919060201c565b620009f260201b620010ba179092919060201c565b935062000763818462000a0260201b620010ca1790919060201c565b92505060010162000685565b5062000788670de0b6b3a7640000821461013462000511565b620007c18560e0620007ac8960c08762000a1d60201b620010dc179092919060201c565b62000a1d60201b620010dc179092919060201c565b600b556040517f0f3631f9dab08169d1db21c6dc5f32536fb2b0a6b9bb5330d71c52132f968be090620007fc90889088908890889062000f7b565b60405180910390a1505050505050565b6200082b816000600b5462000a2f60201b620010ee179092919060201c565b600b556040517f5a9e84f78f7957cb4ed7478eb0fcad35ee4ecbe2e0f298420b28a3955392573f90620005b890839062000eb6565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b600281511015620008c4576200093d565b600081600081518110620008d457fe5b602002602001015190506000600190505b82518110156200093a576000838281518110620008fe57fe5b602002602001015190506200092f816001600160a01b0316846001600160a01b03161060656200051160201b60201c565b9150600101620008e5565b50505b50565b6001600160401b03811b1992909216911b1790565b60006200096783831115600162000511565b508082035b92915050565b60006200096c670de0b6b3a76400006200099f61ffff80168562000a5860201b620011151790919060201c565b62000aad60201b620011811790919060201c565b60006200096c670de0b6b3a76400006200099f637fffffff8562000a5860201b620011151790919060201c565b637fffffff811b1992909216911b1790565b61ffff811b1992909216911b1790565b600082820162000a16848210158362000511565b9392505050565b63ffffffff811b1992909216911b1790565b60006001821b198416828462000a4757600062000a4a565b60015b60ff16901b17949350505050565b600082820262000a8084158062000a7857508385838162000a7557fe5b04145b600362000511565b8062000a915760009150506200096c565b670de0b6b3a764000060001982015b046001019150506200096c565b600062000abe821515600462000511565b8262000acd575060006200096c565b670de0b6b3a76400008381029062000af39085838162000ae957fe5b0414600562000511565b82600182038162000aa057fe5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000b4357805160ff191683800117855562000b73565b8280016001018555821562000b73579182015b8281111562000b7357825182559160200191906001019062000b56565b5062000b8192915062000b85565b5090565b5b8082111562000b81576000815560010162000b86565b80516200096c816200100e565b600082601f83011262000bba578081fd5b815162000bd162000bcb8262000fe2565b62000fbb565b81815291506020808301908481018184028601820187101562000bf357600080fd5b60005b8481101562000c1f57815162000c0c816200100e565b8452928201929082019060010162000bf6565b505050505092915050565b600082601f83011262000c3b578081fd5b815162000c4c62000bcb8262000fe2565b81815291506020808301908481018184028601820187101562000c6e57600080fd5b60005b8481101562000c1f5781518452928201929082019060010162000c71565b805180151581146200096c57600080fd5b600082601f83011262000cb1578081fd5b81516001600160401b0381111562000cc7578182fd5b602062000cdd601f8301601f1916820162000fbb565b9250818352848183860101111562000cf457600080fd5b60005b8281101562000d1457848101820151848201830152810162000cf7565b8281111562000d265760008284860101525b50505092915050565b60006020828403121562000d41578081fd5b5051919050565b6000806000806000806000806000806101408b8d03121562000d68578586fd5b62000d748c8c62000b9c565b60208c0151909a506001600160401b038082111562000d91578788fd5b62000d9f8e838f0162000ca0565b9a5060408d015191508082111562000db5578788fd5b62000dc38e838f0162000ca0565b995060608d015191508082111562000dd9578788fd5b62000de78e838f0162000ba9565b985060808d015191508082111562000dfd578788fd5b5062000e0c8d828e0162000c2a565b96505060a08b0151945060c08b0151935060e08b0151925062000e348c6101008d0162000b9c565b915062000e468c6101208d0162000c8f565b90509295989b9194979a5092959850565b60006020828403121562000e69578081fd5b815160ff8116811462000a16578182fd5b6000815180845260208085019450808401835b8381101562000eab5781518752958201959082019060010162000e8d565b509495945050505050565b901515815260200190565b60006060820185835260206060818501528186518084526080860191508288019350845b8181101562000f0d5762000efa855162001002565b8352938301939183019160010162000ee5565b505084810360408601528551808252908201925081860190845b8181101562000f4f5762000f3c835162001002565b8552938301939183019160010162000f27565b509298975050505050505050565b602081016003831062000f6c57fe5b91905290565b90815260200190565b60008582528460208301526080604083015262000f9c608083018562000e7a565b828103606084015262000fb0818562000e7a565b979650505050505050565b6040518181016001600160401b038111828210171562000fda57600080fd5b604052919050565b60006001600160401b0382111562000ff8578081fd5b5060209081020190565b6001600160a01b031690565b6001600160a01b03811681146200093d57600080fd5b60805160a05160601c60c05160e051610100516101205161014051610160516101805160601c6101a0516101c0516101e05160601c6102005160601c6102205160601c6102405160601c61026051610280516102a0516102c051614f126200112a600039806114ae528061207852508061146b52806120175250806114285280611fb65250806113d75280611f5552508061203d5280612f83525080611fdc5280612f41525080611f7b5280612eff525080611f1a5280612ebd525080611712525080610716525080610ab5525080611359525080611335525080610d925250806115de5250806116205250806115ff525080610a91525080610a1b5250614f126000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c806374f3b009116101605780639d2c110c116100d8578063d505accf1161008c578063dd62ed3e11610071578063dd62ed3e14610508578063e01af92c1461051b578063f89f27ed1461052e57610292565b8063d505accf146104e2578063d5c096c4146104f557610292565b8063a9059cbb116100bd578063a9059cbb146104bf578063aaabadc5146104d2578063c0ff1a15146104da57610292565b80639d2c110c14610499578063a457c2d7146104ac57610292565b806387ec68171161012f5780638d928af8116101145780638d928af81461048157806395d89b41146104895780639b02cdde1461049157610292565b806387ec681714610459578063893d20e81461046c57610292565b806374f3b009146103fb5780637beed2201461041c5780637ecebe0014610433578063851c1bb31461044657610292565b806338e9922e1161020e57806350dd6ed9116101c25780636028bfd4116101a75780636028bfd4146103bf578063679aefce146103e057806370a08231146103e857610292565b806350dd6ed9146103a457806355c67628146103b757610292565b806339509351116101f357806339509351146103765780633e5692051461038957806347bc4d921461039c57610292565b806338e9922e1461035b57806338fff2d01461036e57610292565b80631c0de0511161026557806323b872dd1161024a57806323b872dd1461032b578063313ce5671461033e5780633644e5151461035357610292565b80631c0de051146102ff5780631dd746ea1461031657610292565b806306fdde0314610297578063095ea7b3146102b557806316c38b3c146102d557806318160ddd146102ea575b600080fd5b61029f610536565b6040516102ac9190614ddb565b60405180910390f35b6102c86102c3366004614672565b6105eb565b6040516102ac9190614ce2565b6102e86102e3366004614769565b610602565b005b6102f2610616565b6040516102ac9190614d05565b61030761061c565b6040516102ac93929190614ced565b61031e610645565b6040516102ac9190614caa565b6102c86103393660046145bd565b610654565b6103466106e8565b6040516102ac9190614e57565b6102f26106f1565b6102e8610369366004614af5565b6106fb565b6102f2610714565b6102c8610384366004614672565b610738565b6102e8610397366004614b0d565b610773565b6102c86107da565b6102e86103b23660046148a0565b6107ea565b6102f2610808565b6103d26103cd3660046147a1565b610819565b6040516102ac929190614dee565b6102f2610850565b6102f26103f6366004614569565b61087b565b61040e6104093660046147a1565b61089a565b6040516102ac929190614cbd565b61042461093d565b6040516102ac93929190614e07565b6102f2610441366004614569565b6109fc565b6102f2610454366004614844565b610a17565b6103d26104673660046147a1565b610a69565b610474610a8f565b6040516102ac9190614c96565b610474610ab3565b61029f610ad7565b6102f2610b56565b6102f26104a73660046149f9565b610b5c565b6102c86104ba366004614672565b610c43565b6102c86104cd366004614672565b610c81565b610474610c8e565b6102f2610c98565b6102e86104f03660046145fd565b610d5d565b61040e6105033660046147a1565b610ea6565b6102f2610516366004614585565b610fcb565b6102e8610529366004614769565b610ff6565b61031e61101f565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105e05780601f106105b5576101008083540402835291602001916105e0565b820191906000526020600020905b8154815290600101906020018083116105c357829003601f168201915b505050505090505b90565b60006105f83384846111cc565b5060015b92915050565b61060a611234565b6106138161127a565b50565b60025490565b6000806000610629611316565b159250610634611333565b915061063e611357565b9050909192565b606061064f61137b565b905090565b6000806106618533610fcb565b9050610685336001600160a01b038716148061067d5750838210155b61019e6114ec565b6106908585856114fa565b336001600160a01b038616148015906106c957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b156106db576106db85338584036111cc565b60019150505b9392505050565b60055460ff1690565b600061064f6115da565b610703611234565b61070b611677565b6106138161168c565b7f000000000000000000000000000000000000000000000000000000000000000090565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105f891859061076e90866110ca565b6111cc565b61077b611234565b610783611677565b61078b6116f7565b61079d610796611710565b8251611033565b426107a88185611734565b93506107b9838511156101466114ec565b6107cc84846107c661174b565b8561185f565b506107d5611974565b505050565b600b5460009061064f908261197b565b6107f2611234565b6107fa611677565b6108048282611985565b5050565b60085460009061064f9060c0611a9d565b6000606061082f865161082a611710565b611033565b61084489898989898989611aab611b7b611bdc565b97509795505050505050565b600061064f61085d610616565b610875610868610c98565b610870611710565b611d6c565b90611d86565b6001600160a01b0381166000908152602081905260409020545b919050565b606080886108c46108a9610ab3565b6001600160a01b0316336001600160a01b03161460cd6114ec565b6108d96108cf610714565b82146101f46114ec565b60606108e361137b565b90506108ef8882611dce565b60006060806109048e8e8e8e8e8e8a8f611aab565b9250925092506109148d84611e2f565b61091e8285611b7b565b6109288185611b7b565b909550935050505b5097509795505050505050565b600b5460009081906060906109538160c0611e39565b93506109608160e0611e39565b9250600061096c611710565b90508067ffffffffffffffff8111801561098557600080fd5b506040519080825280602002602001820160405280156109af578160200160208202803683370190505b50925060005b818110156109f4576109d56109d08460806010850201611e43565b611e4b565b8482815181106109e157fe5b60209081029190910101526001016109b5565b505050909192565b6001600160a01b031660009081526006602052604090205490565b60007f000000000000000000000000000000000000000000000000000000000000000082604051602001610a4c929190614c20565b604051602081830303815290604052805190602001209050919050565b60006060610a7a865161082a611710565b61084489898989898989611e65611eb5611bdc565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105e05780601f106105b5576101008083540402835291602001916105e0565b60095490565b600080610b6c8560200151611f16565b90506000610b7d8660400151611f16565b9050600086516001811115610b8e57fe5b1415610bf457610ba186606001516120a7565b6060870152610bb085836120c8565b9450610bbc84826120c8565b9350610bcc8660600151836120c8565b60608701526000610bde8787876120d4565b9050610bea81836120fc565b93505050506106e1565b610bfe85836120c8565b9450610c0a84826120c8565b9350610c1a8660600151826120c8565b60608701526000610c2c878787612108565b9050610c388184612120565b9050610bea8161212c565b600080610c503385610fcb565b9050808310610c6a57610c65338560006111cc565b610c77565b610c7733858584036111cc565b5060019392505050565b60006105f83384846114fa565b600061064f612152565b60006060610ca4610ab3565b6001600160a01b031663f94d4668610cba610714565b6040518263ffffffff1660e01b8152600401610cd69190614d05565b60006040518083038186803b158015610cee57600080fd5b505afa158015610d02573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2a919081019061469d565b50915050610d3f81610d3a61137b565b611dce565b6060610d496121cc565b509050610d56818361224a565b9250505090565b610d6b8442111560d16114ec565b6001600160a01b0387166000908152600660209081526040808320549051909291610dc2917f0000000000000000000000000000000000000000000000000000000000000000918c918c918c9188918d9101614d2d565b6040516020818303038152906040528051906020012090506000610de5826122bc565b9050600060018288888860405160008152602001604052604051610e0c9493929190614dbd565b6020604051602081039080840390855afa158015610e2e573d6000803e3d6000fd5b5050604051601f1901519150610e7090506001600160a01b03821615801590610e6857508b6001600160a01b0316826001600160a01b0316145b6101f86114ec565b6001600160a01b038b166000908152600660205260409020600185019055610e998b8b8b6111cc565b5050505050505050505050565b60608088610eb56108a9610ab3565b610ec06108cf610714565b6060610eca61137b565b9050610ed4610616565b610f7b5760006060610ee98d8d8d868b6122d8565b91509150610efe620f424083101560cc6114ec565b610f0c6000620f424061231e565b610f1b8b620f4240840361231e565b610f258184611eb5565b80610f2e611710565b67ffffffffffffffff81118015610f4457600080fd5b50604051908082528060200260200182016040528015610f6e578160200160208202803683370190505b5095509550505050610930565b610f858882611dce565b6000606080610f9a8e8e8e8e8e8e8a8f611e65565b925092509250610faa8c8461231e565b610fb48285611eb5565b610fbe8185611b7b565b9095509350610930915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ffe611234565b611006611677565b61100e6116f7565b61101781612328565b610613611974565b606061064f61174b565b806108048161236a565b61080481831460676114ec565b67ffffffffffffffff811b1992909216911b1790565b60006110668383111560016114ec565b50900390565b60006105fc670de0b6b3a76400006110868461ffff611115565b90611181565b60006105fc670de0b6b3a764000061108684637fffffff611115565b637fffffff811b1992909216911b1790565b61ffff811b1992909216911b1790565b60008282016106e184821015836114ec565b63ffffffff811b1992909216911b1790565b60006001821b1984168284611104576000611107565b60015b60ff16901b17949350505050565b600082820261113984158061113257508385838161112f57fe5b04145b60036114ec565b806111485760009150506105fc565b670de0b6b3a76400007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b046001019150506105fc565b600061119082151560046114ec565b8261119d575060006105fc565b670de0b6b3a7640000838102906111c0908583816111b757fe5b041460056114ec565b82600182038161117557fe5b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611227908590614d05565b60405180910390a3505050565b60006112636000357fffffffff0000000000000000000000000000000000000000000000000000000016610a17565b905061061361127282336123e3565b6101916114ec565b801561129a5761129561128b611333565b42106101936114ec565b6112af565b6112af6112a5611357565b42106101a96114ec565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151790556040517f9e3a5e37224532dea67b89face185703738a228a6e8a23dee546960180d3be649061130b908390614ce2565b60405180910390a150565b6000611320611357565b42118061064f57505060075460ff161590565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60606000611387611710565b905060608167ffffffffffffffff811180156113a257600080fd5b506040519080825280602002602001820160405280156113cc578160200160208202803683370190505b5090508115611414577f00000000000000000000000000000000000000000000000000000000000000008160008151811061140357fe5b60200260200101818152505061141d565b91506105e89050565b6001821115611414577f00000000000000000000000000000000000000000000000000000000000000008160018151811061145457fe5b6020026020010181815250506002821115611414577f00000000000000000000000000000000000000000000000000000000000000008160028151811061149757fe5b6020026020010181815250506003821115611414577f0000000000000000000000000000000000000000000000000000000000000000816003815181106114da57fe5b60200260200101818152505091505090565b8161080457610804816124d3565b6115116001600160a01b03841615156101986114ec565b6115286001600160a01b03831615156101996114ec565b6115338383836107d5565b6001600160a01b03831660009081526020819052604090205461155990826101a0612540565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461158890826110ca565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611227908590614d05565b60007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611647612556565b3060405160200161165c959493929190614d61565b60405160208183030381529060405280519060200120905090565b61168a611682611316565b6101926114ec565b565b61169f64e8d4a5100082101560cb6114ec565b6116b567016345785d8a000082111560ca6114ec565b6008546116c4908260c0611040565b6008556040517fa9ba3ffe0b6c366b81232caab38605a0699ad5398d6cce76f91ee809e322dafc9061130b908390614d05565b6117096002600a5414156101906114ec565b6002600a55565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008183101561174457816106e1565b5090919050565b60606000611757611710565b905060608167ffffffffffffffff8111801561177257600080fd5b5060405190808252806020026020018201604052801561179c578160200160208202803683370190505b50600b549091506117ae60008261255a565b826000815181106117bb57fe5b6020026020010181815250506117d260018261255a565b826001815181106117df57fe5b60200260200101818152505082600214156117fe575091506105e89050565b61180960028261255a565b8260028151811061181657fe5b6020026020010181815250508260031415611835575091506105e89050565b61184060038261255a565b8260038151811061184d57fe5b60209081029190910101525091505090565b600b546000805b83518110156118fb57600084828151811061187d57fe5b6020026020010151905061189d662386f26fc1000082101561012e6114ec565b6118e46118a98261106c565b836010026080016118dd6118cf8a87815181106118c257fe5b602002602001015161108c565b88906004601f8902016110a8565b91906110ba565b93506118f083826110ca565b925050600101611866565b50611912670de0b6b3a764000082146101346114ec565b61192b8560e0611924858a60c06110dc565b91906110dc565b600b556040517f0f3631f9dab08169d1db21c6dc5f32536fb2b0a6b9bb5330d71c52132f968be090611964908890889088908890614e26565b60405180910390a1505050505050565b6001600a55565b1c60019081161490565b600061198f610714565b9050600061199b610ab3565b6001600160a01b031663b05f8e4883866040518363ffffffff1660e01b81526004016119c8929190614da6565b60806040518083038186803b1580156119e057600080fd5b505afa1580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a189190614b5b565b6040517f18e736d40000000000000000000000000000000000000000000000000000000081529094506001600160a01b03851693506318e736d49250611a65915085908790600401614d8d565b600060405180830381600087803b158015611a7f57600080fd5b505af1158015611a93573d6000803e3d6000fd5b5050505050505050565b1c67ffffffffffffffff1690565b600060608060606000611abc6121cc565b91509150611ac8611316565b15611b00576000611ad9838c61224a565b9050611aeb8b8484600954858e6125b0565b9350611afa8b8561105661265f565b50611b4c565b611b08611710565b67ffffffffffffffff81118015611b1e57600080fd5b50604051908082528060200260200182016040528015611b48578160200160208202803683370190505b5092505b611b588a8389896126ca565b9095509350611b688a8584612739565b6009555050985098509895505050505050565b60005b611b86611710565b8110156107d557611bbd838281518110611b9c57fe5b6020026020010151838381518110611bb057fe5b6020026020010151611d86565b838281518110611bc957fe5b6020908102919091010152600101611b7e565b333014611ccb576000306001600160a01b0316600036604051611c00929190614c50565b6000604051808303816000865af19150503d8060008114611c3d576040519150601f19603f3d011682016040523d82523d6000602084013e611c42565b606091505b505090508060008114611c5157fe5b60046000803e6000517fffffffff00000000000000000000000000000000000000000000000000000000167f43adbafb000000000000000000000000000000000000000000000000000000008114611cad573d6000803e3d6000fd5b506020600460003e604060205260243d03602460403e601c3d016000f35b6060611cd561137b565b9050611ce18782611dce565b60006060611cf98c8c8c8c8c8c898d8d63ffffffff16565b5091509150611d0c81848663ffffffff16565b8051601f1982018390526343adbafb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08301526020027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82016044820181fd5b60008282026106e184158061113257508385838161112f57fe5b6000611d9582151560046114ec565b82611da2575060006105fc565b670de0b6b3a764000083810290611dbc908583816111b757fe5b828181611dc557fe5b049150506105fc565b60005b611dd9611710565b8110156107d557611e10838281518110611def57fe5b6020026020010151838381518110611e0357fe5b6020026020010151612752565b838281518110611e1c57fe5b6020908102919091010152600101611dd1565b610804828261277e565b1c63ffffffff1690565b1c61ffff1690565b60006105fc61ffff61108684670de0b6b3a7640000611115565b6000606080611e91611e75610a8f565b6001600160a01b03168b6001600160a01b0316146101486114ec565b611ea18b8b8b8b8b8b8b8b61283a565b925092509250985098509895505050505050565b60005b611ec0611710565b8110156107d557611ef7838281518110611ed657fe5b6020026020010151838381518110611eea57fe5b6020026020010151611181565b838281518110611f0357fe5b6020908102919091010152600101611eb8565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415611f7957507f0000000000000000000000000000000000000000000000000000000000000000610895565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415611fda57507f0000000000000000000000000000000000000000000000000000000000000000610895565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561203b57507f0000000000000000000000000000000000000000000000000000000000000000610895565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561209c57507f0000000000000000000000000000000000000000000000000000000000000000610895565b6108956101356124d3565b6000806120bc6120b5610808565b8490611115565b90506106e18382611056565b60006106e18383612752565b60006120e96120e16107da565b6101476114ec565b6120f48484846128c0565b949350505050565b60006106e18383611d86565b60006121156120e16107da565b6120f48484846128f3565b60006106e18383611181565b60006105fc61214b61213c610808565b670de0b6b3a764000090611056565b8390611181565b600061215c610ab3565b6001600160a01b031663aaabadc56040518163ffffffff1660e01b815260040160206040518083038186803b15801561219457600080fd5b505afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f9190614884565b606060006121d861174b565b9150600090506000826000815181106121ed57fe5b602002602001015190506000600190505b8351811015612244578184828151811061221457fe5b6020026020010151111561223c5780925083818151811061223157fe5b602002602001015191505b6001016121fe565b50509091565b670de0b6b3a764000060005b83518110156122ac576122a261229b85838151811061227157fe5b602002602001015185848151811061228557fe5b602002602001015161292690919063ffffffff16565b8390612752565b9150600101612256565b506105fc600082116101376114ec565b60006122c66115da565b82604051602001610a4c929190614c60565b600060606123036122e7610a8f565b6001600160a01b0316876001600160a01b0316146101486114ec565b6123108787878787612975565b915091509550959350505050565b6108048282612a09565b600b54612337908260006110ee565b600b556040517f5a9e84f78f7957cb4ed7478eb0fcad35ee4ecbe2e0f298420b28a3955392573f9061130b908390614ce2565b60028151101561237957610613565b60008160008151811061238857fe5b602002602001015190506000600190505b82518110156107d55760008382815181106123b057fe5b602002602001015190506123d9816001600160a01b0316846001600160a01b03161060656114ec565b9150600101612399565b600073ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b612402610a8f565b6001600160a01b03161415801561241d575061241d83612a97565b156124455761242a610a8f565b6001600160a01b0316336001600160a01b03161490506105fc565b61244d612152565b6001600160a01b0316639be2a8848484306040518463ffffffff1660e01b815260040161247c93929190614d0e565b60206040518083038186803b15801561249457600080fd5b505afa1580156124a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cc9190614785565b90506105fc565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b600061254f84841115836114ec565b5050900390565b4690565b600080612575612570846004601f880201612b05565b612b0f565b9050600061258c6109d08560806010890201611e43565b9050600061259985612b2b565b90506125a6838383612baa565b9695505050505050565b6060806125bb611710565b67ffffffffffffffff811180156125d157600080fd5b506040519080825280602002602001820160405280156125fb578160200160208202803683370190505b5090508261260a5790506125a6565b61263d88878151811061261957fe5b602002602001015188888151811061262d57fe5b6020026020010151878787612c1e565b81878151811061264957fe5b6020908102919091010152979650505050505050565b60005b61266a611710565b8110156126c4576126a584828151811061268057fe5b602002602001015184838151811061269457fe5b60200260200101518463ffffffff16565b8482815181106126b157fe5b6020908102919091010152600101612662565b50505050565b6000606060006126d984612ca6565b905060008160028111156126e957fe5b1415612704576126fa878786612cbc565b9250925050612730565b600181600281111561271257fe5b1415612722576126fa8785612d9f565b6126fa87878787612dd1565b505b94509492505050565b6000612748848461105661265f565b6120f4828561224a565b600082820261276c84158061113257508385838161112f57fe5b670de0b6b3a764000090049392505050565b6127956001600160a01b038316151561019b6114ec565b6127a1826000836107d5565b6001600160a01b0382166000908152602081905260409020546127c790826101a1612540565b6001600160a01b0383166000908152602081905260409020556002546127ed9082612e40565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282e908590614d05565b60405180910390a35050565b6000606080612847611677565b606060006128536121cc565b915091506000612863838c61224a565b905060606128778c8585600954868f6125b0565b90506128868c8261105661265f565b600060606128968e878d8d612e4e565b915091506128a58e8288612ea9565b60095590975095509350505050985098509895505050505050565b60006128ca611677565b6120f4836128db8660200151612eb8565b846128e98860400151612eb8565b8860600151612fda565b60006128fd611677565b6120f48361290e8660200151612eb8565b8461291c8860400151612eb8565b8860600151613047565b60008061293384846130bd565b9050600061294d61294683612710611115565b60016110ca565b905080821015612962576000925050506105fc565b61296c8282611056565b925050506105fc565b60006060612981611677565b600061298c84612ca6565b90506129a7600082600281111561299f57fe5b1460ce6114ec565b60606129b2856131f0565b90506129bf610796611710565b6129c98187611dce565b60606129d36121cc565b50905060006129e2828461224a565b905060006129f282610870611710565b600992909255509a91995090975050505050505050565b612a15600083836107d5565b600254612a2290826110ca565b6002556001600160a01b038216600090815260208190526040902054612a4890826110ca565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282e908590614d05565b6000612ac27fe01af92c00000000000000000000000000000000000000000000000000000000610a17565b821480612af65750612af37f3e56920500000000000000000000000000000000000000000000000000000000610a17565b82145b806105fc57506105fc82613206565b1c637fffffff1690565b60006105fc637fffffff61108684670de0b6b3a7640000611115565b60004281612b3a8460c0611e39565b90506000612b498560e0611e39565b905080831115612b6657670de0b6b3a76400009350505050610895565b81831015612b7a5760009350505050610895565b8181038284038115612b9557612b908183611d86565b612b9f565b670de0b6b3a76400005b979650505050505050565b6000811580612bb857508284145b15612bc45750826106e1565b670de0b6b3a76400008210612bda5750816106e1565b82841115612c04576000612bf083858703612752565b9050612bfc8582611056565b9150506106e1565b6000612c1283868603612752565b9050612bfc85826110ca565b6000838311612c2f57506000612c9d565b6000612c3b8585611181565b90506000612c51670de0b6b3a764000088611d86565b9050612c65826709b6e64a8ec60000611734565b91506000612c73838361326a565b90506000612c8a612c8383613296565b8b90612752565b9050612c968187612752565b9450505050505b95945050505050565b6000818060200190518101906105fc91906148ee565b60006060612cc8611677565b600080612cd4856132bc565b91509150612cec612ce3611710565b821060646114ec565b6060612cf6611710565b67ffffffffffffffff81118015612d0c57600080fd5b50604051908082528060200260200182016040528015612d36578160200160208202803683370190505b509050612d7a888381518110612d4857fe5b6020026020010151888481518110612d5c57fe5b602002602001015185612d6d610616565b612d75610808565b6132de565b818381518110612d8657fe5b6020908102919091010152919791965090945050505050565b600060606000612dae8461339e565b90506060612dc48683612dbf610616565b6133b4565b9196919550909350505050565b60006060612ddd611677565b60606000612dea85613466565b91509150612dfb825161082a611710565b612e058287611dce565b6000612e22898985612e15610616565b612e1d610808565b61347e565b9050612e328282111560cf6114ec565b989197509095505050505050565b60006106e183836001612540565b600060606000612e5d84612ca6565b90506001816002811115612e6d57fe5b1415612e7f576126fa878787876136ac565b6002816002811115612e8d57fe5b1415612e9e576126fa878786613709565b61272e6101366124d3565b600061274884846110ca61265f565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612efd57506000612fce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612f3f57506001612fce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612f8157506002612fce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612fc357506003612fce565b612fce6101356124d3565b6106e181600b5461255a565b6000612ffc612ff187670429d069189e0000612752565b8311156101306114ec565b600061300887846110ca565b905060006130168883611181565b905060006130248887611d86565b90506000613032838361326a565b9050612c9661304082613296565b8990612752565b600061306961305e85670429d069189e0000612752565b8311156101316114ec565b600061307f6130788685611056565b8690611181565b9050600061308d8588611181565b9050600061309b838361326a565b905060006130b182670de0b6b3a7640000611056565b9050612c968a82611115565b6000816130d35750670de0b6b3a76400006105fc565b826130e0575060006105fc565b61310d7f8000000000000000000000000000000000000000000000000000000000000000841060066114ec565b82613133770bce5086492111aea88f4bb1ca6bcf584181ea8059f76532841060076114ec565b826000670c7d713b49da0000831380156131545750670f43fc2c04ee000083125b1561318b576000613164846137b6565b9050670de0b6b3a764000080820784020583670de0b6b3a764000083050201915050613199565b81613195846138ed565b0290505b670de0b6b3a764000090056131e77ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc000082128015906131e0575068070c1cc73b00c800008213155b60086114ec565b6125a681613c8d565b6060818060200190518101906106e191906149b4565b60006132317f38e9922e00000000000000000000000000000000000000000000000000000000610a17565b8214806105fc57506132627f50dd6ed900000000000000000000000000000000000000000000000000000000610a17565b909114919050565b60008061327784846130bd565b9050600061328a61294683612710611115565b9050612c9d82826110ca565b6000670de0b6b3a764000082106132ae5760006105fc565b50670de0b6b3a76400000390565b600080828060200190518101906132d3919061497e565b909590945092505050565b6000806132ef846110868188611056565b90506133086709b6e64a8ec600008210156101326114ec565b600061332661331f670de0b6b3a764000089611d86565b839061326a565b9050600061333d61333683613296565b8a90612752565b9050600061334a89613296565b905060006133588383611115565b905060006133668483611056565b905061338e613387613380670de0b6b3a76400008b611056565b8490612752565b82906110ca565b9c9b505050505050505050505050565b6000818060200190518101906106e19190614951565b606060006133c28484611d86565b90506060855167ffffffffffffffff811180156133de57600080fd5b50604051908082528060200260200182016040528015613408578160200160208202803683370190505b50905060005b865181101561345c5761343d8388838151811061342757fe5b602002602001015161275290919063ffffffff16565b82828151811061344957fe5b602090810291909101015260010161340e565b5095945050505050565b60606000828060200190518101906132d3919061490a565b60006060845167ffffffffffffffff8111801561349a57600080fd5b506040519080825280602002602001820160405280156134c4578160200160208202803683370190505b5090506000805b8851811015613589576135248982815181106134e357fe5b60200260200101516110868984815181106134fa57fe5b60200260200101518c858151811061350e57fe5b602002602001015161105690919063ffffffff16565b83828151811061353057fe5b60200260200101818152505061357f61357889838151811061354e57fe5b602002602001015185848151811061356257fe5b602002602001015161111590919063ffffffff16565b83906110ca565b91506001016134cb565b50670de0b6b3a764000060005b895181101561368b5760008482815181106135ad57fe5b602002602001015184111561360d5760006135d66135ca86613296565b8d858151811061342757fe5b905060006135ea828c868151811061350e57fe5b905061360461357861214b670de0b6b3a76400008c611056565b92505050613624565b88828151811061361957fe5b602002602001015190505b600061364d8c848151811061363557fe5b6020026020010151610875848f878151811061350e57fe5b905061367f6136788c858151811061366157fe5b60200260200101518361292690919063ffffffff16565b8590612752565b93505050600101613596565b5061369f61369882613296565b8790611115565b9998505050505050505050565b600060608060006136bc85613466565b915091506136d26136cb611710565b8351611033565b6136dc8287611dce565b60006136f98989856136ec610616565b6136f4610808565b61415d565b9050612e328282101560d06114ec565b60006060600080613719856132bc565b91509150613728612ce3611710565b6060613732611710565b67ffffffffffffffff8111801561374857600080fd5b50604051908082528060200260200182016040528015613772578160200160208202803683370190505b509050612d7a88838151811061378457fe5b602002602001015188848151811061379857fe5b6020026020010151856137a9610616565b6137b1610808565b61436f565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401907fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f0000000008501028161380257fe5b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f826002919005919091010295945050505050565b6000670de0b6b3a764000082121561392a57613920826ec097ce7bc90715b34b9f10000000008161391a57fe5b056138ed565b6000039050610895565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c0000000000000831261397b57770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e00000083126139b3576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff008400083126139fb576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613a36576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613a6d57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613aa457690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613ad95768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613b0457680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312613b39576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312613b6e576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312613ba2576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312613bd6576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281613bf957fe5b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000613cd27ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc00008312158015613ccb575068070c1cc73b00c800008313155b60096114ec565b6000821215613d0657613ce782600003613c8d565b6ec097ce7bc90715b34b9f100000000081613cfe57fe5b059050610895565b60006806f05b59d3b20000008312613d5c57507ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e00000090910190770195e54c5dd42177f53a27172fa9ec630262827000000000613da8565b6803782dace9d90000008312613da457507ffffffffffffffffffffffffffffffffffffffffffffffffc87d2531627000000909101906b1425982cf597cd205cef7380613da8565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412613e0e577fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000009093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412613e60577fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000009093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412613eb0577fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000009093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412613f00577fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000009093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412613f4f577ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e000009093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412613f9e577ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf000009093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412613fed577ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e7800009093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c40000841261403c577ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c00009093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60006060845167ffffffffffffffff8111801561417957600080fd5b506040519080825280602002602001820160405280156141a3578160200160208202803683370190505b5090506000805b885181101561424b576142038982815181106141c257fe5b60200260200101516108758984815181106141d957fe5b60200260200101518c85815181106141ed57fe5b60200260200101516110ca90919063ffffffff16565b83828151811061420f57fe5b60200260200101818152505061424161357889838151811061422d57fe5b602002602001015185848151811061342757fe5b91506001016141aa565b50670de0b6b3a764000060005b895181101561432c5760008385838151811061427057fe5b602002602001015111156142cc5760006142956135ca86670de0b6b3a7640000611056565b905060006142a9828c868151811061350e57fe5b90506142c361357861229b670de0b6b3a76400008c611056565b925050506142e3565b8882815181106142d857fe5b602002602001015190505b600061430c8c84815181106142f457fe5b6020026020010151610875848f87815181106141ed57fe5b90506143206136788c858151811061366157fe5b93505050600101614258565b50670de0b6b3a76400008111156143635761435961435282670de0b6b3a7640000611056565b8790612752565b9350505050612c9d565b60009350505050612c9d565b6000806143808461108681886110ca565b90506143996729a2241af62c00008211156101336114ec565b60006143b061331f670de0b6b3a764000089611181565b905060006143d06143c983670de0b6b3a7640000611056565b8a90611115565b905060006143dd89613296565b905060006143eb8383611115565b905060006143f98483611056565b905061338e613387614413670de0b6b3a76400008b611056565b8490611181565b80356105fc81614eac565b600082601f830112614435578081fd5b813561444861444382614e8c565b614e65565b81815291506020808301908481018184028601820187101561446957600080fd5b60005b848110156144885781358452928201929082019060010161446c565b505050505092915050565b600082601f8301126144a3578081fd5b81516144b161444382614e8c565b8181529150602080830190848101818402860182018710156144d257600080fd5b60005b84811015614488578151845292820192908201906001016144d5565b600082601f830112614501578081fd5b813567ffffffffffffffff811115614517578182fd5b61452a6020601f19601f84011601614e65565b915080825283602082850101111561454157600080fd5b8060208401602084013760009082016020015292915050565b8035600281106105fc57600080fd5b60006020828403121561457a578081fd5b81356106e181614eac565b60008060408385031215614597578081fd5b82356145a281614eac565b915060208301356145b281614eac565b809150509250929050565b6000806000606084860312156145d1578081fd5b83356145dc81614eac565b925060208401356145ec81614eac565b929592945050506040919091013590565b600080600080600080600060e0888a031215614617578283fd5b873561462281614eac565b9650602088013561463281614eac565b95506040880135945060608801359350608088013560ff81168114614655578384fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215614684578182fd5b823561468f81614eac565b946020939093013593505050565b6000806000606084860312156146b1578081fd5b835167ffffffffffffffff808211156146c8578283fd5b818601915086601f8301126146db578283fd5b81516146e961444382614e8c565b80828252602080830192508086018b828387028901011115614709578788fd5b8796505b8487101561473457805161472081614eac565b84526001969096019592810192810161470d565b50890151909750935050508082111561474b578283fd5b5061475886828701614493565b925050604084015190509250925092565b60006020828403121561477a578081fd5b81356106e181614ec1565b600060208284031215614796578081fd5b81516106e181614ec1565b600080600080600080600060e0888a0312156147bb578081fd5b8735965060208801356147cd81614eac565b955060408801356147dd81614eac565b9450606088013567ffffffffffffffff808211156147f9578283fd5b6148058b838c01614425565b955060808a0135945060a08a0135935060c08a0135915080821115614828578283fd5b506148358a828b016144f1565b91505092959891949750929550565b600060208284031215614855578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146106e1578182fd5b600060208284031215614895578081fd5b81516106e181614eac565b600080604083850312156148b2578182fd5b82356148bd81614eac565b9150602083013567ffffffffffffffff8111156148d8578182fd5b6148e4858286016144f1565b9150509250929050565b6000602082840312156148ff578081fd5b81516106e181614ecf565b60008060006060848603121561491e578081fd5b835161492981614ecf565b602085015190935067ffffffffffffffff811115614945578182fd5b61475886828701614493565b60008060408385031215614963578182fd5b825161496e81614ecf565b6020939093015192949293505050565b600080600060608486031215614992578081fd5b835161499d81614ecf565b602085015160409095015190969495509392505050565b600080604083850312156149c6578182fd5b82516149d181614ecf565b602084015190925067ffffffffffffffff8111156149ed578182fd5b6148e485828601614493565b600080600060608486031215614a0d578081fd5b833567ffffffffffffffff80821115614a24578283fd5b8186019150610120808389031215614a3a578384fd5b614a4381614e65565b9050614a4f888461455a565b8152614a5e886020850161441a565b6020820152614a70886040850161441a565b6040820152606083013560608201526080830135608082015260a083013560a0820152614aa08860c0850161441a565b60c0820152614ab28860e0850161441a565b60e08201526101008084013583811115614aca578586fd5b614ad68a8287016144f1565b9183019190915250976020870135975060409096013595945050505050565b600060208284031215614b06578081fd5b5035919050565b600080600060608486031215614b21578081fd5b8335925060208401359150604084013567ffffffffffffffff811115614b45578182fd5b614b5186828701614425565b9150509250925092565b60008060008060808587031215614b70578182fd5b8451935060208501519250604085015191506060850151614b9081614eac565b939692955090935050565b6000815180845260208085019450808401835b83811015614bca57815187529582019590820190600101614bae565b509495945050505050565b60008151808452815b81811015614bfa57602081850181015186830182015201614bde565b81811115614c0b5782602083870101525b50601f01601f19169290920160200192915050565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b6000828483379101908152919050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6000602082526106e16020830184614b9b565b600060408252614cd06040830185614b9b565b8281036020840152612c9d8185614b9b565b901515815260200190565b92151583526020830191909152604082015260600190565b90815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6000838252604060208301526120f46040830184614bd5565b9182526001600160a01b0316602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526106e16020830184614bd5565b6000838252604060208301526120f46040830184614b9b565b600084825283602083015260606040830152612c9d6060830184614b9b565b600085825284602083015260806040830152614e456080830185614b9b565b8281036060840152612b9f8185614b9b565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715614e8457600080fd5b604052919050565b600067ffffffffffffffff821115614ea2578081fd5b5060209081020190565b6001600160a01b038116811461061357600080fd5b801515811461061357600080fd5b6003811061061357600080fdfea26469706673582212209f2ce89236689508bd421f0223dccc478ec87629b6f12d022774237b4843da8964736f6c63430007010033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102925760003560e01c806374f3b009116101605780639d2c110c116100d8578063d505accf1161008c578063dd62ed3e11610071578063dd62ed3e14610508578063e01af92c1461051b578063f89f27ed1461052e57610292565b8063d505accf146104e2578063d5c096c4146104f557610292565b8063a9059cbb116100bd578063a9059cbb146104bf578063aaabadc5146104d2578063c0ff1a15146104da57610292565b80639d2c110c14610499578063a457c2d7146104ac57610292565b806387ec68171161012f5780638d928af8116101145780638d928af81461048157806395d89b41146104895780639b02cdde1461049157610292565b806387ec681714610459578063893d20e81461046c57610292565b806374f3b009146103fb5780637beed2201461041c5780637ecebe0014610433578063851c1bb31461044657610292565b806338e9922e1161020e57806350dd6ed9116101c25780636028bfd4116101a75780636028bfd4146103bf578063679aefce146103e057806370a08231146103e857610292565b806350dd6ed9146103a457806355c67628146103b757610292565b806339509351116101f357806339509351146103765780633e5692051461038957806347bc4d921461039c57610292565b806338e9922e1461035b57806338fff2d01461036e57610292565b80631c0de0511161026557806323b872dd1161024a57806323b872dd1461032b578063313ce5671461033e5780633644e5151461035357610292565b80631c0de051146102ff5780631dd746ea1461031657610292565b806306fdde0314610297578063095ea7b3146102b557806316c38b3c146102d557806318160ddd146102ea575b600080fd5b61029f610536565b6040516102ac9190614ddb565b60405180910390f35b6102c86102c3366004614672565b6105eb565b6040516102ac9190614ce2565b6102e86102e3366004614769565b610602565b005b6102f2610616565b6040516102ac9190614d05565b61030761061c565b6040516102ac93929190614ced565b61031e610645565b6040516102ac9190614caa565b6102c86103393660046145bd565b610654565b6103466106e8565b6040516102ac9190614e57565b6102f26106f1565b6102e8610369366004614af5565b6106fb565b6102f2610714565b6102c8610384366004614672565b610738565b6102e8610397366004614b0d565b610773565b6102c86107da565b6102e86103b23660046148a0565b6107ea565b6102f2610808565b6103d26103cd3660046147a1565b610819565b6040516102ac929190614dee565b6102f2610850565b6102f26103f6366004614569565b61087b565b61040e6104093660046147a1565b61089a565b6040516102ac929190614cbd565b61042461093d565b6040516102ac93929190614e07565b6102f2610441366004614569565b6109fc565b6102f2610454366004614844565b610a17565b6103d26104673660046147a1565b610a69565b610474610a8f565b6040516102ac9190614c96565b610474610ab3565b61029f610ad7565b6102f2610b56565b6102f26104a73660046149f9565b610b5c565b6102c86104ba366004614672565b610c43565b6102c86104cd366004614672565b610c81565b610474610c8e565b6102f2610c98565b6102e86104f03660046145fd565b610d5d565b61040e6105033660046147a1565b610ea6565b6102f2610516366004614585565b610fcb565b6102e8610529366004614769565b610ff6565b61031e61101f565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105e05780601f106105b5576101008083540402835291602001916105e0565b820191906000526020600020905b8154815290600101906020018083116105c357829003601f168201915b505050505090505b90565b60006105f83384846111cc565b5060015b92915050565b61060a611234565b6106138161127a565b50565b60025490565b6000806000610629611316565b159250610634611333565b915061063e611357565b9050909192565b606061064f61137b565b905090565b6000806106618533610fcb565b9050610685336001600160a01b038716148061067d5750838210155b61019e6114ec565b6106908585856114fa565b336001600160a01b038616148015906106c957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b156106db576106db85338584036111cc565b60019150505b9392505050565b60055460ff1690565b600061064f6115da565b610703611234565b61070b611677565b6106138161168c565b7f000000000000000000000000000000000000000000000000000000000000000090565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105f891859061076e90866110ca565b6111cc565b61077b611234565b610783611677565b61078b6116f7565b61079d610796611710565b8251611033565b426107a88185611734565b93506107b9838511156101466114ec565b6107cc84846107c661174b565b8561185f565b506107d5611974565b505050565b600b5460009061064f908261197b565b6107f2611234565b6107fa611677565b6108048282611985565b5050565b60085460009061064f9060c0611a9d565b6000606061082f865161082a611710565b611033565b61084489898989898989611aab611b7b611bdc565b97509795505050505050565b600061064f61085d610616565b610875610868610c98565b610870611710565b611d6c565b90611d86565b6001600160a01b0381166000908152602081905260409020545b919050565b606080886108c46108a9610ab3565b6001600160a01b0316336001600160a01b03161460cd6114ec565b6108d96108cf610714565b82146101f46114ec565b60606108e361137b565b90506108ef8882611dce565b60006060806109048e8e8e8e8e8e8a8f611aab565b9250925092506109148d84611e2f565b61091e8285611b7b565b6109288185611b7b565b909550935050505b5097509795505050505050565b600b5460009081906060906109538160c0611e39565b93506109608160e0611e39565b9250600061096c611710565b90508067ffffffffffffffff8111801561098557600080fd5b506040519080825280602002602001820160405280156109af578160200160208202803683370190505b50925060005b818110156109f4576109d56109d08460806010850201611e43565b611e4b565b8482815181106109e157fe5b60209081029190910101526001016109b5565b505050909192565b6001600160a01b031660009081526006602052604090205490565b60007f000000000000000000000000000000000000000000000000000000000000000082604051602001610a4c929190614c20565b604051602081830303815290604052805190602001209050919050565b60006060610a7a865161082a611710565b61084489898989898989611e65611eb5611bdc565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105e05780601f106105b5576101008083540402835291602001916105e0565b60095490565b600080610b6c8560200151611f16565b90506000610b7d8660400151611f16565b9050600086516001811115610b8e57fe5b1415610bf457610ba186606001516120a7565b6060870152610bb085836120c8565b9450610bbc84826120c8565b9350610bcc8660600151836120c8565b60608701526000610bde8787876120d4565b9050610bea81836120fc565b93505050506106e1565b610bfe85836120c8565b9450610c0a84826120c8565b9350610c1a8660600151826120c8565b60608701526000610c2c878787612108565b9050610c388184612120565b9050610bea8161212c565b600080610c503385610fcb565b9050808310610c6a57610c65338560006111cc565b610c77565b610c7733858584036111cc565b5060019392505050565b60006105f83384846114fa565b600061064f612152565b60006060610ca4610ab3565b6001600160a01b031663f94d4668610cba610714565b6040518263ffffffff1660e01b8152600401610cd69190614d05565b60006040518083038186803b158015610cee57600080fd5b505afa158015610d02573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2a919081019061469d565b50915050610d3f81610d3a61137b565b611dce565b6060610d496121cc565b509050610d56818361224a565b9250505090565b610d6b8442111560d16114ec565b6001600160a01b0387166000908152600660209081526040808320549051909291610dc2917f0000000000000000000000000000000000000000000000000000000000000000918c918c918c9188918d9101614d2d565b6040516020818303038152906040528051906020012090506000610de5826122bc565b9050600060018288888860405160008152602001604052604051610e0c9493929190614dbd565b6020604051602081039080840390855afa158015610e2e573d6000803e3d6000fd5b5050604051601f1901519150610e7090506001600160a01b03821615801590610e6857508b6001600160a01b0316826001600160a01b0316145b6101f86114ec565b6001600160a01b038b166000908152600660205260409020600185019055610e998b8b8b6111cc565b5050505050505050505050565b60608088610eb56108a9610ab3565b610ec06108cf610714565b6060610eca61137b565b9050610ed4610616565b610f7b5760006060610ee98d8d8d868b6122d8565b91509150610efe620f424083101560cc6114ec565b610f0c6000620f424061231e565b610f1b8b620f4240840361231e565b610f258184611eb5565b80610f2e611710565b67ffffffffffffffff81118015610f4457600080fd5b50604051908082528060200260200182016040528015610f6e578160200160208202803683370190505b5095509550505050610930565b610f858882611dce565b6000606080610f9a8e8e8e8e8e8e8a8f611e65565b925092509250610faa8c8461231e565b610fb48285611eb5565b610fbe8185611b7b565b9095509350610930915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ffe611234565b611006611677565b61100e6116f7565b61101781612328565b610613611974565b606061064f61174b565b806108048161236a565b61080481831460676114ec565b67ffffffffffffffff811b1992909216911b1790565b60006110668383111560016114ec565b50900390565b60006105fc670de0b6b3a76400006110868461ffff611115565b90611181565b60006105fc670de0b6b3a764000061108684637fffffff611115565b637fffffff811b1992909216911b1790565b61ffff811b1992909216911b1790565b60008282016106e184821015836114ec565b63ffffffff811b1992909216911b1790565b60006001821b1984168284611104576000611107565b60015b60ff16901b17949350505050565b600082820261113984158061113257508385838161112f57fe5b04145b60036114ec565b806111485760009150506105fc565b670de0b6b3a76400007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b046001019150506105fc565b600061119082151560046114ec565b8261119d575060006105fc565b670de0b6b3a7640000838102906111c0908583816111b757fe5b041460056114ec565b82600182038161117557fe5b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611227908590614d05565b60405180910390a3505050565b60006112636000357fffffffff0000000000000000000000000000000000000000000000000000000016610a17565b905061061361127282336123e3565b6101916114ec565b801561129a5761129561128b611333565b42106101936114ec565b6112af565b6112af6112a5611357565b42106101a96114ec565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151790556040517f9e3a5e37224532dea67b89face185703738a228a6e8a23dee546960180d3be649061130b908390614ce2565b60405180910390a150565b6000611320611357565b42118061064f57505060075460ff161590565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60606000611387611710565b905060608167ffffffffffffffff811180156113a257600080fd5b506040519080825280602002602001820160405280156113cc578160200160208202803683370190505b5090508115611414577f00000000000000000000000000000000000000000000000000000000000000008160008151811061140357fe5b60200260200101818152505061141d565b91506105e89050565b6001821115611414577f00000000000000000000000000000000000000000000000000000000000000008160018151811061145457fe5b6020026020010181815250506002821115611414577f00000000000000000000000000000000000000000000000000000000000000008160028151811061149757fe5b6020026020010181815250506003821115611414577f0000000000000000000000000000000000000000000000000000000000000000816003815181106114da57fe5b60200260200101818152505091505090565b8161080457610804816124d3565b6115116001600160a01b03841615156101986114ec565b6115286001600160a01b03831615156101996114ec565b6115338383836107d5565b6001600160a01b03831660009081526020819052604090205461155990826101a0612540565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461158890826110ca565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611227908590614d05565b60007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611647612556565b3060405160200161165c959493929190614d61565b60405160208183030381529060405280519060200120905090565b61168a611682611316565b6101926114ec565b565b61169f64e8d4a5100082101560cb6114ec565b6116b567016345785d8a000082111560ca6114ec565b6008546116c4908260c0611040565b6008556040517fa9ba3ffe0b6c366b81232caab38605a0699ad5398d6cce76f91ee809e322dafc9061130b908390614d05565b6117096002600a5414156101906114ec565b6002600a55565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008183101561174457816106e1565b5090919050565b60606000611757611710565b905060608167ffffffffffffffff8111801561177257600080fd5b5060405190808252806020026020018201604052801561179c578160200160208202803683370190505b50600b549091506117ae60008261255a565b826000815181106117bb57fe5b6020026020010181815250506117d260018261255a565b826001815181106117df57fe5b60200260200101818152505082600214156117fe575091506105e89050565b61180960028261255a565b8260028151811061181657fe5b6020026020010181815250508260031415611835575091506105e89050565b61184060038261255a565b8260038151811061184d57fe5b60209081029190910101525091505090565b600b546000805b83518110156118fb57600084828151811061187d57fe5b6020026020010151905061189d662386f26fc1000082101561012e6114ec565b6118e46118a98261106c565b836010026080016118dd6118cf8a87815181106118c257fe5b602002602001015161108c565b88906004601f8902016110a8565b91906110ba565b93506118f083826110ca565b925050600101611866565b50611912670de0b6b3a764000082146101346114ec565b61192b8560e0611924858a60c06110dc565b91906110dc565b600b556040517f0f3631f9dab08169d1db21c6dc5f32536fb2b0a6b9bb5330d71c52132f968be090611964908890889088908890614e26565b60405180910390a1505050505050565b6001600a55565b1c60019081161490565b600061198f610714565b9050600061199b610ab3565b6001600160a01b031663b05f8e4883866040518363ffffffff1660e01b81526004016119c8929190614da6565b60806040518083038186803b1580156119e057600080fd5b505afa1580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a189190614b5b565b6040517f18e736d40000000000000000000000000000000000000000000000000000000081529094506001600160a01b03851693506318e736d49250611a65915085908790600401614d8d565b600060405180830381600087803b158015611a7f57600080fd5b505af1158015611a93573d6000803e3d6000fd5b5050505050505050565b1c67ffffffffffffffff1690565b600060608060606000611abc6121cc565b91509150611ac8611316565b15611b00576000611ad9838c61224a565b9050611aeb8b8484600954858e6125b0565b9350611afa8b8561105661265f565b50611b4c565b611b08611710565b67ffffffffffffffff81118015611b1e57600080fd5b50604051908082528060200260200182016040528015611b48578160200160208202803683370190505b5092505b611b588a8389896126ca565b9095509350611b688a8584612739565b6009555050985098509895505050505050565b60005b611b86611710565b8110156107d557611bbd838281518110611b9c57fe5b6020026020010151838381518110611bb057fe5b6020026020010151611d86565b838281518110611bc957fe5b6020908102919091010152600101611b7e565b333014611ccb576000306001600160a01b0316600036604051611c00929190614c50565b6000604051808303816000865af19150503d8060008114611c3d576040519150601f19603f3d011682016040523d82523d6000602084013e611c42565b606091505b505090508060008114611c5157fe5b60046000803e6000517fffffffff00000000000000000000000000000000000000000000000000000000167f43adbafb000000000000000000000000000000000000000000000000000000008114611cad573d6000803e3d6000fd5b506020600460003e604060205260243d03602460403e601c3d016000f35b6060611cd561137b565b9050611ce18782611dce565b60006060611cf98c8c8c8c8c8c898d8d63ffffffff16565b5091509150611d0c81848663ffffffff16565b8051601f1982018390526343adbafb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08301526020027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82016044820181fd5b60008282026106e184158061113257508385838161112f57fe5b6000611d9582151560046114ec565b82611da2575060006105fc565b670de0b6b3a764000083810290611dbc908583816111b757fe5b828181611dc557fe5b049150506105fc565b60005b611dd9611710565b8110156107d557611e10838281518110611def57fe5b6020026020010151838381518110611e0357fe5b6020026020010151612752565b838281518110611e1c57fe5b6020908102919091010152600101611dd1565b610804828261277e565b1c63ffffffff1690565b1c61ffff1690565b60006105fc61ffff61108684670de0b6b3a7640000611115565b6000606080611e91611e75610a8f565b6001600160a01b03168b6001600160a01b0316146101486114ec565b611ea18b8b8b8b8b8b8b8b61283a565b925092509250985098509895505050505050565b60005b611ec0611710565b8110156107d557611ef7838281518110611ed657fe5b6020026020010151838381518110611eea57fe5b6020026020010151611181565b838281518110611f0357fe5b6020908102919091010152600101611eb8565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415611f7957507f0000000000000000000000000000000000000000000000000000000000000000610895565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415611fda57507f0000000000000000000000000000000000000000000000000000000000000000610895565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561203b57507f0000000000000000000000000000000000000000000000000000000000000000610895565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561209c57507f0000000000000000000000000000000000000000000000000000000000000000610895565b6108956101356124d3565b6000806120bc6120b5610808565b8490611115565b90506106e18382611056565b60006106e18383612752565b60006120e96120e16107da565b6101476114ec565b6120f48484846128c0565b949350505050565b60006106e18383611d86565b60006121156120e16107da565b6120f48484846128f3565b60006106e18383611181565b60006105fc61214b61213c610808565b670de0b6b3a764000090611056565b8390611181565b600061215c610ab3565b6001600160a01b031663aaabadc56040518163ffffffff1660e01b815260040160206040518083038186803b15801561219457600080fd5b505afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f9190614884565b606060006121d861174b565b9150600090506000826000815181106121ed57fe5b602002602001015190506000600190505b8351811015612244578184828151811061221457fe5b6020026020010151111561223c5780925083818151811061223157fe5b602002602001015191505b6001016121fe565b50509091565b670de0b6b3a764000060005b83518110156122ac576122a261229b85838151811061227157fe5b602002602001015185848151811061228557fe5b602002602001015161292690919063ffffffff16565b8390612752565b9150600101612256565b506105fc600082116101376114ec565b60006122c66115da565b82604051602001610a4c929190614c60565b600060606123036122e7610a8f565b6001600160a01b0316876001600160a01b0316146101486114ec565b6123108787878787612975565b915091509550959350505050565b6108048282612a09565b600b54612337908260006110ee565b600b556040517f5a9e84f78f7957cb4ed7478eb0fcad35ee4ecbe2e0f298420b28a3955392573f9061130b908390614ce2565b60028151101561237957610613565b60008160008151811061238857fe5b602002602001015190506000600190505b82518110156107d55760008382815181106123b057fe5b602002602001015190506123d9816001600160a01b0316846001600160a01b03161060656114ec565b9150600101612399565b600073ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b612402610a8f565b6001600160a01b03161415801561241d575061241d83612a97565b156124455761242a610a8f565b6001600160a01b0316336001600160a01b03161490506105fc565b61244d612152565b6001600160a01b0316639be2a8848484306040518463ffffffff1660e01b815260040161247c93929190614d0e565b60206040518083038186803b15801561249457600080fd5b505afa1580156124a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cc9190614785565b90506105fc565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b600061254f84841115836114ec565b5050900390565b4690565b600080612575612570846004601f880201612b05565b612b0f565b9050600061258c6109d08560806010890201611e43565b9050600061259985612b2b565b90506125a6838383612baa565b9695505050505050565b6060806125bb611710565b67ffffffffffffffff811180156125d157600080fd5b506040519080825280602002602001820160405280156125fb578160200160208202803683370190505b5090508261260a5790506125a6565b61263d88878151811061261957fe5b602002602001015188888151811061262d57fe5b6020026020010151878787612c1e565b81878151811061264957fe5b6020908102919091010152979650505050505050565b60005b61266a611710565b8110156126c4576126a584828151811061268057fe5b602002602001015184838151811061269457fe5b60200260200101518463ffffffff16565b8482815181106126b157fe5b6020908102919091010152600101612662565b50505050565b6000606060006126d984612ca6565b905060008160028111156126e957fe5b1415612704576126fa878786612cbc565b9250925050612730565b600181600281111561271257fe5b1415612722576126fa8785612d9f565b6126fa87878787612dd1565b505b94509492505050565b6000612748848461105661265f565b6120f4828561224a565b600082820261276c84158061113257508385838161112f57fe5b670de0b6b3a764000090049392505050565b6127956001600160a01b038316151561019b6114ec565b6127a1826000836107d5565b6001600160a01b0382166000908152602081905260409020546127c790826101a1612540565b6001600160a01b0383166000908152602081905260409020556002546127ed9082612e40565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282e908590614d05565b60405180910390a35050565b6000606080612847611677565b606060006128536121cc565b915091506000612863838c61224a565b905060606128778c8585600954868f6125b0565b90506128868c8261105661265f565b600060606128968e878d8d612e4e565b915091506128a58e8288612ea9565b60095590975095509350505050985098509895505050505050565b60006128ca611677565b6120f4836128db8660200151612eb8565b846128e98860400151612eb8565b8860600151612fda565b60006128fd611677565b6120f48361290e8660200151612eb8565b8461291c8860400151612eb8565b8860600151613047565b60008061293384846130bd565b9050600061294d61294683612710611115565b60016110ca565b905080821015612962576000925050506105fc565b61296c8282611056565b925050506105fc565b60006060612981611677565b600061298c84612ca6565b90506129a7600082600281111561299f57fe5b1460ce6114ec565b60606129b2856131f0565b90506129bf610796611710565b6129c98187611dce565b60606129d36121cc565b50905060006129e2828461224a565b905060006129f282610870611710565b600992909255509a91995090975050505050505050565b612a15600083836107d5565b600254612a2290826110ca565b6002556001600160a01b038216600090815260208190526040902054612a4890826110ca565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282e908590614d05565b6000612ac27fe01af92c00000000000000000000000000000000000000000000000000000000610a17565b821480612af65750612af37f3e56920500000000000000000000000000000000000000000000000000000000610a17565b82145b806105fc57506105fc82613206565b1c637fffffff1690565b60006105fc637fffffff61108684670de0b6b3a7640000611115565b60004281612b3a8460c0611e39565b90506000612b498560e0611e39565b905080831115612b6657670de0b6b3a76400009350505050610895565b81831015612b7a5760009350505050610895565b8181038284038115612b9557612b908183611d86565b612b9f565b670de0b6b3a76400005b979650505050505050565b6000811580612bb857508284145b15612bc45750826106e1565b670de0b6b3a76400008210612bda5750816106e1565b82841115612c04576000612bf083858703612752565b9050612bfc8582611056565b9150506106e1565b6000612c1283868603612752565b9050612bfc85826110ca565b6000838311612c2f57506000612c9d565b6000612c3b8585611181565b90506000612c51670de0b6b3a764000088611d86565b9050612c65826709b6e64a8ec60000611734565b91506000612c73838361326a565b90506000612c8a612c8383613296565b8b90612752565b9050612c968187612752565b9450505050505b95945050505050565b6000818060200190518101906105fc91906148ee565b60006060612cc8611677565b600080612cd4856132bc565b91509150612cec612ce3611710565b821060646114ec565b6060612cf6611710565b67ffffffffffffffff81118015612d0c57600080fd5b50604051908082528060200260200182016040528015612d36578160200160208202803683370190505b509050612d7a888381518110612d4857fe5b6020026020010151888481518110612d5c57fe5b602002602001015185612d6d610616565b612d75610808565b6132de565b818381518110612d8657fe5b6020908102919091010152919791965090945050505050565b600060606000612dae8461339e565b90506060612dc48683612dbf610616565b6133b4565b9196919550909350505050565b60006060612ddd611677565b60606000612dea85613466565b91509150612dfb825161082a611710565b612e058287611dce565b6000612e22898985612e15610616565b612e1d610808565b61347e565b9050612e328282111560cf6114ec565b989197509095505050505050565b60006106e183836001612540565b600060606000612e5d84612ca6565b90506001816002811115612e6d57fe5b1415612e7f576126fa878787876136ac565b6002816002811115612e8d57fe5b1415612e9e576126fa878786613709565b61272e6101366124d3565b600061274884846110ca61265f565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612efd57506000612fce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612f3f57506001612fce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612f8157506002612fce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612fc357506003612fce565b612fce6101356124d3565b6106e181600b5461255a565b6000612ffc612ff187670429d069189e0000612752565b8311156101306114ec565b600061300887846110ca565b905060006130168883611181565b905060006130248887611d86565b90506000613032838361326a565b9050612c9661304082613296565b8990612752565b600061306961305e85670429d069189e0000612752565b8311156101316114ec565b600061307f6130788685611056565b8690611181565b9050600061308d8588611181565b9050600061309b838361326a565b905060006130b182670de0b6b3a7640000611056565b9050612c968a82611115565b6000816130d35750670de0b6b3a76400006105fc565b826130e0575060006105fc565b61310d7f8000000000000000000000000000000000000000000000000000000000000000841060066114ec565b82613133770bce5086492111aea88f4bb1ca6bcf584181ea8059f76532841060076114ec565b826000670c7d713b49da0000831380156131545750670f43fc2c04ee000083125b1561318b576000613164846137b6565b9050670de0b6b3a764000080820784020583670de0b6b3a764000083050201915050613199565b81613195846138ed565b0290505b670de0b6b3a764000090056131e77ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc000082128015906131e0575068070c1cc73b00c800008213155b60086114ec565b6125a681613c8d565b6060818060200190518101906106e191906149b4565b60006132317f38e9922e00000000000000000000000000000000000000000000000000000000610a17565b8214806105fc57506132627f50dd6ed900000000000000000000000000000000000000000000000000000000610a17565b909114919050565b60008061327784846130bd565b9050600061328a61294683612710611115565b9050612c9d82826110ca565b6000670de0b6b3a764000082106132ae5760006105fc565b50670de0b6b3a76400000390565b600080828060200190518101906132d3919061497e565b909590945092505050565b6000806132ef846110868188611056565b90506133086709b6e64a8ec600008210156101326114ec565b600061332661331f670de0b6b3a764000089611d86565b839061326a565b9050600061333d61333683613296565b8a90612752565b9050600061334a89613296565b905060006133588383611115565b905060006133668483611056565b905061338e613387613380670de0b6b3a76400008b611056565b8490612752565b82906110ca565b9c9b505050505050505050505050565b6000818060200190518101906106e19190614951565b606060006133c28484611d86565b90506060855167ffffffffffffffff811180156133de57600080fd5b50604051908082528060200260200182016040528015613408578160200160208202803683370190505b50905060005b865181101561345c5761343d8388838151811061342757fe5b602002602001015161275290919063ffffffff16565b82828151811061344957fe5b602090810291909101015260010161340e565b5095945050505050565b60606000828060200190518101906132d3919061490a565b60006060845167ffffffffffffffff8111801561349a57600080fd5b506040519080825280602002602001820160405280156134c4578160200160208202803683370190505b5090506000805b8851811015613589576135248982815181106134e357fe5b60200260200101516110868984815181106134fa57fe5b60200260200101518c858151811061350e57fe5b602002602001015161105690919063ffffffff16565b83828151811061353057fe5b60200260200101818152505061357f61357889838151811061354e57fe5b602002602001015185848151811061356257fe5b602002602001015161111590919063ffffffff16565b83906110ca565b91506001016134cb565b50670de0b6b3a764000060005b895181101561368b5760008482815181106135ad57fe5b602002602001015184111561360d5760006135d66135ca86613296565b8d858151811061342757fe5b905060006135ea828c868151811061350e57fe5b905061360461357861214b670de0b6b3a76400008c611056565b92505050613624565b88828151811061361957fe5b602002602001015190505b600061364d8c848151811061363557fe5b6020026020010151610875848f878151811061350e57fe5b905061367f6136788c858151811061366157fe5b60200260200101518361292690919063ffffffff16565b8590612752565b93505050600101613596565b5061369f61369882613296565b8790611115565b9998505050505050505050565b600060608060006136bc85613466565b915091506136d26136cb611710565b8351611033565b6136dc8287611dce565b60006136f98989856136ec610616565b6136f4610808565b61415d565b9050612e328282101560d06114ec565b60006060600080613719856132bc565b91509150613728612ce3611710565b6060613732611710565b67ffffffffffffffff8111801561374857600080fd5b50604051908082528060200260200182016040528015613772578160200160208202803683370190505b509050612d7a88838151811061378457fe5b602002602001015188848151811061379857fe5b6020026020010151856137a9610616565b6137b1610808565b61436f565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401907fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f0000000008501028161380257fe5b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f826002919005919091010295945050505050565b6000670de0b6b3a764000082121561392a57613920826ec097ce7bc90715b34b9f10000000008161391a57fe5b056138ed565b6000039050610895565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c0000000000000831261397b57770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e00000083126139b3576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff008400083126139fb576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613a36576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613a6d57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613aa457690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613ad95768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613b0457680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312613b39576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312613b6e576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312613ba2576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312613bd6576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281613bf957fe5b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000613cd27ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc00008312158015613ccb575068070c1cc73b00c800008313155b60096114ec565b6000821215613d0657613ce782600003613c8d565b6ec097ce7bc90715b34b9f100000000081613cfe57fe5b059050610895565b60006806f05b59d3b20000008312613d5c57507ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e00000090910190770195e54c5dd42177f53a27172fa9ec630262827000000000613da8565b6803782dace9d90000008312613da457507ffffffffffffffffffffffffffffffffffffffffffffffffc87d2531627000000909101906b1425982cf597cd205cef7380613da8565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412613e0e577fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000009093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412613e60577fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000009093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412613eb0577fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000009093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412613f00577fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000009093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412613f4f577ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e000009093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412613f9e577ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf000009093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412613fed577ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e7800009093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c40000841261403c577ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c00009093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60006060845167ffffffffffffffff8111801561417957600080fd5b506040519080825280602002602001820160405280156141a3578160200160208202803683370190505b5090506000805b885181101561424b576142038982815181106141c257fe5b60200260200101516108758984815181106141d957fe5b60200260200101518c85815181106141ed57fe5b60200260200101516110ca90919063ffffffff16565b83828151811061420f57fe5b60200260200101818152505061424161357889838151811061422d57fe5b602002602001015185848151811061342757fe5b91506001016141aa565b50670de0b6b3a764000060005b895181101561432c5760008385838151811061427057fe5b602002602001015111156142cc5760006142956135ca86670de0b6b3a7640000611056565b905060006142a9828c868151811061350e57fe5b90506142c361357861229b670de0b6b3a76400008c611056565b925050506142e3565b8882815181106142d857fe5b602002602001015190505b600061430c8c84815181106142f457fe5b6020026020010151610875848f87815181106141ed57fe5b90506143206136788c858151811061366157fe5b93505050600101614258565b50670de0b6b3a76400008111156143635761435961435282670de0b6b3a7640000611056565b8790612752565b9350505050612c9d565b60009350505050612c9d565b6000806143808461108681886110ca565b90506143996729a2241af62c00008211156101336114ec565b60006143b061331f670de0b6b3a764000089611181565b905060006143d06143c983670de0b6b3a7640000611056565b8a90611115565b905060006143dd89613296565b905060006143eb8383611115565b905060006143f98483611056565b905061338e613387614413670de0b6b3a76400008b611056565b8490611181565b80356105fc81614eac565b600082601f830112614435578081fd5b813561444861444382614e8c565b614e65565b81815291506020808301908481018184028601820187101561446957600080fd5b60005b848110156144885781358452928201929082019060010161446c565b505050505092915050565b600082601f8301126144a3578081fd5b81516144b161444382614e8c565b8181529150602080830190848101818402860182018710156144d257600080fd5b60005b84811015614488578151845292820192908201906001016144d5565b600082601f830112614501578081fd5b813567ffffffffffffffff811115614517578182fd5b61452a6020601f19601f84011601614e65565b915080825283602082850101111561454157600080fd5b8060208401602084013760009082016020015292915050565b8035600281106105fc57600080fd5b60006020828403121561457a578081fd5b81356106e181614eac565b60008060408385031215614597578081fd5b82356145a281614eac565b915060208301356145b281614eac565b809150509250929050565b6000806000606084860312156145d1578081fd5b83356145dc81614eac565b925060208401356145ec81614eac565b929592945050506040919091013590565b600080600080600080600060e0888a031215614617578283fd5b873561462281614eac565b9650602088013561463281614eac565b95506040880135945060608801359350608088013560ff81168114614655578384fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215614684578182fd5b823561468f81614eac565b946020939093013593505050565b6000806000606084860312156146b1578081fd5b835167ffffffffffffffff808211156146c8578283fd5b818601915086601f8301126146db578283fd5b81516146e961444382614e8c565b80828252602080830192508086018b828387028901011115614709578788fd5b8796505b8487101561473457805161472081614eac565b84526001969096019592810192810161470d565b50890151909750935050508082111561474b578283fd5b5061475886828701614493565b925050604084015190509250925092565b60006020828403121561477a578081fd5b81356106e181614ec1565b600060208284031215614796578081fd5b81516106e181614ec1565b600080600080600080600060e0888a0312156147bb578081fd5b8735965060208801356147cd81614eac565b955060408801356147dd81614eac565b9450606088013567ffffffffffffffff808211156147f9578283fd5b6148058b838c01614425565b955060808a0135945060a08a0135935060c08a0135915080821115614828578283fd5b506148358a828b016144f1565b91505092959891949750929550565b600060208284031215614855578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146106e1578182fd5b600060208284031215614895578081fd5b81516106e181614eac565b600080604083850312156148b2578182fd5b82356148bd81614eac565b9150602083013567ffffffffffffffff8111156148d8578182fd5b6148e4858286016144f1565b9150509250929050565b6000602082840312156148ff578081fd5b81516106e181614ecf565b60008060006060848603121561491e578081fd5b835161492981614ecf565b602085015190935067ffffffffffffffff811115614945578182fd5b61475886828701614493565b60008060408385031215614963578182fd5b825161496e81614ecf565b6020939093015192949293505050565b600080600060608486031215614992578081fd5b835161499d81614ecf565b602085015160409095015190969495509392505050565b600080604083850312156149c6578182fd5b82516149d181614ecf565b602084015190925067ffffffffffffffff8111156149ed578182fd5b6148e485828601614493565b600080600060608486031215614a0d578081fd5b833567ffffffffffffffff80821115614a24578283fd5b8186019150610120808389031215614a3a578384fd5b614a4381614e65565b9050614a4f888461455a565b8152614a5e886020850161441a565b6020820152614a70886040850161441a565b6040820152606083013560608201526080830135608082015260a083013560a0820152614aa08860c0850161441a565b60c0820152614ab28860e0850161441a565b60e08201526101008084013583811115614aca578586fd5b614ad68a8287016144f1565b9183019190915250976020870135975060409096013595945050505050565b600060208284031215614b06578081fd5b5035919050565b600080600060608486031215614b21578081fd5b8335925060208401359150604084013567ffffffffffffffff811115614b45578182fd5b614b5186828701614425565b9150509250925092565b60008060008060808587031215614b70578182fd5b8451935060208501519250604085015191506060850151614b9081614eac565b939692955090935050565b6000815180845260208085019450808401835b83811015614bca57815187529582019590820190600101614bae565b509495945050505050565b60008151808452815b81811015614bfa57602081850181015186830182015201614bde565b81811115614c0b5782602083870101525b50601f01601f19169290920160200192915050565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b6000828483379101908152919050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6000602082526106e16020830184614b9b565b600060408252614cd06040830185614b9b565b8281036020840152612c9d8185614b9b565b901515815260200190565b92151583526020830191909152604082015260600190565b90815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6000838252604060208301526120f46040830184614bd5565b9182526001600160a01b0316602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526106e16020830184614bd5565b6000838252604060208301526120f46040830184614b9b565b600084825283602083015260606040830152612c9d6060830184614b9b565b600085825284602083015260806040830152614e456080830185614b9b565b8281036060840152612b9f8185614b9b565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715614e8457600080fd5b604052919050565b600067ffffffffffffffff821115614ea2578081fd5b5060209081020190565b6001600160a01b038116811461061357600080fd5b801515811461061357600080fd5b6003811061061357600080fdfea26469706673582212209f2ce89236689508bd421f0223dccc478ec87629b6f12d022774237b4843da8964736f6c63430007010033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/tasks/20211202-no-protocol-fee-lbp/output/fraxtal.json b/tasks/20211202-no-protocol-fee-lbp/output/fraxtal.json new file mode 100644 index 000000000..9bbd34f07 --- /dev/null +++ b/tasks/20211202-no-protocol-fee-lbp/output/fraxtal.json @@ -0,0 +1,4 @@ +{ + "NoProtocolFeeLiquidityBootstrappingPoolFactory": "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288", + "MockLiquidityBootstrappingPool": "0xaeace3B34BcA1BFe585e4B0Bb303e60e0771F139" +} \ No newline at end of file diff --git a/tasks/20211202-no-protocol-fee-lbp/readme.md b/tasks/20211202-no-protocol-fee-lbp/readme.md index c26a373fd..b917e1cc1 100644 --- a/tasks/20211202-no-protocol-fee-lbp/readme.md +++ b/tasks/20211202-no-protocol-fee-lbp/readme.md @@ -13,5 +13,6 @@ Deployment of the `NoProtocolFeeLiquidityBootstrappingPool`, for Liquidity Boots - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`NoProtocolFeeLiquidityBootstrappingPoolFactory` artifact](./artifact/NoProtocolFeeLiquidityBootstrappingPoolFactory.json) diff --git a/tasks/20220325-authorizer-adaptor/output/fraxtal.json b/tasks/20220325-authorizer-adaptor/output/fraxtal.json new file mode 100644 index 000000000..3c62861be --- /dev/null +++ b/tasks/20220325-authorizer-adaptor/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "AuthorizerAdaptor": "0x36caC20dd805d128c1a6Dd16eeA845C574b5A17C" +} \ No newline at end of file diff --git a/tasks/20220325-authorizer-adaptor/readme.md b/tasks/20220325-authorizer-adaptor/readme.md index 442d4819b..0153afab4 100644 --- a/tasks/20220325-authorizer-adaptor/readme.md +++ b/tasks/20220325-authorizer-adaptor/readme.md @@ -15,5 +15,6 @@ The adaptor may then be the admin for these systems and acts as a proxy forwardi - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`AuthorizerAdaptor` artifact](./artifact/AuthorizerAdaptor.json) diff --git a/tasks/20220517-protocol-fee-withdrawer/input.ts b/tasks/20220517-protocol-fee-withdrawer/input.ts index c9772321a..6137bdf8e 100644 --- a/tasks/20220517-protocol-fee-withdrawer/input.ts +++ b/tasks/20220517-protocol-fee-withdrawer/input.ts @@ -41,6 +41,9 @@ export default { base: { InitialDeniedTokens: [], }, + fraxtal: { + InitialDeniedTokens: [], + }, sepolia: { InitialDeniedTokens: [], }, diff --git a/tasks/20220517-protocol-fee-withdrawer/output/fraxtal.json b/tasks/20220517-protocol-fee-withdrawer/output/fraxtal.json new file mode 100644 index 000000000..cb498eef3 --- /dev/null +++ b/tasks/20220517-protocol-fee-withdrawer/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "ProtocolFeesWithdrawer": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062" +} \ No newline at end of file diff --git a/tasks/20220517-protocol-fee-withdrawer/readme.md b/tasks/20220517-protocol-fee-withdrawer/readme.md index 74e0573f1..4b9fe8d2f 100644 --- a/tasks/20220517-protocol-fee-withdrawer/readme.md +++ b/tasks/20220517-protocol-fee-withdrawer/readme.md @@ -15,5 +15,6 @@ See [the Double Entrypoint Fix Relayer](../20220513-double-entrypoint-fix-relaye - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ProtocolFeesWithdrawer` artifact](./artifact/ProtocolFeesWithdrawer.json) diff --git a/tasks/20220721-balancer-queries/output/fraxtal.json b/tasks/20220721-balancer-queries/output/fraxtal.json new file mode 100644 index 000000000..2df31779e --- /dev/null +++ b/tasks/20220721-balancer-queries/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "BalancerQueries": "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8" +} \ No newline at end of file diff --git a/tasks/20220721-balancer-queries/readme.md b/tasks/20220721-balancer-queries/readme.md index 195050f37..3d9af40af 100644 --- a/tasks/20220721-balancer-queries/readme.md +++ b/tasks/20220721-balancer-queries/readme.md @@ -14,5 +14,6 @@ result they would have if called on the Vault given the current state. - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`BalancerQueries` artifact](./artifact/BalancerQueries.json) diff --git a/tasks/20220725-protocol-fee-percentages-provider/output/fraxtal.json b/tasks/20220725-protocol-fee-percentages-provider/output/fraxtal.json new file mode 100644 index 000000000..3bff4a0ac --- /dev/null +++ b/tasks/20220725-protocol-fee-percentages-provider/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "ProtocolFeePercentagesProvider": "0xf23b4DB826DbA14c0e857029dfF076b1c0264843" +} \ No newline at end of file diff --git a/tasks/20220725-protocol-fee-percentages-provider/readme.md b/tasks/20220725-protocol-fee-percentages-provider/readme.md index 012791c1e..8e0466bfc 100644 --- a/tasks/20220725-protocol-fee-percentages-provider/readme.md +++ b/tasks/20220725-protocol-fee-percentages-provider/readme.md @@ -13,5 +13,6 @@ Deployment of the `ProtocolFeePercentagesProvider` contract. It provides a conve - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ProtocolFeePercentagesProvider` artifact](./artifact/ProtocolFeePercentagesProvider.json) diff --git a/tasks/20221123-pool-recovery-helper/input.ts b/tasks/20221123-pool-recovery-helper/input.ts index 9ffd1ea41..ba3770d96 100644 --- a/tasks/20221123-pool-recovery-helper/input.ts +++ b/tasks/20221123-pool-recovery-helper/input.ts @@ -54,10 +54,13 @@ export default { zkevm: { InitialFactories: [], }, - sepolia: { + base: { InitialFactories: [], }, - base: { + fraxtal: { + InitialFactories: [], + }, + sepolia: { InitialFactories: [], }, }; diff --git a/tasks/20221123-pool-recovery-helper/output/fraxtal.json b/tasks/20221123-pool-recovery-helper/output/fraxtal.json new file mode 100644 index 000000000..8100f5de5 --- /dev/null +++ b/tasks/20221123-pool-recovery-helper/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "PoolRecoveryHelper": "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6" +} \ No newline at end of file diff --git a/tasks/20221123-pool-recovery-helper/readme.md b/tasks/20221123-pool-recovery-helper/readme.md index e45045f4e..ea7347cc3 100644 --- a/tasks/20221123-pool-recovery-helper/readme.md +++ b/tasks/20221123-pool-recovery-helper/readme.md @@ -13,5 +13,6 @@ Deployment of the `PoolRecoveryHelper`, which provides a permissionless way to m - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`PoolRecoveryHelper` artifact](./artifact/PoolRecoveryHelper.json) diff --git a/tasks/20221124-authorizer-adaptor-entrypoint/output/fraxtal.json b/tasks/20221124-authorizer-adaptor-entrypoint/output/fraxtal.json new file mode 100644 index 000000000..150a8b1cd --- /dev/null +++ b/tasks/20221124-authorizer-adaptor-entrypoint/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "AuthorizerAdaptorEntrypoint": "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88" +} \ No newline at end of file diff --git a/tasks/20221124-authorizer-adaptor-entrypoint/readme.md b/tasks/20221124-authorizer-adaptor-entrypoint/readme.md index cdd4e27ed..d9f28dd14 100644 --- a/tasks/20221124-authorizer-adaptor-entrypoint/readme.md +++ b/tasks/20221124-authorizer-adaptor-entrypoint/readme.md @@ -13,5 +13,6 @@ Deployment of the `AuthorizerAdaptorEntrypoint`, a gateway contract created to a - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`AuthorizerAdaptorEntrypoint` artifact](./artifact/AuthorizerAdaptorEntrypoint.json) diff --git a/tasks/20230223-protocol-id-registry/output/fraxtal.json b/tasks/20230223-protocol-id-registry/output/fraxtal.json new file mode 100644 index 000000000..66b397d26 --- /dev/null +++ b/tasks/20230223-protocol-id-registry/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "ProtocolIdRegistry": "0x9dd5Db2d38b50bEF682cE532bCca5DfD203915E1" +} \ No newline at end of file diff --git a/tasks/20230223-protocol-id-registry/readme.md b/tasks/20230223-protocol-id-registry/readme.md index 907fd9c6f..cf49f7e70 100644 --- a/tasks/20230223-protocol-id-registry/readme.md +++ b/tasks/20230223-protocol-id-registry/readme.md @@ -11,5 +11,6 @@ Deployment of the `ProtocolIdRegistry` contract, which keeps track of valid part - [Gnosis mainnet addresses](./output/gnosis.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ProtocolIdRegistry` artifact](./artifact/ProtocolIdRegistry.json) diff --git a/tasks/20230316-child-chain-gauge-factory-v2/output/fraxtal.json b/tasks/20230316-child-chain-gauge-factory-v2/output/fraxtal.json new file mode 100644 index 000000000..6aa4e1a68 --- /dev/null +++ b/tasks/20230316-child-chain-gauge-factory-v2/output/fraxtal.json @@ -0,0 +1,4 @@ +{ + "ChildChainGauge": "0x4fb47126Fa83A8734991E41B942Ac29A3266C968", + "ChildChainGaugeFactory": "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68" +} \ No newline at end of file diff --git a/tasks/20230316-child-chain-gauge-factory-v2/readme.md b/tasks/20230316-child-chain-gauge-factory-v2/readme.md index a138ba506..45f1d2a03 100644 --- a/tasks/20230316-child-chain-gauge-factory-v2/readme.md +++ b/tasks/20230316-child-chain-gauge-factory-v2/readme.md @@ -12,6 +12,7 @@ This version simplifies the system to distribute BAL and allows veBAL boosts on - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ChildChainGauge` artifact](./artifact/ChildChainGauge.json) - [`ChildChainGaugeFactory` artifact](./artifact/ChildChainGaugeFactory.json) diff --git a/tasks/20230316-l2-balancer-pseudo-minter/output/fraxtal.json b/tasks/20230316-l2-balancer-pseudo-minter/output/fraxtal.json new file mode 100644 index 000000000..4bc382e38 --- /dev/null +++ b/tasks/20230316-l2-balancer-pseudo-minter/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "L2BalancerPseudoMinter": "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102" +} \ No newline at end of file diff --git a/tasks/20230316-l2-balancer-pseudo-minter/readme.md b/tasks/20230316-l2-balancer-pseudo-minter/readme.md index b43b44abd..0ca914acf 100644 --- a/tasks/20230316-l2-balancer-pseudo-minter/readme.md +++ b/tasks/20230316-l2-balancer-pseudo-minter/readme.md @@ -13,5 +13,6 @@ The main difference between the two is that the pseudo minter does not actually - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`L2BalancerPseudoMinter` artifact](./artifact/L2BalancerPseudoMinter.json) diff --git a/tasks/20230316-l2-ve-delegation-proxy/output/fraxtal.json b/tasks/20230316-l2-ve-delegation-proxy/output/fraxtal.json new file mode 100644 index 000000000..20b7e6a7a --- /dev/null +++ b/tasks/20230316-l2-ve-delegation-proxy/output/fraxtal.json @@ -0,0 +1,4 @@ +{ + "NullVotingEscrow": "0x5cF4928a3205728bd12830E1840F7DB85c62a4B9", + "VotingEscrowDelegationProxy": "0xE3881627B8DeeBCCF9c23B291430a549Fc0bE5F7" +} \ No newline at end of file diff --git a/tasks/20230316-l2-ve-delegation-proxy/readme.md b/tasks/20230316-l2-ve-delegation-proxy/readme.md index 11dadeff8..e76edc3b8 100644 --- a/tasks/20230316-l2-ve-delegation-proxy/readme.md +++ b/tasks/20230316-l2-ve-delegation-proxy/readme.md @@ -15,6 +15,7 @@ The proxy itself is the same as the [L1 proxy](../20220325-ve-delegation), excep - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`NullVotingEscrow` artifact](./artifact/NullVotingEscrow.json) - [`VotingEscrowDelegationProxy` artifact](./artifact/VotingEscrowDelegationProxy.json) diff --git a/tasks/20230320-weighted-pool-v4/output/fraxtal.json b/tasks/20230320-weighted-pool-v4/output/fraxtal.json new file mode 100644 index 000000000..b19a58c50 --- /dev/null +++ b/tasks/20230320-weighted-pool-v4/output/fraxtal.json @@ -0,0 +1,4 @@ +{ + "WeightedPoolFactory": "0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c", + "MockWeightedPool": "0xBbCDB19D0Fb506e5E1a186A8893cF5C51c8dEff2" +} \ No newline at end of file diff --git a/tasks/20230320-weighted-pool-v4/readme.md b/tasks/20230320-weighted-pool-v4/readme.md index da0e57837..72be9cf2a 100644 --- a/tasks/20230320-weighted-pool-v4/readme.md +++ b/tasks/20230320-weighted-pool-v4/readme.md @@ -14,5 +14,6 @@ Supersedes `20230206-weighted-pool-v3`. - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`WeightedPoolFactory` artifact](./artifact/WeightedPoolFactory.json) diff --git a/tasks/20230404-l2-layer0-bridge-forwarder/output/fraxtal.json b/tasks/20230404-l2-layer0-bridge-forwarder/output/fraxtal.json new file mode 100644 index 000000000..1a971f073 --- /dev/null +++ b/tasks/20230404-l2-layer0-bridge-forwarder/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "L2LayerZeroBridgeForwarder": "0xa523f47A933D5020b23629dDf689695AA94612Dc" +} \ No newline at end of file diff --git a/tasks/20230404-l2-layer0-bridge-forwarder/readme.md b/tasks/20230404-l2-layer0-bridge-forwarder/readme.md index 44c0d9ffb..985e529b4 100644 --- a/tasks/20230404-l2-layer0-bridge-forwarder/readme.md +++ b/tasks/20230404-l2-layer0-bridge-forwarder/readme.md @@ -12,5 +12,6 @@ Deployment of `L2LayerZeroBridgeForwarder`, which is called by the Layer0 contra - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`L2LayerZeroBridgeForwarder` artifact](./artifact/L2LayerZeroBridgeForwarder.json) diff --git a/tasks/20230411-managed-pool-v2/output/fraxtal.json b/tasks/20230411-managed-pool-v2/output/fraxtal.json new file mode 100644 index 000000000..b5f335266 --- /dev/null +++ b/tasks/20230411-managed-pool-v2/output/fraxtal.json @@ -0,0 +1,9 @@ +{ + "ManagedPoolAddRemoveTokenLib": "0x6B5dA774890Db7B7b96C6f44e6a4b0F657399E2e", + "CircuitBreakerLib": "0x7Ba29fE8E83dd6097A7298075C4AFfdBda3121cC", + "ManagedPoolAmmLib": "0x043A2daD730d585C44FB79D2614F295D2d625412", + "ExternalWeightedMath": "0xA8920455934Da4D853faac1f94Fe7bEf72943eF1", + "RecoveryModeHelper": "0x013D4382F291be5688AFBcc741Ee8A24C66B2C92", + "ManagedPoolFactory": "0x7A2535f5fB47b8e44c02Ef5D9990588313fe8F05", + "MockManagedPool": "0x1fB5653B800fa675F7b791652cF60D264198e5f2" +} \ No newline at end of file diff --git a/tasks/20230411-managed-pool-v2/readme.md b/tasks/20230411-managed-pool-v2/readme.md index 79a1e2d12..bf988c06b 100644 --- a/tasks/20230411-managed-pool-v2/readme.md +++ b/tasks/20230411-managed-pool-v2/readme.md @@ -19,6 +19,7 @@ A Managed Pool is a Weighted Pool with mutable tokens and weights, designed to b - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ManagedPoolFactory` artifact](./artifact/ManagedPoolFactory.json) - [`ManagedPoolAddRemoveTokenLib` artifact](./artifact/ManagedPoolAddRemoveTokenLib.json) diff --git a/tasks/20230414-authorizer-wrapper/output/fraxtal.json b/tasks/20230414-authorizer-wrapper/output/fraxtal.json new file mode 100644 index 000000000..d2dcd0b3c --- /dev/null +++ b/tasks/20230414-authorizer-wrapper/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "AuthorizerWithAdaptorValidation": "0x6817149cb753BF529565B4D023d7507eD2ff4Bc0" +} \ No newline at end of file diff --git a/tasks/20230414-authorizer-wrapper/readme.md b/tasks/20230414-authorizer-wrapper/readme.md index 337c31f4d..c5e3ed667 100644 --- a/tasks/20230414-authorizer-wrapper/readme.md +++ b/tasks/20230414-authorizer-wrapper/readme.md @@ -13,5 +13,6 @@ Deployment of the `AuthorizerWithAdaptorValidation`, which allows using the Auth - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`AuthorizerWithAdaptorValidation` artifact](./artifact/AuthorizerWithAdaptorValidation.json) diff --git a/tasks/20230526-gauge-working-balance-helper/input.ts b/tasks/20230526-gauge-working-balance-helper/input.ts index c68477b35..f8d27e128 100644 --- a/tasks/20230526-gauge-working-balance-helper/input.ts +++ b/tasks/20230526-gauge-working-balance-helper/input.ts @@ -53,6 +53,12 @@ export default { }).VotingEscrowDelegationProxy, ReadTotalSupplyFromVE: false, }, + fraxtal: { + VotingEscrowDelegationProxy: new Task('20230316-l2-ve-delegation-proxy', TaskMode.READ_ONLY).output({ + network: 'fraxtal', + }).VotingEscrowDelegationProxy, + ReadTotalSupplyFromVE: false, + }, sepolia: { VotingEscrowDelegationProxy: new Task('20220325-ve-delegation', TaskMode.READ_ONLY).output({ network: 'sepolia' }) .VotingEscrowDelegationProxy, diff --git a/tasks/20230526-gauge-working-balance-helper/output/fraxtal.json b/tasks/20230526-gauge-working-balance-helper/output/fraxtal.json new file mode 100644 index 000000000..78f3cdfac --- /dev/null +++ b/tasks/20230526-gauge-working-balance-helper/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "GaugeWorkingBalanceHelper": "0x83E443EF4f9963C77bd860f94500075556668cb8" +} \ No newline at end of file diff --git a/tasks/20230526-gauge-working-balance-helper/readme.md b/tasks/20230526-gauge-working-balance-helper/readme.md index 1272d3024..cd53aa2e8 100644 --- a/tasks/20230526-gauge-working-balance-helper/readme.md +++ b/tasks/20230526-gauge-working-balance-helper/readme.md @@ -12,5 +12,6 @@ Deployment of the `GaugeWorkingBalanceHelper`, which reads the current and proje - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`GaugeWorkingBalanceHelper` artifact](./artifact/GaugeWorkingBalanceHelper.json) diff --git a/tasks/20230613-balancer-pool-data-queries/output/fraxtal.json b/tasks/20230613-balancer-pool-data-queries/output/fraxtal.json new file mode 100644 index 000000000..6bccaced7 --- /dev/null +++ b/tasks/20230613-balancer-pool-data-queries/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "BalancerPoolDataQueries": "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd" +} \ No newline at end of file diff --git a/tasks/20230613-balancer-pool-data-queries/readme.md b/tasks/20230613-balancer-pool-data-queries/readme.md index 349602881..eaecf76ba 100644 --- a/tasks/20230613-balancer-pool-data-queries/readme.md +++ b/tasks/20230613-balancer-pool-data-queries/readme.md @@ -11,5 +11,6 @@ Deployment of the `BalancerPoolDataQueries` contract. It provides a way to perfo - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`BalancerPoolDataQueries` artifact](./artifact/BalancerPoolDataQueries.json) diff --git a/tasks/20230717-chainlink-rate-provider-factory/output/fraxtal.json b/tasks/20230717-chainlink-rate-provider-factory/output/fraxtal.json new file mode 100644 index 000000000..b08a205ca --- /dev/null +++ b/tasks/20230717-chainlink-rate-provider-factory/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "ChainlinkRateProviderFactory": "0x3f170631ed9821Ca51A59D996aB095162438DC10" +} \ No newline at end of file diff --git a/tasks/20230717-chainlink-rate-provider-factory/readme.md b/tasks/20230717-chainlink-rate-provider-factory/readme.md index 1fa7cfc05..487861f1b 100644 --- a/tasks/20230717-chainlink-rate-provider-factory/readme.md +++ b/tasks/20230717-chainlink-rate-provider-factory/readme.md @@ -13,5 +13,6 @@ Deployment of `ChainlinkRateProviderFactory`, which creates and deploys `Chainli - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkEVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ChainlinkRateProviderFactory` artifact](./artifact/ChainlinkRateProviderFactory.json) diff --git a/tasks/20231031-batch-relayer-v6/input.ts b/tasks/20231031-batch-relayer-v6/input.ts index 6352b2b33..a970fad62 100644 --- a/tasks/20231031-batch-relayer-v6/input.ts +++ b/tasks/20231031-batch-relayer-v6/input.ts @@ -74,4 +74,9 @@ export default { BalancerMinter: L2BalancerPseudoMinter.output({ network: 'base' }).L2BalancerPseudoMinter, CanCallUserCheckpoint: true, }, + fraxtal: { + wstETH: ZERO_ADDRESS, + BalancerMinter: L2BalancerPseudoMinter.output({ network: 'fraxtal' }).L2BalancerPseudoMinter, + CanCallUserCheckpoint: true, + }, }; diff --git a/tasks/20231031-batch-relayer-v6/output/fraxtal.json b/tasks/20231031-batch-relayer-v6/output/fraxtal.json new file mode 100644 index 000000000..a5328ba07 --- /dev/null +++ b/tasks/20231031-batch-relayer-v6/output/fraxtal.json @@ -0,0 +1,5 @@ +{ + "BatchRelayerLibrary": "0x662112B8CB18889e81459b92CA0f894a2ef2c1B8", + "BatchRelayerQueryLibrary": "0x4DdFc173C8F67808AE8F7913DccFfa6bdBFE5b0e", + "BalancerRelayer": "0xb541765F540447646A9545E0A4800A0Bacf9E13D" +} \ No newline at end of file diff --git a/tasks/20231031-batch-relayer-v6/readme.md b/tasks/20231031-batch-relayer-v6/readme.md index 2640b7cbe..b6d18bb09 100644 --- a/tasks/20231031-batch-relayer-v6/readme.md +++ b/tasks/20231031-batch-relayer-v6/readme.md @@ -17,5 +17,6 @@ This version also adds gauge checkpoint / mint capabilities for gauges (both mai - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`BalancerRelayer` artifact](./artifact/BalancerRelayer.json) diff --git a/tasks/20240223-composable-stable-pool-v6/output/fraxtal.json b/tasks/20240223-composable-stable-pool-v6/output/fraxtal.json new file mode 100644 index 000000000..a3d416020 --- /dev/null +++ b/tasks/20240223-composable-stable-pool-v6/output/fraxtal.json @@ -0,0 +1,4 @@ +{ + "ComposableStablePoolFactory": "0x4bdCc2fb18AEb9e2d281b0278D946445070EAda7", + "MockComposableStablePool": "0xA65bc2c42697494a53DC53bf1a45c9e72201467F" +} \ No newline at end of file diff --git a/tasks/20240223-composable-stable-pool-v6/readme.md b/tasks/20240223-composable-stable-pool-v6/readme.md index 5aec470ad..8b811db4e 100644 --- a/tasks/20240223-composable-stable-pool-v6/readme.md +++ b/tasks/20240223-composable-stable-pool-v6/readme.md @@ -14,5 +14,6 @@ This version is the same in terms of functionality, but has a longer pause windo - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkeVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [Sepolia testnet addresses](./output/sepolia.json) - [`ComposableStablePoolFactory` artifact](./artifact/ComposableStablePoolFactory.json)