From 6f8ea6710f896d23c3ec976241693d88c178c163 Mon Sep 17 00:00:00 2001 From: danoctavian Date: Mon, 14 Oct 2024 01:58:12 +0300 Subject: [PATCH] fill in ynETHWithdrawals deployment + broadcast files + test fixes --- deployments/ynETH-1.json | 15 +- .../StakingNode-1.json | 60 +++ .../StakingNodesManager-1.json | 60 +++ ...thdrawalQueueManager-implementation-1.json | 59 +++ .../WithdrawalQueueManager-proxy-1.json | 99 +++++ .../WithdrawalsProcessor-1.json | 147 ++++++++ .../ynETH-1.json | 60 +++ .../ynETHRedemptionAssetsVault-1.json | 133 +++++++ script/ContractAddresses.sol | 6 +- script/ynETH/BaseYnETHScript.s.sol | 14 +- script/ynETH/DeployYnETHWithdrawals.s.sol | 287 -------------- script/ynETH/VerifyYnETH.s.sol | 354 +++++++++--------- test/integration/M3/Base.t.sol | 257 +------------ test/scenarios/ScenarioBaseTest.sol | 78 +--- .../fork/ProtocolUpgrade-Scenario.spec.sol | 49 +++ 15 files changed, 873 insertions(+), 805 deletions(-) create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNode-1.json create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNodesManager-1.json create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-implementation-1.json create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-proxy-1.json create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalsProcessor-1.json create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETH-1.json create mode 100644 deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETHRedemptionAssetsVault-1.json delete mode 100644 script/ynETH/DeployYnETHWithdrawals.s.sol diff --git a/deployments/ynETH-1.json b/deployments/ynETH-1.json index 746d301d8..e0724d7f7 100644 --- a/deployments/ynETH-1.json +++ b/deployments/ynETH-1.json @@ -15,20 +15,29 @@ "implementation-consensusLayerReceiver": "0xa98e8652DAF2407839b18f4e215D86D88Eb91582", "implementation-executionLayerReceiver": "0x863Ba8f64b1528De6c8A7239D80D4f2b7CfF159B", "implementation-rewardsDistributor": "0x306EBed66642867B94b29752be37b8f20fEb5F72", - "implementation-stakingNodesManager": "0xaBD3A755E4eEF24f862c268D21Fd5235904cc811", - "implementation-ynETH": "0x14DC3d915107DcA9ed39E29E14fbdfe4358a1346", + "implementation-stakingNodesManager": "0x33Ffb713C73Cdf668b11296Bb9B1C9a0C3100626", + "implementation-ynETH": "0x87E2A51d3B88FC2f5917a7aB793ea595b243710a", "implementation-ynViewer": "0x0365a6eF790e05EEe386B57326e5Ceaf5B10899e", + "implementation-withdrawalQueueManager": "0x6ac38ab99053a2585B6184D0AD72018Ae22185CD", + "implementation-withdrawalsProcessor": "0x97e619c4573ce55A3Aa8e105E339dce00e3bF3B2", + "implementation-ynETHRedemptionAssetsVault": "0xe1a2A7FAc6729360e6794f2f137621E2Cdb0Fed5", "proxy-consensusLayerReceiver": "0xE439fe4563F7666FCd7405BEC24aE7B0d226536e", "proxy-executionLayerReceiver": "0x1D6b2a11FFEa5F9a8Ed85A02581910b3d695C12b", "proxy-rewardsDistributor": "0x40d5FF3E218f54f4982661a0464a298Cf6652351", "proxy-stakingNodesManager": "0x8C33A1d6d062dB7b51f79702355771d44359cD7d", "proxy-ynETH": "0x09db87A538BD693E9d08544577d5cCfAA6373A48", "proxy-ynViewer": "0xF0207Ffa0b793E009DF9Df62fEE95B8FC6c93EcF", + "proxy-withdrawalQueueManager": "0x0BC9BC81aD379810B36AD5cC95387112990AA67b", + "proxy-withdrawalsProcessor": "0x6d052CdEd3F64aea51f6051F33b68b42016C5FbA", + "proxy-ynETHRedemptionAssetsVault": "0x5D6e53c42E3B37f82F693937BC508940769c5caf", "proxyAdmin-consensusLayerReceiver": "0xaB5CC95BD4F5C45F637B6D319169Bbbc212CfEE8", "proxyAdmin-executionLayerReceiver": "0x5a3d6625C6d26E3650675bF2b7041cd7d16A63B2", "proxyAdmin-rewardsDistributor": "0x17ecBFce53B364Fd571D159eA2b766bA3114d85E", "proxyAdmin-stakingNodesManager": "0x091929600D3891861615098fc9eA3a0270966398", "proxyAdmin-ynETH": "0x12e9DA7e671342E7A5fDD7197348C8019e72C31F", "proxyAdmin-ynViewer": "0xcAD4147b889D5A5564575fDA6B2910eeF5eBA03A", - "stakingNodeImplementation": "0xF8A37F34a427611C4c54F82bF43230FA041d237B" + "proxyAdmin-withdrawalQueueManager": "0xd3f08F92D6752B01FC5b706AdbE254B222A1BdaA", + "proxyAdmin-withdrawalsProcessor": "0xb5234121Be2144975a123C4457606e6F4e5E2a6b", + "proxyAdmin-ynETHRedemptionAssetsVault": "0x364b8154Ea1673E360446c3D17480d32C3E71B2c", + "stakingNodeImplementation": "0xA8bD8f089F5Bd0BeE61e23B3A0a4aA1332Fe929d" } \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNode-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNode-1.json new file mode 100644 index 000000000..973251594 --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNode-1.json @@ -0,0 +1,60 @@ +{ + "transactions": [ + { + "hash": "0xa7b95e51c3329685699a8f6e7596848a039c514212da7ddf979c9459f598469e", + "transactionType": "CREATE", + "contractName": "StakingNode", + "contractAddress": "0xa8bd8f089f5bd0bee61e23b3a0a4aa1332fe929d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0x2df87e", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61286d80620000e35f395ff3fe60806040526004361061014a575f3560e01c806379cb2d2f116100b3578063b3c650151161006d578063b3c65015146103c5578063bfe8172d146103f1578063d609099314610405578063ef7953a21461041a578063f55b30401461042f578063f99d9e551461044e575f80fd5b806379cb2d2f1461030d578063852aa33d1461032057806388676cad1461034c5780639104c3191461036b57806392ab89bb14610392578063a3aae136146103a6575f80fd5b8063443dc42811610104578063443dc4281461026a5780635b4e128c146102885780635c60da1b146102a75780635d21e3da146102bb5780636e947298146102da57806377b34927146102ee575f80fd5b80630b10b201146101b8578063139d7fed146101e957806319259db01461020c5780631f1fb913146102215780632b72a3ca146102355780633f65cf1914610249575f80fd5b366101b4576001546001600160a01b0316331461017a576040516341e3874160e11b815260040160405180910390fd5b604080513381523460208201527fbfe611b001dfcd411432f7bf0d79b82b4b2ee81511edac123a3403c357fb972a910160405180910390a1005b5f80fd5b3480156101c3575f80fd5b506101cc610461565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101f4575f80fd5b506101fe60025481565b6040519081526020016101e0565b348015610217575f80fd5b506101fe60065481565b34801561022c575f80fd5b506006546101fe565b348015610240575f80fd5b506004546101fe565b348015610254575f80fd5b50610268610263366004611b52565b61064f565b005b348015610275575f80fd5b505f546101cc906001600160a01b031681565b348015610293575f80fd5b506102686102a2366004611c1f565b6108cf565b3480156102b2575f80fd5b506101cc6109b8565b3480156102c6575f80fd5b506102686102d5366004611ceb565b610a5a565b3480156102e5575f80fd5b506101fe610bfd565b3480156102f9575f80fd5b50610268610308366004611dc5565b610d12565b61026861031b366004611c1f565b610e5c565b34801561032b575f80fd5b5061033f61033a366004611c1f565b610f80565b6040516101e09190611e37565b348015610357575f80fd5b50610268610366366004611e5d565b611279565b348015610376575f80fd5b506101cc73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b34801561039d575f80fd5b5061026861135c565b3480156103b1575f80fd5b506001546101cc906001600160a01b031681565b3480156103d0575f80fd5b506103d9611565565b6040516001600160401b0390911681526020016101e0565b3480156103fc575f80fd5b506005546101fe565b348015610410575f80fd5b506101fe60055481565b348015610425575f80fd5b506101fe60045481565b34801561043a575f80fd5b50610268610449366004611f7e565b611589565b61026861045c366004611c1f565b611930565b5f61046a6119af565b6001546001600160a01b03161561048d57506001546001600160a01b0316610623565b5f805f9054906101000a90046001600160a01b03166001600160a01b0316634665bcda6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050191906120ee565b9050806001600160a01b03166384d810626040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610540573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056491906120ee565b5060405163a38406a360e01b81523060048201526001600160a01b0382169063a38406a390602401602060405180830381865afa1580156105a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105cb91906120ee565b600180546001600160a01b0319166001600160a01b0392909216918217905560405130907fcdc82cfed67d9b46d3a15dd3b48745fb894a354d554cb5da5fb8c440f85c108e905f90a350506001546001600160a01b03165b61064c60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b90565b5f5460405163d02e02cf60e01b81523360048201526001600160a01b039091169063d02e02cf90602401602060405180830381865afa158015610694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190612109565b6106d55760405163304ac09760e01b815260040160405180910390fd5b600154604051633f65cf1960e01b81526001600160a01b0390911690633f65cf1990610713908b908b908b908b908b908b908b908b906004016122c3565b5f604051808303815f87803b15801561072a575f80fd5b505af115801561073c573d5f803e3d5ffd5b505050505f5b858110156108c4575f6107a88484848181106107605761076061237b565b9050602002810190610772919061238f565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250611a1f92505050565b6001600160401b031690508787838181106107c5576107c561237b565b90506020020160208101906107da91906123d4565b604080516001600160401b038d1681526020810184905264ffffffffff92909216917fc893ff408bc759105622c2fb34c5fa34a9d25f376cae386441e090e9d1ce1c3e910160405180910390a26801bc16d674ec80000060055f8282546108419190612401565b9091555088905087838181106108595761085961237b565b905060200201602081019061086e91906123d4565b604080516001600160401b038d1681526020810184905264ffffffffff92909216917f95636f5f7adc353e75700ba4b3473fe8e0fdba943a168a06699b6e2a8c283d9a910160405180910390a250600101610742565b505050505050505050565b5f546001600160a01b031633146108f9576040516346f94cdd60e11b815260040160405180910390fd5b5f80516020612818833981519152805460029190600160401b900460ff168061092f575080546001600160401b03808416911610155b1561094d5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b038316908117600160401b1782556005849055815460ff60401b191682556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f806109e560017fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d51612401565b5f1b90505f815490505f819050806001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5291906120ee565b935050505090565b5f5460405163def8c18960e01b81523360048201526001600160a01b039091169063def8c18990602401602060405180830381865afa158015610a9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac39190612109565b610ae05760405163c97c994760e01b815260040160405180910390fd5b5f805f9054906101000a90046001600160a01b03166001600160a01b031663ea4d3c9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5491906120ee565b60405163eea9064b60e01b81529091506001600160a01b0382169063eea9064b90610b8790879087908790600401612414565b5f604051808303815f87803b158015610b9e575f80fd5b505af1158015610bb0573d5f803e3d5ffd5b50505050836001600160a01b03167fa6ca69be1634c9486160d4fa9f11c9bf604a6a4b1fd23c8336ffc5889ef4b5ab83604051610bef91815260200190565b60405180910390a250505050565b5f805460408051632332de6d60e11b8152905183926001600160a01b031691634665bcda9160048083019260209291908290030181865afa158015610c44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6891906120ee565b6040516360f4062b60e01b81523060048201529091505f906001600160a01b038316906360f4062b90602401602060405180830381865afa158015610caf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd3919061248b565b600654600554600454610ce691906124a2565b610cf091906124a2565b610cfa91906124b5565b90505f811215610d0c575f9250505090565b92915050565b80516001600160a01b038116610d3b5760405163d92e233d60e01b815260040160405180910390fd5b5f805160206128188339815191528054600160401b810460ff1615906001600160401b03165f81158015610d6c5750825b90505f826001600160401b03166001148015610d875750303b155b905081158015610d95575080155b15610db35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ddd57845460ff60401b1916600160401b1785555b610de5611aa5565b86515f80546001600160a01b0319166001600160a01b0390921691909117905560208701516002558315610e5357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f546001600160a01b03163314610e86576040516346f94cdd60e11b815260040160405180910390fd5b600454811115610eb8576004805460405163d60a51ff60e01b8152918201839052602482015260440160405180910390fd5b6004546040805183815260208101929092527f2b349f43a65f38c08fc62d88fd2750e2ff318ddb2f862facc55cc4c98ac351d9910160405180910390a18060045f828254610f069190612401565b90915550505f80546040516001600160a01b039091169083908381818185875af1925050503d805f8114610f55576040519150601f19603f3d011682016040523d82523d5f602084013e610f5a565b606091505b5050905080610f7c576040516312171d8360e31b815260040160405180910390fd5b5050565b5f54604051630dc3e02960e01b81523360048201526060916001600160a01b031690630dc3e02990602401602060405180830381865afa158015610fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fea9190612109565b61100757604051639ed46c1f60e01b815260040160405180910390fd5b5f805f9054906101000a90046001600160a01b03166001600160a01b031663ea4d3c9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611057573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107b91906120ee565b6040805160018082528183019092529192505f9190816020015b604080516060808201835280825260208201525f918101919091528152602001906001900390816110955750506040805160018082528183019092529192505f91906020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0825f815181106111305761113061237b565b60200260200101906001600160a01b031690816001600160a01b03168152505085815f815181106111635761116361237b565b6020026020010181815250506040518060600160405280838152602001828152602001306001600160a01b0316815250835f815181106111a5576111a561237b565b60209081029190910101526040516306ec6e8160e11b81526001600160a01b03851690630dd8dd02906111dc908690600401612514565b5f604051808303815f875af11580156111f7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261121e91908101906125a0565b94508560065f82825461123191906124a2565b90915550506040517f6001451f3352c7eb034f00744cc4a30b8a353c5b3a6115559440f7911435d87690611268908890889061262b565b60405180910390a150505050919050565b5f5460405163d02e02cf60e01b81523360048201526001600160a01b039091169063d02e02cf90602401602060405180830381865afa1580156112be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e29190612109565b6112ff5760405163304ac09760e01b815260040160405180910390fd5b6001546040516388676cad60e01b815282151560048201526001600160a01b03909116906388676cad906024015f604051808303815f87803b158015611343575f80fd5b505af1158015611355573d5f803e3d5ffd5b5050505050565b5f5460405163def8c18960e01b81523360048201526001600160a01b039091169063def8c18990602401602060405180830381865afa1580156113a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c59190612109565b6113e25760405163c97c994760e01b815260040160405180910390fd5b5f805f9054906101000a90046001600160a01b03166001600160a01b031663ea4d3c9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145691906120ee565b604051631976849960e21b81523060048201529091505f906001600160a01b038316906365da126490602401602060405180830381865afa15801561149d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c191906120ee565b6040519091506001600160a01b038216907f42176493fdfcada70cc1bcf321c9a2314e9571a9fe53c54a5385a1eeac8bc1d7905f90a26040516336a2fa1960e21b81523060048201526001600160a01b0383169063da8be864906024015f604051808303815f875af1158015611539573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261156091908101906125a0565b505050565b5f6115845f80516020612818833981519152546001600160401b031690565b905090565b5f54604051630dc3e02960e01b81523360048201526001600160a01b0390911690630dc3e02990602401602060405180830381865afa1580156115ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f29190612109565b61160f57604051639ed46c1f60e01b815260040160405180910390fd5b5f8083516001600160401b0381111561162a5761162a611c5d565b604051908082528060200260200182016040528015611653578160200160208202803683370190505b5090505f84516001600160401b0381111561167057611670611c5d565b6040519080825280602002602001820160405280156116a357816020015b606081526020019060019003908161168e5790505b5090505f5b85518110156117d15760018382815181106116c5576116c561237b565b6020026020010190151590811515815250508581815181106116e9576116e961237b565b602002602001015160a00151516001600160401b0381111561170d5761170d611c5d565b604051908082528060200260200182016040528015611736578160200160208202803683370190505b508282815181106117495761174961237b565b60200260200101819052505f5b8682815181106117685761176861237b565b602002602001015160c00151518110156117c85786828151811061178e5761178e61237b565b602002602001015160c0015181815181106117ab576117ab61237b565b6020026020010151856117be91906124a2565b9450600101611756565b506001016116a8565b505f805f9054906101000a90046001600160a01b03166001600160a01b031663ea4d3c9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611822573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184691906120ee565b6040516319a021cb60e11b815290915047906001600160a01b0383169063334043969061187d908a9087908b908a90600401612738565b5f604051808303815f87803b158015611894575f80fd5b505af11580156118a6573d5f803e3d5ffd5b504792505f91506118b990508383612401565b90508660065f8282546118cc9190612401565b925050819055508060045f8282546118e491906124a2565b90915550506040517f8366d2488f13298ba3a5415b491f26008d1cf4fc377b05a30a26958d16288e099061191d908b908a9085906127f3565b60405180910390a1505050505050505050565b5f546001600160a01b0316331461195a576040516346f94cdd60e11b815260040160405180910390fd5b60055460408051918252602082018390527f0993f0703b1d00b4bfb9c89b808b7d29986b127f1d0e543c318f82957ac109f8910160405180910390a18060055f8282546119a791906124a2565b909155505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f008054600119016119f357604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f610d0c82600281518110611a3657611a3661237b565b602002602001015160f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b611aad611ab7565b611ab5611aed565b565b5f8051602061281883398151915254600160401b900460ff16611ab557604051631afcd79f60e31b815260040160405180910390fd5b6119f9611ab7565b5f60408284031215611b05575f80fd5b50919050565b5f8083601f840112611b1b575f80fd5b5081356001600160401b03811115611b31575f80fd5b6020830191508360208260051b8501011115611b4b575f80fd5b9250929050565b5f805f805f805f8060a0898b031215611b69575f80fd5b88356001600160401b038082168214611b80575f80fd5b90985060208a01359080821115611b95575f80fd5b611ba18c838d01611af5565b985060408b0135915080821115611bb6575f80fd5b611bc28c838d01611b0b565b909850965060608b0135915080821115611bda575f80fd5b611be68c838d01611b0b565b909650945060808b0135915080821115611bfe575f80fd5b50611c0b8b828c01611b0b565b999c989b5096995094979396929594505050565b5f60208284031215611c2f575f80fd5b5035919050565b6001600160a01b0381168114611c4a575f80fd5b50565b8035611c5881611c36565b919050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715611c9357611c93611c5d565b60405290565b60405160e081016001600160401b0381118282101715611c9357611c93611c5d565b604051601f8201601f191681016001600160401b0381118282101715611ce357611ce3611c5d565b604052919050565b5f805f60608486031215611cfd575f80fd5b8335611d0881611c36565b92506020848101356001600160401b0380821115611d24575f80fd5b9086019060408289031215611d37575f80fd5b611d3f611c71565b823582811115611d4d575f80fd5b8301601f81018a13611d5d575f80fd5b803583811115611d6f57611d6f611c5d565b611d81601f8201601f19168701611cbb565b93508084528a86828401011115611d96575f80fd5b80868301878601375f908401860152509081529082013591810191909152929592945050506040919091013590565b5f60408284031215611dd5575f80fd5b611ddd611c71565b8235611de881611c36565b81526020928301359281019290925250919050565b5f815180845260208085019450602084015f5b83811015611e2c57815187529582019590820190600101611e10565b509495945050505050565b602081525f611e496020830184611dfd565b9392505050565b8015158114611c4a575f80fd5b5f60208284031215611e6d575f80fd5b8135611e4981611e50565b5f6001600160401b03821115611e9057611e90611c5d565b5060051b60200190565b803563ffffffff81168114611c58575f80fd5b5f82601f830112611ebc575f80fd5b81356020611ed1611ecc83611e78565b611cbb565b8083825260208201915060208460051b870101935086841115611ef2575f80fd5b602086015b84811015611f17578035611f0a81611c36565b8352918301918301611ef7565b509695505050505050565b5f82601f830112611f31575f80fd5b81356020611f41611ecc83611e78565b8083825260208201915060208460051b870101935086841115611f62575f80fd5b602086015b84811015611f175780358352918301918301611f67565b5f8060408385031215611f8f575f80fd5b82356001600160401b0380821115611fa5575f80fd5b818501915085601f830112611fb8575f80fd5b81356020611fc8611ecc83611e78565b82815260059290921b84018101918181019089841115611fe6575f80fd5b8286015b848110156120c157803586811115612000575f80fd5b870160e0818d03601f19011215612015575f80fd5b61201d611c99565b612028868301611c4d565b815261203660408301611c4d565b8682015261204660608301611c4d565b60408201526080820135606082015261206160a08301611e9a565b608082015260c08083013589811115612078575f80fd5b6120868f8983870101611ead565b60a08401525060e08301358981111561209d575f80fd5b6120ab8f8983870101611f22565b9183019190915250845250918301918301611fea565b50965050860135925050808211156120d7575f80fd5b506120e485828601611f22565b9150509250929050565b5f602082840312156120fe575f80fd5b8151611e4981611c36565b5f60208284031215612119575f80fd5b8151611e4981611e50565b5f808335601e19843603018112612139575f80fd5b83016020810192503590506001600160401b03811115612157575f80fd5b803603821315611b4b575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803564ffffffffff81168114611c58575f80fd5b5f838385526020808601955060208560051b830101845f5b878110156121f357848303601f190189526121d48288612124565b6121df858284612165565b9a86019a94505050908301906001016121b9565b5090979650505050505050565b8183525f6001600160fb1b03831115612217575f80fd5b8260051b80836020870137939093016020019392505050565b8183526020808401935f91600585811b8301820185855b888110156122b557858303601f19018a52813536899003601e1901811261226c575f80fd5b880185810190356001600160401b03811115612286575f80fd5b80861b3603821315612296575f80fd5b6122a1858284612200565b9b87019b9450505090840190600101612247565b509098975050505050505050565b6001600160401b03891681525f602060a06020840152893560a08401526122ed60208b018b612124565b604060c086015261230260e086018284612165565b85810360408701528a81528b925060200190505f5b8a8110156123415764ffffffffff61232e8461218d565b1682529183019190830190600101612317565b50848103606086015261235581898b6121a1565b92505050828103608084015261236c818587612230565b9b9a5050505050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e198436030181126123a4575f80fd5b8301803591506001600160401b038211156123bd575f80fd5b6020019150600581901b3603821315611b4b575f80fd5b5f602082840312156123e4575f80fd5b611e498261218d565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610d0c57610d0c6123ed565b60018060a01b03841681525f60206060602084015284516040606085015280518060a08601525f5b818110156124585782810184015186820160c00152830161243c565b505f60c082870101526020870151608086015260c0601f19601f8301168601019350505050826040830152949350505050565b5f6020828403121561249b575f80fd5b5051919050565b80820180821115610d0c57610d0c6123ed565b8082018281125f8312801582168215821617156124d4576124d46123ed565b505092915050565b5f815180845260208085019450602084015f5b83811015611e2c5781516001600160a01b0316875295820195908201906001016124ef565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156122b557603f19898403018552815160608151818652612561828701826124dc565b915050888201518582038a8701526125798282611dfd565b928901516001600160a01b031695890195909552509487019492509086019060010161253b565b5f60208083850312156125b1575f80fd5b82516001600160401b038111156125c6575f80fd5b8301601f810185136125d6575f80fd5b80516125e4611ecc82611e78565b81815260059190911b82018301908381019087831115612602575f80fd5b928401925b8284101561262057835182529284019290840190612607565b979650505050505050565b828152604060208201525f6126436040830184611dfd565b949350505050565b5f82825180855260208086019550808260051b8401018186015f5b848110156121f357858303601f19018952815180516001600160a01b03908116855285820151811686860152604080830151909116908501526060808201519085015260808082015163ffffffff169085015260a08082015160e082870181905291906126d5838801826124dc565b9250505060c080830151925085820381870152506126f38183611dfd565b9a86019a9450505090830190600101612666565b5f815180845260208085019450602084015f5b83811015611e2c57815115158752958201959082019060010161271a565b608081525f61274a608083018761264b565b6020838203818501528187518084528284019150828160051b850101838a015f5b838110156127c757868303601f190185528151805180855290870190878501905f5b818110156127b25783516001600160a01b03168352928901929189019160010161278d565b5050958701959350509085019060010161276b565b505086810360408801526127db818a611dfd565b94505050505082810360608401526126208185612707565b606081525f612805606083018661264b565b6020830194909452506040015291905056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b522996afc7ca4b85bbbfb8bec7d9486f91dd1577bd80271d51c9af514ec2fe364736f6c63430008180033", + "nonce": "0xcf", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xdcc537", + "logs": [ + { + "address": "0xa8bd8f089f5bd0bee61e23b3a0a4aa1332fe929d", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xc479445a397e937daa0e658e0c6a408670c676a6e9899f186969517d4f0e9dc4", + "blockNumber": "0x13fb2ba", + "transactionHash": "0xa7b95e51c3329685699a8f6e7596848a039c514212da7ddf979c9459f598469e", + "transactionIndex": "0xa4", + "logIndex": "0x154", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000004000000000000000000000000400000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa7b95e51c3329685699a8f6e7596848a039c514212da7ddf979c9459f598469e", + "transactionIndex": "0xa4", + "blockHash": "0xc479445a397e937daa0e658e0c6a408670c676a6e9899f186969517d4f0e9dc4", + "blockNumber": "0x13fb2ba", + "gasUsed": "0x235cb0", + "effectiveGasPrice": "0x1c97e77ac", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0xa8bd8f089f5bd0bee61e23b3a0a4aa1332fe929d" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728762860, + "chain": 1, + "commit": "aef108d" +} \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNodesManager-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNodesManager-1.json new file mode 100644 index 000000000..60c63a5d4 --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/StakingNodesManager-1.json @@ -0,0 +1,60 @@ +{ + "transactions": [ + { + "hash": "0x2e8de640ac1289d10af77335bfc53038ef002d4467ce792909e4cbb384d9d28f", + "transactionType": "CREATE", + "contractName": "StakingNodesManager", + "contractAddress": "0x33ffb713c73cdf668b11296bb9b1c9a0c3100626", + "function": null, + "arguments": null, + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0x50e4e6", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61486c80620000e35f395ff3fe608060405260043610620002fe575f3560e01c806391d14854116200018e578063cb70bd7911620000ea578063def8c189116200009e578063f33de6c01162000076578063f33de6c01462000a23578063f3513a371462000a39578063fb1bb9de1462000a5f578063ff50abdc1462000a94575f80fd5b8063def8c18914620009a9578063e63ab1e914620009cd578063ea4d3c9b1462000a02575f80fd5b8063cb70bd7914620008ee578063cd3cddb31462000905578063d02e02cf1462000929578063d2609520146200094d578063d27e80e8146200096e578063d547741f1462000985575f80fd5b8063ad7805e81162000142578063ad7805e8146200080a578063b1b623d8146200083f578063ba4eb2c41462000874578063ba8b9761146200088f578063c108f0cb14620008a6578063c9fd18b314620008ca575f80fd5b806391d14854146200073e5780639872ab8414620007625780639ab739d314620007835780639e2eaadb14620007b8578063a1174e7d14620007cf578063a217fddf14620007f5575f80fd5b806336568abe116200025a5780635fc90c56116200020e5780637d1f8a8111620001e65780637d1f8a8114620006bc57806382699d5a14620006e257806384f9b77a1462000703578063863928511462000727575f80fd5b80635fc90c56146200063f57806361464d2d146200067457806361669d271462000698575f80fd5b806336568abe146200057157806339b70e3814620005955780633f2a554014620005b65780634665bcda14620005d7578063555344df14620005f75780635f8ad023146200061b575f80fd5b8063239d85ab11620002b2578063239d85ab1462000478578063248a9ca3146200049e5780632b5cfa8114620004c25780632b828f5c14620004f55780632f2ff15d146200051957806335aa2e44146200053d575f80fd5b806301ffc9a7146200034257806304f67aa1146200037b5780630dc3e02914620003ad57806315d36e7214620003d15780631c53c28014620004065780632118a4bb1462000443575f80fd5b366200033e57604080513381523460208201527fbfe611b001dfcd411432f7bf0d79b82b4b2ee81511edac123a3403c357fb972a910160405180910390a1005b5f80fd5b3480156200034e575f80fd5b50620003666200036036600462003435565b62000aab565b60405190151581526020015b60405180910390f35b34801562000387575f80fd5b506200039e5f80516020620047f783398151915281565b60405190815260200162000372565b348015620003b9575f80fd5b5062000366620003cb36600462003473565b62000ae2565b348015620003dd575f80fd5b506200039e7f2a3e51343906b7d96ede4f504667876289b489c8291cb3728f6505c8853bf75881565b34801562000412575f80fd5b506200042a6200042436600462003491565b62000b0f565b6040516001600160a01b03909116815260200162000372565b3480156200044f575f80fd5b506200039e7ffc5002b0ddb2d30bcbc72c36a5a6e5db445f5ea1509f389f2698d1cf20c0638581565b34801562000484575f80fd5b506200049c6200049636600462003473565b62000b38565b005b348015620004aa575f80fd5b506200039e620004bc36600462003491565b62000c98565b348015620004ce575f80fd5b50620004e6620004e036600462003473565b62000cb9565b604051620003729190620034fa565b34801562000501575f80fd5b506200049c620005133660046200350e565b62000cfe565b34801562000525575f80fd5b506200049c6200053736600462003525565b62000f4b565b34801562000549575f80fd5b50620005616200055b36600462003491565b62000f73565b6040516200037292919062003556565b3480156200057d575f80fd5b506200049c6200058f36600462003525565b62001031565b348015620005a1575f80fd5b506004546200042a906001600160a01b031681565b348015620005c2575f80fd5b506007546200042a906001600160a01b031681565b348015620005e3575f80fd5b505f546200042a906001600160a01b031681565b34801562000603575f80fd5b506200049c6200061536600462003579565b6200106c565b34801562000627575f80fd5b506200049c6200063936600462003579565b620010dd565b3480156200064b575f80fd5b506200039e7ffbad6f4d3f31ae36729ac2baa91ec12b01628098ce3f5ec489f254ef90ff508881565b34801562000680575f80fd5b506200049c6200069236600462003491565b620012fe565b348015620006a4575f80fd5b50620004e6620006b636600462003491565b62001354565b348015620006c8575f80fd5b50600c546200042a9061010090046001600160a01b031681565b348015620006ee575f80fd5b506001546200042a906001600160a01b031681565b3480156200070f575f80fd5b506200049c62000721366004620035ec565b620013f3565b6200049c62000738366004620035fe565b62001611565b3480156200074a575f80fd5b50620003666200075c36600462003525565b6200167f565b3480156200076e575f80fd5b506006546200042a906001600160a01b031681565b3480156200078f575f80fd5b506200039e7f1ce621c530dfade3239478366c4e5e2c9d62462d265362544aa805bfede55f8b81565b348015620007c4575f80fd5b506200042a620016b6565b348015620007db575f80fd5b50620007e66200188c565b60405162000372919062003626565b34801562000801575f80fd5b506200039e5f81565b34801562000816575f80fd5b506200039e7fe0d563514842a8c29151c49cd2698127f54dd344a9b2c74a42fe9be3e305fe9881565b3480156200084b575f80fd5b506200039e7f87421e189bd94dc1673f0d5255fa9f0cb8ff65bb74e34e0a80b07e9f0b4e34d581565b34801562000880575f80fd5b50600c54620003669060ff1681565b3480156200089b575f80fd5b506200049c620018ee565b348015620008b2575f80fd5b506200049c620008c4366004620036e6565b62001961565b348015620008d6575f80fd5b506200039e620008e836600462003809565b620019c9565b348015620008fa575f80fd5b506200039e60095481565b34801562000911575f80fd5b506200049c6200092336600462003473565b620019e5565b34801562000935575f80fd5b50620003666200094736600462003473565b62001af3565b34801562000959575f80fd5b506005546200042a906001600160a01b031681565b3480156200097a575f80fd5b506200049c62001b20565b34801562000991575f80fd5b506200049c620009a336600462003525565b62001b87565b348015620009b5575f80fd5b5062000366620009c736600462003473565b62001ba9565b348015620009d9575f80fd5b506200039e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801562000a0e575f80fd5b506002546200042a906001600160a01b031681565b34801562000a2f575f80fd5b506008546200039e565b34801562000a45575f80fd5b5062000a5062001bd6565b604051620003729190620038fb565b34801562000a6b575f80fd5b506200039e7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a81565b34801562000aa0575f80fd5b506200039e62001cd5565b5f6001600160e01b03198216637965db0b60e01b148062000adc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f62000adc7f1ce621c530dfade3239478366c4e5e2c9d62462d265362544aa805bfede55f8b836200167f565b6008818154811062000b1f575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f80516020620047f783398151915262000b528162001e21565b816001600160a01b03811662000b7b5760405163d92e233d60e01b815260040160405180910390fd5b6005546001600160a01b031662000ba557604051636aef646b60e11b815260040160405180910390fd5b600554604051631b2ce7f360e11b81526001600160a01b03858116600483015290911690633659cfe6906024015f604051808303815f87803b15801562000bea575f80fd5b505af115801562000bfd573d5f803e3d5ffd5b505060085491505f90505b8181101562000c4f5762000c466008828154811062000c2b5762000c2b62003975565b5f918252602090912001546001600160a01b03168362001e30565b60010162000c08565b50604080516001600160a01b0386168152602081018390527f02c79c1e3f8b682a9487f84feb1ab388b1ebf7a5e85307e941ec19122d2ed14e910160405180910390a150505050565b5f9081525f8051602062004817833981519152602052604090206001015490565b60408051600160f81b60208201525f6021820152606083811b6bffffffffffffffffffffffff1916602c83015291016040516020818303038152906040529050919050565b62000d0d602082018262003473565b6001600160a01b03811662000d355760405163d92e233d60e01b815260040160405180910390fd5b62000d47604083016020840162003473565b6001600160a01b03811662000d6f5760405163d92e233d60e01b815260040160405180910390fd5b62000d81606084016040850162003473565b6001600160a01b03811662000da95760405163d92e233d60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff168062000df3575080546001600160401b03808416911610155b1562000e125760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781555f62000e3f8162001e21565b62000e4e602088018862003473565b600c80546001600160a01b039290921661010002610100600160a81b031990921691909117905562000eb27fe0d563514842a8c29151c49cd2698127f54dd344a9b2c74a42fe9be3e305fe9862000eac60408a0160208b0162003473565b62002039565b5062000eea7f1ce621c530dfade3239478366c4e5e2c9d62462d265362544aa805bfede55f8b62000eac60608a0160408b0162003473565b5050600380546001600160a01b0319169055805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b62000f568262000c98565b62000f618162001e21565b62000f6d838362002039565b50505050565b600a818154811062000f83575f80fd5b905f5260205f2090600202015f91509050805f01805462000fa49062003989565b80601f016020809104026020016040519081016040528092919081815260200182805462000fd29062003989565b8015620010215780601f1062000ff75761010080835404028352916020019162001021565b820191905f5260205f20905b8154815290600101906020018083116200100357829003601f168201915b5050505050908060010154905082565b6001600160a01b03811633146200105b5760405163334bd91960e11b815260040160405180910390fd5b620010678282620020e1565b505050565b6008545f5b8281101562000f6d575f84848381811062001090576200109062003975565b9050602002810190620010a49190620039bd565b606001359050828110620010d357604051630fd3716f60e01b8152600481018290526024015b60405180910390fd5b5060010162001071565b7f87421e189bd94dc1673f0d5255fa9f0cb8ff65bb74e34e0a80b07e9f0b4e34d5620011098162001e21565b620011136200215f565b600c5460ff16156200113857604051634ecaf21960e11b815260040160405180910390fd5b5f8290036200115a5760405163f0a35a8760e01b815260040160405180910390fd5b6200116683836200106c565b5f6200117c6801bc16d674ec80000084620039f0565b6006546040516378a1085360e11b8152600481018390529192506001600160a01b03169063f14210a6906024015f604051808303815f87803b158015620011c1575f80fd5b505af1158015620011d4573d5f803e3d5ffd5b508592505f9150505b81811015620012d15736868683818110620011fc57620011fc62003975565b9050602002810190620012109190620039bd565b9050600b62001220828062003a0a565b6040516200123092919062003a4f565b9081526040519081900360200190205460ff1615620012725762001255818062003a0a565b60405163055ce5e960e01b8152600401620010ca92919062003a86565b6001600b62001282838062003a0a565b6040516200129292919062003a4f565b908152604051908190036020019020805491151560ff19909216919091179055620012c7816801bc16d674ec800000620021aa565b50600101620011dd565b5050506200106760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f80516020620047f7833981519152620013188162001e21565b60098290556040518281527f5179ce38a6079ec731d2e265edcf9e1635e8ac7fd689ad42c5e20a7571c054159060200160405180910390a15050565b60605f600883815481106200136d576200136d62003975565b5f9182526020918290200154604080516351d5709b60e11b815290516001600160a01b039092169263a3aae136926004808401938290030181865afa158015620013b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620013df919062003aa3565b9050620013ec8162000cb9565b9392505050565b620014076101408201610120830162003473565b6001600160a01b0381166200142f5760405163d92e233d60e01b815260040160405180910390fd5b620014436101608301610140840162003473565b6001600160a01b0381166200146b5760405163d92e233d60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015620014b05750825b90505f826001600160401b03166001148015620014cc5750303b155b905081158015620014db575080155b15620014fa5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200152557845460ff60401b1916600160401b1785555b6200152f6200242f565b620015396200243b565b62001544886200244f565b6200154f8862002779565b6200156361016089016101408a0162003473565b600780546001600160a01b0319166001600160a01b0392909216919091179055610100880135600955620015a061014089016101208a0162003473565b600680546001600160a01b0319166001600160a01b039290921691909117905583156200160757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b336001600160a01b03166008838154811062001631576200163162003975565b5f918252602090912001546001600160a01b0316146200166e57604051635975744160e01b815233600482015260248101839052604401620010ca565b6200167b8282346200293f565b5050565b5f9182525f8051602062004817833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6005545f906001600160a01b031680620016e35760405163d92e233d60e01b815260040160405180910390fd5b7ffbad6f4d3f31ae36729ac2baa91ec12b01628098ce3f5ec489f254ef90ff50886200170f8162001e21565b60085460095481106200173c57600954604051634ec828df60e11b8152600401620010ca91815260200190565b6005546040515f916001600160a01b031690620017599062003419565b6001600160a01b0390911681526040602082018190525f90820152606001604051809103905ff08015801562001791573d5f803e3d5ffd5b50905080620017a1818462001e30565b5f816001600160a01b0316630b10b2016040518163ffffffff1660e01b81526004016020604051808303815f875af1158015620017e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001806919062003aa3565b600880546001810182555f9182527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b038681169182179092556040519394509084169290917fd343f0ba00451215cbdbdbcd008daa9a218952bce2ba4e283e72d722f0a2ce0791a35094505050505090565b60606008805480602002602001604051908101604052809291908181526020018280548015620018e457602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620018c5575b5050505050905090565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200191a8162001e21565b600c805460ff191660019081179091556040519081527f73da136f9aaeb50b1d3304d0410c5b6bf28e6003ad23ab5d3a8b0df1c1c8d583906020015b60405180910390a150565b7fe0d563514842a8c29151c49cd2698127f54dd344a9b2c74a42fe9be3e305fe986200198d8162001e21565b5f5b82518110156200106757620019c0838281518110620019b257620019b262003975565b602002602001015162002b0e565b6001016200198f565b5f620019da87878787878762002e47565b979650505050505050565b5f80516020620047f7833981519152620019ff8162001e21565b816001600160a01b03811662001a285760405163d92e233d60e01b815260040160405180910390fd5b6005546001600160a01b03161562001a535760405163a81fbfef60e01b815260040160405180910390fd5b823060405162001a639062003427565b6001600160a01b03928316815291166020820152604001604051809103905ff08015801562001a94573d5f803e3d5ffd5b50600580546001600160a01b0319166001600160a01b039283169081179091556040805191825291851660208201527fd13f13f7d12bbc1ec3c2f99ed663d6b643f722a4654c11d4325b35ed88d9fb75910160405180910390a1505050565b5f62000adc7ffc5002b0ddb2d30bcbc72c36a5a6e5db445f5ea1509f389f2698d1cf20c06385836200167f565b7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a62001b4c8162001e21565b600c805460ff191690556040515f81527f73da136f9aaeb50b1d3304d0410c5b6bf28e6003ad23ab5d3a8b0df1c1c8d5839060200162001956565b62001b928262000c98565b62001b9d8162001e21565b62000f6d8383620020e1565b5f62000adc7f2a3e51343906b7d96ede4f504667876289b489c8291cb3728f6505c8853bf758836200167f565b6060600a805480602002602001604051908101604052809291908181526020015f905b8282101562001ccc578382905f5260205f2090600202016040518060400160405290815f8201805462001c2c9062003989565b80601f016020809104026020016040519081016040528092919081815260200182805462001c5a9062003989565b801562001ca95780601f1062001c7f5761010080835404028352916020019162001ca9565b820191905f5260205f20905b81548152906001019060200180831162001c8b57829003601f168201915b505050505081526020016001820154815250508152602001906001019062001bf9565b50505050905090565b6008545f9081805b8281101562001d85576008818154811062001cfc5762001cfc62003975565b5f918252602091829020015460408051630dd28e5360e31b815290516001600160a01b0390921692636e947298926004808401938290030181865afa15801562001d48573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001d6e919062003ac1565b62001d7a908362003ad9565b915060010162001cdd565b50600c5461010090046001600160a01b03161562000adc57600c60019054906101000a90046001600160a01b03166001600160a01b031663acd08aa76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001def573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e15919062003ac1565b620013ec908262003ad9565b62001e2d8133620031c6565b50565b5f826001600160a01b031663b3c650156040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001e6e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e94919062003aef565b9050806001600160401b03165f0362001fcc576040805180820182523081526020810184815291516377b3492760e01b815290516001600160a01b03908116600483015291516024820152908416906377b34927906044015f604051808303815f87803b15801562001f04575f80fd5b505af115801562001f17573d5f803e3d5ffd5b50505050826001600160a01b031663b3c650156040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001f58573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001f7e919062003aef565b604080516001600160a01b03861681526001600160401b03831660208201529192507fa070c83df7efc58b668afb64705222890e09b4090d56ee9981fc66ac1c552aa1910160405180910390a15b806001600160401b031660010362001067576040516316d384a360e21b81525f60048201526001600160a01b03841690635b4e128c906024015f604051808303815f87803b1580156200201d575f80fd5b505af115801562002030573d5f803e3d5ffd5b50505050505050565b5f5f80516020620048178339815191526200205584846200167f565b620020d7575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556200208c3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505062000adc565b5f91505062000adc565b5f5f8051602062004817833981519152620020fd84846200167f565b15620020d7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505062000adc565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901620021a457604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60608201355f620021bb8262001354565b90505f620021e5620021ce868062003a0a565b620021dd602089018962003a0a565b868962002e47565b9050846040013581146200221a5760408051630d2f5c5b60e41b815260048101839052908601356024820152604401620010ca565b6001546001600160a01b031663228951188562002238888062003a0a565b866200224860208c018c62003a0a565b886040518863ffffffff1660e01b81526004016200226c9695949392919062003b17565b5f604051808303818588803b15801562002284575f80fd5b505af115801562002297573d5f803e3d5ffd5b5050505050600a604051806040016040528087805f0190620022ba919062003a0a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250938552505050606089013560209283015283546001810185559381522081519192600202019081906200231d908262003bba565b506020820151816001015550506008838154811062002340576200234062003975565b5f9182526020909120015460405163f99d9e5560e01b8152600481018690526001600160a01b039091169063f99d9e55906024015f604051808303815f87803b1580156200238c575f80fd5b505af11580156200239f573d5f803e3d5ffd5b505050507fdc72e80912284a6826bc0379c720da32bc7d9f8bef5caceb8c1408d7582e191983868060200190620023d7919062003a0a565b620023e3898062003a0a565b8688604051620023fa979695949392919062003c86565b60405180910390a15050505050565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6200243962003203565b565b6200244562003203565b620024396200324d565b6200245e602082018262003473565b6001600160a01b038116620024865760405163d92e233d60e01b815260040160405180910390fd5b62002498604083016020840162003473565b6001600160a01b038116620024c05760405163d92e233d60e01b815260040160405180910390fd5b620024d2606084016040850162003473565b6001600160a01b038116620024fa5760405163d92e233d60e01b815260040160405180910390fd5b6200250c60a085016080860162003473565b6001600160a01b038116620025345760405163d92e233d60e01b815260040160405180910390fd5b6200254660c0860160a0870162003473565b6001600160a01b0381166200256e5760405163d92e233d60e01b815260040160405180910390fd5b6200258060e0870160c0880162003473565b6001600160a01b038116620025a85760405163d92e233d60e01b815260040160405180910390fd5b620025bb610100880160e0890162003473565b6001600160a01b038116620025e35760405163d92e233d60e01b815260040160405180910390fd5b620025f75f62000eac60208b018b62003473565b506200261d5f80516020620047f783398151915262000eac60408b0160208c0162003473565b50620026557f2a3e51343906b7d96ede4f504667876289b489c8291cb3728f6505c8853bf75862000eac60808b0160608c0162003473565b506200268d7f87421e189bd94dc1673f0d5255fa9f0cb8ff65bb74e34e0a80b07e9f0b4e34d562000eac60a08b0160808c0162003473565b50620026c57ffc5002b0ddb2d30bcbc72c36a5a6e5db445f5ea1509f389f2698d1cf20c0638562000eac60608b0160408c0162003473565b50620026fd7ffbad6f4d3f31ae36729ac2baa91ec12b01628098ce3f5ec489f254ef90ff508862000eac60c08b0160a08c0162003473565b50620027357f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62000eac60e08b0160c08c0162003473565b506200276e7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a62000eac6101008b0160e08c0162003473565b505050505050505050565b6200278d6101808201610160830162003473565b6001600160a01b038116620027b55760405163d92e233d60e01b815260040160405180910390fd5b620027c96101a08301610180840162003473565b6001600160a01b038116620027f15760405163d92e233d60e01b815260040160405180910390fd5b620028056101c084016101a0850162003473565b6001600160a01b0381166200282d5760405163d92e233d60e01b815260040160405180910390fd5b620028416101e085016101c0860162003473565b6001600160a01b038116620028695760405163d92e233d60e01b815260040160405180910390fd5b6200287d6101808601610160870162003473565b600180546001600160a01b0319166001600160a01b0392909216919091179055620028b16101a08601610180870162003473565b5f80546001600160a01b0319166001600160a01b0392909216919091179055620028e46101c086016101a0870162003473565b600280546001600160a01b0319166001600160a01b0392909216919091179055620029186101e086016101c0870162003473565b600480546001600160a01b0319166001600160a01b03929092169190911790555050505050565b5f600183600181111562002957576200295762003ce0565b03620029dc5760075f9054906101000a90046001600160a01b03166001600160a01b031663453ba4886040518163ffffffff1660e01b8152600401602060405180830381865afa158015620029ae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620029d4919062003aa3565b905062002a66565b5f836001811115620029f257620029f262003ce0565b0362002a495760075f9054906101000a90046001600160a01b03166001600160a01b0316631d9082886040518163ffffffff1660e01b8152600401602060405180830381865afa158015620029ae573d5f803e3d5ffd5b8260405163586dcbff60e01b8152600401620010ca919062003d15565b5f816001600160a01b0316836040515f6040518083038185875af1925050503d805f811462002ab1576040519150601f19603f3d011682016040523d82523d5f602084013e62002ab6565b606091505b505090508062002ad9576040516312171d8360e31b815260040160405180910390fd5b7f469ab84da5ea1952fdc0b8e86ec64bc27f9aa12eee7f41f7817fc282b13174fb858585604051620023fa9392919062003d25565b80516020820151604083015160608401515f8162002b2d848662003ad9565b62002b39919062003ad9565b90505f6008868154811062002b525762002b5262003975565b5f918252602090912001546040516379cb2d2f60e01b8152600481018490526001600160a01b03909116915081906379cb2d2f906024015f604051808303815f87803b15801562002ba1575f80fd5b505af115801562002bb4573d5f803e3d5ffd5b505050505f85111562002c285760065f9054906101000a90046001600160a01b03166001600160a01b0316631ef2aac5866040518263ffffffff1660e01b81526004015f604051808303818588803b15801562002c0f575f80fd5b505af115801562002c22573d5f803e3d5ffd5b50505050505b831562002caa57600c546040515f9161010090046001600160a01b03169086908381818185875af1925050503d805f811462002c80576040519150601f19603f3d011682016040523d82523d5f602084013e62002c85565b606091505b505090508062002ca8576040516312171d8360e31b815260040160405180910390fd5b505b821562002df657600754604080516308a7749160e31b815290515f926001600160a01b03169163453ba4889160048083019260209291908290030181865afa15801562002cf9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002d1f919062003aa3565b6001600160a01b0316846040515f6040518083038185875af1925050503d805f811462002d68576040519150601f19603f3d011682016040523d82523d5f602084013e62002d6d565b606091505b505090508062002d90576040516312171d8360e31b815260040160405180910390fd5b60075f9054906101000a90046001600160a01b03166001600160a01b031663f9fc0d076040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562002ddd575f80fd5b505af115801562002df0573d5f803e3d5ffd5b50505050505b6040805187815260208101879052908101859052606081018490527f862fa866e2defc0ce54e39f7f30e76dc382859ffdaad1909d80281216e3a6ccd9060800160405180910390a150505050505050565b5f8062002e59633b9aca008462003d49565b90505f62002e678262003257565b90505f60028a8a5f60801b60405160200162002e869392919062003d69565b60408051601f198184030181529082905262002ea29162003d90565b602060405180830381855afa15801562002ebe573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019062002ee3919062003ac1565b90505f60028062002ef86040848c8e62003da3565b60405160200162002f0b92919062003a4f565b60408051601f198184030181529082905262002f279162003d90565b602060405180830381855afa15801562002f43573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019062002f68919062003ac1565b600262002f798b6040818f62003da3565b60405162002f8e9291905f9060200162003dcc565b60408051601f198184030181529082905262002faa9162003d90565b602060405180830381855afa15801562002fc6573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019062002feb919062003ac1565b60408051602081019390935282015260600160408051601f1981840301815290829052620030199162003d90565b602060405180830381855afa15801562003035573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906200305a919062003ac1565b905060028083896040516020016200307492919062003dde565b60408051601f1981840301815290829052620030909162003d90565b602060405180830381855afa158015620030ac573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190620030d1919062003ac1565b604051600290620030eb9087905f90879060200162003e05565b60408051601f1981840301815290829052620031079162003d90565b602060405180830381855afa15801562003123573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019062003148919062003ac1565b60408051602081019390935282015260600160408051601f1981840301815290829052620031769162003d90565b602060405180830381855afa15801562003192573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190620031b7919062003ac1565b9b9a5050505050505050505050565b620031d282826200167f565b6200167b5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401620010ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200243957604051631afcd79f60e31b815260040160405180910390fd5b6200240962003203565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b825f8151811062003299576200329962003975565b60200101906001600160f81b03191690815f1a9053508060061a60f81b82600181518110620032cc57620032cc62003975565b60200101906001600160f81b03191690815f1a9053508060051a60f81b82600281518110620032ff57620032ff62003975565b60200101906001600160f81b03191690815f1a9053508060041a60f81b8260038151811062003332576200333262003975565b60200101906001600160f81b03191690815f1a9053508060031a60f81b8260048151811062003365576200336562003975565b60200101906001600160f81b03191690815f1a9053508060021a60f81b8260058151811062003398576200339862003975565b60200101906001600160f81b03191690815f1a9053508060011a60f81b82600681518110620033cb57620033cb62003975565b60200101906001600160f81b03191690815f1a905350805f1a60f81b82600781518110620033fd57620033fd62003975565b60200101906001600160f81b03191690815f1a90535050919050565b6105978062003e3f83390190565b61042180620043d683390190565b5f6020828403121562003446575f80fd5b81356001600160e01b031981168114620013ec575f80fd5b6001600160a01b038116811462001e2d575f80fd5b5f6020828403121562003484575f80fd5b8135620013ec816200345e565b5f60208284031215620034a2575f80fd5b5035919050565b5f5b83811015620034c5578181015183820152602001620034ab565b50505f910152565b5f8151808452620034e6816020860160208601620034a9565b601f01601f19169290920160200192915050565b602081525f620013ec6020830184620034cd565b5f606082840312156200351f575f80fd5b50919050565b5f806040838503121562003537575f80fd5b8235915060208301356200354b816200345e565b809150509250929050565b604081525f6200356a6040830185620034cd565b90508260208301529392505050565b5f80602083850312156200358b575f80fd5b82356001600160401b0380821115620035a2575f80fd5b818501915085601f830112620035b6575f80fd5b813581811115620035c5575f80fd5b8660208260051b8501011115620035da575f80fd5b60209290920196919550909350505050565b5f6101e082840312156200351f575f80fd5b5f806040838503121562003610575f80fd5b823591506020830135600281106200354b575f80fd5b602080825282518282018190525f9190848201906040850190845b81811015620036685783516001600160a01b03168352928401929184019160010162003641565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715620036ad57620036ad62003674565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620036de57620036de62003674565b604052919050565b5f6020808385031215620036f8575f80fd5b82356001600160401b03808211156200370f575f80fd5b818501915085601f83011262003723575f80fd5b81358181111562003738576200373862003674565b62003748848260051b01620036b3565b818152848101925060079190911b83018401908782111562003768575f80fd5b928401925b81841015620019da576080848903121562003786575f80fd5b6200379062003688565b84358152858501358682015260408086013590820152606080860135908201528352608090930192918401916200376d565b5f8083601f840112620037d3575f80fd5b5081356001600160401b03811115620037ea575f80fd5b60208301915083602082850101111562003802575f80fd5b9250929050565b5f805f805f80608087890312156200381f575f80fd5b86356001600160401b038082111562003836575f80fd5b620038448a838b01620037c2565b90985096506020915088820135818111156200385e575f80fd5b6200386c8b828c01620037c2565b90975095505060408901358181111562003884575f80fd5b8901601f81018b1362003895575f80fd5b803582811115620038aa57620038aa62003674565b620038be601f8201601f19168501620036b3565b92508083528b84828401011115620038d4575f80fd5b80848301858501375f84828501015250508093505050606087013590509295509295509295565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200396757888303603f19018552815180518785526200394988860182620034cd565b91890151948901949094529487019492509086019060010162003922565b509098975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806200399e57607f821691505b6020821081036200351f57634e487b7160e01b5f52602260045260245ffd5b5f8235607e19833603018112620039d2575f80fd5b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141762000adc5762000adc620039dc565b5f808335601e1984360301811262003a20575f80fd5b8301803591506001600160401b0382111562003a3a575f80fd5b60200191503681900382131562003802575f80fd5b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f62003a9b60208301848662003a5e565b949350505050565b5f6020828403121562003ab4575f80fd5b8151620013ec816200345e565b5f6020828403121562003ad2575f80fd5b5051919050565b8082018082111562000adc5762000adc620039dc565b5f6020828403121562003b00575f80fd5b81516001600160401b0381168114620013ec575f80fd5b608081525f62003b2c60808301888a62003a5e565b828103602084015262003b408188620034cd565b9050828103604084015262003b5781868862003a5e565b915050826060830152979650505050505050565b601f8211156200106757805f5260205f20601f840160051c8101602085101562003b925750805b601f840160051c820191505b8181101562003bb3575f815560010162003b9e565b5050505050565b81516001600160401b0381111562003bd65762003bd662003674565b62003bee8162003be7845462003989565b8462003b6b565b602080601f83116001811462003c24575f841562003c0c5750858301515b5f19600386901b1c1916600185901b17855562003c7e565b5f85815260208120601f198616915b8281101562003c545788860151825594840194600190910190840162003c33565b508582101562003c7257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b87815260a060208201525f62003ca160a08301888a62003a5e565b828103604084015262003cb681878962003a5e565b9050846060840152828103608084015262003cd28185620034cd565b9a9950505050505050505050565b634e487b7160e01b5f52602160045260245ffd5b6002811062003d1157634e487b7160e01b5f52602160045260245ffd5b9052565b6020810162000adc828462003cf4565b8381526060810162003d3b602083018562003cf4565b826040830152949350505050565b5f8262003d6457634e487b7160e01b5f52601260045260245ffd5b500490565b828482376fffffffffffffffffffffffffffffffff19919091169101908152601001919050565b5f8251620039d2818460208701620034a9565b5f808585111562003db2575f80fd5b8386111562003dbf575f80fd5b5050820193919092039150565b82848237909101908152602001919050565b8281525f825162003df7816020850160208701620034a9565b919091016020019392505050565b5f845162003e18818460208901620034a9565b67ffffffffffffffff19949094169190930190815260188101919091526038019291505056fe60a060405260405161059738038061059783398101604081905261002291610376565b61002c828261003e565b506001600160a01b0316608052610465565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e49190610431565b82610209565b505050565b6100f761027c565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610431565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f80846001600160a01b031684604051610225919061044a565b5f60405180830381855af49150503d805f811461025d576040519150601f19603f3d011682016040523d82523d5f602084013e610262565b606091505b50909250905061027385838361029d565b95945050505050565b341561029b5760405163b398979f60e01b815260040160405180910390fd5b565b6060826102b2576102ad826102fc565b6102f5565b81511580156102c957506001600160a01b0384163b155b156102f257604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b50805b9392505050565b80511561030c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80516001600160a01b038116811461033b575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561036e578181015183820152602001610356565b50505f910152565b5f8060408385031215610387575f80fd5b61039083610325565b60208401519092506001600160401b03808211156103ac575f80fd5b818501915085601f8301126103bf575f80fd5b8151818111156103d1576103d1610340565b604051601f8201601f19908116603f011681019083821181831017156103f9576103f9610340565b81604052828152886020848701011115610411575f80fd5b610422836020830160208801610354565b80955050505050509250929050565b5f60208284031215610441575f80fd5b6102f582610325565b5f825161045b818460208701610354565b9190910192915050565b60805161011b61047c5f395f601d015261011b5ff3fe6080604052600a600c565b005b60186014601a565b609d565b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156076573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906098919060ba565b905090565b365f80375f80365f845af43d5f803e80801560b6573d5ff35b3d5ffd5b5f6020828403121560c9575f80fd5b81516001600160a01b038116811460de575f80fd5b939250505056fea26469706673582212202b8e47f9dbadb5e5b182ef67478f04e8f051fa0445601c532c82f3537586c39564736f6c63430008180033608060405234801561000f575f80fd5b5060405161042138038061042183398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b6102848061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80633659cfe6146100595780635c60da1b1461006e578063715018a6146100975780638da5cb5b1461009f578063f2fde38b146100af575b5f80fd5b61006c610067366004610221565b6100c2565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006c6100d6565b5f546001600160a01b031661007b565b61006c6100bd366004610221565b6100e9565b6100ca610128565b6100d381610154565b50565b6100de610128565b6100e75f6101d2565b565b6100f1610128565b6001600160a01b03811661011f57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6100d3816101d2565b5f546001600160a01b031633146100e75760405163118cdaa760e01b8152336004820152602401610116565b806001600160a01b03163b5f036101895760405163211eb15960e21b81526001600160a01b0382166004820152602401610116565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610231575f80fd5b81356001600160a01b0381168114610247575f80fd5b939250505056fea26469706673582212205220934962511be7ea7a268c3ed5e444d6b1301ddf31d457c8b666be316f12a864736f6c6343000818003324791c44c040514a5d2580696fc45e7d3cb6c9fa65bf3db2e4755362d6c155b502dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220ad669ff9dd3726d3637456fe0a46008f4ea459d5e8589ec96d59bd0b53e241ac64736f6c63430008180033", + "nonce": "0xcd", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5b9b51", + "logs": [ + { + "address": "0x33ffb713c73cdf668b11296bb9b1c9a0c3100626", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xada76e6d29a01586f549baf7ac045559790566d078beeb26c73496c87bbe5a66", + "blockNumber": "0x13fb262", + "transactionHash": "0x2e8de640ac1289d10af77335bfc53038ef002d4467ce792909e4cbb384d9d28f", + "transactionIndex": "0xc", + "logIndex": "0x57", + "removed": false + } + ], + "logsBloom": "0x00020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2e8de640ac1289d10af77335bfc53038ef002d4467ce792909e4cbb384d9d28f", + "transactionIndex": "0xc", + "blockHash": "0xada76e6d29a01586f549baf7ac045559790566d078beeb26c73496c87bbe5a66", + "blockNumber": "0x13fb262", + "gasUsed": "0x3e39ec", + "effectiveGasPrice": "0x21608d426", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0x33ffb713c73cdf668b11296bb9b1c9a0c3100626" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728761808, + "chain": 1, + "commit": "296a852" +} \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-implementation-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-implementation-1.json new file mode 100644 index 000000000..c1d55b681 --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-implementation-1.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0x9b1560b39029838262e55d5617e43e13be973cf667272666029483a3e9b00706", + "transactionType": "CREATE", + "contractName": "WithdrawalQueueManager", + "contractAddress": "0x6ac38ab99053a2585b6184d0ad72018ae22185cd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0x475d45", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613f8b80620000e35f395ff3fe608060405234801561000f575f80fd5b5060043610610388575f3560e01c80637d1f8a81116101df578063ac1e502511610109578063dbbfd152116100a9578063e6dc4f1611610079578063e6dc4f1614610824578063e985e9c514610837578063efdcd9741461084a578063f84694e11461085d575f80fd5b8063dbbfd152146107f6578063e26dc432146107fe578063e51aa67814610811578063e63a391f1461081a575f80fd5b8063b88d4fde116100e4578063b88d4fde14610771578063bbeea20b14610784578063c87b56dd146107d0578063d547741f146107e3575f80fd5b8063ac1e502514610743578063b3f0067414610756578063b6dddc8314610769575f80fd5b80639c69c3471161017f578063a08ab5c31161014f578063a08ab5c314610702578063a217fddf14610715578063a22cb4651461071c578063aae733581461072f575f80fd5b80639c69c347146106a25780639dea569d146106b55780639ee679e8146106c8578063a024d723146106db575f80fd5b80638c4724cc116101ba5780638c4724cc1461065a57806391d1485414610662578063937b25811461067557806395d89b411461069a575f80fd5b80637d1f8a811461063557806384c4bd4b146106485780638bc7e8c414610651575f80fd5b80632f745c59116102c05780634718d52711610260578063612c1fa011610230578063612c1fa0146105d65780636352211e146105fd57806370a0823114610610578063748f9ef014610623575f80fd5b80634718d527146105405780634bac05a9146105825780634f6ccce7146105a35780635209cb98146105b6575f80fd5b80633569d58a1161029b5780633569d58a1461050757806336568abe146105105780633dd31e0e1461052357806342842e0e1461052d575f80fd5b80632f745c59146104ce5780633384d9fb146104e157806334e73122146104f4575f80fd5b80630b7019d91161032b57806318160ddd1161030657806318160ddd1461048157806323b872dd14610495578063248a9ca3146104a85780632f2ff15d146104bb575f80fd5b80630b7019d9146104445780630cc2250f1461045b578063115949211461046e575f80fd5b80630770fa91116103665780630770fa91146103de578063081812fc146103f35780630913b1211461041e578063095ea7b314610431575f80fd5b806301ffc9a71461038c57806306fdde03146103b4578063071fc512146103c9575b5f80fd5b61039f61039a366004613384565b610870565b60405190151581526020015b60405180910390f35b6103bc61089a565b6040516103ab91906133ec565b61039f6103d73660046133fe565b6009541190565b6103f16103ec3660046133fe565b61093b565b005b6104066104013660046133fe565b610a38565b6040516001600160a01b0390911681526020016103ab565b6103f161042c36600461345c565b610a4c565b6103f161043f3660046134e1565b610ad2565b61044d60045481565b6040519081526020016103ab565b6103f16104693660046135d0565b610ae1565b6103f161047c3660046136e4565b610df2565b5f80516020613ed68339815191525461044d565b6103f16104a3366004613743565b610e1c565b61044d6104b63660046133fe565b610ea5565b6103f16104c9366004613781565b610ec5565b61044d6104dc3660046134e1565b610ee1565b6103f16104ef366004613781565b610f52565b61044d6105023660046137af565b610fa9565b61044d60095481565b6103f161051e366004613781565b610fc9565b61044d6224ea0081565b6103f161053b366004613743565b611001565b61055361054e3660046133fe565b61101b565b604080516001600160401b0394851681529390921660208401526001600160601b0316908201526060016103ab565b6105956105903660046137cf565b61105e565b6040516103ab929190613832565b61044d6105b13660046133fe565b611294565b6105c96105c43660046133fe565b611306565b6040516103ab91906138c8565b61044d7f16e47d7ccdc4d9916471674b101198c830d9d6666d46998629b3ca840510386e81565b61040661060b3660046133fe565b611427565b61044d61061e3660046137cf565b611431565b5f54610406906001600160a01b031681565b600154610406906001600160a01b031681565b61044d60025481565b61044d60055481565b61044d611489565b61039f610670366004613781565b611526565b6106886106833660046133fe565b61155c565b6040516103ab969594939291906138da565b6103bc61161f565b61044d6106b03660046137af565b61165d565b600754610406906001600160a01b031681565b61044d6106d63660046133fe565b6116e6565b61044d7f8586893ec6c8c067a87b0dc34e01d210b44bbdce9d41cb027cc2d7c0f31ead9581565b61044d610710366004613918565b6116fb565b61044d5f81565b6103f161072a36600461395b565b6118cb565b61044d5f80516020613f3683398151915281565b6103f16107513660046133fe565b6118d6565b600654610406906001600160a01b031681565b600a5461044d565b6103f161077f36600461398b565b61194d565b6107976107923660046133fe565b611965565b6040805182516001600160401b03908116825260208085015190911690820152918101516001600160601b0316908201526060016103ab565b6103bc6107de3660046133fe565b611a0b565b6103f16107f1366004613781565b611a7b565b61044d611a97565b6103f161080c3660046139f2565b611b26565b61044d60085481565b61044d620f424081565b61044d6108323660046133fe565b611b6d565b61039f610845366004613a60565b611da5565b6103f16108583660046137cf565b611df1565b61044d61086b3660046133fe565b611e8d565b5f6001600160e01b031982166380ac58cd60e01b1480610894575061089482611fc6565b92915050565b5f80516020613eb683398151915280546060919081906108b990613a8c565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590613a8c565b80156109305780601f1061090757610100808354040283529160200191610930565b820191905f5260205f20905b81548152906001019060200180831161091357829003601f168201915b505050505091505090565b7f16e47d7ccdc4d9916471674b101198c830d9d6666d46998629b3ca840510386e61096581611fea565b5f61096e611a97565b9050808311156109a057604051630bf0035360e31b815260048101849052602481018290526044015b60405180910390fd5b600154604051632e31641160e11b8152600481018590526001600160a01b0390911690635c62c822906024015f604051808303815f87803b1580156109e3575f80fd5b505af11580156109f5573d5f803e3d5ffd5b505060408051868152602081018590527f5471a21865bef29e2f9817eeb3138f749523b6e76a3c880a65fdd61d35604ac8935001905060405180910390a1505050565b5f610a4282611ff4565b506108948261202b565b828114610a7657604051631f4bb7c160e31b81526004810184905260248101829052604401610997565b5f5b83811015610acb57610ac3858583818110610a9557610a95613ac4565b90506020020135848484818110610aae57610aae613ac4565b90506020020160208101906104ef91906137cf565b600101610a78565b5050505050565b610add828233612064565b5050565b60808101516001600160a01b038116610b0d5760405163d92e233d60e01b815260040160405180910390fd5b60408201516001600160a01b038116610b395760405163d92e233d60e01b815260040160405180910390fd5b60608301516001600160a01b038116610b655760405163d92e233d60e01b815260040160405180910390fd5b60a08401516001600160a01b038116610b915760405163d92e233d60e01b815260040160405180910390fd5b6101008501516001600160a01b038116610bbe5760405163d92e233d60e01b815260040160405180910390fd5b6101208601516001600160a01b038116610beb5760405163d92e233d60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610c2f5750825b90505f826001600160401b03166001148015610c4a5750303b155b905081158015610c58575080155b15610c765760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ca057845460ff60401b1916600160401b1785555b610cb18c5f01518d60200151612071565b60408c01515f80546001600160a01b039283166001600160a01b031991821617825560608f0151600180549190941691161790915560808d0151610cf59190612083565b50610d115f80516020613f368339815191528d60a00151612083565b50610d407f16e47d7ccdc4d9916471674b101198c830d9d6666d46998629b3ca840510386e8d60c00151612083565b50610d707f8586893ec6c8c067a87b0dc34e01d210b44bbdce9d41cb027cc2d7c0f31ead958d6101200151612083565b5060e08c01516005556101008c0151600680546001600160a01b0319166001600160a01b039092169190911790558315610de457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b610dfa612124565b610e038161215b565b610e1960015f80516020613f1683398151915255565b50565b6001600160a01b038216610e4557604051633250574960e11b81525f6004820152602401610997565b5f610e518383336126c5565b9050836001600160a01b0316816001600160a01b031614610e9f576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610997565b50505050565b5f9081525f80516020613ef6833981519152602052604090206001015490565b610ece82610ea5565b610ed781611fea565b610e9f8383612083565b5f5f80516020613e96833981519152610ef984611431565b8310610f2a5760405163295f44f760e21b81526001600160a01b038516600482015260248101849052604401610997565b6001600160a01b0384165f908152602091825260408082208583529092522054905092915050565b610f5a612124565b5f6040518060600160405280848152602001610f7585611e8d565b8152602001836001600160a01b03168152509050610f928161215b565b50610add60015f80516020613f1683398151915255565b5f620f4240610fb88385613aec565b610fc29190613b03565b9392505050565b6001600160a01b0381163314610ff25760405163334bd91960e11b815260040160405180910390fd5b610ffc82826127c3565b505050565b610ffc83838360405180602001604052805f81525061194d565b600a818154811061102a575f80fd5b5f918252602090912001546001600160401b038082169250600160401b82041690600160801b90046001600160601b031683565b6060805f61106b84611431565b9050805f036110b757604080515f808252602082018181528284019093529091906110ac565b61109961333c565b8152602001906001900390816110915790505b509250925050915091565b806001600160401b038111156110cf576110cf61350b565b6040519080825280602002602001820160405280156110f8578160200160208202803683370190505b509250806001600160401b038111156111135761111361350b565b60405190808252806020026020018201604052801561114c57816020015b61113961333c565b8152602001906001900390816111315790505b5091505f5b8181101561128d575f6111648683610ee1565b90508085838151811061117957611179613ac4565b6020908102919091018101919091525f8281526003808352604091829020825160c081018452815481526001820154948101949094526002810154928401929092528101546060830152600481015460ff161515608083015260058101805460a0840191906111e790613a8c565b80601f016020809104026020016040519081016040528092919081815260200182805461121390613a8c565b801561125e5780601f106112355761010080835404028352916020019161125e565b820191905f5260205f20905b81548152906001019060200180831161124157829003601f168201915b50505050508152505084838151811061127957611279613ac4565b602090810291909101015250600101611151565b5050915091565b5f5f80516020613e968339815191526112b85f80516020613ed68339815191525490565b83106112e05760405163295f44f760e21b81525f600482015260248101849052604401610997565b8060020183815481106112f5576112f5613ac4565b905f5260205f200154915050919050565b61130e61333c565b5f82815260036020818152604092839020835160c08101855281548152600182015492810192909252600281015493820193909352908201546060820152600482015460ff161515608082015260058201805491929160a08401919061137390613a8c565b80601f016020809104026020016040519081016040528092919081815260200182805461139f90613a8c565b80156113ea5780601f106113c1576101008083540402835291602001916113ea565b820191905f5260205f20905b8154815290600101906020018083116113cd57829003601f168201915b50505050508152505090506114028160600151151590565b61142257604051630169130760e01b815260048101839052602401610997565b919050565b5f61089482611ff4565b5f5f80516020613eb68339815191526001600160a01b038316611469576040516322718ad960e21b81525f6004820152602401610997565b6001600160a01b039092165f908152600390920160205250604090205490565b5f8060015f9054906101000a90046001600160a01b03166001600160a01b031663acd08aa76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ff9190613b22565b905080600854111561151f57806008546115199190613b39565b91505090565b5f91505090565b5f9182525f80516020613ef6833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600360208190525f9182526040909120805460018201546002830154938301546004840154600585018054949693959394929360ff9092169261159e90613a8c565b80601f01602080910402602001604051908101604052809291908181526020018280546115ca90613a8c565b80156116155780601f106115ec57610100808354040283529160200191611615565b820191905f5260205f20905b8154815290600101906020018083116115f857829003601f168201915b5050505050905086565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f80516020613eb6833981519152916108b990613a8c565b5f805f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d19190613b4c565b6116dc90600a613c4c565b610fb88385613aec565b5f6108948260405180602001604052805f8152505b5f611704612124565b825f0361172457604051635e85ae7360e01b815260040160405180910390fd5b5f5461173b906001600160a01b031633308661283c565b6001546040805163540385a360e01b815290515f926001600160a01b03169163540385a39160048083019260209291908290030181865afa158015611782573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a69190613b22565b600280549192505f6117b783613c5a565b909155506040805160c08101825286815260058054602080840191825283850187815242606086019081525f6080870181815260a088018d81528a83526003958690529890912087518155945160018601559151600285015551918301919091555160048201805460ff1916911515919091179055925193955090928392918201906118439082613cb6565b50905050611851858361165d565b60085f8282546118619190613d71565b9091555061187190503384612896565b336001600160a01b0316837f470a96c327e4382aa8e66bc975ce38a8e3eacb9c8e4d87d34e8dc4a853539de6836040516118ab91906138c8565b60405180910390a3505061089460015f80516020613f1683398151915255565b610add3383836128f7565b5f80516020613f368339815191526118ed81611fea565b620f4240821115611911576040516314afa02960e21b815260040160405180910390fd5b60058290556040518281527fe94edcc114da5287ecb30ee8aacf12e6c16b11b8583d7f9e477ab1616e33d53d9060200160405180910390a15050565b611958848484610e1c565b610e9f33858585856129a6565b604080516060810182525f8082526020820181905291810191909152600a5482106119a55760405162a6e6ff60e61b815260048101839052602401610997565b600a82815481106119b8576119b8613ac4565b5f9182526020918290206040805160608101825291909201546001600160401b038082168352600160401b820416938201939093526001600160601b03600160801b909304929092169082015292915050565b6060611a1682611ff4565b505f611a2c60408051602081019091525f815290565b90505f815111611a4a5760405180602001604052805f815250610fc2565b80611a5484612acd565b604051602001611a65929190613d84565b6040516020818303038152906040529392505050565b611a8482610ea5565b611a8d81611fea565b610e9f83836127c3565b5f8060015f9054906101000a90046001600160a01b03166001600160a01b031663acd08aa76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0d9190613b22565b905060085481111561151f576008546115199082613b39565b5f5b81811015610ffc575f838383818110611b4357611b43613ac4565b905060600201803603810190611b5991906136e4565b9050611b6481610df2565b50600101611b28565b5f7f8586893ec6c8c067a87b0dc34e01d210b44bbdce9d41cb027cc2d7c0f31ead95611b9881611fea565b6001546040805163540385a360e01b815290515f926001600160a01b03169163540385a39160048083019260209291908290030181865afa158015611bdf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c039190613b22565b90505f6040518060600160405280611c1c600954612b5c565b6001600160401b03168152602001611c3387612b5c565b6001600160401b03168152602001611c4a84612b95565b6001600160601b03908116909152600a80546001810182555f9190915282517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a88201805460208601516040870151909516600160801b026bffffffffffffffffffffffff60801b196001600160401b03968716600160401b026fffffffffffffffffffffffffffffffff199093169690941695909517179190911692909217909155600254909550909150851115611d23576002546040516326af3c0960e21b8152610997918791600401918252602082015260400190565b6009548511611d535760095460405163b6c78a0360e01b8152610997918791600401918252602082015260400190565b600954604080518781526020810192909252810183905284907fec80db79f7dde8aa35235328c05a056f900bc38a0eb09fe40868458bef7963a09060600160405180910390a250505060099190915590565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b806001600160a01b038116611e195760405163d92e233d60e01b815260040160405180910390fd5b5f80516020613f36833981519152611e3081611fea565b6006546040516001600160a01b038086169216907fa92ff4390fe6943f0b30e8fe715dde86f85ab79b2b2c640a10fc094cc4036cc8905f90a35050600680546001600160a01b0319166001600160a01b0392909216919091179055565b600a545f90808203611eb557604051635f5010c560e11b815260048101849052602401610997565b5f80611ec2600184613b39565b90505b808211611faa575f6002611ed98385613d71565b611ee39190613b03565b90505f600a8281548110611ef957611ef9613ac4565b5f9182526020918290206040805160608101825292909101546001600160401b03808216808552600160401b830490911694840194909452600160801b90046001600160601b03169082015291508710801590611f62575080602001516001600160401b031687105b15611f71575095945050505050565b80516001600160401b0316871015611f9557611f8e600183613b39565b9250611fa3565b611fa0826001613d71565b93505b5050611ec5565b604051635f5010c560e11b815260048101869052602401610997565b5f6001600160e01b03198216637965db0b60e01b1480610894575061089482612bc8565b610e198133612bec565b5f80611fff83612c25565b90506001600160a01b03811661089457604051637e27328960e01b815260048101849052602401610997565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610ffc8383836001612c5e565b612079612d71565b610add8282612dbc565b5f5f80516020613ef683398151915261209c8484611526565b61211b575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556120d13390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610894565b5f915050610894565b5f80516020613f1683398151915280546001190161215557604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b8051602082015160408301513361217184612c25565b6001600160a01b03161415801561219c5750835133906121909061202b565b6001600160a01b031614155b156121c6578351604051636a931be560e11b81526004810191909152336024820152604401610997565b600a5482106121ea5760405162a6e6ff60e61b815260048101839052602401610997565b5f600a83815481106121fe576121fe613ac4565b5f9182526020918290206040805160608101825292909101546001600160401b03808216808552600160401b830490911694840194909452600160801b90046001600160601b0316908201529150841080612266575080602001516001600160401b03168410155b156122ac578051602082015160405163d0fca86360e01b815260048101879052602481018690526001600160401b03928316604482015291166064820152608401610997565b6040808201515f86815260036020818152848320855160c08101875281548152600182015492810192909252600281015495820195909552908401546060820152600484015460ff16151560808201526005840180546001600160601b0390941694929391929160a08401919061232290613a8c565b80601f016020809104026020016040519081016040528092919081815260200182805461234e90613a8c565b80156123995780601f1061237057610100808354040283529160200191612399565b820191905f5260205f20905b81548152906001019060200180831161237c57829003601f168201915b50505050508152505090506123b18160600151151590565b6123d157604051630169130760e01b815260048101879052602401610997565b8060800151156123f7576040516331d5519160e01b815260048101879052602401610997565b612402866009541190565b61242257604051635f5010c560e11b815260048101879052602401610997565b5f86815260036020526040808220600401805460ff19166001179055820151831161244d5782612453565b81604001515b90505f612463835f01518361165d565b90508060085f8282546124769190613b39565b90915550612485905088612dec565b5f548351604051630852cd8d60e31b81526001600160a01b03909216916342966c68916124b89160040190815260200190565b5f604051808303815f87803b1580156124cf575f80fd5b505af11580156124e1573d5f803e3d5ffd5b505050505f6124f4828560200151610fa9565b90505f60015f9054906101000a90046001600160a01b03166001600160a01b031663acd08aa76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612547573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061256b9190613b22565b9050828110156125985760405163cf47918160e01b81526004810182905260248101849052604401610997565b6001546001600160a01b031663d2edb68f896125b48587613b39565b8860a001516040518463ffffffff1660e01b81526004016125d793929190613db2565b5f604051808303815f87803b1580156125ee575f80fd5b505af1158015612600573d5f803e3d5ffd5b505050505f8211156126765760015460065460a087015160405163d2edb68f60e01b81526001600160a01b039384169363d2edb68f9361264893911691879190600401613db2565b5f604051808303815f87803b15801561265f575f80fd5b505af1158015612671573d5f803e3d5ffd5b505050505b897f043063fdf65eda59c2092782b3f6984485c435525b12b85fd117d2bd7e2d9a5c338a888d888a6040516126b096959493929190613de1565b60405180910390a25050505050505050505050565b5f806126d2858585612e24565b90506001600160a01b03811661275957612754845f80516020613ed683398151915280545f8381527f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0360205260408120829055600182018355919091527fa42f15e5d656f8155fd7419d740a6073999f19cd6e061449ce4a257150545bf20155565b61277c565b846001600160a01b0316816001600160a01b03161461277c5761277c8185612f26565b6001600160a01b0385166127985761279384612fbd565b6127bb565b846001600160a01b0316816001600160a01b0316146127bb576127bb858561308a565b949350505050565b5f5f80516020613ef68339815191526127dc8484611526565b1561211b575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610894565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610e9f9085906130e2565b6001600160a01b0382166128bf57604051633250574960e11b81525f6004820152602401610997565b5f6128cb83835f6126c5565b90506001600160a01b03811615610ffc576040516339e3563760e11b81525f6004820152602401610997565b5f80516020613eb68339815191526001600160a01b03831661293757604051630b61174360e31b81526001600160a01b0384166004820152602401610997565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906129e8908890889087908790600401613e2a565b6020604051808303815f875af1925050508015612a22575060408051601f3d908101601f19168201909252612a1f91810190613e66565b60015b612a89573d808015612a4f576040519150601f19603f3d011682016040523d82523d5f602084013e612a54565b606091505b5080515f03612a8157604051633250574960e11b81526001600160a01b0385166004820152602401610997565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14612ac557604051633250574960e11b81526001600160a01b0385166004820152602401610997565b505050505050565b60605f612ad98361314e565b60010190505f816001600160401b03811115612af757612af761350b565b6040519080825280601f01601f191660200182016040528015612b21576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612b2b57509392505050565b5f6001600160401b03821115612b9157604080516306dfcc6560e41b8152600481019190915260248101839052604401610997565b5090565b5f6001600160601b03821115612b91576040516306dfcc6560e41b81526060600482015260248101839052604401610997565b5f6001600160e01b0319821663780e9d6360e01b1480610894575061089482613225565b612bf68282611526565b610add5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610997565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f80516020613eb68339815191528180612c8057506001600160a01b03831615155b15612d41575f612c8f85611ff4565b90506001600160a01b03841615801590612cbb5750836001600160a01b0316816001600160a01b031614155b8015612cce5750612ccc8185611da5565b155b15612cf75760405163a9fbf51f60e01b81526001600160a01b0385166004820152602401610997565b8215612d3f5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16612dba57604051631afcd79f60e31b815260040160405180910390fd5b565b612dc4612d71565b5f80516020613eb683398151915280612ddd8482613cb6565b5060018101610e9f8382613cb6565b5f612df85f835f6126c5565b90506001600160a01b038116610add57604051637e27328960e01b815260048101839052602401610997565b5f5f80516020613eb683398151915281612e3d85612c25565b90506001600160a01b03841615612e5957612e59818587613274565b6001600160a01b03811615612e9557612e745f865f80612c5e565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615612ec5576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b5f80516020613e968339815191525f612f3e84611431565b5f8481526001840160209081526040808320546001600160a01b03891684529186905290912091925090818314612f96575f838152602082815260408083205485845281842081905583526001870190915290208290555b5f948552600190930160209081526040808620869055928552929092528220919091555050565b5f80516020613ed6833981519152545f80516020613e96833981519152905f90612fe990600190613b39565b5f84815260038401602052604081205460028501805493945090928490811061301457613014613ac4565b905f5260205f20015490508084600201838154811061303557613035613ac4565b5f9182526020808320909101929092558281526003860190915260408082208490558682528120556002840180548061307057613070613e81565b600190038181905f5260205f20015f905590555050505050565b5f80516020613e968339815191525f60016130a485611431565b6130ae9190613b39565b6001600160a01b039094165f9081526020838152604080832087845282528083208690559482526001909301909252502055565b5f8060205f8451602086015f885af180613101576040513d5f823e3d81fd5b50505f513d91508115613118578060011415613125565b6001600160a01b0384163b155b15610e9f57604051635274afe760e01b81526001600160a01b0385166004820152602401610997565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061318c5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106131b8576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106131d657662386f26fc10000830492506010015b6305f5e10083106131ee576305f5e100830492506008015b612710831061320257612710830492506004015b60648310613214576064830492506002015b600a83106108945760010192915050565b5f6001600160e01b031982166380ac58cd60e01b148061325557506001600160e01b03198216635b5e139f60e01b145b8061089457506301ffc9a760e01b6001600160e01b0319831614610894565b61327f8383836132d8565b610ffc576001600160a01b0383166132ad57604051637e27328960e01b815260048101829052602401610997565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610997565b5f6001600160a01b038316158015906127bb5750826001600160a01b0316846001600160a01b0316148061331157506133118484611da5565b806127bb5750826001600160a01b031661332a8361202b565b6001600160a01b031614949350505050565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f15158152602001606081525090565b6001600160e01b031981168114610e19575f80fd5b5f60208284031215613394575f80fd5b8135610fc28161336f565b5f5b838110156133b95781810151838201526020016133a1565b50505f910152565b5f81518084526133d881602086016020860161339f565b601f01601f19169290920160200192915050565b602081525f610fc260208301846133c1565b5f6020828403121561340e575f80fd5b5035919050565b5f8083601f840112613425575f80fd5b5081356001600160401b0381111561343b575f80fd5b6020830191508360208260051b8501011115613455575f80fd5b9250929050565b5f805f806040858703121561346f575f80fd5b84356001600160401b0380821115613485575f80fd5b61349188838901613415565b909650945060208701359150808211156134a9575f80fd5b506134b687828801613415565b95989497509550505050565b6001600160a01b0381168114610e19575f80fd5b8035611422816134c2565b5f80604083850312156134f2575f80fd5b82356134fd816134c2565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b03811182821017156135425761354261350b565b60405290565b5f82601f830112613557575f80fd5b81356001600160401b03808211156135715761357161350b565b604051601f8301601f19908116603f011681019082821181831017156135995761359961350b565b816040528381528660208588010111156135b1575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f602082840312156135e0575f80fd5b81356001600160401b03808211156135f6575f80fd5b90830190610140828603121561360a575f80fd5b61361261351f565b823582811115613620575f80fd5b61362c87828601613548565b825250602083013582811115613640575f80fd5b61364c87828601613548565b60208301525061365e604084016134d6565b604082015261366f606084016134d6565b6060820152613680608084016134d6565b608082015261369160a084016134d6565b60a08201526136a260c084016134d6565b60c082015260e083013560e082015261010091506136c18284016134d6565b8282015261012091506136d58284016134d6565b91810191909152949350505050565b5f606082840312156136f4575f80fd5b604051606081018181106001600160401b03821117156137165761371661350b565b806040525082358152602083013560208201526040830135613737816134c2565b60408201529392505050565b5f805f60608486031215613755575f80fd5b8335613760816134c2565b92506020840135613770816134c2565b929592945050506040919091013590565b5f8060408385031215613792575f80fd5b8235915060208301356137a4816134c2565b809150509250929050565b5f80604083850312156137c0575f80fd5b50508035926020909101359150565b5f602082840312156137df575f80fd5b8135610fc2816134c2565b805182526020810151602083015260408101516040830152606081015160608301526080810151151560808301525f60a082015160c060a08501526127bb60c08501826133c1565b604080825283519082018190525f906020906060840190828701845b8281101561386a5781518452928401929084019060010161384e565b50505083810382850152845180825282820190600581901b830184018785015f5b838110156138b957601f198684030185526138a78383516137ea565b9487019492509086019060010161388b565b50909998505050505050505050565b602081525f610fc260208301846137ea565b868152856020820152846040820152836060820152821515608082015260c060a08201525f61390c60c08301846133c1565b98975050505050505050565b5f8060408385031215613929575f80fd5b8235915060208301356001600160401b03811115613945575f80fd5b61395185828601613548565b9150509250929050565b5f806040838503121561396c575f80fd5b8235613977816134c2565b9150602083013580151581146137a4575f80fd5b5f805f806080858703121561399e575f80fd5b84356139a9816134c2565b935060208501356139b9816134c2565b92506040850135915060608501356001600160401b038111156139da575f80fd5b6139e687828801613548565b91505092959194509250565b5f8060208385031215613a03575f80fd5b82356001600160401b0380821115613a19575f80fd5b818501915085601f830112613a2c575f80fd5b813581811115613a3a575f80fd5b866020606083028501011115613a4e575f80fd5b60209290920196919550909350505050565b5f8060408385031215613a71575f80fd5b8235613a7c816134c2565b915060208301356137a4816134c2565b600181811c90821680613aa057607f821691505b602082108103613abe57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761089457610894613ad8565b5f82613b1d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613b32575f80fd5b5051919050565b8181038181111561089457610894613ad8565b5f60208284031215613b5c575f80fd5b815160ff81168114610fc2575f80fd5b600181815b80851115613ba657815f1904821115613b8c57613b8c613ad8565b80851615613b9957918102915b93841c9390800290613b71565b509250929050565b5f82613bbc57506001610894565b81613bc857505f610894565b8160018114613bde5760028114613be857613c04565b6001915050610894565b60ff841115613bf957613bf9613ad8565b50506001821b610894565b5060208310610133831016604e8410600b8410161715613c27575081810a610894565b613c318383613b6c565b805f1904821115613c4457613c44613ad8565b029392505050565b5f610fc260ff841683613bae565b5f60018201613c6b57613c6b613ad8565b5060010190565b601f821115610ffc57805f5260205f20601f840160051c81016020851015613c975750805b601f840160051c820191505b81811015610acb575f8155600101613ca3565b81516001600160401b03811115613ccf57613ccf61350b565b613ce381613cdd8454613a8c565b84613c72565b602080601f831160018114613d16575f8415613cff5750858301515b5f19600386901b1c1916600185901b178555612ac5565b5f85815260208120601f198616915b82811015613d4457888601518255948401946001909101908401613d25565b5085821015613d6157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111561089457610894613ad8565b5f8351613d9581846020880161339f565b835190830190613da981836020880161339f565b01949350505050565b60018060a01b0384168152826020820152606060408201525f613dd860608301846133c1565b95945050505050565b6001600160a01b0387811682528616602082015260c0604082018190525f90613e0c908301876137ea565b606083019590955250608081019290925260a0909101529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90613e5c908301846133c1565b9695505050505050565b5f60208284031215613e76575f80fd5b8151610fc28161336f565b634e487b7160e01b5f52603160045260245ffdfe645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00947478cb7f25f91a774cb9fce49ddd1952e530220912f89fefb6a8e0d8f04381a26469706673582212205241c4d1fe20f348b8047036f3a441befb91619aa43d7d7d612ce62bbb43aa4964736f6c63430008180033", + "nonce": "0xd2", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0bc9bc81ad379810b36ad5cc95387112990aa67b", + "function": null, + "arguments": [ + "0x6ac38ab99053a2585B6184D0AD72018Ae22185CD", + "0xfcad670592a3b24869C0b51a6c6FDED4F95D6975", + "0x" + ], + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0xce728", + "value": "0x0", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122055a96d9f6d94a6ea50b308b2fc4aa0566df833e7551386bf651c4f24b0cc8f0a64736f6c63430008180033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000006ac38ab99053a2585b6184d0ad72018ae22185cd000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d697500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd3", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0xd3f08f92d6752b01fc5b706adbe254b222a1bdaa", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0x9b1560b39029838262e55d5617e43e13be973cf667272666029483a3e9b00706" + ], + "returns": {}, + "timestamp": 1728779119, + "chain": 1, + "commit": "851367c" +} \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-proxy-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-proxy-1.json new file mode 100644 index 000000000..63a976130 --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalQueueManager-proxy-1.json @@ -0,0 +1,99 @@ +{ + "transactions": [ + { + "hash": "0x719a78bbcba746a8beec7b1ce5b469c639e4e75cdb8371f30b7e5c77290a75e8", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0bc9bc81ad379810b36ad5cc95387112990aa67b", + "function": null, + "arguments": [ + "0x6ac38ab99053a2585B6184D0AD72018Ae22185CD", + "0xfcad670592a3b24869C0b51a6c6FDED4F95D6975", + "0x" + ], + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0xce728", + "value": "0x0", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122055a96d9f6d94a6ea50b308b2fc4aa0566df833e7551386bf651c4f24b0cc8f0a64736f6c63430008180033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000006ac38ab99053a2585b6184d0ad72018ae22185cd000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d697500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd3", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0xd3f08f92d6752b01fc5b706adbe254b222a1bdaa", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3e2271", + "logs": [ + { + "address": "0x0bc9bc81ad379810b36ad5cc95387112990aa67b", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000006ac38ab99053a2585b6184d0ad72018ae22185cd" + ], + "data": "0x", + "blockHash": "0xcce2fa6bbdb58212c0ac8bd9285683c8f9cde8a03bea4cb47224e35554b2de7d", + "blockNumber": "0x13fb822", + "transactionHash": "0x719a78bbcba746a8beec7b1ce5b469c639e4e75cdb8371f30b7e5c77290a75e8", + "transactionIndex": "0x33", + "logIndex": "0x6b", + "removed": false + }, + { + "address": "0xd3f08f92d6752b01fc5b706adbe254b222a1bdaa", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + ], + "data": "0x", + "blockHash": "0xcce2fa6bbdb58212c0ac8bd9285683c8f9cde8a03bea4cb47224e35554b2de7d", + "blockNumber": "0x13fb822", + "transactionHash": "0x719a78bbcba746a8beec7b1ce5b469c639e4e75cdb8371f30b7e5c77290a75e8", + "transactionIndex": "0x33", + "logIndex": "0x6c", + "removed": false + }, + { + "address": "0x0bc9bc81ad379810b36ad5cc95387112990aa67b", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3f08f92d6752b01fc5b706adbe254b222a1bdaa", + "blockHash": "0xcce2fa6bbdb58212c0ac8bd9285683c8f9cde8a03bea4cb47224e35554b2de7d", + "blockNumber": "0x13fb822", + "transactionHash": "0x719a78bbcba746a8beec7b1ce5b469c639e4e75cdb8371f30b7e5c77290a75e8", + "transactionIndex": "0x33", + "logIndex": "0x6d", + "removed": false + } + ], + "logsBloom": "0x000000000000000000000000000000004000000000000800008000000000000000000000000000000020000000000000000000000000000000000000100000000200000000000000000080000020020000010000002000080000000000000008000000000200000000000000000008000000008000000000000000000000004000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000402000000000000000020000000020000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x719a78bbcba746a8beec7b1ce5b469c639e4e75cdb8371f30b7e5c77290a75e8", + "transactionIndex": "0x33", + "blockHash": "0xcce2fa6bbdb58212c0ac8bd9285683c8f9cde8a03bea4cb47224e35554b2de7d", + "blockNumber": "0x13fb822", + "gasUsed": "0x9ece4", + "effectiveGasPrice": "0x2b49a4b46", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0x0bc9bc81ad379810b36ad5cc95387112990aa67b" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728779643, + "chain": 1, + "commit": "0cbbda3" +} \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalsProcessor-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalsProcessor-1.json new file mode 100644 index 000000000..4d0bd766b --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/WithdrawalsProcessor-1.json @@ -0,0 +1,147 @@ +{ + "transactions": [ + { + "hash": "0xadda1555a0b03fb52c931608dd265d39da60a1e26275245e155194f330db24c7", + "transactionType": "CREATE", + "contractName": "WithdrawalsProcessor", + "contractAddress": "0x97e619c4573ce55a3aa8e105e339dce00e3bf3b2", + "function": null, + "arguments": null, + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0x1205e0", + "value": "0x0", + "input": "0x608060405234801561000f575f80fd5b5061001861001d565b6100cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610ef9806100dc5f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806391d148541161006e57806391d1485414610145578063a217fddf14610158578063ad7805e81461015f578063c0c53b8b14610186578063c949761814610199578063d547741f146101ac575f80fd5b806301ffc9a7146100aa578063248a9ca3146100d25780632f2ff15d146100f357806336568abe14610108578063443dc4281461011b575b5f80fd5b6100bd6100b836600461086e565b6101bf565b60405190151581526020015b60405180910390f35b6100e56100e036600461089c565b6101f5565b6040519081526020016100c9565b6101066101013660046108d7565b610215565b005b6101066101163660046108d7565b610237565b5f5461012d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c9565b6100bd6101533660046108d7565b61026f565b6100e55f81565b6100e57fe0d563514842a8c29151c49cd2698127f54dd344a9b2c74a42fe9be3e305fe9881565b610106610194366004610905565b6102a5565b6101066101a7366004610c0e565b610456565b6101066101ba3660046108d7565b610697565b5f6001600160e01b03198216637965db0b60e01b14806101ef57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f9081525f80516020610ea4833981519152602052604090206001015490565b61021e826101f5565b610227816106b3565b61023183836106c0565b50505050565b6001600160a01b03811633146102605760405163334bd91960e11b815260040160405180910390fd5b61026a8282610761565b505050565b5f9182525f80516020610ea4833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156102ea5750825b90505f8267ffffffffffffffff1660011480156103065750303b155b905081158015610314575080155b156103325760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561035c57845460ff60401b1916600160401b1785555b876001600160a01b0381166103845760405163d92e233d60e01b815260040160405180910390fd5b866001600160a01b0381166103ac5760405163d92e233d60e01b815260040160405180910390fd5b6103b46107da565b5f80546001600160a01b0319166001600160a01b038c161781556103d8908a6106c0565b506104037fe0d563514842a8c29151c49cd2698127f54dd344a9b2c74a42fe9be3e305fe98896106c0565b505050831561044c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b7fe0d563514842a8c29151c49cd2698127f54dd344a9b2c74a42fe9be3e305fe98610480816106b3565b5f5484516040516238a78560e71b81526001600160a01b0390921691631c53c280916104b29160040190815260200190565b602060405180830381865afa1580156104cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f19190610caf565b6001600160a01b031663f55b304084846040518363ffffffff1660e01b815260040161051e929190610d3c565b5f604051808303815f87803b158015610535575f80fd5b505af1158015610547573d5f803e3d5ffd5b505f9250600191506105569050565b6040519080825280602002602001820160405280156105ae57816020015b61059b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001906001900390816105745790505b50905084815f815181106105c4576105c4610e21565b60209081029190910101525f5460405163c108f0cb60e01b81526001600160a01b039091169063c108f0cb906105fe908490600401610e35565b5f604051808303815f87803b158015610615575f80fd5b505af1158015610627573d5f803e3d5ffd5b505050507f39e5d24452915384663624d58b879d5ac4c8f63584b740ec27548706d34ea9bb85855160405161068892919082518152602080840151908201526040808401519082015260609283015192810192909252608082015260a00190565b60405180910390a15050505050565b6106a0826101f5565b6106a9816106b3565b6102318383610761565b6106bd81336107e4565b50565b5f5f80516020610ea48339815191526106d9848461026f565b610758575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561070e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506101ef565b5f9150506101ef565b5f5f80516020610ea483398151915261077a848461026f565b15610758575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506101ef565b6107e2610825565b565b6107ee828261026f565b6108215760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440160405180910390fd5b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166107e257604051631afcd79f60e31b815260040160405180910390fd5b5f6020828403121561087e575f80fd5b81356001600160e01b031981168114610895575f80fd5b9392505050565b5f602082840312156108ac575f80fd5b5035919050565b6001600160a01b03811681146106bd575f80fd5b80356108d2816108b3565b919050565b5f80604083850312156108e8575f80fd5b8235915060208301356108fa816108b3565b809150509250929050565b5f805f60608486031215610917575f80fd5b8335610922816108b3565b92506020840135610932816108b3565b91506040840135610942816108b3565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff811182821017156109845761098461094d565b60405290565b6040516080810167ffffffffffffffff811182821017156109845761098461094d565b604051601f8201601f1916810167ffffffffffffffff811182821017156109d6576109d661094d565b604052919050565b5f67ffffffffffffffff8211156109f7576109f761094d565b5060051b60200190565b803563ffffffff811681146108d2575f80fd5b5f82601f830112610a23575f80fd5b81356020610a38610a33836109de565b6109ad565b8083825260208201915060208460051b870101935086841115610a59575f80fd5b602086015b84811015610a7e578035610a71816108b3565b8352918301918301610a5e565b509695505050505050565b5f82601f830112610a98575f80fd5b81356020610aa8610a33836109de565b8083825260208201915060208460051b870101935086841115610ac9575f80fd5b602086015b84811015610a7e5780358352918301918301610ace565b5f82601f830112610af4575f80fd5b81356020610b04610a33836109de565b82815260059290921b84018101918181019086841115610b22575f80fd5b8286015b84811015610a7e57803567ffffffffffffffff80821115610b45575f80fd5b9088019060e0828b03601f1901811315610b5d575f80fd5b610b65610961565b610b708885016108c7565b81526040610b7f8186016108c7565b898301526060610b908187016108c7565b828401526080915081860135818401525060a0610bae818701610a01565b8284015260c091508186013585811115610bc6575f80fd5b610bd48f8c838a0101610a14565b82850152505082850135925083831115610bec575f80fd5b610bfa8d8a85880101610a89565b908201528652505050918301918301610b26565b5f805f83850360c0811215610c21575f80fd5b6080811215610c2e575f80fd5b50610c3761098a565b8435815260208501356020820152604085013560408201526060850135606082015280935050608084013567ffffffffffffffff80821115610c77575f80fd5b610c8387838801610ae5565b935060a0860135915080821115610c98575f80fd5b50610ca586828701610a89565b9150509250925092565b5f60208284031215610cbf575f80fd5b8151610895816108b3565b5f815180845260208085019450602084015f5b83811015610d025781516001600160a01b031687529582019590820190600101610cdd565b509495945050505050565b5f815180845260208085019450602084015f5b83811015610d0257815187529582019590820190600101610d20565b5f6040808301604084528086518083526060925060608601915060608160051b8701016020808a015f5b84811015610e0157898403605f19018652815180516001600160a01b03908116865284820151811685870152898201511689860152878101518886015260808082015163ffffffff169086015260a08082015160e08288018190529190610dcf83890182610cca565b9250505060c08083015192508682038188015250610ded8183610d0d565b978501979550505090820190600101610d66565b505087820390880152610e148189610d0d565b9998505050505050505050565b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610e9757610e84838551805182526020810151602083015260408101516040830152606081015160608301525050565b9284019260809290920191600101610e50565b5090969550505050505056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a264697066735822122099c24f642bdfb75892d6153155fe0f1227c1c9245ddfee88a0898ec3497cd19f64736f6c63430008180033", + "nonce": "0xd4", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe5e0e69adc4e277b6e662170d2171195eb5f11b89010fb0d95199400b19440a2", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x6d052cded3f64aea51f6051f33b68b42016c5fba", + "function": null, + "arguments": [ + "0x97e619c4573ce55A3Aa8e105E339dce00e3bF3B2", + "0xfcad670592a3b24869C0b51a6c6FDED4F95D6975", + "0x" + ], + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0xce728", + "value": "0x0", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122055a96d9f6d94a6ea50b308b2fc4aa0566df833e7551386bf651c4f24b0cc8f0a64736f6c63430008180033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000097e619c4573ce55a3aa8e105e339dce00e3bf3b2000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d697500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd5", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0xb5234121be2144975a123c4457606e6f4e5e2a6b", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1584bfd", + "logs": [ + { + "address": "0x97e619c4573ce55a3aa8e105e339dce00e3bf3b2", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x0d6ecb0de44a610b8d97367603bd789248771887ee9702927dd8041a23c6094d", + "blockNumber": "0x13fb838", + "transactionHash": "0xadda1555a0b03fb52c931608dd265d39da60a1e26275245e155194f330db24c7", + "transactionIndex": "0xa2", + "logIndex": "0x2d3", + "removed": false + } + ], + "logsBloom": "0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000100080000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xadda1555a0b03fb52c931608dd265d39da60a1e26275245e155194f330db24c7", + "transactionIndex": "0xa2", + "blockHash": "0x0d6ecb0de44a610b8d97367603bd789248771887ee9702927dd8041a23c6094d", + "blockNumber": "0x13fb838", + "gasUsed": "0xddd23", + "effectiveGasPrice": "0x2fa03514f", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0x97e619c4573ce55a3aa8e105e339dce00e3bf3b2" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x16238e1", + "logs": [ + { + "address": "0x6d052cded3f64aea51f6051f33b68b42016c5fba", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000097e619c4573ce55a3aa8e105e339dce00e3bf3b2" + ], + "data": "0x", + "blockHash": "0x0d6ecb0de44a610b8d97367603bd789248771887ee9702927dd8041a23c6094d", + "blockNumber": "0x13fb838", + "transactionHash": "0xe5e0e69adc4e277b6e662170d2171195eb5f11b89010fb0d95199400b19440a2", + "transactionIndex": "0xa3", + "logIndex": "0x2d4", + "removed": false + }, + { + "address": "0xb5234121be2144975a123c4457606e6f4e5e2a6b", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + ], + "data": "0x", + "blockHash": "0x0d6ecb0de44a610b8d97367603bd789248771887ee9702927dd8041a23c6094d", + "blockNumber": "0x13fb838", + "transactionHash": "0xe5e0e69adc4e277b6e662170d2171195eb5f11b89010fb0d95199400b19440a2", + "transactionIndex": "0xa3", + "logIndex": "0x2d5", + "removed": false + }, + { + "address": "0x6d052cded3f64aea51f6051f33b68b42016c5fba", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b5234121be2144975a123c4457606e6f4e5e2a6b", + "blockHash": "0x0d6ecb0de44a610b8d97367603bd789248771887ee9702927dd8041a23c6094d", + "blockNumber": "0x13fb838", + "transactionHash": "0xe5e0e69adc4e277b6e662170d2171195eb5f11b89010fb0d95199400b19440a2", + "transactionIndex": "0xa3", + "logIndex": "0x2d6", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000800000000000000002000001000000000008000000000000000840000000020000000000000001000800000000800000000000000000000000400000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000010000000000008000000000000000000000000020000000000000000000000000004000000400000000000000000020000000020000001000000000000000000000000000000000000000000000800000", + "type": "0x2", + "transactionHash": "0xe5e0e69adc4e277b6e662170d2171195eb5f11b89010fb0d95199400b19440a2", + "transactionIndex": "0xa3", + "blockHash": "0x0d6ecb0de44a610b8d97367603bd789248771887ee9702927dd8041a23c6094d", + "blockNumber": "0x13fb838", + "gasUsed": "0x9ece4", + "effectiveGasPrice": "0x2fa03514f", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0x6d052cded3f64aea51f6051f33b68b42016c5fba" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728779925, + "chain": 1, + "commit": "710cafc" +} \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETH-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETH-1.json new file mode 100644 index 000000000..dee0bd42e --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETH-1.json @@ -0,0 +1,60 @@ +{ + "transactions": [ + { + "hash": "0x1139d1d65c7bc242b5e9d97cc3e37a67becd04548f42048be7a46f3887f8ca65", + "transactionType": "CREATE", + "contractName": "ynETH", + "contractAddress": "0x87e2a51d3b88fc2f5917a7ab793ea595b243710a", + "function": null, + "arguments": null, + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0x268aae", + "value": "0x0", + "input": "0x608060405234801561000f575f80fd5b5061001861001d565b6100cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6121a880620000dd5f395ff3fe608060405260043610610236575f3560e01c806361fd0ae111610129578063a9059cbb116100a8578063e63ab1e91161006d578063e63ab1e91461068e578063e7b0504b146106c1578063ef8b30f714610631578063f14210a6146106d6578063fb1bb9de146106f5575f80fd5b8063a9059cbb146105f3578063b7b199c714610612578063c6e6f59214610631578063d547741f14610650578063dd62ed3e1461066f575f80fd5b80638ffbf6db116100ee5780638ffbf6db1461054b57806391d148541461056a57806395d89b4114610589578063a1a25e6e1461059d578063a217fddf146105e0575f80fd5b806361fd0ae1146104bc578063631cbe3c146104db57806363d8882a146104e357806370a08231146104f75780638936a91f14610537575f80fd5b8063282c51f3116101b55780633f2a55401161017a5780633f2a55401461042857806342966c681461045f578063443dc4281461047e5780634cdad506146102e557806360da3e831461049c575f80fd5b8063282c51f3146103895780632d2da806146103bc5780632f2ff15d146103cf578063313ce567146103ee57806336568abe14610409575f80fd5b8063095ea7b3116101fb578063095ea7b31461030457806318160ddd146103235780631ef2aac51461034357806323b872dd1461034b578063248a9ca31461036a575f80fd5b806301e1d1141461025857806301ffc9a71461027f57806302191980146102ae57806306fdde03146102c457806307a2d13a146102e5575f80fd5b3661025457604051636c897afd60e01b815260040160405180910390fd5b5f80fd5b348015610263575f80fd5b5061026c610715565b6040519081526020015b60405180910390f35b34801561028a575f80fd5b5061029e610299366004611b60565b610740565b6040519015158152602001610276565b3480156102b9575f80fd5b506102c2610774565b005b3480156102cf575f80fd5b506102d86107f8565b6040516102769190611b87565b3480156102f0575f80fd5b5061026c6102ff366004611bd3565b6108b8565b34801561030f575f80fd5b5061029e61031e366004611bfe565b6108c3565b34801561032e575f80fd5b505f805160206121138339815191525461026c565b6102c26108da565b348015610356575f80fd5b5061029e610365366004611c28565b6109ef565b348015610375575f80fd5b5061026c610384366004611bd3565b610a14565b348015610394575f80fd5b5061026c7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b61026c6103ca366004611c66565b610a34565b3480156103da575f80fd5b506102c26103e9366004611c81565b610b23565b3480156103f9575f80fd5b5060405160128152602001610276565b348015610414575f80fd5b506102c2610423366004611c81565b610b45565b348015610433575f80fd5b50600154610447906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561046a575f80fd5b506102c2610479366004611bd3565b610b7d565b348015610489575f80fd5b505f54610447906001600160a01b031681565b3480156104a7575f80fd5b5060015461029e90600160a01b900460ff1681565b3480156104c7575f80fd5b506102c26104d6366004611d90565b610bb5565b6102c2610bd6565b3480156104ee575f80fd5b506102c2610c53565b348015610502575f80fd5b5061026c610511366004611c66565b6001600160a01b03165f9081525f805160206120f3833981519152602052604090205490565b348015610542575f80fd5b506102c2610cb7565b348015610556575f80fd5b506102c2610565366004611d90565b610d32565b348015610575575f80fd5b5061029e610584366004611c81565b610d54565b348015610594575f80fd5b506102d8610d8a565b3480156105a8575f80fd5b5061029e6105b7366004611c66565b6001600160a01b03165f9081525f805160206120d3833981519152602052604090205460ff1690565b3480156105eb575f80fd5b5061026c5f81565b3480156105fe575f80fd5b5061029e61060d366004611bfe565b610dc8565b34801561061d575f80fd5b506102c261062c366004611dd2565b610dd5565b34801561063c575f80fd5b5061026c61064b366004611bd3565b6110cd565b34801561065b575f80fd5b506102c261066a366004611c81565b6110d8565b34801561067a575f80fd5b5061026c610689366004611e95565b6110f4565b348015610699575f80fd5b5061026c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b3480156106cc575f80fd5b5061026c60025481565b3480156106e1575f80fd5b506102c26106f0366004611bd3565b61113d565b348015610700575f80fd5b5061026c5f8051602061213383398151915281565b6002545f9081906107269082611ed5565b9050610730611264565b61073a9082611ed5565b92915050565b5f6001600160e01b03198216637965db0b60e01b148061073a57506301ffc9a760e01b6001600160e01b031983161461073a565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61079e816112dd565b6001805460ff60a01b1916600160a01b908117918290556040517f35e03641f0c63f166bca10b4ee931a3c02be26ffb29a395ce012099d99ecb6cc926107ed92900460ff161515815260200190565b60405180910390a150565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060915f805160206120f38339815191529161083690611ee8565b80601f016020809104026020016040519081016040528092919081815260200182805461086290611ee8565b80156108ad5780601f10610884576101008083540402835291602001916108ad565b820191905f5260205f20905b81548152906001019060200180831161089057829003601f168201915b505050505091505090565b5f61073a825f6112ea565b5f336108d081858561132e565b5060019392505050565b5f546001600160a01b031633148061097557505f8054906101000a90046001600160a01b03166001600160a01b0316637d1f8a816040518163ffffffff1660e01b81526004016020604051808303815f875af115801561093c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109609190611f20565b6001600160a01b0316336001600160a01b0316145b61099957604051631bb2e8ef60e21b81523360048201526024015b60405180910390fd5b3460025f8282546109aa9190611ed5565b90915550506002546040805134815260208101929092527f7be0d7fd798145f666ec52ac3f0d58a38be2081e9debf17f96e11c21c848ea2791015b60405180910390a1565b5f336109fc85828561133b565b610a07858585611398565b60019150505b9392505050565b5f9081525f80516020612153833981519152602052604090206001015490565b6001545f90600160a01b900460ff1615610a61576040516313d0ff5960e31b815260040160405180910390fd5b345f03610a81576040516335ed7e5760e11b815260040160405180910390fd5b34610a8b816110cd565b9150815f03610aad57604051639811e0c760e01b815260040160405180910390fd5b610ab783836113f5565b8060025f828254610ac89190611ed5565b9091555050600254604080518381526020810185905280820192909252516001600160a01b0385169133917f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f69181900360600190a350919050565b610b2c82610a14565b610b35816112dd565b610b3f8383611429565b50505050565b6001600160a01b0381163314610b6e5760405163334bd91960e11b815260040160405180910390fd5b610b7882826114ca565b505050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610ba7816112dd565b610bb13383611543565b5050565b5f80516020612133833981519152610bcc816112dd565b610bb1825f611577565b6001546001600160a01b03163314610c035760405163df6752fd60e01b8152336004820152602401610990565b3460025f828254610c149190611ed5565b90915550506002546040805134815260208101929092527f61cb44cbea389abb97c617c7d16a62235c51f27da3406d3ec3c9ac87c0d0c82691016109e5565b5f80516020612133833981519152610c6a816112dd565b6001805460ff60a01b1916908190556040517f35e03641f0c63f166bca10b4ee931a3c02be26ffb29a395ce012099d99ecb6cc916107ed91600160a01b90910460ff161515815260200190565b5f80516020612133833981519152610cce816112dd565b7f7e7ba5b20f89141f0255e9704ce6ce6e55f5f28e4fc0d626fc76bedba3053201805460ff191690556040515f805160206120d3833981519152907f5b1b646968864ea75fad546d8c819e0de710df0bf61f658f6ba54dc587472e7b905f90a15050565b5f80516020612133833981519152610d49816112dd565b610bb1826001611577565b5f9182525f80516020612153833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f805160206120f38339815191529161083690611ee8565b5f336108d0818585611398565b80516001600160a01b038116610dfe5760405163d92e233d60e01b815260040160405180910390fd5b60208201516001600160a01b038116610e2a5760405163d92e233d60e01b815260040160405180910390fd5b60408301516001600160a01b038116610e565760405163d92e233d60e01b815260040160405180910390fd5b60608401516001600160a01b038116610e825760405163d92e233d60e01b815260040160405180910390fd5b60808501516001600160a01b038116610eae5760405163d92e233d60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610ef35750825b90505f8267ffffffffffffffff166001148015610f0f5750303b155b905081158015610f1d575080155b15610f3b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f6557845460ff60401b1916600160401b1785555b610f6d611612565b610fb1604051806040016040528060058152602001640f2dc8aa8960db1b815250604051806040016040528060058152602001640f2dc8aa8960db1b81525061161c565b8a51610fbe905f90611429565b50610fed7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8c60200151611429565b506110095f805160206121338339815191528c60400151611429565b5060608b01515f80546001600160a01b039283166001600160a01b03199182161790915560808d0151600180549190931691161781557f7e7ba5b20f89141f0255e9704ce6ce6e55f5f28e4fc0d626fc76bedba3053201805460ff1916909117905561107a8b60a001516001611577565b83156110c057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b5f61073a825f61162e565b6110e182610a14565b6110ea816112dd565b610b3f83836114ca565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f546001600160a01b0316331461117b575f5460405163d95eb40f60e01b81526001600160a01b039091166004820152336024820152604401610990565b6002548181101561119f57604051631e9acf1760e31b815260040160405180910390fd5b5f6111aa8383611f3b565b60028190555f805460405192935090916001600160a01b039091169085908381818185875af1925050503d805f81146111fe576040519150601f19603f3d011682016040523d82523d5f602084013e611203565b606091505b5050905080611225576040516312171d8360e31b815260040160405180910390fd5b60408051858152602081018490527f72e1ec2b6bc1315b9dd8b8a5704a77cbac7378d6e44866f92d6985f0793dc4c2910160405180910390a150505050565b5f805f9054906101000a90046001600160a01b03166001600160a01b031663ff50abdc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d89190611f4e565b905090565b6112e78133611678565b50565b5f806113015f805160206121138339815191525490565b9050805f03611313578391505061073a565b6113268461131f610715565b83866116b1565b949350505050565b610b7883838360016116fc565b5f61134684846110f4565b90505f198114610b3f578181101561138a57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610990565b610b3f84848484035f6116fc565b6001600160a01b0383166113c157604051634b637e8f60e11b81525f6004820152602401610990565b6001600160a01b0382166113ea5760405163ec442f0560e01b81525f6004820152602401610990565b610b788383836117e0565b6001600160a01b03821661141e5760405163ec442f0560e01b81525f6004820152602401610990565b610bb15f83836117e0565b5f5f805160206121538339815191526114428484610d54565b6114c1575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556114773390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061073a565b5f91505061073a565b5f5f805160206121538339815191526114e38484610d54565b156114c1575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061073a565b6001600160a01b03821661156c57604051634b637e8f60e11b81525f6004820152602401610990565b610bb1825f836117e0565b5f805160206120d38339815191525f5b8351811015610b3f575f8482815181106115a3576115a3611f65565b6020908102919091018101516001600160a01b0381165f818152868452604090819020805460ff19168915159081179091559051908152919350917fac6d52e87f8a8fc486e04600668caffa28c149f8286b136c0f327b4499b8c723910160405180910390a250600101611587565b61161a611889565b565b611624611889565b610bb182826118d2565b5f6116445f805160206121138339815191525490565b5f0361165157508161073a565b610a0d8361166a5f805160206121138339815191525490565b611672610715565b856116b1565b6116828282610d54565b610bb15760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610990565b5f6116de6116be836118e4565b80156116d957505f84806116d4576116d4611f79565b868809115b151590565b6116e9868686611910565b6116f39190611ed5565b95945050505050565b5f805160206120f38339815191526001600160a01b0385166117335760405163e602df0560e01b81525f6004820152602401610990565b6001600160a01b03841661175c57604051634a1406b160e11b81525f6004820152602401610990565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156117d957836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516117d091815260200190565b60405180910390a35b5050505050565b7f7e7ba5b20f89141f0255e9704ce6ce6e55f5f28e4fc0d626fc76bedba3053201545f805160206120d38339815191529060ff16801561183857506001600160a01b0384165f9081526020829052604090205460ff16155b801561184c57506001600160a01b03841615155b801561186057506001600160a01b03831615155b1561187e57604051636ab17e0560e01b815260040160405180910390fd5b610b3f8484846119c6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661161a57604051631afcd79f60e31b815260040160405180910390fd5b6118da611889565b610bb18282611aff565b5f60028260038111156118f9576118f9611f8d565b6119039190611fa1565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f036119445783828161193a5761193a611f79565b0492505050610a0d565b80841161195b5761195b6003851502601118611b4f565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f805160206120f38339815191526001600160a01b038416611a005781816002015f8282546119f59190611ed5565b90915550611a709050565b6001600160a01b0384165f9081526020829052604090205482811015611a525760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610990565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316611a8e576002810180548390039055611aac565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611af191815260200190565b60405180910390a350505050565b611b07611889565b5f805160206120f38339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03611b408482612012565b5060048101610b3f8382612012565b634e487b715f52806020526024601cfd5b5f60208284031215611b70575f80fd5b81356001600160e01b031981168114610a0d575f80fd5b5f602080835283518060208501525f5b81811015611bb357858101830151858201604001528201611b97565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611be3575f80fd5b5035919050565b6001600160a01b03811681146112e7575f80fd5b5f8060408385031215611c0f575f80fd5b8235611c1a81611bea565b946020939093013593505050565b5f805f60608486031215611c3a575f80fd5b8335611c4581611bea565b92506020840135611c5581611bea565b929592945050506040919091013590565b5f60208284031215611c76575f80fd5b8135610a0d81611bea565b5f8060408385031215611c92575f80fd5b823591506020830135611ca481611bea565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160c0810167ffffffffffffffff81118282101715611ce657611ce6611caf565b60405290565b5f82601f830112611cfb575f80fd5b8135602067ffffffffffffffff80831115611d1857611d18611caf565b8260051b604051601f19603f83011681018181108482111715611d3d57611d3d611caf565b6040529384526020818701810194908101925087851115611d5c575f80fd5b6020870191505b84821015611d85578135611d7681611bea565b83529183019190830190611d63565b979650505050505050565b5f60208284031215611da0575f80fd5b813567ffffffffffffffff811115611db6575f80fd5b61132684828501611cec565b8035611dcd81611bea565b919050565b5f60208284031215611de2575f80fd5b813567ffffffffffffffff80821115611df9575f80fd5b9083019060c08286031215611e0c575f80fd5b611e14611cc3565b8235611e1f81611bea565b81526020830135611e2f81611bea565b60208201526040830135611e4281611bea565b6040820152611e5360608401611dc2565b6060820152611e6460808401611dc2565b608082015260a083013582811115611e7a575f80fd5b611e8687828601611cec565b60a08301525095945050505050565b5f8060408385031215611ea6575f80fd5b8235611eb181611bea565b91506020830135611ca481611bea565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561073a5761073a611ec1565b600181811c90821680611efc57607f821691505b602082108103611f1a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215611f30575f80fd5b8151610a0d81611bea565b8181038181111561073a5761073a611ec1565b5f60208284031215611f5e575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f60ff831680611fbf57634e487b7160e01b5f52601260045260245ffd5b8060ff84160691505092915050565b601f821115610b7857805f5260205f20601f840160051c81016020851015611ff35750805b601f840160051c820191505b818110156117d9575f8155600101611fff565b815167ffffffffffffffff81111561202c5761202c611caf565b6120408161203a8454611ee8565b84611fce565b602080601f831160018114612073575f841561205c5750858301515b5f19600386901b1c1916600185901b1785556120ca565b5f85815260208120601f198616915b828110156120a157888601518255948401946001909101908401612082565b50858210156120be57878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fe7e7ba5b20f89141f0255e9704ce6ce6e55f5f28e4fc0d626fc76bedba305320052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a264697066735822122034c087a61bb674f4958a98f5cf1bd52d2f584c4c96bab73fa37add66d2ce63c364736f6c63430008180033", + "nonce": "0xce", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x4956a9", + "logs": [ + { + "address": "0x87e2a51d3b88fc2f5917a7ab793ea595b243710a", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x74c24deec927b6a05c84fac49312cedbd8763294a2047c5e997e3c3a536f9474", + "blockNumber": "0x13fb282", + "transactionHash": "0x1139d1d65c7bc242b5e9d97cc3e37a67becd04548f42048be7a46f3887f8ca65", + "transactionIndex": "0xe", + "logIndex": "0x67", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x1139d1d65c7bc242b5e9d97cc3e37a67becd04548f42048be7a46f3887f8ca65", + "transactionIndex": "0xe", + "blockHash": "0x74c24deec927b6a05c84fac49312cedbd8763294a2047c5e997e3c3a536f9474", + "blockNumber": "0x13fb282", + "gasUsed": "0x1da5c1", + "effectiveGasPrice": "0x22c54677c", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0x87e2a51d3b88fc2f5917a7ab793ea595b243710a" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728762193, + "chain": 1, + "commit": "717dcb3" +} \ No newline at end of file diff --git a/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETHRedemptionAssetsVault-1.json b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETHRedemptionAssetsVault-1.json new file mode 100644 index 000000000..562d5949f --- /dev/null +++ b/deployments/yneth-withdrawals-296a852467ad52813c45a8141b9201754bb093d7/ynETHRedemptionAssetsVault-1.json @@ -0,0 +1,133 @@ +{ + "transactions": [ + { + "hash": "0x8f177b2b948e33745ee00200bdabce5a8286656cf9414edd7efd0c699da6658a", + "transactionType": "CREATE", + "contractName": "ynETHRedemptionAssetsVault", + "contractAddress": "0xe1a2a7fac6729360e6794f2f137621e2cdb0fed5", + "function": null, + "arguments": null, + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0x117065", + "value": "0x0", + "input": "0x608060405234801561000f575f80fd5b50610eeb8061001d5f395ff3fe608060405260043610610113575f3560e01c80638456cb591161009d578063d26b3e2611610062578063d26b3e261461031d578063d2edb68f1461033c578063d547741f1461035b578063e63ab1e91461037a578063fb1bb9de146103ad575f80fd5b80638456cb59146102a757806391d14854146102bb5780639872ab84146102da578063a217fddf146102f8578063acd08aa71461030b575f80fd5b806336568abe116100e357806336568abe146102225780633f4ba83a14610241578063540385a3146102555780635c62c822146102695780635c975abb14610288575f80fd5b806301ffc9a714610169578063248a9ca31461019d5780632ba29d38146101ca5780632f2ff15d14610201575f80fd5b366101655760405134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9033907f34a31c07280ba0d3e5c883a4468da49d04e80d542a11e74c91fa4aa96a3c96da9060200160405180910390a3005b5f80fd5b348015610174575f80fd5b50610188610183366004610cf9565b6103e0565b60405190151581526020015b60405180910390f35b3480156101a8575f80fd5b506101bc6101b7366004610d27565b610416565b604051908152602001610194565b3480156101d5575f80fd5b506001546101e9906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b34801561020c575f80fd5b5061022061021b366004610d52565b610436565b005b34801561022d575f80fd5b5061022061023c366004610d52565b610458565b34801561024c575f80fd5b50610220610490565b348015610260575f80fd5b506101bc6104c9565b348015610274575f80fd5b50610220610283366004610d27565b610540565b348015610293575f80fd5b505f5461018890600160a01b900460ff1681565b3480156102b2575f80fd5b5061022061068b565b3480156102c6575f80fd5b506101886102d5366004610d52565b6106ca565b3480156102e5575f80fd5b505f546101e9906001600160a01b031681565b348015610303575f80fd5b506101bc5f81565b348015610316575f80fd5b50476101bc565b348015610328575f80fd5b50610220610337366004610d80565b610700565b348015610347575f80fd5b50610220610356366004610dfc565b610937565b348015610366575f80fd5b50610220610375366004610d52565b610adf565b348015610385575f80fd5b506101bc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b3480156103b8575f80fd5b506101bc7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a81565b5f6001600160e01b03198216637965db0b60e01b148061041057506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f9081525f80516020610e96833981519152602052604090206001015490565b61043f82610416565b61044881610afb565b6104528383610b05565b50505050565b6001600160a01b03811633146104815760405163334bd91960e11b815260040160405180910390fd5b61048b8282610ba6565b505050565b7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a6104ba81610afb565b505f805460ff60a01b19169055565b5f805460405163266d6a8360e11b8152670de0b6b3a764000060048201526001600160a01b0390911690634cdad50690602401602060405180830381865afa158015610517573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053b9190610e7e565b905090565b6001546001600160a01b0316331461057257604051630bde7ac360e11b81523360048201526024015b60405180910390fd5b5f54600160a01b900460ff161561059c5760405163ab35696f60e01b815260040160405180910390fd5b6105a4610c1f565b5f8054906101000a90046001600160a01b03166001600160a01b0316631ef2aac5826040518263ffffffff1660e01b81526004015f604051808303818588803b1580156105ef575f80fd5b505af1158015610601573d5f803e3d5ffd5b50505f546040518581526001600160a01b03909116935033925073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91507f10964f2d145c29d7c7688147486387f37f033564029b447ab7c0983f292acc789060200160405180910390a461068860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106b581610afb565b505f805460ff60a01b1916600160a01b179055565b5f9182525f80516020610e96833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b80516001600160a01b0381166107295760405163d92e233d60e01b815260040160405180910390fd5b60208201516001600160a01b0381166107555760405163d92e233d60e01b815260040160405180910390fd5b60408301516001600160a01b0381166107815760405163d92e233d60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156107c65750825b90505f8267ffffffffffffffff1660011480156107e25750303b155b9050811580156107f0575080155b1561080e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561083857845460ff60401b1916600160401b1785555b610840610c69565b885161084d905f90610b05565b5061087b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8a5f0151610b05565b506108a97f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a8a5f0151610b05565b506020890151600180546001600160a01b039283166001600160a01b031990911617905560408a01515f80546001600160a81b03191691909216179055831561092c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6001546001600160a01b0316331461096457604051630bde7ac360e11b8152336004820152602401610569565b5f54600160a01b900460ff161561098e5760405163ab35696f60e01b815260040160405180910390fd5b610996610c1f565b47838110156109dc5760405163a8c6953f60e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60048201526024810185905260448101829052606401610569565b5f856001600160a01b0316856040515f6040518083038185875af1925050503d805f8114610a25576040519150601f19603f3d011682016040523d82523d5f602084013e610a2a565b606091505b5050905080610a5e5760405163f68179b160e01b8152600481018690526001600160a01b0387166024820152604401610569565b6040518581526001600160a01b03871690339073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee907f25137ec1c481240ec1a0e55c3c8c5f5e3467c1a66454f84fb39c963378cc0e779060200160405180910390a4505061045260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b610ae882610416565b610af181610afb565b6104528383610ba6565b6106888133610c73565b5f5f80516020610e96833981519152610b1e84846106ca565b610b9d575f848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610b533390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610410565b5f915050610410565b5f5f80516020610e96833981519152610bbf84846106ca565b15610b9d575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610410565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901610c6357604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b610c71610cb0565b565b610c7d82826106ca565b610cac5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610569565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610c7157604051631afcd79f60e31b815260040160405180910390fd5b5f60208284031215610d09575f80fd5b81356001600160e01b031981168114610d20575f80fd5b9392505050565b5f60208284031215610d37575f80fd5b5035919050565b6001600160a01b0381168114610688575f80fd5b5f8060408385031215610d63575f80fd5b823591506020830135610d7581610d3e565b809150509250929050565b5f60608284031215610d90575f80fd5b6040516060810181811067ffffffffffffffff82111715610dbf57634e487b7160e01b5f52604160045260245ffd5b6040528235610dcd81610d3e565b81526020830135610ddd81610d3e565b60208201526040830135610df081610d3e565b60408201529392505050565b5f805f8060608587031215610e0f575f80fd5b8435610e1a81610d3e565b935060208501359250604085013567ffffffffffffffff80821115610e3d575f80fd5b818701915087601f830112610e50575f80fd5b813581811115610e5e575f80fd5b886020828501011115610e6f575f80fd5b95989497505060200194505050565b5f60208284031215610e8e575f80fd5b505191905056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212208d27b179d865bd32c94fae6a09a9a953118f6745b55ba84f343c1cd38020a92f64736f6c63430008180033", + "nonce": "0xd0", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x77ab8db3472f1e01be8783a78e5e804bfb3b917c3037c0ec3d3e66da0455f247", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5d6e53c42e3b37f82f693937bc508940769c5caf", + "function": null, + "arguments": [ + "0xe1a2A7FAc6729360e6794f2f137621E2Cdb0Fed5", + "0xfcad670592a3b24869C0b51a6c6FDED4F95D6975", + "0x" + ], + "transaction": { + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "gas": "0xce728", + "value": "0x0", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122055a96d9f6d94a6ea50b308b2fc4aa0566df833e7551386bf651c4f24b0cc8f0a64736f6c63430008180033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000e1a2a7fac6729360e6794f2f137621e2cdb0fed5000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d697500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd1", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x364b8154ea1673e360446c3d17480d32c3e71b2c", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220adbbc4425922655b0b518570c1f1ea2803ed1402d9e8c09bdf19a05b4208da4664736f6c63430008180033000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x9fc117", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x8f177b2b948e33745ee00200bdabce5a8286656cf9414edd7efd0c699da6658a", + "transactionIndex": "0x74", + "blockHash": "0x90be87214fc580cbb09757be9071a9675a703f54b0a94e0e1abac0562b45fa12", + "blockNumber": "0x13fb7c6", + "gasUsed": "0xd6a27", + "effectiveGasPrice": "0x26883dc02", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0xe1a2a7fac6729360e6794f2f137621e2cdb0fed5" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xa9adfb", + "logs": [ + { + "address": "0x5d6e53c42e3b37f82f693937bc508940769c5caf", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000e1a2a7fac6729360e6794f2f137621e2cdb0fed5" + ], + "data": "0x", + "blockHash": "0x90be87214fc580cbb09757be9071a9675a703f54b0a94e0e1abac0562b45fa12", + "blockNumber": "0x13fb7c6", + "transactionHash": "0x77ab8db3472f1e01be8783a78e5e804bfb3b917c3037c0ec3d3e66da0455f247", + "transactionIndex": "0x75", + "logIndex": "0x10d", + "removed": false + }, + { + "address": "0x364b8154ea1673e360446c3d17480d32c3e71b2c", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000fcad670592a3b24869c0b51a6c6fded4f95d6975" + ], + "data": "0x", + "blockHash": "0x90be87214fc580cbb09757be9071a9675a703f54b0a94e0e1abac0562b45fa12", + "blockNumber": "0x13fb7c6", + "transactionHash": "0x77ab8db3472f1e01be8783a78e5e804bfb3b917c3037c0ec3d3e66da0455f247", + "transactionIndex": "0x75", + "logIndex": "0x10e", + "removed": false + }, + { + "address": "0x5d6e53c42e3b37f82f693937bc508940769c5caf", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000364b8154ea1673e360446c3d17480d32c3e71b2c", + "blockHash": "0x90be87214fc580cbb09757be9071a9675a703f54b0a94e0e1abac0562b45fa12", + "blockNumber": "0x13fb7c6", + "transactionHash": "0x77ab8db3472f1e01be8783a78e5e804bfb3b917c3037c0ec3d3e66da0455f247", + "transactionIndex": "0x75", + "logIndex": "0x10f", + "removed": false + } + ], + "logsBloom": "0x00000000000002000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000002000001000000000008000000000000000800000000020000000010200000000800000000800000000000000000000000400000000000010000000000000000000000000000010000000000000010800000000000000000000000000000000000000000000000000000000000020000000000000020000000000000000000000000000000000400000000000000000020000000020000800000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x77ab8db3472f1e01be8783a78e5e804bfb3b917c3037c0ec3d3e66da0455f247", + "transactionIndex": "0x75", + "blockHash": "0x90be87214fc580cbb09757be9071a9675a703f54b0a94e0e1abac0562b45fa12", + "blockNumber": "0x13fb7c6", + "gasUsed": "0x9ece4", + "effectiveGasPrice": "0x26883dc02", + "from": "0xa1e340bd1e3ea09b3981164bbb4afeddf0e7ba0d", + "to": null, + "contractAddress": "0x5d6e53c42e3b37f82f693937bc508940769c5caf" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728778542, + "chain": 1, + "commit": "65893bb" +} \ No newline at end of file diff --git a/script/ContractAddresses.sol b/script/ContractAddresses.sol index 58c4e9168..ebc73cf06 100644 --- a/script/ContractAddresses.sol +++ b/script/ContractAddresses.sol @@ -123,9 +123,9 @@ contract ContractAddresses { REWARDS_DISTRIBUTOR_ADDRESS: 0x40d5FF3E218f54f4982661a0464a298Cf6652351, EXECUTION_LAYER_RECEIVER_ADDRESS: 0x1D6b2a11FFEa5F9a8Ed85A02581910b3d695C12b, CONSENSUS_LAYER_RECEIVER_ADDRESS: 0xE439fe4563F7666FCd7405BEC24aE7B0d226536e, - YNETH_REDEMPTION_ASSETS_VAULT_ADDRESS: address(0), - WITHDRAWAL_QUEUE_MANAGER_ADDRESS: address(0), - WITHDRAWALS_PROCESSOR_ADDRESS: address(0) + YNETH_REDEMPTION_ASSETS_VAULT_ADDRESS: 0x5D6e53c42E3B37f82F693937BC508940769c5caf, + WITHDRAWAL_QUEUE_MANAGER_ADDRESS: 0x0BC9BC81aD379810B36AD5cC95387112990AA67b, + WITHDRAWALS_PROCESSOR_ADDRESS: 0x6d052CdEd3F64aea51f6051F33b68b42016C5FbA }), ynEigen: YnEigenAddresses({ YNEIGEN_ADDRESS: 0x35Ec69A77B79c255e5d47D5A3BdbEFEfE342630c, diff --git a/script/ynETH/BaseYnETHScript.s.sol b/script/ynETH/BaseYnETHScript.s.sol index 0b96b5a0b..9258a494b 100644 --- a/script/ynETH/BaseYnETHScript.s.sol +++ b/script/ynETH/BaseYnETHScript.s.sol @@ -118,16 +118,14 @@ abstract contract BaseYnETHScript is BaseScript { deployment.ynViewer = ynViewer(payable(jsonContent.readAddress(".proxy-ynViewer"))); proxies.ynViewer = loadProxyAddresses(jsonContent, "ynViewer"); - if (block.chainid == 17000) { // Holesky chain ID - deployment.withdrawalQueueManager = WithdrawalQueueManager(payable(jsonContent.readAddress(".proxy-withdrawalQueueManager"))); - proxies.withdrawalQueueManager = loadProxyAddresses(jsonContent, "withdrawalQueueManager"); + deployment.withdrawalQueueManager = WithdrawalQueueManager(payable(jsonContent.readAddress(".proxy-withdrawalQueueManager"))); + proxies.withdrawalQueueManager = loadProxyAddresses(jsonContent, "withdrawalQueueManager"); - deployment.ynETHRedemptionAssetsVaultInstance = ynETHRedemptionAssetsVault(payable(jsonContent.readAddress(".proxy-ynETHRedemptionAssetsVault"))); - proxies.ynETHRedemptionAssetsVault = loadProxyAddresses(jsonContent, "ynETHRedemptionAssetsVault"); + deployment.ynETHRedemptionAssetsVaultInstance = ynETHRedemptionAssetsVault(payable(jsonContent.readAddress(".proxy-ynETHRedemptionAssetsVault"))); + proxies.ynETHRedemptionAssetsVault = loadProxyAddresses(jsonContent, "ynETHRedemptionAssetsVault"); - deployment.withdrawalsProcessor = WithdrawalsProcessor(payable(jsonContent.readAddress(".proxy-withdrawalsProcessor"))); - proxies.withdrawalsProcessor = loadProxyAddresses(jsonContent, "withdrawalsProcessor"); - } + deployment.withdrawalsProcessor = WithdrawalsProcessor(payable(jsonContent.readAddress(".proxy-withdrawalsProcessor"))); + proxies.withdrawalsProcessor = loadProxyAddresses(jsonContent, "withdrawalsProcessor"); deployment.proxies = proxies; diff --git a/script/ynETH/DeployYnETHWithdrawals.s.sol b/script/ynETH/DeployYnETHWithdrawals.s.sol deleted file mode 100644 index 6e37ff662..000000000 --- a/script/ynETH/DeployYnETHWithdrawals.s.sol +++ /dev/null @@ -1,287 +0,0 @@ -// SPDX-License-Identifier: BSD 3-Clause License -pragma solidity ^0.8.24; - - -import {TransparentUpgradeableProxy} from "lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -import {IEigenPodManager} from "lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol"; -import {IDelegationManager} from "lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol"; -// import {IDelayedWithdrawalRouter} from "lib/eigenlayer-contracts/src/contracts/interfaces/IDelayedWithdrawalRouter.sol"; -import {IStrategyManager} from "lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol"; -import {IDepositContract} from "src/external/ethereum/IDepositContract.sol"; -import {IRewardsDistributor} from "src/interfaces/IRewardsDistributor.sol"; -import {IynETH} from "src/interfaces/IynETH.sol"; -import {IStakingNodesManager} from "src/interfaces/IStakingNodesManager.sol"; -import {IWETH} from "src/external/tokens/IWETH.sol"; - -import {StakingNodesManager} from "src/StakingNodesManager.sol"; -import {StakingNode} from "src/StakingNode.sol"; -import {RewardsReceiver} from "src/RewardsReceiver.sol"; -import {RewardsDistributor} from "src/RewardsDistributor.sol"; -import {ynETH} from "src/ynETH.sol"; -import {ContractAddresses} from "script/ContractAddresses.sol"; -import {BaseScript} from "script/BaseScript.s.sol"; -import {BaseYnETHScript} from "script/ynETH/BaseYnETHScript.s.sol"; -import {ActorAddresses} from "script/Actors.sol"; -import {ynETHRedemptionAssetsVault} from "src/ynETHRedemptionAssetsVault.sol"; -import {WithdrawalQueueManager} from "src/WithdrawalQueueManager.sol"; -import {IRedemptionAssetsVault} from "src/interfaces/IRedemptionAssetsVault.sol"; -import {IRedeemableAsset} from "src/interfaces/IRedeemableAsset.sol"; -import {WithdrawalsProcessor} from "src/WithdrawalsProcessor.sol"; - -import {console} from "lib/forge-std/src/console.sol"; - -contract DeployYnETHWithdrawals is BaseYnETHScript { - - - struct WithdrawalsDeployment { - ynETHRedemptionAssetsVault ynETHRedemptionAssetsVault; - WithdrawalQueueManager withdrawalQueueManager; - WithdrawalsProcessor withdrawalsProcessor; - StakingNodesManager stakingNodesManagerImplementation; - StakingNode stakingNodeImplementation; - ynETH ynETHImplementation; - } - - /** - The following uprades MUST be performed for withdrawals to work: - - ynETH.sol - StakingNodesManager.sol - StakingNodeImplementation.sol - */ - - ynETHRedemptionAssetsVault public ynETHRedemptionAssetsVaultInstance; - WithdrawalQueueManager public ynETHWithdrawalQueueManager; - WithdrawalsProcessor withdrawalsProcessor; - StakingNodesManager stakingNodesManagerImplementation; - StakingNode stakingNodeImplementation; - ynETH ynETHImplementation; - ActorAddresses.Actors actors; - address deployer; - - function run() external { - - // ynETH.sol ROLES - actors = getActors(); - - ContractAddresses contractAddresses = new ContractAddresses(); - - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - - address publicKey = vm.addr(deployerPrivateKey); - console.log("Deployer Public Key:", publicKey); - deployer = publicKey; - - IynETH yneth = IynETH(payable(contractAddresses.getChainAddresses(block.chainid).yn.YNETH_ADDRESS)); - // Get the StakingNodesManager instance - IStakingNodesManager stakingNodesManager = IStakingNodesManager(contractAddresses.getChainAddresses(block.chainid).yn.STAKING_NODES_MANAGER_ADDRESS); - - address _broadcaster = vm.addr(deployerPrivateKey); - - vm.startBroadcast(deployerPrivateKey); - - console.log("Default Signer Address:", _broadcaster); - console.log("Current Block Number:", block.number); - console.log("Current Chain ID:", block.chainid); - - // Deploy implementation contracts - stakingNodesManagerImplementation = new StakingNodesManager(); - console.log("StakingNodesManager implementation deployed at:", address(stakingNodesManagerImplementation)); - - StakingNode stakingNodeImplementation = new StakingNode(); - console.log("StakingNode implementation deployed at:", address(stakingNodeImplementation)); - - ynETHImplementation = new ynETH(); - console.log("ynETH implementation deployed at:", address(ynETHImplementation)); - - // deploy ynETHRedemptionAssetsVault - { - ynETHRedemptionAssetsVault impl = new ynETHRedemptionAssetsVault(); - console.log("ynETHRedemptionAssetsVault implementation deployed at:", address(impl)); - TransparentUpgradeableProxy _proxy = new TransparentUpgradeableProxy( - address(impl), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - ynETHRedemptionAssetsVaultInstance = ynETHRedemptionAssetsVault(payable(address(_proxy))); - } - - // deploy WithdrawalQueueManager - { - WithdrawalQueueManager withdrawalQueueManagerImpl = new WithdrawalQueueManager(); - console.log("WithdrawalQueueManager implementation deployed at:", address(withdrawalQueueManagerImpl)); - - TransparentUpgradeableProxy _proxy = new TransparentUpgradeableProxy( - address(withdrawalQueueManagerImpl), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - ynETHWithdrawalQueueManager = WithdrawalQueueManager(address(_proxy)); - } - - // deploy WithdrawalsProcessor - { - WithdrawalsProcessor withdrawalsProcessorImplementation = new WithdrawalsProcessor(); - console.log("WithdrawalsProcessor implementation deployed at:", address(withdrawalsProcessorImplementation)); - - TransparentUpgradeableProxy withdrawalsProcessorProxy = new TransparentUpgradeableProxy( - address(withdrawalsProcessorImplementation), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - withdrawalsProcessor = WithdrawalsProcessor(address(withdrawalsProcessorProxy)); - } - - // initialize ynETHRedemptionAssetsVault - { - ynETHRedemptionAssetsVault.Init memory _init = ynETHRedemptionAssetsVault.Init({ - admin: actors.admin.PROXY_ADMIN_OWNER, - redeemer: address(ynETHWithdrawalQueueManager), - ynETH: IynETH(address(yneth)) - }); - ynETHRedemptionAssetsVaultInstance.initialize(_init); - } - - // initialize WithdrawalQueueManager - { - WithdrawalQueueManager.Init memory managerInit = WithdrawalQueueManager.Init({ - name: "ynETH Withdrawal Manager", - symbol: "ynETHWM", - redeemableAsset: IRedeemableAsset(address(yneth)), - redemptionAssetsVault: IRedemptionAssetsVault(address(ynETHRedemptionAssetsVaultInstance)), - admin: actors.admin.ADMIN, - withdrawalQueueAdmin: actors.admin.ADMIN, - redemptionAssetWithdrawer: actors.ops.REDEMPTION_ASSET_WITHDRAWER, - requestFinalizer: actors.ops.REQUEST_FINALIZER, - withdrawalFee: 1000, // 0.1% - feeReceiver: actors.admin.FEE_RECEIVER - }); - ynETHWithdrawalQueueManager.initialize(managerInit); - } - - { - // initialize WithdrawalsProcessor - withdrawalsProcessor.initialize( - IStakingNodesManager(address(stakingNodesManager)), - actors.admin.ADMIN, - actors.ops.WITHDRAWAL_MANAGER - ); - console.log("WithdrawalsProcessor initialized"); - - } - - // Perform the following permissioned call with DEFAULT_ADMIN ROLE: - - console.log("Parameters for stakingNodesManager.initializeV2:"); - console.log("redemptionAssetsVault:", address(ynETHRedemptionAssetsVaultInstance)); - console.log("withdrawalManager:", address(withdrawalsProcessor)); - console.log("stakingNodesWithdrawer:", address(withdrawalsProcessor)); - - // Save deployment information - WithdrawalsDeployment memory deployment = WithdrawalsDeployment({ - ynETHRedemptionAssetsVault: ynETHRedemptionAssetsVaultInstance, - withdrawalQueueManager: ynETHWithdrawalQueueManager, - withdrawalsProcessor: withdrawalsProcessor, - stakingNodesManagerImplementation: stakingNodesManagerImplementation, - stakingNodeImplementation: stakingNodeImplementation, - ynETHImplementation: ynETHImplementation - }); - - saveWithdrawalsDeployment(deployment); - - // Verify all the above is deployed correctly. - verifyDeployment(contractAddresses, deployment); - - console.log("Deployment information saved successfully."); - - // initialize stakingNodesManager withdrawal contracts - { - StakingNodesManager.Init2 memory initParams = StakingNodesManager.Init2({ - redemptionAssetsVault: ynETHRedemptionAssetsVaultInstance, - withdrawalManager: address(withdrawalsProcessor), - stakingNodesWithdrawer: address(withdrawalsProcessor) - }); - - console.log("actors.ops.WITHDRAWAL_MANAGER:", actors.ops.WITHDRAWAL_MANAGER); - console.log("actors.ops.STAKING_NODES_WITHDRAWER:", actors.ops.STAKING_NODES_WITHDRAWER); - - bytes memory txData = abi.encodeWithSelector(StakingNodesManager.initializeV2.selector, initParams); - console.log("Transaction data for stakingNodesManager.initializeV2:"); - console.logBytes(txData); - } - - vm.stopBroadcast(); - } - - - function getDeploymentFile() internal virtual view override returns (string memory) { - string memory root = vm.projectRoot(); - return string.concat(root, "/deployments/ynETHWithdrawals-", vm.toString(block.chainid), ".json"); - } - - function saveWithdrawalsDeployment(WithdrawalsDeployment memory deployment) public virtual { - string memory json = "deployment"; - - // contract addresses - serializeProxyElements(json, "withdrawalQueueManager", address(deployment.withdrawalQueueManager)); - serializeProxyElements(json, "ynETHRedemptionAssetsVault", address(deployment.ynETHRedemptionAssetsVault)); - serializeProxyElements(json, "withdrawalsProcessor", address(deployment.withdrawalsProcessor)); - vm.serializeAddress(json, "stakingNodeImplementation", address(deployment.stakingNodeImplementation)); - vm.serializeAddress(json, "implementation-stakingNodesManager", address(deployment.stakingNodesManagerImplementation)); - vm.serializeAddress(json, "implementation-ynETH", address(deployment.ynETHImplementation)); - - - string memory finalJson = vm.serializeAddress(json, "DEPLOYER", deployer); - vm.writeJson(finalJson, getDeploymentFile()); - - console.log("Deployment JSON file written successfully:", getDeploymentFile()); - } - - function verifyDeployment(ContractAddresses contractAddresses, WithdrawalsDeployment memory deployment) internal { - // Verify WithdrawalQueueManager - require(address(deployment.withdrawalQueueManager) != address(0), "WithdrawalQueueManager not deployed"); - WithdrawalQueueManager wqm = deployment.withdrawalQueueManager; - require(wqm.hasRole(wqm.WITHDRAWAL_QUEUE_ADMIN_ROLE(), actors.wallets.YNSecurityCouncil), "ADMIN role not set for WithdrawalQueueManager"); - require(wqm.hasRole(wqm.REDEMPTION_ASSET_WITHDRAWER_ROLE(), actors.wallets.YNDev), "REDEMPTION_ASSET_WITHDRAWER role not set for WithdrawalQueueManager"); - require(wqm.hasRole(wqm.REQUEST_FINALIZER_ROLE(), actors.wallets.YNWithdrawalsETH), "REQUEST_FINALIZER role not set for WithdrawalQueueManager"); - // Assert parameters for WithdrawalQueueManager - require(address(wqm.redeemableAsset()) == contractAddresses.getChainAddresses(block.chainid).yn.YNETH_ADDRESS, "Redeemable asset not set correctly in WithdrawalQueueManager"); - require(address(wqm.redemptionAssetsVault()) == address(deployment.ynETHRedemptionAssetsVault), "RedemptionAssetsVault not set correctly in WithdrawalQueueManager"); - require(wqm.feeReceiver() == actors.wallets.YNSecurityCouncil, "Fee receiver not set correctly in WithdrawalQueueManager"); - require(wqm.withdrawalFee() == 1000, "Initial withdrawal fee should be 0.1%"); - console.log("\u2705 WithdrawalQueueManager verified"); - - // Verify YnETHRedemptionAssetsVault - require(address(deployment.ynETHRedemptionAssetsVault) != address(0), "YnETHRedemptionAssetsVault not deployed"); - ynETHRedemptionAssetsVault rav = deployment.ynETHRedemptionAssetsVault; - require(rav.hasRole(rav.DEFAULT_ADMIN_ROLE(), actors.admin.ADMIN), "ADMIN role not set for YnETHRedemptionAssetsVault"); - require(rav.hasRole(rav.PAUSER_ROLE(), actors.admin.ADMIN), "PAUSER role not set for YnETHRedemptionAssetsVault"); - require(rav.hasRole(rav.UNPAUSER_ROLE(), actors.admin.ADMIN), "UNPAUSER role not set for YnETHRedemptionAssetsVault"); - require(rav.redeemer() == address(wqm), "Redeemer not set correctly in YnETHRedemptionAssetsVault"); - // Verify ynETH dependency - require(address(rav.ynETH()) == contractAddresses.getChainAddresses(block.chainid).yn.YNETH_ADDRESS, "ynETH address mismatch in YnETHRedemptionAssetsVault"); - console.log("\u2705 YnETHRedemptionAssetsVault verified"); - - // Verify WithdrawalsProcessor - require(address(deployment.withdrawalsProcessor) != address(0), "WithdrawalsProcessor not deployed"); - WithdrawalsProcessor wp = deployment.withdrawalsProcessor; - require(wp.hasRole(wp.DEFAULT_ADMIN_ROLE(), actors.admin.ADMIN), "ADMIN role not set for WithdrawalsProcessor"); - require(wp.hasRole(wp.WITHDRAWAL_MANAGER_ROLE(), actors.ops.WITHDRAWAL_MANAGER), "WITHDRAWAL_MANAGER role not set for WithdrawalsProcessor"); - require(address(wp.stakingNodesManager()) == contractAddresses.getChainAddresses(block.chainid).yn.STAKING_NODES_MANAGER_ADDRESS, "StakingNodesManager not set correctly in WithdrawalsProcessor"); - console.log("\u2705 WithdrawalsProcessor verified"); - - // Verify StakingNodeImplementation - require(address(deployment.stakingNodeImplementation) != address(0), "StakingNodeImplementation not deployed"); - console.log("\u2705 StakingNodeImplementation verified"); - - // Verify StakingNodesManagerImplementation - require(address(deployment.stakingNodesManagerImplementation) != address(0), "StakingNodesManagerImplementation not deployed"); - console.log("\u2705 StakingNodesManagerImplementation verified"); - - // Verify YnETHImplementation - require(address(deployment.ynETHImplementation) != address(0), "YnETHImplementation not deployed"); - console.log("\u2705 YnETHImplementation verified"); - - console.log("All deployments verified successfully."); - } -} \ No newline at end of file diff --git a/script/ynETH/VerifyYnETH.s.sol b/script/ynETH/VerifyYnETH.s.sol index f7354a469..ff8901617 100644 --- a/script/ynETH/VerifyYnETH.s.sol +++ b/script/ynETH/VerifyYnETH.s.sol @@ -17,12 +17,8 @@ contract Verify is BaseYnETHScript { ActorAddresses.Actors actors; ContractAddresses.ChainAddresses chainAddresses; - bool ONLY_HOLESKY_WITHDRAWALS; - function run() external { - ONLY_HOLESKY_WITHDRAWALS = block.chainid == 17000; - ContractAddresses contractAddresses = new ContractAddresses(); chainAddresses = contractAddresses.getChainAddresses(block.chainid); @@ -103,27 +99,23 @@ contract Verify is BaseYnETHScript { deployment.proxies.ynViewer ); - // TODO: remove this for mainnet - if (ONLY_HOLESKY_WITHDRAWALS) { // Holesky chain ID - - verifyProxyContract( - address(deployment.withdrawalQueueManager), - "withdrawalQueueManager", - deployment.proxies.withdrawalQueueManager - ); + verifyProxyContract( + address(deployment.withdrawalQueueManager), + "withdrawalQueueManager", + deployment.proxies.withdrawalQueueManager + ); - verifyProxyContract( - address(deployment.ynETHRedemptionAssetsVaultInstance), - "ynETHRedemptionAssetsVault", - deployment.proxies.ynETHRedemptionAssetsVault - ); + verifyProxyContract( + address(deployment.ynETHRedemptionAssetsVaultInstance), + "ynETHRedemptionAssetsVault", + deployment.proxies.ynETHRedemptionAssetsVault + ); - verifyProxyContract( - address(deployment.withdrawalsProcessor), - "withdrawalsProcessor", - deployment.proxies.withdrawalsProcessor - ); - } + verifyProxyContract( + address(deployment.withdrawalsProcessor), + "withdrawalsProcessor", + deployment.proxies.withdrawalsProcessor + ); } function verifyRoles() internal view { @@ -278,28 +270,26 @@ contract Verify is BaseYnETHScript { ); console.log("\u2705 stakingNodesManager: UNPAUSE_ADMIN - ", vm.toString(address(actors.admin.UNPAUSE_ADMIN))); - // TODO: remove this for mainnet - if (ONLY_HOLESKY_WITHDRAWALS) { // Holesky chain ID - // STAKING_NODES_WITHDRAWER_ROLE - require( - deployment.stakingNodesManager.hasRole( - deployment.stakingNodesManager.STAKING_NODES_WITHDRAWER_ROLE(), - address(deployment.withdrawalsProcessor) - ), - "stakingNodesManager: STAKING_NODES_WITHDRAWER_ROLE INVALID" - ); - console.log("\u2705 stakingNodesManager: STAKING_NODES_WITHDRAWER_ROLE - ", vm.toString(address(deployment.withdrawalsProcessor))); - // WITHDRAWAL_MANAGER_ROLE - require( - deployment.stakingNodesManager.hasRole( - deployment.stakingNodesManager.WITHDRAWAL_MANAGER_ROLE(), - address(deployment.withdrawalsProcessor) - ), - "stakingNodesManager: WITHDRAWAL_MANAGER_ROLE INVALID" - ); - console.log("\u2705 stakingNodesManager: WITHDRAWAL_MANAGER_ROLE - ", vm.toString(address(deployment.withdrawalsProcessor))); - } + // STAKING_NODES_WITHDRAWER_ROLE + require( + deployment.stakingNodesManager.hasRole( + deployment.stakingNodesManager.STAKING_NODES_WITHDRAWER_ROLE(), + address(deployment.withdrawalsProcessor) + ), + "stakingNodesManager: STAKING_NODES_WITHDRAWER_ROLE INVALID" + ); + console.log("\u2705 stakingNodesManager: STAKING_NODES_WITHDRAWER_ROLE - ", vm.toString(address(deployment.withdrawalsProcessor))); + + // WITHDRAWAL_MANAGER_ROLE + require( + deployment.stakingNodesManager.hasRole( + deployment.stakingNodesManager.WITHDRAWAL_MANAGER_ROLE(), + address(deployment.withdrawalsProcessor) + ), + "stakingNodesManager: WITHDRAWAL_MANAGER_ROLE INVALID" + ); + console.log("\u2705 stakingNodesManager: WITHDRAWAL_MANAGER_ROLE - ", vm.toString(address(deployment.withdrawalsProcessor))); //-------------------------------------------------------------------------------------- //-------------------------------- ynETH roles --------------------------------------- @@ -336,135 +326,132 @@ contract Verify is BaseYnETHScript { console.log("\u2705 ynETH: UNPAUSER_ROLE - ", vm.toString(address(actors.admin.UNPAUSE_ADMIN))); - if (ONLY_HOLESKY_WITHDRAWALS) { - // BURNER_ROLE; - require( - deployment.ynETH.hasRole( - deployment.ynETH.BURNER_ROLE(), - address(deployment.withdrawalQueueManager) - ), - "ynETH: BURNER_ROLE INVALID" - ); - console.log("\u2705 ynETH: BURNER_ROLE - ", vm.toString(address(deployment.withdrawalQueueManager))); - + // BURNER_ROLE; + require( + deployment.ynETH.hasRole( + deployment.ynETH.BURNER_ROLE(), + address(deployment.withdrawalQueueManager) + ), + "ynETH: BURNER_ROLE INVALID" + ); + console.log("\u2705 ynETH: BURNER_ROLE - ", vm.toString(address(deployment.withdrawalQueueManager))); - //-------------------------------------------------------------------------------------- - //------------------ withdrawalQueueManager roles ------------------------------------ - //-------------------------------------------------------------------------------------- + //-------------------------------------------------------------------------------------- + //------------------ withdrawalQueueManager roles ------------------------------------ + //-------------------------------------------------------------------------------------- - // DEFAULT_ADMIN_ROLE - require( - deployment.withdrawalQueueManager.hasRole( - deployment.withdrawalQueueManager.DEFAULT_ADMIN_ROLE(), - address(actors.admin.ADMIN) - ), - "withdrawalQueueManager: DEFAULT_ADMIN_ROLE INVALID" - ); - console.log("\u2705 withdrawalQueueManager: DEFAULT_ADMIN_ROLE - ", vm.toString(address(actors.admin.ADMIN))); + // DEFAULT_ADMIN_ROLE + require( + deployment.withdrawalQueueManager.hasRole( + deployment.withdrawalQueueManager.DEFAULT_ADMIN_ROLE(), + address(actors.admin.ADMIN) + ), + "withdrawalQueueManager: DEFAULT_ADMIN_ROLE INVALID" + ); + console.log("\u2705 withdrawalQueueManager: DEFAULT_ADMIN_ROLE - ", vm.toString(address(actors.admin.ADMIN))); - // WITHDRAWAL_QUEUE_ADMIN_ROLE - require( - deployment.withdrawalQueueManager.hasRole( - deployment.withdrawalQueueManager.WITHDRAWAL_QUEUE_ADMIN_ROLE(), - address(actors.admin.ADMIN) - ), - "withdrawalQueueManager: WITHDRAWAL_QUEUE_ADMIN_ROLE INVALID" - ); - console.log("\u2705 withdrawalQueueManager: WITHDRAWAL_QUEUE_ADMIN_ROLE - ", vm.toString(address(actors.admin.ADMIN))); + // WITHDRAWAL_QUEUE_ADMIN_ROLE + require( + deployment.withdrawalQueueManager.hasRole( + deployment.withdrawalQueueManager.WITHDRAWAL_QUEUE_ADMIN_ROLE(), + address(actors.admin.ADMIN) + ), + "withdrawalQueueManager: WITHDRAWAL_QUEUE_ADMIN_ROLE INVALID" + ); + console.log("\u2705 withdrawalQueueManager: WITHDRAWAL_QUEUE_ADMIN_ROLE - ", vm.toString(address(actors.admin.ADMIN))); - // REQUEST_FINALIZER_ROLE - require( - deployment.withdrawalQueueManager.hasRole( - deployment.withdrawalQueueManager.REQUEST_FINALIZER_ROLE(), - address(actors.ops.REQUEST_FINALIZER) - ), - "withdrawalQueueManager: REQUEST_FINALIZER_ROLE INVALID" - ); - console.log("\u2705 withdrawalQueueManager: REQUEST_FINALIZER_ROLE - ", vm.toString(address(actors.ops.REQUEST_FINALIZER))); + // REQUEST_FINALIZER_ROLE + require( + deployment.withdrawalQueueManager.hasRole( + deployment.withdrawalQueueManager.REQUEST_FINALIZER_ROLE(), + address(actors.ops.REQUEST_FINALIZER) + ), + "withdrawalQueueManager: REQUEST_FINALIZER_ROLE INVALID" + ); + console.log("\u2705 withdrawalQueueManager: REQUEST_FINALIZER_ROLE - ", vm.toString(address(actors.ops.REQUEST_FINALIZER))); - // REDEMPTION_ASSET_WITHDRAWER_ROLE - require( - deployment.withdrawalQueueManager.hasRole( - deployment.withdrawalQueueManager.REDEMPTION_ASSET_WITHDRAWER_ROLE(), - address(actors.ops.REDEMPTION_ASSET_WITHDRAWER) - ), - "withdrawalQueueManager: REDEMPTION_ASSET_WITHDRAWER_ROLE INVALID" - ); - console.log("\u2705 withdrawalQueueManager: REDEMPTION_ASSET_WITHDRAWER_ROLE - ", vm.toString(address(actors.ops.REDEMPTION_ASSET_WITHDRAWER))); + // REDEMPTION_ASSET_WITHDRAWER_ROLE + require( + deployment.withdrawalQueueManager.hasRole( + deployment.withdrawalQueueManager.REDEMPTION_ASSET_WITHDRAWER_ROLE(), + address(actors.ops.REDEMPTION_ASSET_WITHDRAWER) + ), + "withdrawalQueueManager: REDEMPTION_ASSET_WITHDRAWER_ROLE INVALID" + ); + console.log("\u2705 withdrawalQueueManager: REDEMPTION_ASSET_WITHDRAWER_ROLE - ", vm.toString(address(actors.ops.REDEMPTION_ASSET_WITHDRAWER))); - //-------------------------------------------------------------------------------------- - //------------------ ynETHRedemptionAssetsVault roles --------------------------------- - //-------------------------------------------------------------------------------------- + //-------------------------------------------------------------------------------------- + //------------------ ynETHRedemptionAssetsVault roles --------------------------------- + //-------------------------------------------------------------------------------------- - // DEFAULT_ADMIN_ROLE - require( - deployment.ynETHRedemptionAssetsVaultInstance.hasRole( - deployment.ynETHRedemptionAssetsVaultInstance.DEFAULT_ADMIN_ROLE(), - address(actors.admin.ADMIN) - ), - "ynETHRedemptionAssetsVault: DEFAULT_ADMIN_ROLE INVALID" - ); - console.log("\u2705 ynETHRedemptionAssetsVault: DEFAULT_ADMIN_ROLE - ", vm.toString(address(actors.admin.PROXY_ADMIN_OWNER))); + // DEFAULT_ADMIN_ROLE + require( + deployment.ynETHRedemptionAssetsVaultInstance.hasRole( + deployment.ynETHRedemptionAssetsVaultInstance.DEFAULT_ADMIN_ROLE(), + address(actors.admin.ADMIN) + ), + "ynETHRedemptionAssetsVault: DEFAULT_ADMIN_ROLE INVALID" + ); + console.log("\u2705 ynETHRedemptionAssetsVault: DEFAULT_ADMIN_ROLE - ", vm.toString(address(actors.admin.PROXY_ADMIN_OWNER))); - // PAUSER_ROLE - require( - deployment.ynETHRedemptionAssetsVaultInstance.hasRole( - deployment.ynETHRedemptionAssetsVaultInstance.PAUSER_ROLE(), - address(actors.admin.ADMIN) - ), - "ynETHRedemptionAssetsVault: PAUSER_ROLE INVALID" - ); - console.log("\u2705 ynETHRedemptionAssetsVault: PAUSER_ROLE - ", vm.toString(address(actors.admin.ADMIN))); + // PAUSER_ROLE + require( + deployment.ynETHRedemptionAssetsVaultInstance.hasRole( + deployment.ynETHRedemptionAssetsVaultInstance.PAUSER_ROLE(), + address(actors.admin.ADMIN) + ), + "ynETHRedemptionAssetsVault: PAUSER_ROLE INVALID" + ); + console.log("\u2705 ynETHRedemptionAssetsVault: PAUSER_ROLE - ", vm.toString(address(actors.admin.ADMIN))); - // UNPAUSER_ROLE - require( - deployment.ynETHRedemptionAssetsVaultInstance.hasRole( - deployment.ynETHRedemptionAssetsVaultInstance.UNPAUSER_ROLE(), - address(actors.admin.UNPAUSE_ADMIN) - ), - "ynETHRedemptionAssetsVault: UNPAUSER_ROLE INVALID" - ); - console.log("\u2705 ynETHRedemptionAssetsVault: UNPAUSER_ROLE - ", vm.toString(address(actors.admin.UNPAUSE_ADMIN))); + // UNPAUSER_ROLE + require( + deployment.ynETHRedemptionAssetsVaultInstance.hasRole( + deployment.ynETHRedemptionAssetsVaultInstance.UNPAUSER_ROLE(), + address(actors.admin.UNPAUSE_ADMIN) + ), + "ynETHRedemptionAssetsVault: UNPAUSER_ROLE INVALID" + ); + console.log("\u2705 ynETHRedemptionAssetsVault: UNPAUSER_ROLE - ", vm.toString(address(actors.admin.UNPAUSE_ADMIN))); - // Verify redeemer - require( - deployment.ynETHRedemptionAssetsVaultInstance.redeemer() == address(deployment.withdrawalQueueManager), - "ynETHRedemptionAssetsVault: redeemer INVALID" - ); - console.log("\u2705 ynETHRedemptionAssetsVault: redeemer - ", vm.toString(address(deployment.withdrawalQueueManager))); + // Verify redeemer + require( + deployment.ynETHRedemptionAssetsVaultInstance.redeemer() == address(deployment.withdrawalQueueManager), + "ynETHRedemptionAssetsVault: redeemer INVALID" + ); + console.log("\u2705 ynETHRedemptionAssetsVault: redeemer - ", vm.toString(address(deployment.withdrawalQueueManager))); - //-------------------------------------------------------------------------------------- - //------------------ WithdrawalsProcessor roles -------------------------------------- - //-------------------------------------------------------------------------------------- + //-------------------------------------------------------------------------------------- + //------------------ WithdrawalsProcessor roles -------------------------------------- + //-------------------------------------------------------------------------------------- - // DEFAULT_ADMIN_ROLE - require( - deployment.withdrawalsProcessor.hasRole( - deployment.withdrawalsProcessor.DEFAULT_ADMIN_ROLE(), - address(actors.admin.ADMIN) - ), - "WithdrawalsProcessor: DEFAULT_ADMIN_ROLE INVALID" - ); - console.log("\u2705 WithdrawalsProcessor: DEFAULT_ADMIN_ROLE - ", vm.toString(address(actors.admin.ADMIN))); + // DEFAULT_ADMIN_ROLE + require( + deployment.withdrawalsProcessor.hasRole( + deployment.withdrawalsProcessor.DEFAULT_ADMIN_ROLE(), + address(actors.admin.ADMIN) + ), + "WithdrawalsProcessor: DEFAULT_ADMIN_ROLE INVALID" + ); + console.log("\u2705 WithdrawalsProcessor: DEFAULT_ADMIN_ROLE - ", vm.toString(address(actors.admin.ADMIN))); - // WITHDRAWAL_MANAGER_ROLE - require( - deployment.withdrawalsProcessor.hasRole( - deployment.withdrawalsProcessor.WITHDRAWAL_MANAGER_ROLE(), - address(actors.ops.WITHDRAWAL_MANAGER) - ), - "WithdrawalsProcessor: WITHDRAWAL_MANAGER_ROLE INVALID" - ); - console.log("\u2705 WithdrawalsProcessor: WITHDRAWAL_MANAGER_ROLE - ", vm.toString(address(actors.ops.WITHDRAWAL_MANAGER))); + // WITHDRAWAL_MANAGER_ROLE + require( + deployment.withdrawalsProcessor.hasRole( + deployment.withdrawalsProcessor.WITHDRAWAL_MANAGER_ROLE(), + address(actors.ops.WITHDRAWAL_MANAGER) + ), + "WithdrawalsProcessor: WITHDRAWAL_MANAGER_ROLE INVALID" + ); + console.log("\u2705 WithdrawalsProcessor: WITHDRAWAL_MANAGER_ROLE - ", vm.toString(address(actors.ops.WITHDRAWAL_MANAGER))); - // Verify stakingNodesManager - require( - address(deployment.withdrawalsProcessor.stakingNodesManager()) == address(deployment.stakingNodesManager), - "WithdrawalsProcessor: stakingNodesManager INVALID" - ); - console.log("\u2705 WithdrawalsProcessor: stakingNodesManager - ", vm.toString(address(deployment.stakingNodesManager))); - } + // Verify stakingNodesManager + require( + address(deployment.withdrawalsProcessor.stakingNodesManager()) == address(deployment.stakingNodesManager), + "WithdrawalsProcessor: stakingNodesManager INVALID" + ); + console.log("\u2705 WithdrawalsProcessor: stakingNodesManager - ", vm.toString(address(deployment.stakingNodesManager))); } @@ -495,16 +482,14 @@ contract Verify is BaseYnETHScript { console.log("\u2705 ynETH: validatorRegistrationPaused - Value:", deployment.stakingNodesManager.validatorRegistrationPaused()); - if (ONLY_HOLESKY_WITHDRAWALS) { - // EXPECTING 5 BIPS for holesky and 10 BPS for mainnet - require( - deployment.withdrawalQueueManager.withdrawalFee() == (block.chainid == 17000 ? 500 : 1000), - "WithdrawalQueueManager: withdrawalFee INVALID" - ); - console.log("\u2705 WithdrawalQueueManager: withdrawalFee - Value:", deployment.withdrawalQueueManager.withdrawalFee()); + // EXPECTING 5 BIPS for holesky and 10 BPS for mainnet + require( + deployment.withdrawalQueueManager.withdrawalFee() == (block.chainid == 17000 ? 500 : 1000), + "WithdrawalQueueManager: withdrawalFee INVALID" + ); + console.log("\u2705 WithdrawalQueueManager: withdrawalFee - Value:", deployment.withdrawalQueueManager.withdrawalFee()); - console.log("\u2705 All system parameters verified successfully"); - } + console.log("\u2705 All system parameters verified successfully"); } function verifyContractDependencies() internal { @@ -514,11 +499,10 @@ contract Verify is BaseYnETHScript { verifyRewardsDistributorDependencies(); verifyAllStakingNodeDependencies(); - if (ONLY_HOLESKY_WITHDRAWALS) { - verifyWithdrawalQueueManagerDependencies(); - verifyYnETHRedemptionAssetsVaultDependencies(); - verifyWithdrawalsProcessorDependencies(); - } + + verifyWithdrawalQueueManagerDependencies(); + verifyYnETHRedemptionAssetsVaultDependencies(); + verifyWithdrawalsProcessorDependencies(); console.log("\u2705 All contract dependencies verified successfully"); } @@ -624,13 +608,11 @@ contract Verify is BaseYnETHScript { "StakingNodesManager: upgradeableBeacon implementation mismatch" ); - if (ONLY_HOLESKY_WITHDRAWALS) { - require( - address(deployment.stakingNodesManager.redemptionAssetsVault()) == address(deployment.ynETHRedemptionAssetsVaultInstance), - "StakingNodesManager: redemptionAssetsVault dependency mismatch" - ); - console.log("\u2705 StakingNodesManager: redemptionAssetsVault dependency verified"); - } + require( + address(deployment.stakingNodesManager.redemptionAssetsVault()) == address(deployment.ynETHRedemptionAssetsVaultInstance), + "StakingNodesManager: redemptionAssetsVault dependency mismatch" + ); + console.log("\u2705 StakingNodesManager: redemptionAssetsVault dependency verified"); console.log("\u2705 StakingNodesManager dependencies verified"); } @@ -670,20 +652,20 @@ contract Verify is BaseYnETHScript { console.log(string.concat("Total Supply: ", vm.toString(totalSupply), " ynETH (", vm.toString(totalSupply / 1e18), " units)")); console.log(string.concat("Total Assets: ", vm.toString(totalAssets), " wei (", vm.toString(totalAssets / 1e18), " ETH)")); - // Check previewRedeem for Holesky withdrawals - if (ONLY_HOLESKY_WITHDRAWALS) { - uint256 previewRedeemResult = deployment.ynETH.previewRedeem(1 ether); - console.log(string.concat("previewRedeem of 1 ynETH: ", vm.toString(previewRedeemResult), " wei (", vm.toString(previewRedeemResult / 1e18), " ETH)")); - } + + uint256 previewRedeemResult = deployment.ynETH.previewRedeem(1 ether); + console.log(string.concat("previewRedeem of 1 ynETH: ", vm.toString(previewRedeemResult), " wei (", vm.toString(previewRedeemResult / 1e18), " ETH)")); // Check that ETH balance of ynETH + redemption assets vault + staking nodes equals totalAssets uint256 ynETHBalance = address(deployment.ynETH).balance; - uint256 redemptionVaultBalance = ONLY_HOLESKY_WITHDRAWALS ? address(deployment.ynETHRedemptionAssetsVaultInstance).balance : 0; + uint256 redemptionVaultBalance = address(deployment.ynETHRedemptionAssetsVaultInstance).balance; uint256 stakingNodesBalance = 0; IStakingNode[] memory stakingNodes = deployment.stakingNodesManager.getAllNodes(); for (uint256 i = 0; i < stakingNodes.length; i++) { - stakingNodesBalance += stakingNodes[i].getETHBalance(); + stakingNodesBalance += stakingNodes[i].getETHBalance(); + console.log(string.concat("Balance for node ", vm.toString(i), ": ", vm.toString(stakingNodes[i].getETHBalance()), " wei (", vm.toString(stakingNodes[i].getETHBalance() / 1e18), " ETH)")); + } uint256 totalCalculatedBalance = ynETHBalance + redemptionVaultBalance + stakingNodesBalance; diff --git a/test/integration/M3/Base.t.sol b/test/integration/M3/Base.t.sol index 15ae4627e..ee427150e 100644 --- a/test/integration/M3/Base.t.sol +++ b/test/integration/M3/Base.t.sol @@ -78,7 +78,17 @@ contract Base is Test, Utils { function setUp() public virtual { assignContracts(); - upgradeYnToM3(); + + // Roles are granted here just for testing purposes. + // On Mainnet only WithdrawalsProcessor has permission to run this, but the system is designed to run + // them separately as well if needed. + // Grant roles on StakingNodesManager for mainnet only + if (block.chainid == 1) { // Mainnet chain ID + vm.startPrank(actors.admin.ADMIN); + stakingNodesManager.grantRole(stakingNodesManager.WITHDRAWAL_MANAGER_ROLE(), actors.ops.WITHDRAWAL_MANAGER); + stakingNodesManager.grantRole(stakingNodesManager.STAKING_NODES_WITHDRAWER_ROLE(), actors.ops.STAKING_NODES_WITHDRAWER); + vm.stopPrank(); + } } function assignContracts() internal { @@ -117,216 +127,6 @@ contract Base is Test, Utils { } } - function upgradeYnToM3() internal { - if (block.chainid == 17000) { - // nothing to do - return; - } - - uint256 totalAssets = yneth.totalAssets(); - uint256 totalSupply = yneth.totalSupply(); - - // Capture the upgrade state before making any changes - UpgradeState memory preUpgradeState = captureUpgradeState(); - - preUpgradeState.stakingNodesManagerTotalDeposited = 0; - for (uint256 i = 0; i < preUpgradeState.stakingNodeBalances.length; i++) { - preUpgradeState.stakingNodesManagerTotalDeposited += preUpgradeState.stakingNodeBalances[i]; - } - - /* - ███████╗████████╗ █████╗ ██████╗ ███████╗ ██╗ - ██╔════╝╚══██╔══╝██╔══██╗██╔════╝ ██╔════╝ ███║ - ███████╗ ██║ ███████║██║ ███╗█████╗ ╚██║ - ╚════██║ ██║ ██╔══██║██║ ██║██╔══╝ ██║ - ███████║ ██║ ██║ ██║╚██████╔╝███████╗ ██║ - ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - Stage 1 - ATOMIC upgrade existing contracts - */ - - - // upgrade stakingNodesManager - { - /* - ██████╗ █████╗ ███╗ ██╗ ██████╗ ███████╗██████╗ - ██╔══██╗██╔══██╗████╗ ██║██╔════╝ ██╔════╝██╔══██╗ - ██║ ██║███████║██╔██╗ ██║██║ ███╗█████╗ ██████╔╝ - ██║ ██║██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗ - ██████╔╝██║ ██║██║ ╚████║╚██████╔╝███████╗██║ ██║ - ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ - */ - - address stakinNodesManagerImplementation = getStakingNodesManagerImplementation(preUpgradeState); - - vm.startPrank(actors.admin.PROXY_ADMIN_OWNER); - ProxyAdmin( - getTransparentUpgradeableProxyAdminAddress(address(stakingNodesManager)) - ).upgradeAndCall( - ITransparentUpgradeableProxy(address(stakingNodesManager)), - address(stakinNodesManagerImplementation), - "" - ); - vm.stopPrank(); - } - - runUpgradeIntegrityInvariants(preUpgradeState); - - // upgrade ynETH - { - vm.startPrank(actors.admin.PROXY_ADMIN_OWNER); - ProxyAdmin( - getTransparentUpgradeableProxyAdminAddress(address(yneth)) - ).upgradeAndCall( - ITransparentUpgradeableProxy(address(yneth)), - address(new ynETH()), - "" - ); - vm.stopPrank(); - } - - runUpgradeIntegrityInvariants(preUpgradeState); - - // upgrade StakingNodeImplementation - { - stakingNodeImplementation = new StakingNode(); - vm.prank(actors.admin.STAKING_ADMIN); - stakingNodesManager.upgradeStakingNodeImplementation(address(stakingNodeImplementation)); - } - - { - runUpgradeIntegrityInvariants(preUpgradeState); - // Assert that the redemptionAssetsVault is initially set to the zero address in the StakingNodesManager - assertEq(address(stakingNodesManager.redemptionAssetsVault()), address(0), "redemptionAssetsVault should initially be set to the zero address in StakingNodesManager"); - // Assert that previewRedeem returns a non-zero value - uint256 previewRedeemAmount = yneth.previewRedeem(1 ether); - assertGt(previewRedeemAmount, 0, "previewRedeem should return a non-zero value"); - } - - logStakingNodeBalancesAndShares(preUpgradeState); - - - // ███████╗████████╗ █████╗ ██████╗ ███████╗ ██████╗ - // ██╔════╝╚══██╔══╝██╔══██╗██╔════╝ ██╔════╝ ╚════██╗ - // ███████╗ ██║ ███████║██║ ███╗█████╗ █████╔╝ - // ╚════██║ ██║ ██╔══██║██║ ██║██╔══╝ ██╔═══╝ - // ███████║ ██║ ██║ ██║╚██████╔╝███████╗ ███████╗ - // STAGE 2: NEW CONTRACTS - Deploy and initialize new contracts - - // deploy ynETHRedemptionAssetsVault - { - TransparentUpgradeableProxy _proxy = new TransparentUpgradeableProxy( - address(new ynETHRedemptionAssetsVault()), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - ynETHRedemptionAssetsVaultInstance = ynETHRedemptionAssetsVault(payable(address(_proxy))); - } - - // deploy WithdrawalQueueManager - { - TransparentUpgradeableProxy _proxy = new TransparentUpgradeableProxy( - address(new WithdrawalQueueManager()), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - ynETHWithdrawalQueueManager = WithdrawalQueueManager(address(_proxy)); - } - - { - // Deploy WithdrawalsProcessor - // Deploy the implementation contract - WithdrawalsProcessor withdrawalsProcessorImplementation = new WithdrawalsProcessor(); - - // Prepare the initialization data - bytes memory initData = abi.encodeWithSelector( - WithdrawalsProcessor.initialize.selector, - IStakingNodesManager(address(stakingNodesManager)), - actors.admin.ADMIN, - actors.ops.WITHDRAWAL_MANAGER - ); - - // Deploy the proxy - TransparentUpgradeableProxy withdrawalsProcessorProxy = new TransparentUpgradeableProxy( - address(withdrawalsProcessorImplementation), - actors.admin.PROXY_ADMIN_OWNER, - initData - ); - - withdrawalsProcessor = WithdrawalsProcessor(address(withdrawalsProcessorProxy)); - } - - // initialize ynETHRedemptionAssetsVault - { - ynETHRedemptionAssetsVault.Init memory _init = ynETHRedemptionAssetsVault.Init({ - admin: actors.admin.PROXY_ADMIN_OWNER, - redeemer: address(ynETHWithdrawalQueueManager), - ynETH: IynETH(address(yneth)) - }); - ynETHRedemptionAssetsVaultInstance.initialize(_init); - } - - runUpgradeIntegrityInvariants(preUpgradeState); - - // initialize WithdrawalQueueManager - { - WithdrawalQueueManager.Init memory managerInit = WithdrawalQueueManager.Init({ - name: "ynETH Withdrawal Manager", - symbol: "ynETHWM", - redeemableAsset: IRedeemableAsset(address(yneth)), - redemptionAssetsVault: IRedemptionAssetsVault(address(ynETHRedemptionAssetsVaultInstance)), - admin: actors.admin.PROXY_ADMIN_OWNER, - withdrawalQueueAdmin: actors.ops.WITHDRAWAL_MANAGER, - redemptionAssetWithdrawer: actors.ops.REDEMPTION_ASSET_WITHDRAWER, - requestFinalizer: actors.ops.REQUEST_FINALIZER, - withdrawalFee: 500, // 0.05% - feeReceiver: actors.admin.FEE_RECEIVER - }); - ynETHWithdrawalQueueManager.initialize(managerInit); - } - - runUpgradeIntegrityInvariants(preUpgradeState); - - // End of STAGE 2 - Deploy new contracts - - // --------------------------------------------------------------- - // STAGE 3 - Initialize StakingNodesManager with Init2 and add BURNER_ROLE for WithdrawalQueueManager - // --------------------------------------------------------------- - { - StakingNodesManager.Init2 memory initParams = StakingNodesManager.Init2({ - redemptionAssetsVault: ynETHRedemptionAssetsVaultInstance, - withdrawalManager: address(withdrawalsProcessor), - stakingNodesWithdrawer: address(withdrawalsProcessor) - }); - - vm.prank(actors.admin.ADMIN); - stakingNodesManager.initializeV2(initParams); - } - - runUpgradeIntegrityInvariants(preUpgradeState); - - // grant burner role - { - vm.startPrank(actors.admin.STAKING_ADMIN); - yneth.grantRole(yneth.BURNER_ROLE(), address(ynETHWithdrawalQueueManager)); - vm.stopPrank(); - } - - { - // Roles are granted here just for testing purposes. - // On Mainnet only WithdrawalsProcessor has permission to run this, but the system is designed to run - // them separately as well if needed. - // Grant roles on StakingNodesManager for mainnet only - if (block.chainid == 1) { // Mainnet chain ID - vm.startPrank(actors.admin.ADMIN); - stakingNodesManager.grantRole(stakingNodesManager.WITHDRAWAL_MANAGER_ROLE(), actors.ops.WITHDRAWAL_MANAGER); - stakingNodesManager.grantRole(stakingNodesManager.STAKING_NODES_WITHDRAWER_ROLE(), actors.ops.STAKING_NODES_WITHDRAWER); - vm.stopPrank(); - } - } - - runUpgradeIntegrityInvariants(preUpgradeState); - } - function createValidators(uint256[] memory nodeIds, uint256 count) public returns (uint40[] memory) { uint40[] memory validatorIndices = new uint40[](count * nodeIds.length); uint256 index = 0; @@ -503,39 +303,4 @@ contract Base is Test, Utils { console.log("Node", i, "Shares:", podShares); } } - - function getStakingNodesManagerImplementation(UpgradeState memory preUpgradeState) internal returns (address stakinNodesManagerImplementation) { - if (block.chainid == 1) { // only on MAINNET - - /* - ██████╗ █████╗ ███╗ ██╗ ██████╗ ███████╗██████╗ - ██╔══██╗██╔══██╗████╗ ██║██╔════╝ ██╔════╝██╔══██╗ - ██║ ██║███████║██╔██╗ ██║██║ ███╗█████╗ ██████╔╝ - ██║ ██║██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗ - ██████╔╝██║ ██║██║ ╚████║╚██████╔╝███████╗██║ ██║ - ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ - */ - - // WARNING: This code is for testing purposes only and MUST be removed before deploying to mainnet. - // It uses a placeholder implementation that doesn't reflect the actual mainnet behavior. - // Keeping this in production could lead to severe security vulnerabilities and incorrect contract behavior. - // This logic auto-adjust for unverifiedStakedETH based on the the difference between podOwnerShares and pre-deposit balance. - - // Compute deltas array - uint256[] memory deltas = new uint256[](stakingNodesManager.nodesLength()); - for (uint256 i = 0; i < stakingNodesManager.nodesLength(); i++) { - IStakingNode stakingNode = stakingNodesManager.nodes(i); - uint256 podShares = uint256(IEigenPodManager(chainAddresses.eigenlayer.EIGENPOD_MANAGER_ADDRESS).podOwnerShares(address(stakingNode))); - deltas[i] = preUpgradeState.stakingNodeBalances[i] - podShares; - // Revert if delta is bigger than 32 ether - require(deltas[i] <= 32 ether, "Delta exceeds 32 ether limit"); - } - - // Deploy PlaceholderStakingNodesManager - PlaceholderStakingNodesManager placeholderStakingNodesManager = new PlaceholderStakingNodesManager(deltas); - stakinNodesManagerImplementation = address(placeholderStakingNodesManager); - } else { - stakinNodesManagerImplementation = address(new StakingNodesManager()); - } - } } diff --git a/test/scenarios/ScenarioBaseTest.sol b/test/scenarios/ScenarioBaseTest.sol index 6e718b1da..c50e12cb3 100644 --- a/test/scenarios/ScenarioBaseTest.sol +++ b/test/scenarios/ScenarioBaseTest.sol @@ -28,6 +28,8 @@ import {TestAssetUtils} from "test/utils/TestAssetUtils.sol"; import {ITransparentUpgradeableProxy} from "lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import {ProxyAdmin} from "lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; import {WithdrawalQueueManager} from "src/WithdrawalQueueManager.sol"; +import {WithdrawalsProcessor} from "src/WithdrawalsProcessor.sol"; + import { ynETHRedemptionAssetsVault } from "src/ynETHRedemptionAssetsVault.sol"; import {IRedeemableAsset} from "src/interfaces/IRedeemableAsset.sol"; import {IRedemptionAssetsVault} from "src/interfaces/IRedemptionAssetsVault.sol"; @@ -57,6 +59,7 @@ contract ScenarioBaseTest is Test, Utils { // Withdrawals WithdrawalQueueManager public ynETHWithdrawalQueueManager; ynETHRedemptionAssetsVault public ynETHRedemptionAssetsVaultInstance; + WithdrawalsProcessor public withdrawalsProcessor; // Eigen IEigenPodManager public eigenPodManager; @@ -69,7 +72,6 @@ contract ScenarioBaseTest is Test, Utils { function setUp() public virtual { assignContracts(); - applyNextReleaseUpgrades(); } function assignContracts() internal { uint256 chainId = block.chainid; @@ -98,76 +100,8 @@ contract ScenarioBaseTest is Test, Utils { rewardsDistributor = RewardsDistributor(payable(chainAddresses.yn.REWARDS_DISTRIBUTOR_ADDRESS)); executionLayerReceiver = RewardsReceiver(payable(chainAddresses.yn.EXECUTION_LAYER_RECEIVER_ADDRESS)); consensusLayerReceiver = RewardsReceiver(payable(chainAddresses.yn.CONSENSUS_LAYER_RECEIVER_ADDRESS)); - } - - function applyNextReleaseUpgrades() internal { - - vm.prank(actors.admin.UNPAUSE_ADMIN); - yneth.unpauseTransfers(); - - address newStakingNodesManagerImpl = address(new StakingNodesManager()); - - vm.prank(actors.wallets.YNSecurityCouncil); - ProxyAdmin(getTransparentUpgradeableProxyAdminAddress(address(stakingNodesManager))).upgradeAndCall(ITransparentUpgradeableProxy(address(stakingNodesManager)), newStakingNodesManagerImpl, ""); - - address newynETHImpl = address(new ynETH()); - vm.prank(actors.wallets.YNSecurityCouncil); - ProxyAdmin(getTransparentUpgradeableProxyAdminAddress(address(yneth))).upgradeAndCall(ITransparentUpgradeableProxy(address(yneth)), newynETHImpl, ""); - - ynETHRedemptionAssetsVault ynethRedemptionAssetsVaultImplementation = new ynETHRedemptionAssetsVault(); - TransparentUpgradeableProxy ynethRedemptionAssetsVaultProxy = new TransparentUpgradeableProxy( - address(ynethRedemptionAssetsVaultImplementation), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - ynETHRedemptionAssetsVaultInstance = ynETHRedemptionAssetsVault(payable(address(ynethRedemptionAssetsVaultProxy))); - - TransparentUpgradeableProxy proxy = new TransparentUpgradeableProxy( - address(new WithdrawalQueueManager()), - actors.admin.PROXY_ADMIN_OWNER, - "" - ); - ynETHWithdrawalQueueManager = WithdrawalQueueManager(address(proxy)); - - ynETHRedemptionAssetsVault.Init memory vaultInit = ynETHRedemptionAssetsVault.Init({ - admin: actors.admin.PROXY_ADMIN_OWNER, - redeemer: address(ynETHWithdrawalQueueManager), - ynETH: IynETH(address(yneth)) - }); - ynETHRedemptionAssetsVaultInstance.initialize(vaultInit); - - WithdrawalQueueManager.Init memory managerInit = WithdrawalQueueManager.Init({ - name: "ynETH Withdrawal Manager", - symbol: "ynETHWM", - redeemableAsset: IRedeemableAsset(address(yneth)), - redemptionAssetsVault: IRedemptionAssetsVault(address(ynETHRedemptionAssetsVaultInstance)), - admin: actors.admin.PROXY_ADMIN_OWNER, - withdrawalQueueAdmin: actors.ops.WITHDRAWAL_MANAGER, - redemptionAssetWithdrawer: actors.ops.REDEMPTION_ASSET_WITHDRAWER, - requestFinalizer: actors.ops.REQUEST_FINALIZER, - withdrawalFee: 500, // 0.05% - feeReceiver: actors.admin.FEE_RECEIVER - }); - ynETHWithdrawalQueueManager.initialize(managerInit); - - StakingNodesManager.Init2 memory initParams = StakingNodesManager.Init2({ - redemptionAssetsVault: ynETHRedemptionAssetsVaultInstance, - withdrawalManager: actors.ops.WITHDRAWAL_MANAGER, - stakingNodesWithdrawer: actors.ops.STAKING_NODES_WITHDRAWER - }); - - vm.prank(actors.admin.ADMIN); - stakingNodesManager.initializeV2(initParams); - assert(stakingNodesManager.hasRole(stakingNodesManager.WITHDRAWAL_MANAGER_ROLE(), actors.ops.WITHDRAWAL_MANAGER)); - console.log("WITHDRAWAL_MANAGER address:", actors.ops.WITHDRAWAL_MANAGER); - - stakingNodeImplementation = new StakingNode(); - - vm.prank(actors.admin.STAKING_ADMIN); - stakingNodesManager.upgradeStakingNodeImplementation(address(stakingNodeImplementation)); - - bytes32 burnerRole = yneth.BURNER_ROLE(); - vm.prank(actors.admin.ADMIN); - yneth.grantRole(burnerRole, address(ynETHWithdrawalQueueManager)); + ynETHWithdrawalQueueManager = WithdrawalQueueManager(payable(chainAddresses.yn.WITHDRAWAL_QUEUE_MANAGER_ADDRESS)); + ynETHRedemptionAssetsVaultInstance = ynETHRedemptionAssetsVault(payable(chainAddresses.yn.YNETH_REDEMPTION_ASSETS_VAULT_ADDRESS)); + withdrawalsProcessor = WithdrawalsProcessor(payable(chainAddresses.yn.WITHDRAWALS_PROCESSOR_ADDRESS)); } } \ No newline at end of file diff --git a/test/scenarios/fork/ProtocolUpgrade-Scenario.spec.sol b/test/scenarios/fork/ProtocolUpgrade-Scenario.spec.sol index df2151fb7..6fcf46a21 100644 --- a/test/scenarios/fork/ProtocolUpgrade-Scenario.spec.sol +++ b/test/scenarios/fork/ProtocolUpgrade-Scenario.spec.sol @@ -19,6 +19,10 @@ import {UpgradeableBeacon} from "lib/openzeppelin-contracts/contracts/proxy/beac import {TestStakingNodesManagerV2} from "test/mocks/TestStakingNodesManagerV2.sol"; import {TestStakingNodeV2} from "test/mocks/TestStakingNodeV2.sol"; +import {WithdrawalQueueManager} from "src/WithdrawalQueueManager.sol"; +import {WithdrawalsProcessor} from "src/WithdrawalsProcessor.sol"; +import {ynETHRedemptionAssetsVault} from "src/ynETHRedemptionAssetsVault.sol"; + contract ProtocolUpgradeScenario is ScenarioBaseTest { address YNSecurityCouncil; @@ -103,6 +107,51 @@ contract ProtocolUpgradeScenario is ScenarioBaseTest { runSystemStateInvariants(previousTotalDeposited, previousTotalAssets, previousTotalSupply); } + function test_Upgrade_WithdrawalQueueManager_Scenario() public { + address previousWithdrawalQueueManagerImpl = getTransparentUpgradeableProxyImplementationAddress(address(ynETHWithdrawalQueueManager)); + address newWithdrawalQueueManagerImpl = address(new WithdrawalQueueManager()); + + uint256 previousTotalDeposited = yneth.totalDepositedInPool(); + uint256 previousTotalAssets = yneth.totalAssets(); + uint256 previousTotalSupply = IERC20(address(yneth)).totalSupply(); + + vm.prank(YNSecurityCouncil); + ProxyAdmin(getTransparentUpgradeableProxyAdminAddress(address(ynETHWithdrawalQueueManager))).upgradeAndCall(ITransparentUpgradeableProxy(address(ynETHWithdrawalQueueManager)), newWithdrawalQueueManagerImpl, ""); + + runUpgradeInvariants(address(ynETHWithdrawalQueueManager), previousWithdrawalQueueManagerImpl, newWithdrawalQueueManagerImpl); + runSystemStateInvariants(previousTotalDeposited, previousTotalAssets, previousTotalSupply); + } + + function test_Upgrade_WithdrawalsProcessor_Scenario() public { + address previousWithdrawalsProcessorImpl = getTransparentUpgradeableProxyImplementationAddress(address(withdrawalsProcessor)); + address newWithdrawalsProcessorImpl = address(new WithdrawalsProcessor()); + + uint256 previousTotalDeposited = yneth.totalDepositedInPool(); + uint256 previousTotalAssets = yneth.totalAssets(); + uint256 previousTotalSupply = IERC20(address(yneth)).totalSupply(); + + vm.prank(YNSecurityCouncil); + ProxyAdmin(getTransparentUpgradeableProxyAdminAddress(address(withdrawalsProcessor))).upgradeAndCall(ITransparentUpgradeableProxy(address(withdrawalsProcessor)), newWithdrawalsProcessorImpl, ""); + + runUpgradeInvariants(address(withdrawalsProcessor), previousWithdrawalsProcessorImpl, newWithdrawalsProcessorImpl); + runSystemStateInvariants(previousTotalDeposited, previousTotalAssets, previousTotalSupply); + } + + function test_Upgrade_YnETHRedemptionAssetsVault_Scenario() public { + address previousYnETHRedemptionAssetsVaultImpl = getTransparentUpgradeableProxyImplementationAddress(address(ynETHRedemptionAssetsVaultInstance)); + address newYnETHRedemptionAssetsVaultImpl = address(new ynETHRedemptionAssetsVault()); + + uint256 previousTotalDeposited = yneth.totalDepositedInPool(); + uint256 previousTotalAssets = yneth.totalAssets(); + uint256 previousTotalSupply = IERC20(address(yneth)).totalSupply(); + + vm.prank(YNSecurityCouncil); + ProxyAdmin(getTransparentUpgradeableProxyAdminAddress(address(ynETHRedemptionAssetsVaultInstance))).upgradeAndCall(ITransparentUpgradeableProxy(address(ynETHRedemptionAssetsVaultInstance)), newYnETHRedemptionAssetsVaultImpl, ""); + + runUpgradeInvariants(address(ynETHRedemptionAssetsVaultInstance), previousYnETHRedemptionAssetsVaultImpl, newYnETHRedemptionAssetsVaultImpl); + runSystemStateInvariants(previousTotalDeposited, previousTotalAssets, previousTotalSupply); + } + function test_Upgrade_StakingNodeImplementation_Scenario() public { // Collect all existing eigenPod addresses before the upgrade IStakingNode[] memory stakingNodes = stakingNodesManager.getAllNodes();