From 8af43eb1c454f66132727e51b1933174e4a197ef Mon Sep 17 00:00:00 2001 From: wildmolasses Date: Sat, 20 Jul 2024 11:32:16 -0400 Subject: [PATCH] deploy --- broadcast/Deploy.s.sol/1/run-1721063504.json | 108 +++++++++++++++++++ lib/forge-std | 2 +- script/DeployInput.sol | 6 -- script/Propose.s.sol | 2 +- test/Constants.sol | 9 +- test/RadworksGovernor.t.sol | 38 +++---- test/helpers/ProposalTest.sol | 25 ++--- test/helpers/RadworksGovernorTest.sol | 2 +- 8 files changed, 142 insertions(+), 50 deletions(-) create mode 100644 broadcast/Deploy.s.sol/1/run-1721063504.json diff --git a/broadcast/Deploy.s.sol/1/run-1721063504.json b/broadcast/Deploy.s.sol/1/run-1721063504.json new file mode 100644 index 0000000..1461e86 --- /dev/null +++ b/broadcast/Deploy.s.sol/1/run-1721063504.json @@ -0,0 +1,108 @@ +{ + "transactions": [ + { + "hash": "0x54621849b4885270b98f8796e3f075f295f3ece3d7ba49f4a73687b91aea609e", + "transactionType": "CREATE", + "contractName": "RadworksGovernor", + "contractAddress": "0xd64d01d04498bfc60f04178e0b62a757c5048212", + "function": null, + "arguments": [ + "7200", + "17280", + "1000000000000000000000000" + ], + "transaction": { + "from": "0xbb6cc52d615af1d3c89ba339af35fd9f252ed763", + "gas": "0x5ae377", + "value": "0x0", + "input": "0x61018060405234801562000011575f80fd5b5060405162005622380380620056228339810160408190526200003491620003d7565b828282738da8f82d2bbdd896822de723f55d6edf416130ba7331c8eacbffdd875c74b94b077895bd78cf1e64a36040518060400160405280601781526020017f526164776f726b7320476f7665726e6f7220427261766f00000000000000000081525080620000a8620001b160201b60201c565b620000b4825f620001cc565b61012052620000c5816001620001cc565b61014052815160208084019190912060e052815190820120610100524660a0526200015260e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526002620001698282620004a3565b50506001600160a01b031661016052620001838162000204565b506200018f836200026d565b6200019a82620002ae565b620001a58162000354565b505050505050620005dc565b6040805180820190915260018152603160f81b602082015290565b5f602083511015620001eb57620001e38362000395565b9050620001fe565b81620001f88482620004a3565b5060ff90505b92915050565b600654604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b60085460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600855565b5f8111620003135760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60095460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600955565b600a5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600a55565b5f80829050601f81511115620003c2578260405163305a27a960e01b81526004016200030a91906200056b565b8051620003cf82620005b8565b179392505050565b5f805f60608486031215620003ea575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200042c57607f821691505b6020821081036200044b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200049e575f81815260208120601f850160051c81016020861015620004795750805b601f850160051c820191505b818110156200049a5782815560010162000485565b5050505b505050565b81516001600160401b03811115620004bf57620004bf62000403565b620004d781620004d0845462000417565b8462000451565b602080601f8311600181146200050d575f8415620004f55750858301515b5f19600386901b1c1916600185901b1785556200049a565b5f85815260208120601f198616915b828110156200053d578886015182559484019460019091019084016200051c565b50858210156200055b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020808352835180828501525f5b8181101562000598578581018301518582016040015282016200057a565b505f604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200044b575f1960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051614fd56200064d5f395f8181610a470152818161136801528181611c870152612ce201525f611c1901525f611bef01525f6133de01525f6133b601525f61331101525f61333b01525f6133650152614fd55ff3fe6080604052600436106102c4575f3560e01c80637d5e81e211610170578063c28bc2fa116100d1578063ea0217cf11610087578063f23a6e6111610062578063f23a6e61146109c8578063f8ce560a14610a0c578063fc0c546a14610a36575f80fd5b8063ea0217cf1461096b578063eb9019d41461098a578063ece40cc1146109a9575f80fd5b8063d33219b4116100b7578063d33219b4146108c9578063dd4e2ba5146108f3578063deaaa7cc14610938575f80fd5b8063c28bc2fa14610897578063c59057e4146108aa575f80fd5b8063ab58fb8e11610126578063b9a619611161010c578063b9a6196114610807578063bc197c811461081b578063c01f9e371461085f575f80fd5b8063ab58fb8e146107be578063b58131b0146107f3575f80fd5b806391ddadf41161015657806391ddadf4146107555780639a802a6d14610780578063a890c9101461079f575f80fd5b80637d5e81e21461070f57806384b0196e1461072e575f80fd5b80633932abb1116102255780634bf5d7e9116101db5780635f398a14116101b65780635f398a14146106b257806370b0f660146106d15780637b3c71d3146106f0575f80fd5b80634bf5d7e91461063a57806354fd4d501461064e5780635678138814610693575f80fd5b80633e4f49e61161020b5780633e4f49e61461059f57806343859632146105cb578063452115d61461061b575f80fd5b80633932abb11461056c5780633bccf4fd14610580575f80fd5b8063150b7a021161027a5780632656227d116102605780632656227d146104f15780632d63f693146105045780632fe3e26114610539575f80fd5b8063150b7a021461045e578063160cbed7146104d2575f80fd5b806303420181116102aa57806303420181146103ac57806306fdde03146103cb578063143489d0146103ec575f80fd5b806301ffc9a71461035a57806302a251a31461038e575f80fd5b3661035657306102d2610a69565b73ffffffffffffffffffffffffffffffffffffffff1614610354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b5f80fd5b348015610365575f80fd5b50610379610374366004614054565b610a8e565b60405190151581526020015b60405180910390f35b348015610399575f80fd5b506009545b604051908152602001610385565b3480156103b7575f80fd5b5061039e6103c6366004614202565b610a9e565b3480156103d6575f80fd5b506103df610abc565b604051610385919061430d565b3480156103f7575f80fd5b5061043961040636600461431f565b5f9081526003602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610385565b348015610469575f80fd5b506104a1610478366004614357565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610385565b3480156104dd575f80fd5b5061039e6104ec366004614522565b610b4c565b61039e6104ff366004614522565b610fce565b34801561050f575f80fd5b5061039e61051e36600461431f565b5f9081526003602052604090205467ffffffffffffffff1690565b348015610544575f80fd5b5061039e7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b348015610577575f80fd5b5060085461039e565b34801561058b575f80fd5b5061039e61059a3660046145ac565b61114b565b3480156105aa575f80fd5b506105be6105b936600461431f565b6111de565b6040516103859190614623565b3480156105d6575f80fd5b506103796105e5366004614662565b5f918252600c6020908152604080842073ffffffffffffffffffffffffffffffffffffffff939093168452919052902054151590565b348015610626575f80fd5b5061039e610635366004614522565b6111e8565b348015610645575f80fd5b506103df611364565b348015610659575f80fd5b5060408051808201909152600181527f310000000000000000000000000000000000000000000000000000000000000060208201526103df565b34801561069e575f80fd5b5061039e6106ad366004614690565b61144f565b3480156106bd575f80fd5b5061039e6106cc3660046146ba565b611476565b3480156106dc575f80fd5b506103546106eb36600461431f565b6114be565b3480156106fb575f80fd5b5061039e61070a366004614738565b6115b8565b34801561071a575f80fd5b5061039e61072936600461478e565b6115fe565b348015610739575f80fd5b50610742611be2565b6040516103859796959493929190614874565b348015610760575f80fd5b50610769611c84565b60405165ffffffffffff9091168152602001610385565b34801561078b575f80fd5b5061039e61079a3660046148fc565b611d37565b3480156107aa575f80fd5b506103546107b9366004614951565b611d4d565b3480156107c9575f80fd5b5061039e6107d836600461431f565b5f9081526007602052604090205467ffffffffffffffff1690565b3480156107fe575f80fd5b5061039e611e44565b348015610812575f80fd5b50610354611e4e565b348015610826575f80fd5b506104a161083536600461496c565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561086a575f80fd5b5061039e61087936600461431f565b5f9081526003602052604090206001015467ffffffffffffffff1690565b6103546108a53660046149f9565b611ecc565b3480156108b5575f80fd5b5061039e6108c4366004614522565b612054565b3480156108d4575f80fd5b5060065473ffffffffffffffffffffffffffffffffffffffff16610439565b3480156108fe575f80fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f00000000000060208201526103df565b348015610943575f80fd5b5061039e7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610976575f80fd5b5061035461098536600461431f565b6120ab565b348015610995575f80fd5b5061039e6109a4366004614a39565b6121a2565b3480156109b4575f80fd5b506103546109c336600461431f565b6121c1565b3480156109d3575f80fd5b506104a16109e2366004614a63565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b348015610a17575f80fd5b5061039e610a2636600461431f565b506a034f086f3b33b68400000090565b348015610a41575f80fd5b506104397f000000000000000000000000000000000000000000000000000000000000000081565b5f610a8960065473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b5f610a98826122b8565b92915050565b5f610aaf898989898989898961230d565b9998505050505050505050565b606060028054610acb90614ac7565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790614ac7565b8015610b425780601f10610b1957610100808354040283529160200191610b42565b820191905f5260205f20905b815481529060010190602001808311610b2557829003601f168201915b5050505050905090565b5f80610b5a86868686612054565b90506004610b67826111de565b6007811115610b7857610b786145f6565b14610c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f742073756363657373667560448201527f6c00000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b600654604080517f6a42b8f800000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff1691636a42b8f89160048083019260209291908290030181865afa158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190614b18565b610ca09042614b5c565b9050610cab816123e0565b5f83815260076020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff93909316929092179091555b8751811015610f8957600654885173ffffffffffffffffffffffffffffffffffffffff9091169063f2b06537908a9084908110610d3057610d30614b6f565b6020026020010151898481518110610d4a57610d4a614b6f565b6020026020010151898581518110610d6457610d64614b6f565b602002602001015186604051602001610d809493929190614b9c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610db491815260200190565b602060405180830381865afa158015610dcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df39190614bee565b15610ea6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f476f7665726e6f7254696d656c6f636b436f6d706f756e643a206964656e746960448201527f63616c2070726f706f73616c20616374696f6e20616c7265616479207175657560648201527f6564000000000000000000000000000000000000000000000000000000000000608482015260a40161034b565b600654885173ffffffffffffffffffffffffffffffffffffffff90911690633a66f901908a9084908110610edc57610edc614b6f565b6020026020010151898481518110610ef657610ef6614b6f565b6020026020010151898581518110610f1057610f10614b6f565b6020026020010151866040518563ffffffff1660e01b8152600401610f389493929190614b9c565b6020604051808303815f875af1158015610f54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f789190614b18565b50610f8281614c0d565b9050610cf1565b5060408051838152602081018390527f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289291015b60405180910390a15095945050505050565b5f80610fdc86868686612054565b90505f610fe8826111de565b90506004816007811115610ffe57610ffe6145f6565b148061101b57506005816007811115611019576110196145f6565b145b6110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f742073756363657373667560448201527f6c00000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b5f828152600360205260409081902060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906111129084815260200190565b60405180910390a1611127828888888861247d565b6111348288888888612545565b6111418288888888612552565b5095945050505050565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201525f9081906111b7906111af906080015b604051602081830303815290604052805190602001206125a4565b8686866125eb565b90506111d387828860405180602001604052805f815250612607565b979650505050505050565b5f610a9882612631565b5f806111f686868686612054565b90505f611202826111de565b6007811115611213576112136145f6565b1461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f476f7665726e6f723a20746f6f206c61746520746f2063616e63656c00000000604482015260640161034b565b5f8181526003602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f476f7665726e6f723a206f6e6c792070726f706f7365722063616e2063616e6360448201527f656c000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b61135a86868686612736565b9695505050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bf5d7e96040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561140e57506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261140b9190810190614c72565b60015b61144a575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b5f8033905061146e84828560405180602001604052805f815250612607565b949350505050565b5f803390506111d387828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a9250612743915050565b6114c6610a69565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604482015260640161034b565b30611563610a69565b73ffffffffffffffffffffffffffffffffffffffff16146115ac575f803660405161158f929190614cb7565b604051809103902090505b806115a560046128e4565b0361159a57505b6115b58161299f565b50565b5f8033905061135a86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061260792505050565b5f3361160a81846129e0565b611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f476f7665726e6f723a2070726f706f7365722072657374726963746564000000604482015260640161034b565b5f611679611c84565b65ffffffffffff16905061168b611e44565b61169a836109a4600185614cc6565b1015611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f77207060448201527f726f706f73616c207468726573686f6c64000000000000000000000000000000606482015260840161034b565b5f61173c8888888880519060200120612054565b905086518851146117cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677460448201527f6800000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b8551885114611860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677460448201527f6800000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b5f8851116118ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c0000000000000000604482015260640161034b565b5f8181526003602052604090205467ffffffffffffffff161561196f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c726561647920657869737460448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b5f61197960085490565b6119839084614b5c565b90505f61198f60095490565b6119999083614b5c565b90506040518060e001604052806119af846123e0565b67ffffffffffffffff16815273ffffffffffffffffffffffffffffffffffffffff871660208201525f60408201526060016119e9836123e0565b67ffffffffffffffff90811682525f60208084018290526040808501839052606094850183905288835260038252918290208551815492870151878501519186167fffffffff00000000000000000000000000000000000000000000000000000000909416939093176801000000000000000073ffffffffffffffffffffffffffffffffffffffff9094168402177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000060e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c0909401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009094169215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115611b7f57611b7f6140e8565b604051908082528060200260200182016040528015611bb257816020015b6060815260200190600190039081611b9d5790505b508d88888f604051611bcc99989796959493929190614d70565b60405180910390a1509098975050505050505050565b5f60608082808083611c147f000000000000000000000000000000000000000000000000000000000000000083612b54565b611c3f7f00000000000000000000000000000000000000000000000000000000000000006001612b54565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611d2a575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d2791810190614e71565b60015b61144a57610a8943612bfd565b5f611d43848484612c94565b90505b9392505050565b611d55610a69565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611de9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604482015260640161034b565b30611df2610a69565b73ffffffffffffffffffffffffffffffffffffffff1614611e3b575f8036604051611e1e929190614cb7565b604051809103902090505b80611e3460046128e4565b03611e2957505b6115b581612d63565b5f610a89600a5490565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e18b6816040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611eb4575f80fd5b505af1158015611ec6573d5f803e3d5ffd5b50505050565b611ed4610a69565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604482015260640161034b565b30611f71610a69565b73ffffffffffffffffffffffffffffffffffffffff1614611fba575f8036604051611f9d929190614cb7565b604051809103902090505b80611fb360046128e4565b03611fa857505b5f808573ffffffffffffffffffffffffffffffffffffffff16858585604051611fe4929190614cb7565b5f6040518083038185875af1925050503d805f811461201e576040519150601f19603f3d011682016040523d82523d5f602084013e612023565b606091505b509150915061204b8282604051806060016040528060288152602001614f7860289139612dfe565b50505050505050565b5f8484848460405160200161206c9493929190614e96565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012095945050505050565b6120b3610a69565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604482015260640161034b565b30612150610a69565b73ffffffffffffffffffffffffffffffffffffffff1614612199575f803660405161217c929190614cb7565b604051809103902090505b8061219260046128e4565b0361218757505b6115b581612e17565b5f611d4683836121bc60408051602081019091525f815290565b612c94565b6121c9610a69565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461225d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604482015260640161034b565b30612266610a69565b73ffffffffffffffffffffffffffffffffffffffff16146122af575f8036604051612292929190614cb7565b604051809103902090505b806122a860046128e4565b0361229d57505b6115b581612ee7565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6e665ced000000000000000000000000000000000000000000000000000000001480610a985750610a9882612f28565b5f8061238d6111af7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051612348929190614cb7565b60405180910390208b80519060200120604051602001611194959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b90506123d28a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d9250612743915050565b9a9950505050505050505050565b5f67ffffffffffffffff821115612479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f3420626974730000000000000000000000000000000000000000000000000000606482015260840161034b565b5090565b30612486610a69565b73ffffffffffffffffffffffffffffffffffffffff161461253e575f5b845181101561253c573073ffffffffffffffffffffffffffffffffffffffff168582815181106124d5576124d5614b6f565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361252c5761252c83828151811061250d5761250d614b6f565b60200260200101518051906020012060046130d190919063ffffffff16565b61253581614c0d565b90506124a3565b505b5050505050565b61253e8585858585613122565b3061255b610a69565b73ffffffffffffffffffffffffffffffffffffffff161461253e57600454600f81810b700100000000000000000000000000000000909204900b131561253e575f60045561253e565b5f610a986125b06132f8565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6125fa8787878761342e565b9150915061114181613516565b5f6126288585858561262360408051602081019091525f815290565b612743565b95945050505050565b5f8061263c836136c8565b90506004816007811115612652576126526145f6565b1461265d5792915050565b5f8381526007602052604081205467ffffffffffffffff1690819003612684575092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c1a287e26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127129190614b18565b61271c9082614b5c565b421061272c575060069392505050565b5060059392505050565b5f6126288585858561383e565b5f858152600360205260408120600161275b886111de565b600781111561276c5761276c6145f6565b146127f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201527f6976650000000000000000000000000000000000000000000000000000000000606482015260840161034b565b80545f9061281390889067ffffffffffffffff1686612c94565b90506128228888888488613986565b83515f03612883578673ffffffffffffffffffffffffffffffffffffffff167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516128769493929190614ee0565b60405180910390a26111d3565b8673ffffffffffffffffffffffffffffffffffffffff167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516128d1959493929190614f07565b60405180910390a2979650505050505050565b5f61290b8254600f81810b700100000000000000000000000000000000909204900b131590565b15612942576040517f3db2a12a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583547fffffffffffffffffffffffffffffffff000000000000000000000000000000001692016fffffffffffffffffffffffffffffffff169190911790915590565b60085460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600855565b80515f9060348110156129f7576001915050610a98565b8281017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec01517fffffffffffffffffffffffff000000000000000000000000000000000000000081167f2370726f706f7365723d3078000000000000000000000000000000000000000014612a7157600192505050610a98565b5f80612a7e602885614cc6565b90505b83811015612b19575f80612acc888481518110612aa057612aa0614b6f565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016613bc3565b9150915081612ae45760019650505050505050610a98565b8060ff1660048573ffffffffffffffffffffffffffffffffffffffff16901b179350505080612b1290614c0d565b9050612a81565b508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614935050505092915050565b606060ff8314612b6e57612b6783613cad565b9050610a98565b818054612b7a90614ac7565b80601f0160208091040260200160405190810160405280929190818152602001828054612ba690614ac7565b8015612bf15780601f10612bc857610100808354040283529160200191612bf1565b820191905f5260205f20905b815481529060010190602001808311612bd457829003601f168201915b50505050509050610a98565b5f65ffffffffffff821115612479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201527f3820626974730000000000000000000000000000000000000000000000000000606482015260840161034b565b6040517f782d6fe100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490525f917f00000000000000000000000000000000000000000000000000000000000000009091169063782d6fe190604401602060405180830381865afa158015612d29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d4d9190614f4c565b6bffffffffffffffffffffffff16949350505050565b6006546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60608315612e0d575081611d46565b611d468383613cea565b5f8111612ea6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f642060448201527f746f6f206c6f7700000000000000000000000000000000000000000000000000606482015260840161034b565b60095460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600955565b600a5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600a55565b5f7f51159c06000000000000000000000000000000000000000000000000000000007fc6fba1f8000000000000000000000000000000000000000000000000000000007fbf26d897000000000000000000000000000000000000000000000000000000007f79dd796f000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000861682148061300157507fffffffff00000000000000000000000000000000000000000000000000000000868116908216145b8061303057507fffffffff00000000000000000000000000000000000000000000000000000000868116908516145b8061307c57507fffffffff0000000000000000000000000000000000000000000000000000000086167f4e2312e000000000000000000000000000000000000000000000000000000000145b8061135a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008716149695505050505050565b815470010000000000000000000000000000000090819004600f0b5f818152600180860160205260409091209390935583546fffffffffffffffffffffffffffffffff908116939091011602179055565b5f8581526007602052604090205467ffffffffffffffff16806131c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f476f7665726e6f7254696d656c6f636b436f6d706f756e643a2070726f706f7360448201527f616c206e6f742079657420717565756564000000000000000000000000000000606482015260840161034b565b6006546131ea9073ffffffffffffffffffffffffffffffffffffffff1634613d2e565b5f5b855181101561204b57600654865173ffffffffffffffffffffffffffffffffffffffff90911690630825f38f9088908490811061322b5761322b614b6f565b602002602001015187848151811061324557613245614b6f565b602002602001015187858151811061325f5761325f614b6f565b6020026020010151866040518563ffffffff1660e01b81526004016132879493929190614b9c565b5f604051808303815f875af11580156132a2573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526132e79190810190614c72565b506132f181614c0d565b90506131ec565b5f3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561335d57507f000000000000000000000000000000000000000000000000000000000000000046145b1561338757507f000000000000000000000000000000000000000000000000000000000000000090565b610a89604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561346357505f9050600361350d565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156134b4573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116613507575f6001925092505061350d565b91505f90505b94509492505050565b5f816004811115613529576135296145f6565b036135315750565b6001816004811115613545576135456145f6565b036135ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161034b565b60028160048111156135c0576135c06145f6565b03613627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161034b565b600381600481111561363b5761363b6145f6565b036115b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161034b565b5f818152600360205260408120600281015460ff16156136eb5750600792915050565b6002810154610100900460ff16156137065750600292915050565b5f8381526003602052604081205467ffffffffffffffff1690819003613788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c206964000000604482015260640161034b565b5f613791611c84565b65ffffffffffff1690508082106137ac57505f949350505050565b5f8581526003602052604090206001015467ffffffffffffffff168181106137da5750600195945050505050565b6137e386613e89565b801561382157505f868152600b6020908152604091829020825160608101845281548082526001830154938201849052600290920154930192909252115b156138325750600495945050505050565b50600395945050505050565b5f8061384c86868686613ed4565b5f8181526007602052604090205490915067ffffffffffffffff168015611141575f82815260076020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555b875181101561397a57600654885173ffffffffffffffffffffffffffffffffffffffff9091169063591fcdfe908a90849081106138e0576138e0614b6f565b60200260200101518984815181106138fa576138fa614b6f565b602002602001015189858151811061391457613914614b6f565b6020026020010151866040518563ffffffff1660e01b815260040161393c9493929190614b9c565b5f604051808303815f87803b158015613953575f80fd5b505af1158015613965573d5f803e3d5ffd5b505050508061397390614c0d565b90506138a1565b50509050949350505050565b5f858152600c6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845290915290205415613a20575f858152600c6020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452909152908190205490517f48b3a8f7000000000000000000000000000000000000000000000000000000008152600481019190915260240161034b565b5f858152600c6020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452909152902082905560ff8316613a81575f858152600b602052604081208054849290613a76908490614b5c565b9091555061253e9050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff841601613acb575f858152600b602052604081206001018054849290613a76908490614b5c565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff841601613b15575f858152600b602052604081206002018054849290613a76908490614b5c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f526164776f726b7320476f7665726e6f723a20696e76616c696420737570706f60448201527f72742076616c75652c206d75737420626520696e636c7564656420696e20566f60648201527f74655479706520656e756d000000000000000000000000000000000000000000608482015260a40161034b565b5f8060f883901c602f81118015613bdd5750603a8160ff16105b15613c10576001947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd09091019350915050565b8060ff166040108015613c26575060478160ff16105b15613c59576001947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc99091019350915050565b8060ff166060108015613c6f575060678160ff16105b15613ca2576001947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa99091019350915050565b505f93849350915050565b60605f613cb983614014565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b815115613cfa5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034b919061430d565b80471015613d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161034b565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114613dee576040519150601f19603f3d011682016040523d82523d5f602084013e613df3565b606091505b5050905080613e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161034b565b505050565b5f818152600b6020526040812060028101546001820154613eaa9190614b5c565b5f84815260036020526040902054613ecb9067ffffffffffffffff16610a26565b11159392505050565b5f80613ee286868686612054565b90505f613eee826111de565b90506002816007811115613f0457613f046145f6565b14158015613f2457506006816007811115613f2157613f216145f6565b14155b8015613f4257506007816007811115613f3f57613f3f6145f6565b14155b613fa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f7420616374697665000000604482015260640161034b565b5f828152600360205260409081902060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610fbc9084815260200190565b5f60ff8216601f811115610a98576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215614064575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611d46575f80fd5b803560ff8116811461144a575f80fd5b5f8083601f8401126140b3575f80fd5b50813567ffffffffffffffff8111156140ca575f80fd5b6020830191508360208285010111156140e1575f80fd5b9250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561415c5761415c6140e8565b604052919050565b5f67ffffffffffffffff82111561417d5761417d6140e8565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f6141bb6141b684614164565b614115565b90508281528383830111156141ce575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126141f3575f80fd5b611d46838335602085016141a9565b5f805f805f805f8060e0898b031215614219575f80fd5b8835975061422960208a01614093565b9650604089013567ffffffffffffffff80821115614245575f80fd5b6142518c838d016140a3565b909850965060608b0135915080821115614269575f80fd5b506142768b828c016141e4565b94505061428560808a01614093565b925060a0890135915060c089013590509295985092959890939650565b5f5b838110156142bc5781810151838201526020016142a4565b50505f910152565b5f81518084526142db8160208601602086016142a2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611d4660208301846142c4565b5f6020828403121561432f575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146115b5575f80fd5b5f805f806080858703121561436a575f80fd5b843561437581614336565b9350602085013561438581614336565b925060408501359150606085013567ffffffffffffffff8111156143a7575f80fd5b6143b3878288016141e4565b91505092959194509250565b5f67ffffffffffffffff8211156143d8576143d86140e8565b5060051b60200190565b5f82601f8301126143f1575f80fd5b813560206144016141b6836143bf565b82815260059290921b8401810191818101908684111561441f575f80fd5b8286015b8481101561444357803561443681614336565b8352918301918301614423565b509695505050505050565b5f82601f83011261445d575f80fd5b8135602061446d6141b6836143bf565b82815260059290921b8401810191818101908684111561448b575f80fd5b8286015b84811015614443578035835291830191830161448f565b5f82601f8301126144b5575f80fd5b813560206144c56141b6836143bf565b82815260059290921b840181019181810190868411156144e3575f80fd5b8286015b8481101561444357803567ffffffffffffffff811115614506575f8081fd5b6145148986838b01016141e4565b8452509183019183016144e7565b5f805f8060808587031215614535575f80fd5b843567ffffffffffffffff8082111561454c575f80fd5b614558888389016143e2565b9550602087013591508082111561456d575f80fd5b6145798883890161444e565b9450604087013591508082111561458e575f80fd5b5061459b878288016144a6565b949793965093946060013593505050565b5f805f805f60a086880312156145c0575f80fd5b853594506145d060208701614093565b93506145de60408701614093565b94979396509394606081013594506080013592915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602081016008831061465c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91905290565b5f8060408385031215614673575f80fd5b82359150602083013561468581614336565b809150509250929050565b5f80604083850312156146a1575f80fd5b823591506146b160208401614093565b90509250929050565b5f805f805f608086880312156146ce575f80fd5b853594506146de60208701614093565b9350604086013567ffffffffffffffff808211156146fa575f80fd5b61470689838a016140a3565b9095509350606088013591508082111561471e575f80fd5b5061472b888289016141e4565b9150509295509295909350565b5f805f806060858703121561474b575f80fd5b8435935061475b60208601614093565b9250604085013567ffffffffffffffff811115614776575f80fd5b614782878288016140a3565b95989497509550505050565b5f805f80608085870312156147a1575f80fd5b843567ffffffffffffffff808211156147b8575f80fd5b6147c4888389016143e2565b955060208701359150808211156147d9575f80fd5b6147e58883890161444e565b945060408701359150808211156147fa575f80fd5b614806888389016144a6565b9350606087013591508082111561481b575f80fd5b508501601f8101871361482c575f80fd5b6143b3878235602084016141a9565b5f8151808452602080850194508084015f5b838110156148695781518752958201959082019060010161484d565b509495945050505050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f6148ae60e08301896142c4565b82810360408401526148c081896142c4565b905086606084015273ffffffffffffffffffffffffffffffffffffffff861660808401528460a084015282810360c08401526123d2818561483b565b5f805f6060848603121561490e575f80fd5b833561491981614336565b925060208401359150604084013567ffffffffffffffff81111561493b575f80fd5b614947868287016141e4565b9150509250925092565b5f60208284031215614961575f80fd5b8135611d4681614336565b5f805f805f60a08688031215614980575f80fd5b853561498b81614336565b9450602086013561499b81614336565b9350604086013567ffffffffffffffff808211156149b7575f80fd5b6149c389838a0161444e565b945060608801359150808211156149d8575f80fd5b6149e489838a0161444e565b9350608088013591508082111561471e575f80fd5b5f805f8060608587031215614a0c575f80fd5b8435614a1781614336565b935060208501359250604085013567ffffffffffffffff811115614776575f80fd5b5f8060408385031215614a4a575f80fd5b8235614a5581614336565b946020939093013593505050565b5f805f805f60a08688031215614a77575f80fd5b8535614a8281614336565b94506020860135614a9281614336565b93506040860135925060608601359150608086013567ffffffffffffffff811115614abb575f80fd5b61472b888289016141e4565b600181811c90821680614adb57607f821691505b602082108103614b12577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f60208284031215614b28575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610a9857610a98614b2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260a060408201525f60a082015260c060608201525f614bdd60c08301856142c4565b905082608083015295945050505050565b5f60208284031215614bfe575f80fd5b81518015158114611d46575f80fd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c3d57614c3d614b2f565b5060010190565b5f614c516141b684614164565b9050828152838383011115614c64575f80fd5b611d468360208301846142a2565b5f60208284031215614c82575f80fd5b815167ffffffffffffffff811115614c98575f80fd5b8201601f81018413614ca8575f80fd5b61146e84825160208401614c44565b818382375f9101908152919050565b81810381811115610a9857610a98614b2f565b5f8151808452602080850194508084015f5b8381101561486957815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614ceb565b5f81518084526020808501808196508360051b810191508286015f5b85811015614d63578284038952614d518483516142c4565b98850198935090840190600101614d39565b5091979650505050505050565b5f6101208b8352602073ffffffffffffffffffffffffffffffffffffffff8c1681850152816040850152614da68285018c614cd9565b91508382036060850152614dba828b61483b565b915083820360808501528189518084528284019150828160051b850101838c015f5b83811015614e28577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0878403018552614e168383516142c4565b94860194925090850190600101614ddc565b505086810360a0880152614e3c818c614d1d565b9450505050508560c08401528460e0840152828103610100840152614e6181856142c4565b9c9b505050505050505050505050565b5f60208284031215614e81575f80fd5b815165ffffffffffff81168114611d46575f80fd5b608081525f614ea86080830187614cd9565b8281036020840152614eba818761483b565b90508281036040840152614ece8186614d1d565b91505082606083015295945050505050565b84815260ff84166020820152826040820152608060608201525f61135a60808301846142c4565b85815260ff8516602082015283604082015260a060608201525f614f2e60a08301856142c4565b8281036080840152614f4081856142c4565b98975050505050505050565b5f60208284031215614f5c575f80fd5b81516bffffffffffffffffffffffff81168114611d46575f80fdfe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a26469706673582212206d1b5e798182ad34248de460d1d35d2e2eb478ae7278c84736e8e25469dcd39764736f6c634300081400330000000000000000000000000000000000000000000000000000000000001c20000000000000000000000000000000000000000000000000000000000000438000000000000000000000000000000000000000000000d3c21bcecceda1000000", + "nonce": "0x0", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x11aee13", + "logs": [ + { + "address": "0xd64d01d04498bfc60f04178e0b62a757c5048212", + "topics": [ + "0x08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba", + "blockHash": "0xc21c0a7f3128e5ab0a5ba1238920a4ed81bfc2d22d88b0f3d13058de6bc390bd", + "blockNumber": "0x135f325", + "transactionHash": "0x54621849b4885270b98f8796e3f075f295f3ece3d7ba49f4a73687b91aea609e", + "transactionIndex": "0xaf", + "logIndex": "0x1b4", + "removed": false + }, + { + "address": "0xd64d01d04498bfc60f04178e0b62a757c5048212", + "topics": [ + "0xc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20", + "blockHash": "0xc21c0a7f3128e5ab0a5ba1238920a4ed81bfc2d22d88b0f3d13058de6bc390bd", + "blockNumber": "0x135f325", + "transactionHash": "0x54621849b4885270b98f8796e3f075f295f3ece3d7ba49f4a73687b91aea609e", + "transactionIndex": "0xaf", + "logIndex": "0x1b5", + "removed": false + }, + { + "address": "0xd64d01d04498bfc60f04178e0b62a757c5048212", + "topics": [ + "0x7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004380", + "blockHash": "0xc21c0a7f3128e5ab0a5ba1238920a4ed81bfc2d22d88b0f3d13058de6bc390bd", + "blockNumber": "0x135f325", + "transactionHash": "0x54621849b4885270b98f8796e3f075f295f3ece3d7ba49f4a73687b91aea609e", + "transactionIndex": "0xaf", + "logIndex": "0x1b6", + "removed": false + }, + { + "address": "0xd64d01d04498bfc60f04178e0b62a757c5048212", + "topics": [ + "0xccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3c21bcecceda1000000", + "blockHash": "0xc21c0a7f3128e5ab0a5ba1238920a4ed81bfc2d22d88b0f3d13058de6bc390bd", + "blockNumber": "0x135f325", + "transactionHash": "0x54621849b4885270b98f8796e3f075f295f3ece3d7ba49f4a73687b91aea609e", + "transactionIndex": "0xaf", + "logIndex": "0x1b7", + "removed": false + } + ], + "logsBloom": "0x00000400000000000000000000000000000000000000000000000000000008000000000000000000000000000010000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000080002000000000000000000000000000000000000000000001000002000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000001000000000000002800000000000000000000000000000000000000000000000000000000000000000002000", + "type": "0x2", + "transactionHash": "0x54621849b4885270b98f8796e3f075f295f3ece3d7ba49f4a73687b91aea609e", + "transactionIndex": "0xaf", + "blockHash": "0xc21c0a7f3128e5ab0a5ba1238920a4ed81bfc2d22d88b0f3d13058de6bc390bd", + "blockNumber": "0x135f325", + "gasUsed": "0x45ea0d", + "effectiveGasPrice": "0x4693897ef", + "from": "0xbb6cc52d615af1d3c89ba339af35fd9f252ed763", + "to": null, + "contractAddress": "0xd64d01d04498bfc60f04178e0b62a757c5048212" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "contract RadworksGovernor", + "value": "0xD64D01D04498bFc60f04178e0B62a757C5048212" + } + }, + "timestamp": 1721063504, + "chain": 1, + "commit": "7987c9a" +} \ No newline at end of file diff --git a/lib/forge-std b/lib/forge-std index 76e89e5..c28115d 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 76e89e592ac58df4f0d16202ee230bbf0b8098fc +Subproject commit c28115db8d90ebffb41953cf83aac63130f4bd40 diff --git a/script/DeployInput.sol b/script/DeployInput.sol index 389ecb3..16b8508 100644 --- a/script/DeployInput.sol +++ b/script/DeployInput.sol @@ -5,10 +5,4 @@ contract DeployInput { uint256 constant INITIAL_VOTING_DELAY = 7200; // in blocks; 5 blocks/min * 60 * 24 = 1 day uint256 constant INITIAL_VOTING_PERIOD = 17_280; // matches existing config uint256 constant INITIAL_PROPOSAL_THRESHOLD = 1_000_000e18; // matches existing config - - // ScopeLift address for receiving the RAD tokens upon upgrade execution - address constant SCOPELIFT_ADDRESS = 0x5C04E7808455ee0e22c2773328C151d0DD79dC62; - - // Number of RAD tokens to transfer to ScopeLift upon upgrade execution - uint256 constant SCOPELIFT_PAYMENT = 5000e18; } diff --git a/script/Propose.s.sol b/script/Propose.s.sol index f1580d1..b2e12d2 100644 --- a/script/Propose.s.sol +++ b/script/Propose.s.sol @@ -13,7 +13,7 @@ import {DeployInput} from "script/DeployInput.sol"; /// @notice Script to submit the proposal to upgrade Radworks governor. contract Propose is Script, Constants, DeployInput { IGovernorAlpha constant RADWORK_GOVERNOR_ALPHA = IGovernorAlpha(GOVERNOR_ALPHA); - address PROPOSER_ADDRESS = 0x464D78a5C97A2E2E9839C353ee9B6d4204c90B0b; // cloudhead.eth + address PROPOSER_ADDRESS = PROPOSER; // abbey function propose(RadworksGovernor _newGovernor) internal returns (uint256 _proposalId) { address[] memory _targets = new address[](3); diff --git a/test/Constants.sol b/test/Constants.sol index c74a7cc..67acec0 100644 --- a/test/Constants.sol +++ b/test/Constants.sol @@ -7,7 +7,11 @@ contract Constants { address constant TIMELOCK = 0x8dA8f82d2BbDd896822de723F55D6EdF416130ba; address constant DRIPS = 0xd0Dd053392db676D57317CD4fe96Fc2cCf42D0b4; - address constant PROPOSER = 0x464D78a5C97A2E2E9839C353ee9B6d4204c90B0b; // cloudhead.eth + address constant PROPOSER = 0xEA95cfB5Dd624F43775b372db0ED2D8d0073E91C; // Abbey + // ScopeLift address for receiving the RAD tokens upon upgrade execution + address constant SCOPELIFT_ADDRESS = 0x5C04E7808455ee0e22c2773328C151d0DD79dC62; + // Number of RAD tokens to transfer to ScopeLift upon upgrade execution + uint256 constant SCOPELIFT_PAYMENT = 8065e18; address constant USDC_ADDRESS = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; address constant GTC_ADDRESS = 0xDe30da39c46104798bB5aA3fe8B9e0e1F348163F; @@ -15,8 +19,7 @@ contract Constants { address constant MTV_ADDRESS = 0x6226e00bCAc68b0Fe55583B90A1d727C14fAB77f; uint256 constant MAX_REASONABLE_TIME_PERIOD = 302_400; // 6 weeks assume a 12 sec block time - // we have not yet deployed the Radworks Bravo Governor (will be replaced with deployed address) - address constant DEPLOYED_BRAVO_GOVERNOR = address(0x0); + address constant DEPLOYED_BRAVO_GOVERNOR = 0xD64D01D04498bFc60f04178e0B62a757C5048212; uint256 constant QUORUM = 4_000_000e18; } diff --git a/test/RadworksGovernor.t.sol b/test/RadworksGovernor.t.sol index 36f3507..54d6b02 100644 --- a/test/RadworksGovernor.t.sol +++ b/test/RadworksGovernor.t.sol @@ -1156,22 +1156,22 @@ contract _ExecuteTestWithDeployScriptGovernor is _Execute { } } -// Run the tests using the on-chain deployed Governor Bravo (when it has been deployed) - -// contract ConstructorTestWithOnChainGovernor is Constructor { -// function _useDeployedGovernorBravo() internal pure override returns (bool) { -// return true; -// } -// } - -// contract ProposeTestWithOnChainGovernor is Propose { -// function _useDeployedGovernorBravo() internal pure override returns (bool) { -// return true; -// } -// } - -// contract _ExecuteTestWithOnChainGovernor is _Execute { -// function _useDeployedGovernorBravo() internal pure override returns (bool) { -// return true; -// } -// } +// Run the tests using the on-chain deployed Governor Bravo + +contract ConstructorTestWithOnChainGovernor is Constructor { + function _useDeployedGovernorBravo() internal pure override returns (bool) { + return true; + } +} + +contract ProposeTestWithOnChainGovernor is Propose { + function _useDeployedGovernorBravo() internal pure override returns (bool) { + return true; + } +} + +contract _ExecuteTestWithOnChainGovernor is _Execute { + function _useDeployedGovernorBravo() internal pure override returns (bool) { + return true; + } +} diff --git a/test/helpers/ProposalTest.sol b/test/helpers/ProposalTest.sol index 27a9139..5fc2eb7 100644 --- a/test/helpers/ProposalTest.sol +++ b/test/helpers/ProposalTest.sol @@ -35,23 +35,9 @@ abstract contract ProposalTest is RadworksGovernorTest { function setUp() public virtual override { RadworksGovernorTest.setUp(); - - if (_useDeployedGovernorBravo()) { - // Use the actual live proposal data expected to be on chain - // if Radworks Governor Bravo has already deployed - upgradeProposalId = 17; // assume this is the next proposal (as most recent is 16) - // Since the proposal was already submitted, the count before its submissions is one less - initialProposalCount = governorAlpha.proposalCount() - 1; - } else { - initialProposalCount = governorAlpha.proposalCount(); - - TestableProposeScript _proposeScript = new TestableProposeScript(); - // We override the deployer to use an alternate delegate, because in this context, - // the PROPOSER_ADDRESS used already has a live proposal - _proposeScript.overrideProposerForTests(0x69dceee155C31eA0c8354F90BDD65C12FaF5A00a); - - upgradeProposalId = _proposeScript.run(governorBravo); - } + initialProposalCount = governorAlpha.proposalCount(); + TestableProposeScript _proposeScript = new TestableProposeScript(); + upgradeProposalId = _proposeScript.run(governorBravo); } //--------------- HELPERS ---------------// @@ -76,7 +62,7 @@ abstract contract ProposalTest is RadworksGovernorTest { // https://etherscan.io/address/0x31c8EAcBFFdD875c74b94b077895Bd78CF1E64A3#code && _addr > address(0) ); - assumeNoPrecompiles(_addr); + assumeNotPrecompile(_addr); } function _assumeReceiver(address _receiver) internal { @@ -116,7 +102,8 @@ abstract contract ProposalTest is RadworksGovernorTest { } function _jumpPastProposalEta() internal { - vm.roll(block.number + 1); // move up one block so we're not in the same block as when queued + vm.roll(vm.getBlockNumber() + 1); // move up one block so we're not in the same block as when + // queued vm.warp(_upgradeProposalEta() + 1); // jump past the eta timestamp } diff --git a/test/helpers/RadworksGovernorTest.sol b/test/helpers/RadworksGovernorTest.sol index 15136de..d52513c 100644 --- a/test/helpers/RadworksGovernorTest.sol +++ b/test/helpers/RadworksGovernorTest.sol @@ -28,7 +28,7 @@ abstract contract RadworksGovernorTest is Test, DeployInput, Constants { function setUp() public virtual { // The latest block when this test was written. If you update the fork block // make sure to also update the top 6 delegates below. - uint256 _forkBlock = 18_514_244; + uint256 _forkBlock = 20_341_999; vm.createSelectFork(vm.rpcUrl("mainnet"), _forkBlock);