diff --git a/broadcast/DeploySiloFactory.s.sol/1/run-1722544362.json b/broadcast/DeploySiloFactory.s.sol/1/run-1722544362.json new file mode 100644 index 0000000..ed817e2 --- /dev/null +++ b/broadcast/DeploySiloFactory.s.sol/1/run-1722544362.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0x9df8935838c14d4b2817e66f17301f09edb704ab2c81af7d870b3f1f4d77ac5f", + "transactionType": "CREATE", + "contractName": "SiloStrategyFactory", + "contractAddress": "0xbc23c3468120ffe89246909dd7ca0e0328b4c1fd", + "function": null, + "arguments": [ + "0xbACBBefda6fD1FbF5a2d6A79916F4B6124eD2D49", + "0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7", + "0x318d0059efE546b5687FA6744aF4339391153981" + ], + "transaction": { + "from": "0x318d0059efe546b5687fa6744af4339391153981", + "gas": "0x453e1e", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b506040516200405738038062004057833981016040819052620000349162000233565b62000058836001600160a01b031663e99ed41d6200019060201b620006f91760201c565b620000aa5760405162461bcd60e51b815260206004820152601760248201527f696e76616c69642073696c6f207265706f7369746f727900000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000f75760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081b585b9859d95b595b9d60721b6044820152606401620000a1565b6001600160a01b038116620001595760405162461bcd60e51b815260206004820152602160248201527f696e76616c696420706572666f726d616e63652066656520726563697069656e6044820152601d60fa1b6064820152608401620000a1565b6001600160a01b03928316608052600080549284166001600160a01b031993841617905560018054919093169116179055620002b3565b60006001600160a01b0383161580159062000213575082826040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000287565b60e083901b6001600160e01b03199081169116145b9392505050565b6001600160a01b03811681146200023057600080fd5b50565b6000806000606084860312156200024957600080fd5b835162000256816200021a565b602085015190935062000269816200021a565b60408501519092506200027c816200021a565b809150509250925092565b6000602082840312156200029a57600080fd5b81516001600160e01b0319811681146200021357600080fd5b608051613d7a620002dd6000396000818161019b0152818161029401526103c10152613d7a6000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c806388a8d602116200006257806388a8d602146200016a578063d4a22bde146200017e578063e9176c601462000195578063ed27f7c914620001bd57600080fd5b806313d7185014620000985780631f11d06f14620000ec57806328473f4e146200013a5780636a5f1aa21462000151575b600080fd5b620000cf620000a9366004620007aa565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b62000129620000fd366004620007aa565b6001600160a01b0391821660009081526002602090815260408083209385168352929052205416151590565b6040519015158152602001620000e3565b620000cf6200014b36600462000832565b620001d1565b620001686200016236600462000923565b6200056d565b005b600054620000cf906001600160a01b031681565b620001686200018f36600462000923565b62000636565b620000cf7f000000000000000000000000000000000000000000000000000000000000000081565b600154620000cf906001600160a01b031681565b600080546001600160a01b03163314620002085760405162461bcd60e51b8152600401620001ff9062000943565b60405180910390fd5b6001600160a01b038085166000908152600260209081526040808320848a1684529091529020541615620002725760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e4819195c1b1bde595960821b6044820152606401620001ff565b604051630c5a30b960e11b81526001600160a01b0386811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906318b4617290602401602060405180830381865afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000968565b60405163bf27304160e01b81526001600160a01b03878116600483015291925060009183169063bf2730419060240160c060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000988565b5190506001600160a01b038116620003bf5760405162461bcd60e51b815260206004820152600a60248201526977726f6e672073696c6f60b01b6044820152606401620001ff565b7f00000000000000000000000000000000000000000000000000000000000000008282888888604051620003f39062000783565b620004049695949392919062000a27565b604051809103906000f08015801562000421573d6000803e3d6000fd5b506001600160a01b0387811660009081526002602090815260408083208c851684529091529081902080546001600160a01b031916848416908117909155600154915163352f8d5160e11b815291909216600482015291945090636a5f1aa290602401600060405180830381600087803b1580156200049f57600080fd5b505af1158015620004b4573d6000803e3d6000fd5b5050604051630f629b7960e41b81526001600160a01b038b811660048301528616925063f629b7909150602401600060405180830381600087803b158015620004fc57600080fd5b505af115801562000511573d6000803e3d6000fd5b50505050856001600160a01b03167fbbb81e87410172e2219503367e1507048327020e1b07c3cf90e0767372d77a79898585858a8a6040516200055a9695949392919062000a27565b60405180910390a2505095945050505050565b6000546001600160a01b031633146200059a5760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620005e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f762269721c640b876d4178d08b6bad5f4d8c426de583cf39e3d827d7b193b4ee906020015b60405180910390a150565b6000546001600160a01b03163314620006635760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620006aa5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fb8773da123d3f2b88f12592ce68f9d474fa4b3f7cf7ced0e5a72298048613d08906020016200062b565b60006001600160a01b038316158015906200077c575082826040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000741573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000767919062000aae565b60e083901b6001600160e01b03199081169116145b9392505050565b61326a8062000adb83390190565b6001600160a01b0381168114620007a757600080fd5b50565b60008060408385031215620007be57600080fd5b8235620007cb8162000791565b91506020830135620007dd8162000791565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200082a576200082a620007e8565b604052919050565b600080600080600060a086880312156200084b57600080fd5b8535620008588162000791565b94506020868101356200086b8162000791565b945060408701356200087d8162000791565b935060608701356200088f8162000791565b9250608087013567ffffffffffffffff80821115620008ad57600080fd5b818901915089601f830112620008c257600080fd5b813581811115620008d757620008d7620007e8565b620008eb601f8201601f19168501620007fe565b91508082528a848285010111156200090257600080fd5b80848401858401376000848284010152508093505050509295509295909350565b6000602082840312156200093657600080fd5b81356200077c8162000791565b6020808252600b908201526a085b585b9859d95b595b9d60aa1b604082015260600190565b6000602082840312156200097b57600080fd5b81516200077c8162000791565b600060c082840312156200099b57600080fd5b60405160c0810181811067ffffffffffffffff82111715620009c157620009c1620007e8565b6040528251620009d18162000791565b81526020830151620009e38162000791565b60208201526040830151620009f88162000791565b80604083015250606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600060018060a01b03808916835260208189168185015281881660408501528187166060850152818616608085015260c060a0850152845191508160c085015260005b8281101562000a885785810182015185820160e00152810162000a6a565b5050600060e0828501015260e0601f19601f830116840101915050979650505050505050565b60006020828403121562000ac157600080fd5b81516001600160e01b0319811681146200077c57600080fdfe6101206040526000805462ffffff1916622710011790553480156200002357600080fd5b506040516200326a3803806200326a83398101604081905262000046916200065f565b6001600160a01b0383166080523060a0526040518390829082908290620000b3906200007f9084908490339081908190602401620007a4565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200014716565b505073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050506001600160a01b0386811660c05285811660e05284811661010052600280546001600160a01b0319168483161790556200013b90841686600019620001db602090811b62000fc817901c565b5050505050506200083e565b606060008073bb51273d6c746910c7c06fe718f30c936170fed06001600160a01b0316846040516200017a9190620007e7565b600060405180830381855af49150503d8060008114620001b7576040519150601f19603f3d011682016040523d82523d6000602084013e620001bc565b606091505b509150915081620001d4576040513d806000833e8082fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620002359085908390620002b116565b620002ab576040516001600160a01b0384166024820152600060448201526200029f90859063095ea7b360e01b9060640160408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200036916565b620002ab848262000369565b50505050565b6000806000846001600160a01b031684604051620002d09190620007e7565b6000604051808303816000865af19150503d80600081146200030f576040519150601f19603f3d011682016040523d82523d6000602084013e62000314565b606091505b5091509150818015620003425750805115806200034257508080602001905181019062000342919062000805565b801562000360575062000360856200045360201b620010821760201c565b95945050505050565b6000620003c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200046260201b62001091179092919060201c565b9050805160001480620003e9575080806020019051810190620003e9919062000805565b6200044e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6001600160a01b03163b151590565b60606200047384846000856200047b565b949350505050565b606082471015620004de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000445565b600080866001600160a01b03168587604051620004fc9190620007e7565b60006040518083038185875af1925050503d80600081146200053b576040519150601f19603f3d011682016040523d82523d6000602084013e62000540565b606091505b50909250905062000554878383876200055f565b979650505050505050565b60608315620005d3578251600003620005cb576001600160a01b0385163b620005cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000445565b508162000473565b620004738383815115620005ea5781518083602001fd5b8060405162461bcd60e51b815260040162000445919062000829565b80516001600160a01b03811681146200061e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006565781810151838201526020016200063c565b50506000910152565b60008060008060008060c087890312156200067957600080fd5b620006848762000606565b9550620006946020880162000606565b9450620006a46040880162000606565b9350620006b46060880162000606565b9250620006c46080880162000606565b60a08801519092506001600160401b0380821115620006e257600080fd5b818901915089601f830112620006f757600080fd5b8151818111156200070c576200070c62000623565b604051601f8201601f19908116603f0116810190838211818310171562000737576200073762000623565b816040528281528c60208487010111156200075157600080fd5b6200076483602083016020880162000639565b80955050505050509295509295509295565b600081518084526200079081602086016020860162000639565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a06020840152620007c860a084018862000776565b9581166040840152938416606083015250911660809091015292915050565b60008251620007fb81846020870162000639565b9190910192915050565b6000602082840312156200081857600080fd5b81518015158114620001d457600080fd5b602081526000620001d4602083018462000776565b60805160a05160c05160e051610100516128d66200099460003960008181610313015281816110e001528181612098015261212d01526000818161040d0152818161048401528181610643015281816106f70152818161094b01528181611211015281816112cc0152818161137b0152818161177a01528181611d0101526120270152600081816103e6015281816107fb01526109a1015260008181610ade01528181610bcd01528181610c6e01528181610cee01528181610d7701528181610e6401528181610ee4015281816113ed01526116010152600081816104590152818161050601528181610612015281816106cc0152818161076a015281816108920152818161097301528181610b4201528181610c35015281816111e9015281816112960152818161135001528181611489015281816115590152818161174401528181611cd90152611ff801526128d66000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639735b0e3116100de578063d19a3bb811610097578063e655dbd811610071578063e655dbd8146103ce578063e9176c60146103e1578063eb3beb2914610408578063fde813a81461042f5761018e565b8063d19a3bb814610388578063d6968601146103a3578063e5e19b4a146103b65761018e565b80639735b0e3146102e85780639d7fb70c146102fb578063a8d5fd651461030e578063ac00ff261461034d578063af1df25514610360578063c2b18aa0146103735761018e565b8063503160d91161014b578063652109421161012557806365210942146102925780636718835f146102a55780637d969932146102c2578063950b3d73146102d55761018e565b8063503160d9146102365780635476bd72146102495780635d265d3f1461025c5761018e565b806304bd4629146101c9578063372500ab146101ef5780633d6cb575146101f757806346aa2f121461020a57806349317f1d1461021d5780634a5d094314610225575b73bb51273d6c746910c7c06fe718f30c936170fed03660008037600080366000845af43d6000803e8080156101c2573d6000f35b3d6000fd5b005b6101dc6101d73660046123df565b610442565b6040519081526020015b60405180910390f35b6101c7610589565b6101c76102053660046123fc565b6105e7565b6101dc6102183660046123df565b6105fb565b6101dc610a98565b600054610100900461ffff166101dc565b6101c76102443660046123fc565b610ab8565b6101c7610257366004612415565b610ac9565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b17905290516101e69160009161249e565b6101c76102a03660046123df565b610bb8565b6000546102b29060ff1681565b60405190151581526020016101e6565b6000546301000000900461ffff166101dc565b6101c76102e33660046123fc565b610c59565b6101c76102f6366004612415565b610cd9565b6101c76103093660046123fc565b610d5a565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e6565b6101c761035b3660046124c7565b610d62565b600254610335906001600160a01b031681565b61037b610ded565b6040516101e69190612528565b61033573bb51273d6c746910c7c06fe718f30c936170fed081565b6101c76103b13660046123fc565b610e4f565b600054600160281b90046001600160a01b0316610335565b6101c76103dc3660046123df565b610ecf565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6101c761043d3660046123fc565b610fb7565b60405163b8c876b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b8c876b190602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610579919061253b565b610583919061256a565b92915050565b600054600160281b90046001600160a01b031633146105dd5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b6105e56110aa565b565b6105ef61119b565b6105f8816111d2565b50565b60405163a6e08aa160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a6e08aa190604401602060405180830381865afa15801561068c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b0919061257d565b15610a8b5760405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bf2730419060240160c060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906125a5565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612640565b6107f590600a612747565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612756565b6040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906341976e0990602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610907919061253b565b905060008284608001518560600151610920919061256a565b61092a9084612773565b61093491906127a0565b604051630968252160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906312d04a4290604401602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c919061253b565b90506000198103610a2557506000199695505050505050565b81811115610a7e5760008385610a3b85856127c2565b610a459190612773565b610a4f91906127a0565b905080600003610a6757506000979650505050505050565b610a726001826127c2565b98975050505050505050565b5060009695505050505050565b506000919050565b919050565b6000610aa261119b565b610aaa611339565b9050610ab5816115e3565b90565b610ac061119b565b6105f88161172d565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610b2857600080fd5b505afa158015610b3c573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610baa5760405162461bcd60e51b815260206004820152600660248201526508585cdcd95d60d21b60448201526064016105d4565b610bb482826117a9565b5050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506105f8817f000000000000000000000000000000000000000000000000000000000000000061188f565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506105f881611a14565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b50505050610bb48282611aaf565b6105f861119b565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610dc157600080fd5b505afa158015610dd5573d6000803e3d6000fd5b50506000805460ff1916931515939093179092555050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e27575b5050505050905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506105f881611c61565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b5050506001600160a01b0382169050610f955760405162461bcd60e51b815260206004820152601560248201527410b4b731b2b73a34bb32b9a1b7b73a3937b63632b960591b60448201526064016105d4565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610fbf61119b565b6105f881611cc2565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526110198482611d88565b61107c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611072908590611e2f565b61107c8482611e2f565b50505050565b6001600160a01b03163b151590565b60606110a08484600085611f04565b90505b9392505050565b6002546001600160a01b031680156105f857604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611112576111126127d5565b6001600160a01b039283166020918202929092010152604051633111e7b360e01b815290831690633111e7b3906111539084906000199030906004016127eb565b6020604051808303816000875af1158015611172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061253b565b505050565b3330146105e55760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016105d4565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af115801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e919061253b565b5060405163ead5d35960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ead5d359906064015b60408051808303816000875af1158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061281e565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639198e515906024016020604051808303816000875af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061253b565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061257d565b611544576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc919061253b565b9050600061150a60006105fb565b90506127108211801561151e575061271081115b1561154157808211611538576115338261172d565b611541565b6115418161172d565b50505b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cc919061253b565b6115d4611fe1565b6115de919061256a565b905090565b60005460ff166115fd57506000805460ff19166001179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611681919061253b565b9050808211156116f557600054612710906116a590610100900461ffff1683612773565b6116af91906127a0565b6116b982846127c2565b1115610bb45760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b60448201526064016105d4565b81811115610bb45760005461271090611719906301000000900461ffff1683612773565b61172391906127a0565b6116b983836127c2565b6040516307dba22560e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690633edd1128906064016112f7565b600054600160281b90046001600160a01b0316801561183c576117d86001600160a01b03841682600019610fc8565b604051632642a09360e11b81526001600160a01b0384811660048301528381166024830152821690634c85412690604401600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050505b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160281b90046001600160a01b031680156118b0576118b06121a7565b6001600160a01b0383166118c357505050565b6000600180548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118fd575b5050505050905060005b81518110156119e1576000828281518110611942576119426127d5565b6020026020010151905061196c86600019836001600160a01b0316610fc89092919063ffffffff16565b604051632642a09360e11b81526001600160a01b0382811660048301528681166024830152871690634c85412690604401600060405180830381600087803b1580156119b757600080fd5b505af11580156119cb573d6000803e3d6000fd5b5050505050806119da90612842565b9050611925565b5050600080546001600160a01b03909416600160281b0265010000000000600160c81b0319909416939093179092555050565b60008111611a535760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b60448201526064016105d4565b61ffff811115611a915760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b60448201526064016105d4565b6000805461ffff9092166101000262ffff0019909216919091179055565b60008054600160281b90046001600160a01b031690611acc610ded565b905060005b8151811015611c5a57846001600160a01b0316828281518110611af657611af66127d5565b60200260200101516001600160a01b031603611c4a5760018251611b1a91906127c2565b8114611b7a578160018351611b2f91906127c2565b81518110611b3f57611b3f6127d5565b6020026020010151828281518110611b5957611b596127d5565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001600160a01b03831615611c0257611b9e6001600160a01b038616846000610fc8565b604051639cd38be560e01b81526001600160a01b0386811660048301528581166024830152841690639cd38be590604401600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505b8151611c15906001906020850190612350565b506001805480611c2757611c2761285b565b600082815260209020810160001990810180546001600160a01b03191690550190555b611c5381612842565b9050611ad1565b5050505050565b6127108110611ca05760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b60448201526064016105d4565b6000805461ffff90921663010000000264ffff00000019909216919091179055565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af1158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e919061253b565b506105f8611d8382611d7e611fe1565b612234565b6111d2565b6000806000846001600160a01b031684604051611da59190612871565b6000604051808303816000865af19150503d8060008114611de2576040519150601f19603f3d011682016040523d82523d6000602084013e611de7565b606091505b5091509150818015611e11575080511580611e11575080806020019051810190611e11919061257d565b8015611e2657506001600160a01b0385163b15155b95945050505050565b6000611e84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110919092919063ffffffff16565b9050805160001480611ea5575080806020019051810190611ea5919061257d565b6111965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d4565b606082471015611f655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d4565b600080866001600160a01b03168587604051611f819190612871565b60006040518083038185875af1925050503d8060008114611fbe576040519150601f19603f3d011682016040523d82523d6000602084013e611fc3565b606091505b5091509150611fd48783838761224a565b925050505b949350505050565b60405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000916115de917f0000000000000000000000000000000000000000000000000000000000000000169063bf2730419060240160c060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906125a5565b606001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612118919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561217c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a0919061253b565b91906122c3565b60008054600160281b90046001600160a01b0316906121c4610ded565b905060005b815181101561221a5761220a8360008484815181106121ea576121ea6127d5565b60200260200101516001600160a01b0316610fc89092919063ffffffff16565b61221381612842565b90506121c9565b50506000805465010000000000600160c81b031916905550565b600081831061224357816110a3565b5090919050565b606083156122b95782516000036122b2576001600160a01b0385163b6122b25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d4565b5081611fd9565b611fd98383612326565b60008115806122d0575082155b156122dd575060006110a3565b6122e78385612773565b90508181816122f8576122f861278a565b0490508015801561230857508315155b156110a357604051630cb65c7760e21b815260040160405180910390fd5b8151156123365781518083602001fd5b8060405162461bcd60e51b81526004016105d4919061288d565b8280548282559060005260206000209081019282156123a5579160200282015b828111156123a557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612370565b506123b19291506123b5565b5090565b5b808211156123b157600081556001016123b6565b6001600160a01b03811681146105f857600080fd5b6000602082840312156123f157600080fd5b81356110a3816123ca565b60006020828403121561240e57600080fd5b5035919050565b6000806040838503121561242857600080fd5b8235612433816123ca565b91506020830135612443816123ca565b809150509250929050565b60005b83811015612469578181015183820152602001612451565b50506000910152565b6000815180845261248a81602086016020860161244e565b601f01601f19169290920160200192915050565b82151581526040602082015260006110a06040830184612472565b80151581146105f857600080fd5b6000602082840312156124d957600080fd5b81356110a3816124b9565b600081518084526020808501945080840160005b8381101561251d5781516001600160a01b0316875295820195908201906001016124f8565b509495945050505050565b6020815260006110a360208301846124e4565b60006020828403121561254d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058357610583612554565b60006020828403121561258f57600080fd5b81516110a3816124b9565b8051610a93816123ca565b600060c082840312156125b757600080fd5b60405160c0810181811067ffffffffffffffff821117156125e857634e487b7160e01b600052604160045260246000fd5b6040526125f48361259a565b81526126026020840161259a565b60208201526126136040840161259a565b6040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60006020828403121561265257600080fd5b815160ff811681146110a357600080fd5b600181815b8085111561269e57816000190482111561268457612684612554565b8085161561269157918102915b93841c9390800290612668565b509250929050565b6000826126b557506001610583565b816126c257506000610583565b81600181146126d857600281146126e2576126fe565b6001915050610583565b60ff8411156126f3576126f3612554565b50506001821b610583565b5060208310610133831016604e8410600b8410161715612721575081810a610583565b61272b8383612663565b806000190482111561273f5761273f612554565b029392505050565b60006110a360ff8416836126a6565b60006020828403121561276857600080fd5b81516110a3816123ca565b808202811582820484141761058357610583612554565b634e487b7160e01b600052601260045260246000fd5b6000826127bd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561058357610583612554565b634e487b7160e01b600052603260045260246000fd5b6060815260006127fe60608301866124e4565b6020830194909452506001600160a01b0391909116604090910152919050565b6000806040838503121561283157600080fd5b505080516020909101519092909150565b60006001820161285457612854612554565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6000825161288381846020870161244e565b9190910192915050565b6020815260006110a3602083018461247256fea2646970667358221220c28a6707e8f7699808ec64f0ca659339b54e11791f1d4c0c73190d7429c0435264736f6c63430008120033a26469706673582212209cd5415d8ff2ed730a800f8027a0ea3a3e0557e92665208d08df270eb27db89b64736f6c63430008120033000000000000000000000000bacbbefda6fd1fbf5a2d6a79916f4b6124ed2d4900000000000000000000000016388463d60ffe0661cf7f1f31a7d658ac790ff7000000000000000000000000318d0059efe546b5687fa6744af4339391153981", + "nonce": "0x25", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xe50dcb", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x9df8935838c14d4b2817e66f17301f09edb704ab2c81af7d870b3f1f4d77ac5f", + "transactionIndex": "0x8e", + "blockHash": "0xa7c6785295ec200cb5020ebb67b148f628d16a33eff4cd58adb214174a121306", + "blockNumber": "0x137d489", + "gasUsed": "0x354786", + "effectiveGasPrice": "0x2228b5e7f", + "from": "0x318d0059efe546b5687fa6744af4339391153981", + "to": null, + "contractAddress": "0xbc23c3468120ffe89246909dd7ca0e0328b4c1fd" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1722544362, + "chain": 1, + "commit": "0f742b5" +} \ No newline at end of file diff --git a/broadcast/DeploySiloFactory.s.sol/1/run-1722546634.json b/broadcast/DeploySiloFactory.s.sol/1/run-1722546634.json new file mode 100644 index 0000000..db11fe3 --- /dev/null +++ b/broadcast/DeploySiloFactory.s.sol/1/run-1722546634.json @@ -0,0 +1,33 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "SiloStrategyFactory", + "contractAddress": "0xbaf4cb2a7182e5bd4abb54c6f116d56c0e8b588c", + "function": null, + "arguments": [ + "0xbACBBefda6fD1FbF5a2d6A79916F4B6124eD2D49", + "0x6A16CFA0dF474f3cB1BF5bBa595248EEfb404e2b", + "0x318d0059efE546b5687FA6744aF4339391153981" + ], + "transaction": { + "from": "0x318d0059efe546b5687fa6744af4339391153981", + "gas": "0x453e1e", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b506040516200405738038062004057833981016040819052620000349162000233565b62000058836001600160a01b031663e99ed41d6200019060201b620006f91760201c565b620000aa5760405162461bcd60e51b815260206004820152601760248201527f696e76616c69642073696c6f207265706f7369746f727900000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000f75760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081b585b9859d95b595b9d60721b6044820152606401620000a1565b6001600160a01b038116620001595760405162461bcd60e51b815260206004820152602160248201527f696e76616c696420706572666f726d616e63652066656520726563697069656e6044820152601d60fa1b6064820152608401620000a1565b6001600160a01b03928316608052600080549284166001600160a01b031993841617905560018054919093169116179055620002b3565b60006001600160a01b0383161580159062000213575082826040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000287565b60e083901b6001600160e01b03199081169116145b9392505050565b6001600160a01b03811681146200023057600080fd5b50565b6000806000606084860312156200024957600080fd5b835162000256816200021a565b602085015190935062000269816200021a565b60408501519092506200027c816200021a565b809150509250925092565b6000602082840312156200029a57600080fd5b81516001600160e01b0319811681146200021357600080fd5b608051613d7a620002dd6000396000818161019b0152818161029401526103c10152613d7a6000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c806388a8d602116200006257806388a8d602146200016a578063d4a22bde146200017e578063e9176c601462000195578063ed27f7c914620001bd57600080fd5b806313d7185014620000985780631f11d06f14620000ec57806328473f4e146200013a5780636a5f1aa21462000151575b600080fd5b620000cf620000a9366004620007aa565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b62000129620000fd366004620007aa565b6001600160a01b0391821660009081526002602090815260408083209385168352929052205416151590565b6040519015158152602001620000e3565b620000cf6200014b36600462000832565b620001d1565b620001686200016236600462000923565b6200056d565b005b600054620000cf906001600160a01b031681565b620001686200018f36600462000923565b62000636565b620000cf7f000000000000000000000000000000000000000000000000000000000000000081565b600154620000cf906001600160a01b031681565b600080546001600160a01b03163314620002085760405162461bcd60e51b8152600401620001ff9062000943565b60405180910390fd5b6001600160a01b038085166000908152600260209081526040808320848a1684529091529020541615620002725760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e4819195c1b1bde595960821b6044820152606401620001ff565b604051630c5a30b960e11b81526001600160a01b0386811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906318b4617290602401602060405180830381865afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000968565b60405163bf27304160e01b81526001600160a01b03878116600483015291925060009183169063bf2730419060240160c060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000988565b5190506001600160a01b038116620003bf5760405162461bcd60e51b815260206004820152600a60248201526977726f6e672073696c6f60b01b6044820152606401620001ff565b7f00000000000000000000000000000000000000000000000000000000000000008282888888604051620003f39062000783565b620004049695949392919062000a27565b604051809103906000f08015801562000421573d6000803e3d6000fd5b506001600160a01b0387811660009081526002602090815260408083208c851684529091529081902080546001600160a01b031916848416908117909155600154915163352f8d5160e11b815291909216600482015291945090636a5f1aa290602401600060405180830381600087803b1580156200049f57600080fd5b505af1158015620004b4573d6000803e3d6000fd5b5050604051630f629b7960e41b81526001600160a01b038b811660048301528616925063f629b7909150602401600060405180830381600087803b158015620004fc57600080fd5b505af115801562000511573d6000803e3d6000fd5b50505050856001600160a01b03167fbbb81e87410172e2219503367e1507048327020e1b07c3cf90e0767372d77a79898585858a8a6040516200055a9695949392919062000a27565b60405180910390a2505095945050505050565b6000546001600160a01b031633146200059a5760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620005e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f762269721c640b876d4178d08b6bad5f4d8c426de583cf39e3d827d7b193b4ee906020015b60405180910390a150565b6000546001600160a01b03163314620006635760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620006aa5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fb8773da123d3f2b88f12592ce68f9d474fa4b3f7cf7ced0e5a72298048613d08906020016200062b565b60006001600160a01b038316158015906200077c575082826040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000741573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000767919062000aae565b60e083901b6001600160e01b03199081169116145b9392505050565b61326a8062000adb83390190565b6001600160a01b0381168114620007a757600080fd5b50565b60008060408385031215620007be57600080fd5b8235620007cb8162000791565b91506020830135620007dd8162000791565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200082a576200082a620007e8565b604052919050565b600080600080600060a086880312156200084b57600080fd5b8535620008588162000791565b94506020868101356200086b8162000791565b945060408701356200087d8162000791565b935060608701356200088f8162000791565b9250608087013567ffffffffffffffff80821115620008ad57600080fd5b818901915089601f830112620008c257600080fd5b813581811115620008d757620008d7620007e8565b620008eb601f8201601f19168501620007fe565b91508082528a848285010111156200090257600080fd5b80848401858401376000848284010152508093505050509295509295909350565b6000602082840312156200093657600080fd5b81356200077c8162000791565b6020808252600b908201526a085b585b9859d95b595b9d60aa1b604082015260600190565b6000602082840312156200097b57600080fd5b81516200077c8162000791565b600060c082840312156200099b57600080fd5b60405160c0810181811067ffffffffffffffff82111715620009c157620009c1620007e8565b6040528251620009d18162000791565b81526020830151620009e38162000791565b60208201526040830151620009f88162000791565b80604083015250606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600060018060a01b03808916835260208189168185015281881660408501528187166060850152818616608085015260c060a0850152845191508160c085015260005b8281101562000a885785810182015185820160e00152810162000a6a565b5050600060e0828501015260e0601f19601f830116840101915050979650505050505050565b60006020828403121562000ac157600080fd5b81516001600160e01b0319811681146200077c57600080fdfe6101206040526000805462ffffff1916622710011790553480156200002357600080fd5b506040516200326a3803806200326a83398101604081905262000046916200065f565b6001600160a01b0383166080523060a0526040518390829082908290620000b3906200007f9084908490339081908190602401620007a4565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200014716565b505073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050506001600160a01b0386811660c05285811660e05284811661010052600280546001600160a01b0319168483161790556200013b90841686600019620001db602090811b62000fc817901c565b5050505050506200083e565b606060008073bb51273d6c746910c7c06fe718f30c936170fed06001600160a01b0316846040516200017a9190620007e7565b600060405180830381855af49150503d8060008114620001b7576040519150601f19603f3d011682016040523d82523d6000602084013e620001bc565b606091505b509150915081620001d4576040513d806000833e8082fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620002359085908390620002b116565b620002ab576040516001600160a01b0384166024820152600060448201526200029f90859063095ea7b360e01b9060640160408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200036916565b620002ab848262000369565b50505050565b6000806000846001600160a01b031684604051620002d09190620007e7565b6000604051808303816000865af19150503d80600081146200030f576040519150601f19603f3d011682016040523d82523d6000602084013e62000314565b606091505b5091509150818015620003425750805115806200034257508080602001905181019062000342919062000805565b801562000360575062000360856200045360201b620010821760201c565b95945050505050565b6000620003c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200046260201b62001091179092919060201c565b9050805160001480620003e9575080806020019051810190620003e9919062000805565b6200044e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6001600160a01b03163b151590565b60606200047384846000856200047b565b949350505050565b606082471015620004de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000445565b600080866001600160a01b03168587604051620004fc9190620007e7565b60006040518083038185875af1925050503d80600081146200053b576040519150601f19603f3d011682016040523d82523d6000602084013e62000540565b606091505b50909250905062000554878383876200055f565b979650505050505050565b60608315620005d3578251600003620005cb576001600160a01b0385163b620005cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000445565b508162000473565b620004738383815115620005ea5781518083602001fd5b8060405162461bcd60e51b815260040162000445919062000829565b80516001600160a01b03811681146200061e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006565781810151838201526020016200063c565b50506000910152565b60008060008060008060c087890312156200067957600080fd5b620006848762000606565b9550620006946020880162000606565b9450620006a46040880162000606565b9350620006b46060880162000606565b9250620006c46080880162000606565b60a08801519092506001600160401b0380821115620006e257600080fd5b818901915089601f830112620006f757600080fd5b8151818111156200070c576200070c62000623565b604051601f8201601f19908116603f0116810190838211818310171562000737576200073762000623565b816040528281528c60208487010111156200075157600080fd5b6200076483602083016020880162000639565b80955050505050509295509295509295565b600081518084526200079081602086016020860162000639565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a06020840152620007c860a084018862000776565b9581166040840152938416606083015250911660809091015292915050565b60008251620007fb81846020870162000639565b9190910192915050565b6000602082840312156200081857600080fd5b81518015158114620001d457600080fd5b602081526000620001d4602083018462000776565b60805160a05160c05160e051610100516128d66200099460003960008181610313015281816110e001528181612098015261212d01526000818161040d0152818161048401528181610643015281816106f70152818161094b01528181611211015281816112cc0152818161137b0152818161177a01528181611d0101526120270152600081816103e6015281816107fb01526109a1015260008181610ade01528181610bcd01528181610c6e01528181610cee01528181610d7701528181610e6401528181610ee4015281816113ed01526116010152600081816104590152818161050601528181610612015281816106cc0152818161076a015281816108920152818161097301528181610b4201528181610c35015281816111e9015281816112960152818161135001528181611489015281816115590152818161174401528181611cd90152611ff801526128d66000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639735b0e3116100de578063d19a3bb811610097578063e655dbd811610071578063e655dbd8146103ce578063e9176c60146103e1578063eb3beb2914610408578063fde813a81461042f5761018e565b8063d19a3bb814610388578063d6968601146103a3578063e5e19b4a146103b65761018e565b80639735b0e3146102e85780639d7fb70c146102fb578063a8d5fd651461030e578063ac00ff261461034d578063af1df25514610360578063c2b18aa0146103735761018e565b8063503160d91161014b578063652109421161012557806365210942146102925780636718835f146102a55780637d969932146102c2578063950b3d73146102d55761018e565b8063503160d9146102365780635476bd72146102495780635d265d3f1461025c5761018e565b806304bd4629146101c9578063372500ab146101ef5780633d6cb575146101f757806346aa2f121461020a57806349317f1d1461021d5780634a5d094314610225575b73bb51273d6c746910c7c06fe718f30c936170fed03660008037600080366000845af43d6000803e8080156101c2573d6000f35b3d6000fd5b005b6101dc6101d73660046123df565b610442565b6040519081526020015b60405180910390f35b6101c7610589565b6101c76102053660046123fc565b6105e7565b6101dc6102183660046123df565b6105fb565b6101dc610a98565b600054610100900461ffff166101dc565b6101c76102443660046123fc565b610ab8565b6101c7610257366004612415565b610ac9565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b17905290516101e69160009161249e565b6101c76102a03660046123df565b610bb8565b6000546102b29060ff1681565b60405190151581526020016101e6565b6000546301000000900461ffff166101dc565b6101c76102e33660046123fc565b610c59565b6101c76102f6366004612415565b610cd9565b6101c76103093660046123fc565b610d5a565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e6565b6101c761035b3660046124c7565b610d62565b600254610335906001600160a01b031681565b61037b610ded565b6040516101e69190612528565b61033573bb51273d6c746910c7c06fe718f30c936170fed081565b6101c76103b13660046123fc565b610e4f565b600054600160281b90046001600160a01b0316610335565b6101c76103dc3660046123df565b610ecf565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6101c761043d3660046123fc565b610fb7565b60405163b8c876b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b8c876b190602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610579919061253b565b610583919061256a565b92915050565b600054600160281b90046001600160a01b031633146105dd5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b6105e56110aa565b565b6105ef61119b565b6105f8816111d2565b50565b60405163a6e08aa160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a6e08aa190604401602060405180830381865afa15801561068c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b0919061257d565b15610a8b5760405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bf2730419060240160c060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906125a5565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612640565b6107f590600a612747565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612756565b6040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906341976e0990602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610907919061253b565b905060008284608001518560600151610920919061256a565b61092a9084612773565b61093491906127a0565b604051630968252160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906312d04a4290604401602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c919061253b565b90506000198103610a2557506000199695505050505050565b81811115610a7e5760008385610a3b85856127c2565b610a459190612773565b610a4f91906127a0565b905080600003610a6757506000979650505050505050565b610a726001826127c2565b98975050505050505050565b5060009695505050505050565b506000919050565b919050565b6000610aa261119b565b610aaa611339565b9050610ab5816115e3565b90565b610ac061119b565b6105f88161172d565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610b2857600080fd5b505afa158015610b3c573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610baa5760405162461bcd60e51b815260206004820152600660248201526508585cdcd95d60d21b60448201526064016105d4565b610bb482826117a9565b5050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506105f8817f000000000000000000000000000000000000000000000000000000000000000061188f565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506105f881611a14565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b50505050610bb48282611aaf565b6105f861119b565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610dc157600080fd5b505afa158015610dd5573d6000803e3d6000fd5b50506000805460ff1916931515939093179092555050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e27575b5050505050905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506105f881611c61565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b5050506001600160a01b0382169050610f955760405162461bcd60e51b815260206004820152601560248201527410b4b731b2b73a34bb32b9a1b7b73a3937b63632b960591b60448201526064016105d4565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610fbf61119b565b6105f881611cc2565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526110198482611d88565b61107c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611072908590611e2f565b61107c8482611e2f565b50505050565b6001600160a01b03163b151590565b60606110a08484600085611f04565b90505b9392505050565b6002546001600160a01b031680156105f857604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611112576111126127d5565b6001600160a01b039283166020918202929092010152604051633111e7b360e01b815290831690633111e7b3906111539084906000199030906004016127eb565b6020604051808303816000875af1158015611172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061253b565b505050565b3330146105e55760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016105d4565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af115801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e919061253b565b5060405163ead5d35960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ead5d359906064015b60408051808303816000875af1158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061281e565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639198e515906024016020604051808303816000875af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061253b565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061257d565b611544576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc919061253b565b9050600061150a60006105fb565b90506127108211801561151e575061271081115b1561154157808211611538576115338261172d565b611541565b6115418161172d565b50505b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cc919061253b565b6115d4611fe1565b6115de919061256a565b905090565b60005460ff166115fd57506000805460ff19166001179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611681919061253b565b9050808211156116f557600054612710906116a590610100900461ffff1683612773565b6116af91906127a0565b6116b982846127c2565b1115610bb45760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b60448201526064016105d4565b81811115610bb45760005461271090611719906301000000900461ffff1683612773565b61172391906127a0565b6116b983836127c2565b6040516307dba22560e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690633edd1128906064016112f7565b600054600160281b90046001600160a01b0316801561183c576117d86001600160a01b03841682600019610fc8565b604051632642a09360e11b81526001600160a01b0384811660048301528381166024830152821690634c85412690604401600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050505b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160281b90046001600160a01b031680156118b0576118b06121a7565b6001600160a01b0383166118c357505050565b6000600180548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118fd575b5050505050905060005b81518110156119e1576000828281518110611942576119426127d5565b6020026020010151905061196c86600019836001600160a01b0316610fc89092919063ffffffff16565b604051632642a09360e11b81526001600160a01b0382811660048301528681166024830152871690634c85412690604401600060405180830381600087803b1580156119b757600080fd5b505af11580156119cb573d6000803e3d6000fd5b5050505050806119da90612842565b9050611925565b5050600080546001600160a01b03909416600160281b0265010000000000600160c81b0319909416939093179092555050565b60008111611a535760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b60448201526064016105d4565b61ffff811115611a915760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b60448201526064016105d4565b6000805461ffff9092166101000262ffff0019909216919091179055565b60008054600160281b90046001600160a01b031690611acc610ded565b905060005b8151811015611c5a57846001600160a01b0316828281518110611af657611af66127d5565b60200260200101516001600160a01b031603611c4a5760018251611b1a91906127c2565b8114611b7a578160018351611b2f91906127c2565b81518110611b3f57611b3f6127d5565b6020026020010151828281518110611b5957611b596127d5565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001600160a01b03831615611c0257611b9e6001600160a01b038616846000610fc8565b604051639cd38be560e01b81526001600160a01b0386811660048301528581166024830152841690639cd38be590604401600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505b8151611c15906001906020850190612350565b506001805480611c2757611c2761285b565b600082815260209020810160001990810180546001600160a01b03191690550190555b611c5381612842565b9050611ad1565b5050505050565b6127108110611ca05760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b60448201526064016105d4565b6000805461ffff90921663010000000264ffff00000019909216919091179055565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af1158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e919061253b565b506105f8611d8382611d7e611fe1565b612234565b6111d2565b6000806000846001600160a01b031684604051611da59190612871565b6000604051808303816000865af19150503d8060008114611de2576040519150601f19603f3d011682016040523d82523d6000602084013e611de7565b606091505b5091509150818015611e11575080511580611e11575080806020019051810190611e11919061257d565b8015611e2657506001600160a01b0385163b15155b95945050505050565b6000611e84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110919092919063ffffffff16565b9050805160001480611ea5575080806020019051810190611ea5919061257d565b6111965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d4565b606082471015611f655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d4565b600080866001600160a01b03168587604051611f819190612871565b60006040518083038185875af1925050503d8060008114611fbe576040519150601f19603f3d011682016040523d82523d6000602084013e611fc3565b606091505b5091509150611fd48783838761224a565b925050505b949350505050565b60405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000916115de917f0000000000000000000000000000000000000000000000000000000000000000169063bf2730419060240160c060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906125a5565b606001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612118919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561217c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a0919061253b565b91906122c3565b60008054600160281b90046001600160a01b0316906121c4610ded565b905060005b815181101561221a5761220a8360008484815181106121ea576121ea6127d5565b60200260200101516001600160a01b0316610fc89092919063ffffffff16565b61221381612842565b90506121c9565b50506000805465010000000000600160c81b031916905550565b600081831061224357816110a3565b5090919050565b606083156122b95782516000036122b2576001600160a01b0385163b6122b25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d4565b5081611fd9565b611fd98383612326565b60008115806122d0575082155b156122dd575060006110a3565b6122e78385612773565b90508181816122f8576122f861278a565b0490508015801561230857508315155b156110a357604051630cb65c7760e21b815260040160405180910390fd5b8151156123365781518083602001fd5b8060405162461bcd60e51b81526004016105d4919061288d565b8280548282559060005260206000209081019282156123a5579160200282015b828111156123a557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612370565b506123b19291506123b5565b5090565b5b808211156123b157600081556001016123b6565b6001600160a01b03811681146105f857600080fd5b6000602082840312156123f157600080fd5b81356110a3816123ca565b60006020828403121561240e57600080fd5b5035919050565b6000806040838503121561242857600080fd5b8235612433816123ca565b91506020830135612443816123ca565b809150509250929050565b60005b83811015612469578181015183820152602001612451565b50506000910152565b6000815180845261248a81602086016020860161244e565b601f01601f19169290920160200192915050565b82151581526040602082015260006110a06040830184612472565b80151581146105f857600080fd5b6000602082840312156124d957600080fd5b81356110a3816124b9565b600081518084526020808501945080840160005b8381101561251d5781516001600160a01b0316875295820195908201906001016124f8565b509495945050505050565b6020815260006110a360208301846124e4565b60006020828403121561254d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058357610583612554565b60006020828403121561258f57600080fd5b81516110a3816124b9565b8051610a93816123ca565b600060c082840312156125b757600080fd5b60405160c0810181811067ffffffffffffffff821117156125e857634e487b7160e01b600052604160045260246000fd5b6040526125f48361259a565b81526126026020840161259a565b60208201526126136040840161259a565b6040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60006020828403121561265257600080fd5b815160ff811681146110a357600080fd5b600181815b8085111561269e57816000190482111561268457612684612554565b8085161561269157918102915b93841c9390800290612668565b509250929050565b6000826126b557506001610583565b816126c257506000610583565b81600181146126d857600281146126e2576126fe565b6001915050610583565b60ff8411156126f3576126f3612554565b50506001821b610583565b5060208310610133831016604e8410600b8410161715612721575081810a610583565b61272b8383612663565b806000190482111561273f5761273f612554565b029392505050565b60006110a360ff8416836126a6565b60006020828403121561276857600080fd5b81516110a3816123ca565b808202811582820484141761058357610583612554565b634e487b7160e01b600052601260045260246000fd5b6000826127bd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561058357610583612554565b634e487b7160e01b600052603260045260246000fd5b6060815260006127fe60608301866124e4565b6020830194909452506001600160a01b0391909116604090910152919050565b6000806040838503121561283157600080fd5b505080516020909101519092909150565b60006001820161285457612854612554565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6000825161288381846020870161244e565b9190910192915050565b6020815260006110a3602083018461247256fea2646970667358221220c28a6707e8f7699808ec64f0ca659339b54e11791f1d4c0c73190d7429c0435264736f6c63430008120033a26469706673582212209cd5415d8ff2ed730a800f8027a0ea3a3e0557e92665208d08df270eb27db89b64736f6c63430008120033000000000000000000000000bacbbefda6fd1fbf5a2d6a79916f4b6124ed2d490000000000000000000000006a16cfa0df474f3cb1bf5bba595248eefb404e2b000000000000000000000000318d0059efe546b5687fa6744af4339391153981", + "nonce": "0x26", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1722546634, + "chain": 1, + "commit": "0f742b5" +} \ No newline at end of file diff --git a/broadcast/DeploySiloFactory.s.sol/1/run-1722546820.json b/broadcast/DeploySiloFactory.s.sol/1/run-1722546820.json new file mode 100644 index 0000000..9c96a1d --- /dev/null +++ b/broadcast/DeploySiloFactory.s.sol/1/run-1722546820.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0xcb3504fb130a0932d6bf14d2721edd0f023a44f6d1e9bcdfada8770bbfa984d7", + "transactionType": "CREATE", + "contractName": "SiloStrategyFactory", + "contractAddress": "0xbaf4cb2a7182e5bd4abb54c6f116d56c0e8b588c", + "function": null, + "arguments": [ + "0xbACBBefda6fD1FbF5a2d6A79916F4B6124eD2D49", + "0x6A16CFA0dF474f3cB1BF5bBa595248EEfb404e2b", + "0x318d0059efE546b5687FA6744aF4339391153981" + ], + "transaction": { + "from": "0x318d0059efe546b5687fa6744af4339391153981", + "gas": "0x453e1e", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b506040516200405738038062004057833981016040819052620000349162000233565b62000058836001600160a01b031663e99ed41d6200019060201b620006f91760201c565b620000aa5760405162461bcd60e51b815260206004820152601760248201527f696e76616c69642073696c6f207265706f7369746f727900000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000f75760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081b585b9859d95b595b9d60721b6044820152606401620000a1565b6001600160a01b038116620001595760405162461bcd60e51b815260206004820152602160248201527f696e76616c696420706572666f726d616e63652066656520726563697069656e6044820152601d60fa1b6064820152608401620000a1565b6001600160a01b03928316608052600080549284166001600160a01b031993841617905560018054919093169116179055620002b3565b60006001600160a01b0383161580159062000213575082826040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000287565b60e083901b6001600160e01b03199081169116145b9392505050565b6001600160a01b03811681146200023057600080fd5b50565b6000806000606084860312156200024957600080fd5b835162000256816200021a565b602085015190935062000269816200021a565b60408501519092506200027c816200021a565b809150509250925092565b6000602082840312156200029a57600080fd5b81516001600160e01b0319811681146200021357600080fd5b608051613d7a620002dd6000396000818161019b0152818161029401526103c10152613d7a6000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c806388a8d602116200006257806388a8d602146200016a578063d4a22bde146200017e578063e9176c601462000195578063ed27f7c914620001bd57600080fd5b806313d7185014620000985780631f11d06f14620000ec57806328473f4e146200013a5780636a5f1aa21462000151575b600080fd5b620000cf620000a9366004620007aa565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b62000129620000fd366004620007aa565b6001600160a01b0391821660009081526002602090815260408083209385168352929052205416151590565b6040519015158152602001620000e3565b620000cf6200014b36600462000832565b620001d1565b620001686200016236600462000923565b6200056d565b005b600054620000cf906001600160a01b031681565b620001686200018f36600462000923565b62000636565b620000cf7f000000000000000000000000000000000000000000000000000000000000000081565b600154620000cf906001600160a01b031681565b600080546001600160a01b03163314620002085760405162461bcd60e51b8152600401620001ff9062000943565b60405180910390fd5b6001600160a01b038085166000908152600260209081526040808320848a1684529091529020541615620002725760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e4819195c1b1bde595960821b6044820152606401620001ff565b604051630c5a30b960e11b81526001600160a01b0386811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906318b4617290602401602060405180830381865afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000968565b60405163bf27304160e01b81526001600160a01b03878116600483015291925060009183169063bf2730419060240160c060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000988565b5190506001600160a01b038116620003bf5760405162461bcd60e51b815260206004820152600a60248201526977726f6e672073696c6f60b01b6044820152606401620001ff565b7f00000000000000000000000000000000000000000000000000000000000000008282888888604051620003f39062000783565b620004049695949392919062000a27565b604051809103906000f08015801562000421573d6000803e3d6000fd5b506001600160a01b0387811660009081526002602090815260408083208c851684529091529081902080546001600160a01b031916848416908117909155600154915163352f8d5160e11b815291909216600482015291945090636a5f1aa290602401600060405180830381600087803b1580156200049f57600080fd5b505af1158015620004b4573d6000803e3d6000fd5b5050604051630f629b7960e41b81526001600160a01b038b811660048301528616925063f629b7909150602401600060405180830381600087803b158015620004fc57600080fd5b505af115801562000511573d6000803e3d6000fd5b50505050856001600160a01b03167fbbb81e87410172e2219503367e1507048327020e1b07c3cf90e0767372d77a79898585858a8a6040516200055a9695949392919062000a27565b60405180910390a2505095945050505050565b6000546001600160a01b031633146200059a5760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620005e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f762269721c640b876d4178d08b6bad5f4d8c426de583cf39e3d827d7b193b4ee906020015b60405180910390a150565b6000546001600160a01b03163314620006635760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620006aa5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fb8773da123d3f2b88f12592ce68f9d474fa4b3f7cf7ced0e5a72298048613d08906020016200062b565b60006001600160a01b038316158015906200077c575082826040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000741573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000767919062000aae565b60e083901b6001600160e01b03199081169116145b9392505050565b61326a8062000adb83390190565b6001600160a01b0381168114620007a757600080fd5b50565b60008060408385031215620007be57600080fd5b8235620007cb8162000791565b91506020830135620007dd8162000791565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200082a576200082a620007e8565b604052919050565b600080600080600060a086880312156200084b57600080fd5b8535620008588162000791565b94506020868101356200086b8162000791565b945060408701356200087d8162000791565b935060608701356200088f8162000791565b9250608087013567ffffffffffffffff80821115620008ad57600080fd5b818901915089601f830112620008c257600080fd5b813581811115620008d757620008d7620007e8565b620008eb601f8201601f19168501620007fe565b91508082528a848285010111156200090257600080fd5b80848401858401376000848284010152508093505050509295509295909350565b6000602082840312156200093657600080fd5b81356200077c8162000791565b6020808252600b908201526a085b585b9859d95b595b9d60aa1b604082015260600190565b6000602082840312156200097b57600080fd5b81516200077c8162000791565b600060c082840312156200099b57600080fd5b60405160c0810181811067ffffffffffffffff82111715620009c157620009c1620007e8565b6040528251620009d18162000791565b81526020830151620009e38162000791565b60208201526040830151620009f88162000791565b80604083015250606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600060018060a01b03808916835260208189168185015281881660408501528187166060850152818616608085015260c060a0850152845191508160c085015260005b8281101562000a885785810182015185820160e00152810162000a6a565b5050600060e0828501015260e0601f19601f830116840101915050979650505050505050565b60006020828403121562000ac157600080fd5b81516001600160e01b0319811681146200077c57600080fdfe6101206040526000805462ffffff1916622710011790553480156200002357600080fd5b506040516200326a3803806200326a83398101604081905262000046916200065f565b6001600160a01b0383166080523060a0526040518390829082908290620000b3906200007f9084908490339081908190602401620007a4565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200014716565b505073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050506001600160a01b0386811660c05285811660e05284811661010052600280546001600160a01b0319168483161790556200013b90841686600019620001db602090811b62000fc817901c565b5050505050506200083e565b606060008073bb51273d6c746910c7c06fe718f30c936170fed06001600160a01b0316846040516200017a9190620007e7565b600060405180830381855af49150503d8060008114620001b7576040519150601f19603f3d011682016040523d82523d6000602084013e620001bc565b606091505b509150915081620001d4576040513d806000833e8082fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620002359085908390620002b116565b620002ab576040516001600160a01b0384166024820152600060448201526200029f90859063095ea7b360e01b9060640160408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200036916565b620002ab848262000369565b50505050565b6000806000846001600160a01b031684604051620002d09190620007e7565b6000604051808303816000865af19150503d80600081146200030f576040519150601f19603f3d011682016040523d82523d6000602084013e62000314565b606091505b5091509150818015620003425750805115806200034257508080602001905181019062000342919062000805565b801562000360575062000360856200045360201b620010821760201c565b95945050505050565b6000620003c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200046260201b62001091179092919060201c565b9050805160001480620003e9575080806020019051810190620003e9919062000805565b6200044e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6001600160a01b03163b151590565b60606200047384846000856200047b565b949350505050565b606082471015620004de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000445565b600080866001600160a01b03168587604051620004fc9190620007e7565b60006040518083038185875af1925050503d80600081146200053b576040519150601f19603f3d011682016040523d82523d6000602084013e62000540565b606091505b50909250905062000554878383876200055f565b979650505050505050565b60608315620005d3578251600003620005cb576001600160a01b0385163b620005cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000445565b508162000473565b620004738383815115620005ea5781518083602001fd5b8060405162461bcd60e51b815260040162000445919062000829565b80516001600160a01b03811681146200061e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006565781810151838201526020016200063c565b50506000910152565b60008060008060008060c087890312156200067957600080fd5b620006848762000606565b9550620006946020880162000606565b9450620006a46040880162000606565b9350620006b46060880162000606565b9250620006c46080880162000606565b60a08801519092506001600160401b0380821115620006e257600080fd5b818901915089601f830112620006f757600080fd5b8151818111156200070c576200070c62000623565b604051601f8201601f19908116603f0116810190838211818310171562000737576200073762000623565b816040528281528c60208487010111156200075157600080fd5b6200076483602083016020880162000639565b80955050505050509295509295509295565b600081518084526200079081602086016020860162000639565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a06020840152620007c860a084018862000776565b9581166040840152938416606083015250911660809091015292915050565b60008251620007fb81846020870162000639565b9190910192915050565b6000602082840312156200081857600080fd5b81518015158114620001d457600080fd5b602081526000620001d4602083018462000776565b60805160a05160c05160e051610100516128d66200099460003960008181610313015281816110e001528181612098015261212d01526000818161040d0152818161048401528181610643015281816106f70152818161094b01528181611211015281816112cc0152818161137b0152818161177a01528181611d0101526120270152600081816103e6015281816107fb01526109a1015260008181610ade01528181610bcd01528181610c6e01528181610cee01528181610d7701528181610e6401528181610ee4015281816113ed01526116010152600081816104590152818161050601528181610612015281816106cc0152818161076a015281816108920152818161097301528181610b4201528181610c35015281816111e9015281816112960152818161135001528181611489015281816115590152818161174401528181611cd90152611ff801526128d66000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639735b0e3116100de578063d19a3bb811610097578063e655dbd811610071578063e655dbd8146103ce578063e9176c60146103e1578063eb3beb2914610408578063fde813a81461042f5761018e565b8063d19a3bb814610388578063d6968601146103a3578063e5e19b4a146103b65761018e565b80639735b0e3146102e85780639d7fb70c146102fb578063a8d5fd651461030e578063ac00ff261461034d578063af1df25514610360578063c2b18aa0146103735761018e565b8063503160d91161014b578063652109421161012557806365210942146102925780636718835f146102a55780637d969932146102c2578063950b3d73146102d55761018e565b8063503160d9146102365780635476bd72146102495780635d265d3f1461025c5761018e565b806304bd4629146101c9578063372500ab146101ef5780633d6cb575146101f757806346aa2f121461020a57806349317f1d1461021d5780634a5d094314610225575b73bb51273d6c746910c7c06fe718f30c936170fed03660008037600080366000845af43d6000803e8080156101c2573d6000f35b3d6000fd5b005b6101dc6101d73660046123df565b610442565b6040519081526020015b60405180910390f35b6101c7610589565b6101c76102053660046123fc565b6105e7565b6101dc6102183660046123df565b6105fb565b6101dc610a98565b600054610100900461ffff166101dc565b6101c76102443660046123fc565b610ab8565b6101c7610257366004612415565b610ac9565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b17905290516101e69160009161249e565b6101c76102a03660046123df565b610bb8565b6000546102b29060ff1681565b60405190151581526020016101e6565b6000546301000000900461ffff166101dc565b6101c76102e33660046123fc565b610c59565b6101c76102f6366004612415565b610cd9565b6101c76103093660046123fc565b610d5a565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e6565b6101c761035b3660046124c7565b610d62565b600254610335906001600160a01b031681565b61037b610ded565b6040516101e69190612528565b61033573bb51273d6c746910c7c06fe718f30c936170fed081565b6101c76103b13660046123fc565b610e4f565b600054600160281b90046001600160a01b0316610335565b6101c76103dc3660046123df565b610ecf565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6101c761043d3660046123fc565b610fb7565b60405163b8c876b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b8c876b190602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610579919061253b565b610583919061256a565b92915050565b600054600160281b90046001600160a01b031633146105dd5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b6105e56110aa565b565b6105ef61119b565b6105f8816111d2565b50565b60405163a6e08aa160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a6e08aa190604401602060405180830381865afa15801561068c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b0919061257d565b15610a8b5760405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bf2730419060240160c060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906125a5565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612640565b6107f590600a612747565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612756565b6040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906341976e0990602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610907919061253b565b905060008284608001518560600151610920919061256a565b61092a9084612773565b61093491906127a0565b604051630968252160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906312d04a4290604401602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c919061253b565b90506000198103610a2557506000199695505050505050565b81811115610a7e5760008385610a3b85856127c2565b610a459190612773565b610a4f91906127a0565b905080600003610a6757506000979650505050505050565b610a726001826127c2565b98975050505050505050565b5060009695505050505050565b506000919050565b919050565b6000610aa261119b565b610aaa611339565b9050610ab5816115e3565b90565b610ac061119b565b6105f88161172d565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610b2857600080fd5b505afa158015610b3c573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610baa5760405162461bcd60e51b815260206004820152600660248201526508585cdcd95d60d21b60448201526064016105d4565b610bb482826117a9565b5050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506105f8817f000000000000000000000000000000000000000000000000000000000000000061188f565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506105f881611a14565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b50505050610bb48282611aaf565b6105f861119b565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610dc157600080fd5b505afa158015610dd5573d6000803e3d6000fd5b50506000805460ff1916931515939093179092555050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e27575b5050505050905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506105f881611c61565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b5050506001600160a01b0382169050610f955760405162461bcd60e51b815260206004820152601560248201527410b4b731b2b73a34bb32b9a1b7b73a3937b63632b960591b60448201526064016105d4565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610fbf61119b565b6105f881611cc2565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526110198482611d88565b61107c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611072908590611e2f565b61107c8482611e2f565b50505050565b6001600160a01b03163b151590565b60606110a08484600085611f04565b90505b9392505050565b6002546001600160a01b031680156105f857604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611112576111126127d5565b6001600160a01b039283166020918202929092010152604051633111e7b360e01b815290831690633111e7b3906111539084906000199030906004016127eb565b6020604051808303816000875af1158015611172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061253b565b505050565b3330146105e55760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016105d4565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af115801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e919061253b565b5060405163ead5d35960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ead5d359906064015b60408051808303816000875af1158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061281e565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639198e515906024016020604051808303816000875af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061253b565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061257d565b611544576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc919061253b565b9050600061150a60006105fb565b90506127108211801561151e575061271081115b1561154157808211611538576115338261172d565b611541565b6115418161172d565b50505b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cc919061253b565b6115d4611fe1565b6115de919061256a565b905090565b60005460ff166115fd57506000805460ff19166001179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611681919061253b565b9050808211156116f557600054612710906116a590610100900461ffff1683612773565b6116af91906127a0565b6116b982846127c2565b1115610bb45760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b60448201526064016105d4565b81811115610bb45760005461271090611719906301000000900461ffff1683612773565b61172391906127a0565b6116b983836127c2565b6040516307dba22560e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690633edd1128906064016112f7565b600054600160281b90046001600160a01b0316801561183c576117d86001600160a01b03841682600019610fc8565b604051632642a09360e11b81526001600160a01b0384811660048301528381166024830152821690634c85412690604401600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050505b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160281b90046001600160a01b031680156118b0576118b06121a7565b6001600160a01b0383166118c357505050565b6000600180548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118fd575b5050505050905060005b81518110156119e1576000828281518110611942576119426127d5565b6020026020010151905061196c86600019836001600160a01b0316610fc89092919063ffffffff16565b604051632642a09360e11b81526001600160a01b0382811660048301528681166024830152871690634c85412690604401600060405180830381600087803b1580156119b757600080fd5b505af11580156119cb573d6000803e3d6000fd5b5050505050806119da90612842565b9050611925565b5050600080546001600160a01b03909416600160281b0265010000000000600160c81b0319909416939093179092555050565b60008111611a535760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b60448201526064016105d4565b61ffff811115611a915760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b60448201526064016105d4565b6000805461ffff9092166101000262ffff0019909216919091179055565b60008054600160281b90046001600160a01b031690611acc610ded565b905060005b8151811015611c5a57846001600160a01b0316828281518110611af657611af66127d5565b60200260200101516001600160a01b031603611c4a5760018251611b1a91906127c2565b8114611b7a578160018351611b2f91906127c2565b81518110611b3f57611b3f6127d5565b6020026020010151828281518110611b5957611b596127d5565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001600160a01b03831615611c0257611b9e6001600160a01b038616846000610fc8565b604051639cd38be560e01b81526001600160a01b0386811660048301528581166024830152841690639cd38be590604401600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505b8151611c15906001906020850190612350565b506001805480611c2757611c2761285b565b600082815260209020810160001990810180546001600160a01b03191690550190555b611c5381612842565b9050611ad1565b5050505050565b6127108110611ca05760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b60448201526064016105d4565b6000805461ffff90921663010000000264ffff00000019909216919091179055565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af1158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e919061253b565b506105f8611d8382611d7e611fe1565b612234565b6111d2565b6000806000846001600160a01b031684604051611da59190612871565b6000604051808303816000865af19150503d8060008114611de2576040519150601f19603f3d011682016040523d82523d6000602084013e611de7565b606091505b5091509150818015611e11575080511580611e11575080806020019051810190611e11919061257d565b8015611e2657506001600160a01b0385163b15155b95945050505050565b6000611e84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110919092919063ffffffff16565b9050805160001480611ea5575080806020019051810190611ea5919061257d565b6111965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d4565b606082471015611f655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d4565b600080866001600160a01b03168587604051611f819190612871565b60006040518083038185875af1925050503d8060008114611fbe576040519150601f19603f3d011682016040523d82523d6000602084013e611fc3565b606091505b5091509150611fd48783838761224a565b925050505b949350505050565b60405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000916115de917f0000000000000000000000000000000000000000000000000000000000000000169063bf2730419060240160c060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906125a5565b606001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612118919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561217c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a0919061253b565b91906122c3565b60008054600160281b90046001600160a01b0316906121c4610ded565b905060005b815181101561221a5761220a8360008484815181106121ea576121ea6127d5565b60200260200101516001600160a01b0316610fc89092919063ffffffff16565b61221381612842565b90506121c9565b50506000805465010000000000600160c81b031916905550565b600081831061224357816110a3565b5090919050565b606083156122b95782516000036122b2576001600160a01b0385163b6122b25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d4565b5081611fd9565b611fd98383612326565b60008115806122d0575082155b156122dd575060006110a3565b6122e78385612773565b90508181816122f8576122f861278a565b0490508015801561230857508315155b156110a357604051630cb65c7760e21b815260040160405180910390fd5b8151156123365781518083602001fd5b8060405162461bcd60e51b81526004016105d4919061288d565b8280548282559060005260206000209081019282156123a5579160200282015b828111156123a557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612370565b506123b19291506123b5565b5090565b5b808211156123b157600081556001016123b6565b6001600160a01b03811681146105f857600080fd5b6000602082840312156123f157600080fd5b81356110a3816123ca565b60006020828403121561240e57600080fd5b5035919050565b6000806040838503121561242857600080fd5b8235612433816123ca565b91506020830135612443816123ca565b809150509250929050565b60005b83811015612469578181015183820152602001612451565b50506000910152565b6000815180845261248a81602086016020860161244e565b601f01601f19169290920160200192915050565b82151581526040602082015260006110a06040830184612472565b80151581146105f857600080fd5b6000602082840312156124d957600080fd5b81356110a3816124b9565b600081518084526020808501945080840160005b8381101561251d5781516001600160a01b0316875295820195908201906001016124f8565b509495945050505050565b6020815260006110a360208301846124e4565b60006020828403121561254d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058357610583612554565b60006020828403121561258f57600080fd5b81516110a3816124b9565b8051610a93816123ca565b600060c082840312156125b757600080fd5b60405160c0810181811067ffffffffffffffff821117156125e857634e487b7160e01b600052604160045260246000fd5b6040526125f48361259a565b81526126026020840161259a565b60208201526126136040840161259a565b6040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60006020828403121561265257600080fd5b815160ff811681146110a357600080fd5b600181815b8085111561269e57816000190482111561268457612684612554565b8085161561269157918102915b93841c9390800290612668565b509250929050565b6000826126b557506001610583565b816126c257506000610583565b81600181146126d857600281146126e2576126fe565b6001915050610583565b60ff8411156126f3576126f3612554565b50506001821b610583565b5060208310610133831016604e8410600b8410161715612721575081810a610583565b61272b8383612663565b806000190482111561273f5761273f612554565b029392505050565b60006110a360ff8416836126a6565b60006020828403121561276857600080fd5b81516110a3816123ca565b808202811582820484141761058357610583612554565b634e487b7160e01b600052601260045260246000fd5b6000826127bd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561058357610583612554565b634e487b7160e01b600052603260045260246000fd5b6060815260006127fe60608301866124e4565b6020830194909452506001600160a01b0391909116604090910152919050565b6000806040838503121561283157600080fd5b505080516020909101519092909150565b60006001820161285457612854612554565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6000825161288381846020870161244e565b9190910192915050565b6020815260006110a3602083018461247256fea2646970667358221220c28a6707e8f7699808ec64f0ca659339b54e11791f1d4c0c73190d7429c0435264736f6c63430008120033a26469706673582212209cd5415d8ff2ed730a800f8027a0ea3a3e0557e92665208d08df270eb27db89b64736f6c63430008120033000000000000000000000000bacbbefda6fd1fbf5a2d6a79916f4b6124ed2d490000000000000000000000006a16cfa0df474f3cb1bf5bba595248eefb404e2b000000000000000000000000318d0059efe546b5687fa6744af4339391153981", + "nonce": "0x26", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xc4328d", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xcb3504fb130a0932d6bf14d2721edd0f023a44f6d1e9bcdfada8770bbfa984d7", + "transactionIndex": "0x4a", + "blockHash": "0x8730ac1c8e70d24a654ebfde4a669c746a6637fa364ce265dcc3b23b1db8e948", + "blockNumber": "0x137d556", + "gasUsed": "0x354786", + "effectiveGasPrice": "0x223319c64", + "from": "0x318d0059efe546b5687fa6744af4339391153981", + "to": null, + "contractAddress": "0xbaf4cb2a7182e5bd4abb54c6f116d56c0e8b588c" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1722546820, + "chain": 1, + "commit": "0f742b5" +} \ No newline at end of file diff --git a/broadcast/DeploySiloFactory.s.sol/1/run-latest.json b/broadcast/DeploySiloFactory.s.sol/1/run-latest.json index be2ded8..9c96a1d 100644 --- a/broadcast/DeploySiloFactory.s.sol/1/run-latest.json +++ b/broadcast/DeploySiloFactory.s.sol/1/run-latest.json @@ -1,22 +1,22 @@ { "transactions": [ { - "hash": "0x095c17580fe3a7bd3df42ec3879a67d3e92d2eff62f01a501aaa014937d7d73b", + "hash": "0xcb3504fb130a0932d6bf14d2721edd0f023a44f6d1e9bcdfada8770bbfa984d7", "transactionType": "CREATE", "contractName": "SiloStrategyFactory", - "contractAddress": "0xba230f4bf34e48d04e65de9a0f6fe5ecdaa0c17a", + "contractAddress": "0xbaf4cb2a7182e5bd4abb54c6f116d56c0e8b588c", "function": null, "arguments": [ - "0xd998C35B7900b344bbBe6555cc11576942Cf309d", - "0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7", + "0xbACBBefda6fD1FbF5a2d6A79916F4B6124eD2D49", + "0x6A16CFA0dF474f3cB1BF5bBa595248EEfb404e2b", "0x318d0059efE546b5687FA6744aF4339391153981" ], "transaction": { "from": "0x318d0059efe546b5687fa6744af4339391153981", - "gas": "0x453e0f", + "gas": "0x453e1e", "value": "0x0", - "input": "0x60a06040523480156200001157600080fd5b506040516200405738038062004057833981016040819052620000349162000233565b62000058836001600160a01b031663e99ed41d6200019060201b620006f91760201c565b620000aa5760405162461bcd60e51b815260206004820152601760248201527f696e76616c69642073696c6f207265706f7369746f727900000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000f75760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081b585b9859d95b595b9d60721b6044820152606401620000a1565b6001600160a01b038116620001595760405162461bcd60e51b815260206004820152602160248201527f696e76616c696420706572666f726d616e63652066656520726563697069656e6044820152601d60fa1b6064820152608401620000a1565b6001600160a01b03928316608052600080549284166001600160a01b031993841617905560018054919093169116179055620002b3565b60006001600160a01b0383161580159062000213575082826040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000287565b60e083901b6001600160e01b03199081169116145b9392505050565b6001600160a01b03811681146200023057600080fd5b50565b6000806000606084860312156200024957600080fd5b835162000256816200021a565b602085015190935062000269816200021a565b60408501519092506200027c816200021a565b809150509250925092565b6000602082840312156200029a57600080fd5b81516001600160e01b0319811681146200021357600080fd5b608051613d7a620002dd6000396000818161019b0152818161029401526103c10152613d7a6000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c806388a8d602116200006257806388a8d602146200016a578063d4a22bde146200017e578063e9176c601462000195578063ed27f7c914620001bd57600080fd5b806313d7185014620000985780631f11d06f14620000ec57806328473f4e146200013a5780636a5f1aa21462000151575b600080fd5b620000cf620000a9366004620007aa565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b62000129620000fd366004620007aa565b6001600160a01b0391821660009081526002602090815260408083209385168352929052205416151590565b6040519015158152602001620000e3565b620000cf6200014b36600462000832565b620001d1565b620001686200016236600462000923565b6200056d565b005b600054620000cf906001600160a01b031681565b620001686200018f36600462000923565b62000636565b620000cf7f000000000000000000000000000000000000000000000000000000000000000081565b600154620000cf906001600160a01b031681565b600080546001600160a01b03163314620002085760405162461bcd60e51b8152600401620001ff9062000943565b60405180910390fd5b6001600160a01b038085166000908152600260209081526040808320848a1684529091529020541615620002725760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e4819195c1b1bde595960821b6044820152606401620001ff565b604051630c5a30b960e11b81526001600160a01b0386811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906318b4617290602401602060405180830381865afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000968565b60405163bf27304160e01b81526001600160a01b03878116600483015291925060009183169063bf2730419060240160c060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000988565b5190506001600160a01b038116620003bf5760405162461bcd60e51b815260206004820152600a60248201526977726f6e672073696c6f60b01b6044820152606401620001ff565b7f00000000000000000000000000000000000000000000000000000000000000008282888888604051620003f39062000783565b620004049695949392919062000a27565b604051809103906000f08015801562000421573d6000803e3d6000fd5b506001600160a01b0387811660009081526002602090815260408083208c851684529091529081902080546001600160a01b031916848416908117909155600154915163352f8d5160e11b815291909216600482015291945090636a5f1aa290602401600060405180830381600087803b1580156200049f57600080fd5b505af1158015620004b4573d6000803e3d6000fd5b5050604051630f629b7960e41b81526001600160a01b038b811660048301528616925063f629b7909150602401600060405180830381600087803b158015620004fc57600080fd5b505af115801562000511573d6000803e3d6000fd5b50505050856001600160a01b03167fbbb81e87410172e2219503367e1507048327020e1b07c3cf90e0767372d77a79898585858a8a6040516200055a9695949392919062000a27565b60405180910390a2505095945050505050565b6000546001600160a01b031633146200059a5760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620005e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f762269721c640b876d4178d08b6bad5f4d8c426de583cf39e3d827d7b193b4ee906020015b60405180910390a150565b6000546001600160a01b03163314620006635760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620006aa5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fb8773da123d3f2b88f12592ce68f9d474fa4b3f7cf7ced0e5a72298048613d08906020016200062b565b60006001600160a01b038316158015906200077c575082826040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000741573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000767919062000aae565b60e083901b6001600160e01b03199081169116145b9392505050565b61326a8062000adb83390190565b6001600160a01b0381168114620007a757600080fd5b50565b60008060408385031215620007be57600080fd5b8235620007cb8162000791565b91506020830135620007dd8162000791565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200082a576200082a620007e8565b604052919050565b600080600080600060a086880312156200084b57600080fd5b8535620008588162000791565b94506020868101356200086b8162000791565b945060408701356200087d8162000791565b935060608701356200088f8162000791565b9250608087013567ffffffffffffffff80821115620008ad57600080fd5b818901915089601f830112620008c257600080fd5b813581811115620008d757620008d7620007e8565b620008eb601f8201601f19168501620007fe565b91508082528a848285010111156200090257600080fd5b80848401858401376000848284010152508093505050509295509295909350565b6000602082840312156200093657600080fd5b81356200077c8162000791565b6020808252600b908201526a085b585b9859d95b595b9d60aa1b604082015260600190565b6000602082840312156200097b57600080fd5b81516200077c8162000791565b600060c082840312156200099b57600080fd5b60405160c0810181811067ffffffffffffffff82111715620009c157620009c1620007e8565b6040528251620009d18162000791565b81526020830151620009e38162000791565b60208201526040830151620009f88162000791565b80604083015250606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600060018060a01b03808916835260208189168185015281881660408501528187166060850152818616608085015260c060a0850152845191508160c085015260005b8281101562000a885785810182015185820160e00152810162000a6a565b5050600060e0828501015260e0601f19601f830116840101915050979650505050505050565b60006020828403121562000ac157600080fd5b81516001600160e01b0319811681146200077c57600080fdfe6101206040526000805462ffffff1916622710011790553480156200002357600080fd5b506040516200326a3803806200326a83398101604081905262000046916200065f565b6001600160a01b0383166080523060a0526040518390829082908290620000b3906200007f9084908490339081908190602401620007a4565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200014716565b505073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050506001600160a01b0386811660c05285811660e05284811661010052600280546001600160a01b0319168483161790556200013b90841686600019620001db602090811b62000fc817901c565b5050505050506200083e565b606060008073bb51273d6c746910c7c06fe718f30c936170fed06001600160a01b0316846040516200017a9190620007e7565b600060405180830381855af49150503d8060008114620001b7576040519150601f19603f3d011682016040523d82523d6000602084013e620001bc565b606091505b509150915081620001d4576040513d806000833e8082fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620002359085908390620002b116565b620002ab576040516001600160a01b0384166024820152600060448201526200029f90859063095ea7b360e01b9060640160408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200036916565b620002ab848262000369565b50505050565b6000806000846001600160a01b031684604051620002d09190620007e7565b6000604051808303816000865af19150503d80600081146200030f576040519150601f19603f3d011682016040523d82523d6000602084013e62000314565b606091505b5091509150818015620003425750805115806200034257508080602001905181019062000342919062000805565b801562000360575062000360856200045360201b620010821760201c565b95945050505050565b6000620003c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200046260201b62001091179092919060201c565b9050805160001480620003e9575080806020019051810190620003e9919062000805565b6200044e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6001600160a01b03163b151590565b60606200047384846000856200047b565b949350505050565b606082471015620004de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000445565b600080866001600160a01b03168587604051620004fc9190620007e7565b60006040518083038185875af1925050503d80600081146200053b576040519150601f19603f3d011682016040523d82523d6000602084013e62000540565b606091505b50909250905062000554878383876200055f565b979650505050505050565b60608315620005d3578251600003620005cb576001600160a01b0385163b620005cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000445565b508162000473565b620004738383815115620005ea5781518083602001fd5b8060405162461bcd60e51b815260040162000445919062000829565b80516001600160a01b03811681146200061e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006565781810151838201526020016200063c565b50506000910152565b60008060008060008060c087890312156200067957600080fd5b620006848762000606565b9550620006946020880162000606565b9450620006a46040880162000606565b9350620006b46060880162000606565b9250620006c46080880162000606565b60a08801519092506001600160401b0380821115620006e257600080fd5b818901915089601f830112620006f757600080fd5b8151818111156200070c576200070c62000623565b604051601f8201601f19908116603f0116810190838211818310171562000737576200073762000623565b816040528281528c60208487010111156200075157600080fd5b6200076483602083016020880162000639565b80955050505050509295509295509295565b600081518084526200079081602086016020860162000639565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a06020840152620007c860a084018862000776565b9581166040840152938416606083015250911660809091015292915050565b60008251620007fb81846020870162000639565b9190910192915050565b6000602082840312156200081857600080fd5b81518015158114620001d457600080fd5b602081526000620001d4602083018462000776565b60805160a05160c05160e051610100516128d66200099460003960008181610313015281816110e001528181612098015261212d01526000818161040d0152818161048401528181610643015281816106f70152818161094b01528181611211015281816112cc0152818161137b0152818161177a01528181611d0101526120270152600081816103e6015281816107fb01526109a1015260008181610ade01528181610bcd01528181610c6e01528181610cee01528181610d7701528181610e6401528181610ee4015281816113ed01526116010152600081816104590152818161050601528181610612015281816106cc0152818161076a015281816108920152818161097301528181610b4201528181610c35015281816111e9015281816112960152818161135001528181611489015281816115590152818161174401528181611cd90152611ff801526128d66000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639735b0e3116100de578063d19a3bb811610097578063e655dbd811610071578063e655dbd8146103ce578063e9176c60146103e1578063eb3beb2914610408578063fde813a81461042f5761018e565b8063d19a3bb814610388578063d6968601146103a3578063e5e19b4a146103b65761018e565b80639735b0e3146102e85780639d7fb70c146102fb578063a8d5fd651461030e578063ac00ff261461034d578063af1df25514610360578063c2b18aa0146103735761018e565b8063503160d91161014b578063652109421161012557806365210942146102925780636718835f146102a55780637d969932146102c2578063950b3d73146102d55761018e565b8063503160d9146102365780635476bd72146102495780635d265d3f1461025c5761018e565b806304bd4629146101c9578063372500ab146101ef5780633d6cb575146101f757806346aa2f121461020a57806349317f1d1461021d5780634a5d094314610225575b73bb51273d6c746910c7c06fe718f30c936170fed03660008037600080366000845af43d6000803e8080156101c2573d6000f35b3d6000fd5b005b6101dc6101d73660046123df565b610442565b6040519081526020015b60405180910390f35b6101c7610589565b6101c76102053660046123fc565b6105e7565b6101dc6102183660046123df565b6105fb565b6101dc610a98565b600054610100900461ffff166101dc565b6101c76102443660046123fc565b610ab8565b6101c7610257366004612415565b610ac9565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b17905290516101e69160009161249e565b6101c76102a03660046123df565b610bb8565b6000546102b29060ff1681565b60405190151581526020016101e6565b6000546301000000900461ffff166101dc565b6101c76102e33660046123fc565b610c59565b6101c76102f6366004612415565b610cd9565b6101c76103093660046123fc565b610d5a565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e6565b6101c761035b3660046124c7565b610d62565b600254610335906001600160a01b031681565b61037b610ded565b6040516101e69190612528565b61033573bb51273d6c746910c7c06fe718f30c936170fed081565b6101c76103b13660046123fc565b610e4f565b600054600160281b90046001600160a01b0316610335565b6101c76103dc3660046123df565b610ecf565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6101c761043d3660046123fc565b610fb7565b60405163b8c876b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b8c876b190602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610579919061253b565b610583919061256a565b92915050565b600054600160281b90046001600160a01b031633146105dd5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b6105e56110aa565b565b6105ef61119b565b6105f8816111d2565b50565b60405163a6e08aa160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a6e08aa190604401602060405180830381865afa15801561068c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b0919061257d565b15610a8b5760405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bf2730419060240160c060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906125a5565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612640565b6107f590600a612747565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612756565b6040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906341976e0990602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610907919061253b565b905060008284608001518560600151610920919061256a565b61092a9084612773565b61093491906127a0565b604051630968252160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906312d04a4290604401602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c919061253b565b90506000198103610a2557506000199695505050505050565b81811115610a7e5760008385610a3b85856127c2565b610a459190612773565b610a4f91906127a0565b905080600003610a6757506000979650505050505050565b610a726001826127c2565b98975050505050505050565b5060009695505050505050565b506000919050565b919050565b6000610aa261119b565b610aaa611339565b9050610ab5816115e3565b90565b610ac061119b565b6105f88161172d565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610b2857600080fd5b505afa158015610b3c573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610baa5760405162461bcd60e51b815260206004820152600660248201526508585cdcd95d60d21b60448201526064016105d4565b610bb482826117a9565b5050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506105f8817f000000000000000000000000000000000000000000000000000000000000000061188f565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506105f881611a14565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b50505050610bb48282611aaf565b6105f861119b565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610dc157600080fd5b505afa158015610dd5573d6000803e3d6000fd5b50506000805460ff1916931515939093179092555050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e27575b5050505050905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506105f881611c61565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b5050506001600160a01b0382169050610f955760405162461bcd60e51b815260206004820152601560248201527410b4b731b2b73a34bb32b9a1b7b73a3937b63632b960591b60448201526064016105d4565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610fbf61119b565b6105f881611cc2565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526110198482611d88565b61107c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611072908590611e2f565b61107c8482611e2f565b50505050565b6001600160a01b03163b151590565b60606110a08484600085611f04565b90505b9392505050565b6002546001600160a01b031680156105f857604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611112576111126127d5565b6001600160a01b039283166020918202929092010152604051633111e7b360e01b815290831690633111e7b3906111539084906000199030906004016127eb565b6020604051808303816000875af1158015611172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061253b565b505050565b3330146105e55760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016105d4565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af115801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e919061253b565b5060405163ead5d35960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ead5d359906064015b60408051808303816000875af1158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061281e565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639198e515906024016020604051808303816000875af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061253b565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061257d565b611544576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc919061253b565b9050600061150a60006105fb565b90506127108211801561151e575061271081115b1561154157808211611538576115338261172d565b611541565b6115418161172d565b50505b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cc919061253b565b6115d4611fe1565b6115de919061256a565b905090565b60005460ff166115fd57506000805460ff19166001179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611681919061253b565b9050808211156116f557600054612710906116a590610100900461ffff1683612773565b6116af91906127a0565b6116b982846127c2565b1115610bb45760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b60448201526064016105d4565b81811115610bb45760005461271090611719906301000000900461ffff1683612773565b61172391906127a0565b6116b983836127c2565b6040516307dba22560e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690633edd1128906064016112f7565b600054600160281b90046001600160a01b0316801561183c576117d86001600160a01b03841682600019610fc8565b604051632642a09360e11b81526001600160a01b0384811660048301528381166024830152821690634c85412690604401600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050505b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160281b90046001600160a01b031680156118b0576118b06121a7565b6001600160a01b0383166118c357505050565b6000600180548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118fd575b5050505050905060005b81518110156119e1576000828281518110611942576119426127d5565b6020026020010151905061196c86600019836001600160a01b0316610fc89092919063ffffffff16565b604051632642a09360e11b81526001600160a01b0382811660048301528681166024830152871690634c85412690604401600060405180830381600087803b1580156119b757600080fd5b505af11580156119cb573d6000803e3d6000fd5b5050505050806119da90612842565b9050611925565b5050600080546001600160a01b03909416600160281b0265010000000000600160c81b0319909416939093179092555050565b60008111611a535760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b60448201526064016105d4565b61ffff811115611a915760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b60448201526064016105d4565b6000805461ffff9092166101000262ffff0019909216919091179055565b60008054600160281b90046001600160a01b031690611acc610ded565b905060005b8151811015611c5a57846001600160a01b0316828281518110611af657611af66127d5565b60200260200101516001600160a01b031603611c4a5760018251611b1a91906127c2565b8114611b7a578160018351611b2f91906127c2565b81518110611b3f57611b3f6127d5565b6020026020010151828281518110611b5957611b596127d5565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001600160a01b03831615611c0257611b9e6001600160a01b038616846000610fc8565b604051639cd38be560e01b81526001600160a01b0386811660048301528581166024830152841690639cd38be590604401600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505b8151611c15906001906020850190612350565b506001805480611c2757611c2761285b565b600082815260209020810160001990810180546001600160a01b03191690550190555b611c5381612842565b9050611ad1565b5050505050565b6127108110611ca05760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b60448201526064016105d4565b6000805461ffff90921663010000000264ffff00000019909216919091179055565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af1158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e919061253b565b506105f8611d8382611d7e611fe1565b612234565b6111d2565b6000806000846001600160a01b031684604051611da59190612871565b6000604051808303816000865af19150503d8060008114611de2576040519150601f19603f3d011682016040523d82523d6000602084013e611de7565b606091505b5091509150818015611e11575080511580611e11575080806020019051810190611e11919061257d565b8015611e2657506001600160a01b0385163b15155b95945050505050565b6000611e84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110919092919063ffffffff16565b9050805160001480611ea5575080806020019051810190611ea5919061257d565b6111965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d4565b606082471015611f655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d4565b600080866001600160a01b03168587604051611f819190612871565b60006040518083038185875af1925050503d8060008114611fbe576040519150601f19603f3d011682016040523d82523d6000602084013e611fc3565b606091505b5091509150611fd48783838761224a565b925050505b949350505050565b60405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000916115de917f0000000000000000000000000000000000000000000000000000000000000000169063bf2730419060240160c060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906125a5565b606001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612118919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561217c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a0919061253b565b91906122c3565b60008054600160281b90046001600160a01b0316906121c4610ded565b905060005b815181101561221a5761220a8360008484815181106121ea576121ea6127d5565b60200260200101516001600160a01b0316610fc89092919063ffffffff16565b61221381612842565b90506121c9565b50506000805465010000000000600160c81b031916905550565b600081831061224357816110a3565b5090919050565b606083156122b95782516000036122b2576001600160a01b0385163b6122b25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d4565b5081611fd9565b611fd98383612326565b60008115806122d0575082155b156122dd575060006110a3565b6122e78385612773565b90508181816122f8576122f861278a565b0490508015801561230857508315155b156110a357604051630cb65c7760e21b815260040160405180910390fd5b8151156123365781518083602001fd5b8060405162461bcd60e51b81526004016105d4919061288d565b8280548282559060005260206000209081019282156123a5579160200282015b828111156123a557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612370565b506123b19291506123b5565b5090565b5b808211156123b157600081556001016123b6565b6001600160a01b03811681146105f857600080fd5b6000602082840312156123f157600080fd5b81356110a3816123ca565b60006020828403121561240e57600080fd5b5035919050565b6000806040838503121561242857600080fd5b8235612433816123ca565b91506020830135612443816123ca565b809150509250929050565b60005b83811015612469578181015183820152602001612451565b50506000910152565b6000815180845261248a81602086016020860161244e565b601f01601f19169290920160200192915050565b82151581526040602082015260006110a06040830184612472565b80151581146105f857600080fd5b6000602082840312156124d957600080fd5b81356110a3816124b9565b600081518084526020808501945080840160005b8381101561251d5781516001600160a01b0316875295820195908201906001016124f8565b509495945050505050565b6020815260006110a360208301846124e4565b60006020828403121561254d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058357610583612554565b60006020828403121561258f57600080fd5b81516110a3816124b9565b8051610a93816123ca565b600060c082840312156125b757600080fd5b60405160c0810181811067ffffffffffffffff821117156125e857634e487b7160e01b600052604160045260246000fd5b6040526125f48361259a565b81526126026020840161259a565b60208201526126136040840161259a565b6040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60006020828403121561265257600080fd5b815160ff811681146110a357600080fd5b600181815b8085111561269e57816000190482111561268457612684612554565b8085161561269157918102915b93841c9390800290612668565b509250929050565b6000826126b557506001610583565b816126c257506000610583565b81600181146126d857600281146126e2576126fe565b6001915050610583565b60ff8411156126f3576126f3612554565b50506001821b610583565b5060208310610133831016604e8410600b8410161715612721575081810a610583565b61272b8383612663565b806000190482111561273f5761273f612554565b029392505050565b60006110a360ff8416836126a6565b60006020828403121561276857600080fd5b81516110a3816123ca565b808202811582820484141761058357610583612554565b634e487b7160e01b600052601260045260246000fd5b6000826127bd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561058357610583612554565b634e487b7160e01b600052603260045260246000fd5b6060815260006127fe60608301866124e4565b6020830194909452506001600160a01b0391909116604090910152919050565b6000806040838503121561283157600080fd5b505080516020909101519092909150565b60006001820161285457612854612554565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6000825161288381846020870161244e565b9190910192915050565b6020815260006110a3602083018461247256fea2646970667358221220eb1faec7fc539645477d0f4c8b899fb3c9f99c5d95c0d049ad184882e76a6bf364736f6c63430008120033a2646970667358221220f762a82e33bca89b4aad0c367fb9b8b587cf14a9016b301ad89a072fabdaf99f64736f6c63430008120033000000000000000000000000d998c35b7900b344bbbe6555cc11576942cf309d00000000000000000000000016388463d60ffe0661cf7f1f31a7d658ac790ff7000000000000000000000000318d0059efe546b5687fa6744af4339391153981", - "nonce": "0x23", + "input": "0x60a06040523480156200001157600080fd5b506040516200405738038062004057833981016040819052620000349162000233565b62000058836001600160a01b031663e99ed41d6200019060201b620006f91760201c565b620000aa5760405162461bcd60e51b815260206004820152601760248201527f696e76616c69642073696c6f207265706f7369746f727900000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000f75760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081b585b9859d95b595b9d60721b6044820152606401620000a1565b6001600160a01b038116620001595760405162461bcd60e51b815260206004820152602160248201527f696e76616c696420706572666f726d616e63652066656520726563697069656e6044820152601d60fa1b6064820152608401620000a1565b6001600160a01b03928316608052600080549284166001600160a01b031993841617905560018054919093169116179055620002b3565b60006001600160a01b0383161580159062000213575082826040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000287565b60e083901b6001600160e01b03199081169116145b9392505050565b6001600160a01b03811681146200023057600080fd5b50565b6000806000606084860312156200024957600080fd5b835162000256816200021a565b602085015190935062000269816200021a565b60408501519092506200027c816200021a565b809150509250925092565b6000602082840312156200029a57600080fd5b81516001600160e01b0319811681146200021357600080fd5b608051613d7a620002dd6000396000818161019b0152818161029401526103c10152613d7a6000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c806388a8d602116200006257806388a8d602146200016a578063d4a22bde146200017e578063e9176c601462000195578063ed27f7c914620001bd57600080fd5b806313d7185014620000985780631f11d06f14620000ec57806328473f4e146200013a5780636a5f1aa21462000151575b600080fd5b620000cf620000a9366004620007aa565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b62000129620000fd366004620007aa565b6001600160a01b0391821660009081526002602090815260408083209385168352929052205416151590565b6040519015158152602001620000e3565b620000cf6200014b36600462000832565b620001d1565b620001686200016236600462000923565b6200056d565b005b600054620000cf906001600160a01b031681565b620001686200018f36600462000923565b62000636565b620000cf7f000000000000000000000000000000000000000000000000000000000000000081565b600154620000cf906001600160a01b031681565b600080546001600160a01b03163314620002085760405162461bcd60e51b8152600401620001ff9062000943565b60405180910390fd5b6001600160a01b038085166000908152600260209081526040808320848a1684529091529020541615620002725760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e4819195c1b1bde595960821b6044820152606401620001ff565b604051630c5a30b960e11b81526001600160a01b0386811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906318b4617290602401602060405180830381865afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000968565b60405163bf27304160e01b81526001600160a01b03878116600483015291925060009183169063bf2730419060240160c060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000988565b5190506001600160a01b038116620003bf5760405162461bcd60e51b815260206004820152600a60248201526977726f6e672073696c6f60b01b6044820152606401620001ff565b7f00000000000000000000000000000000000000000000000000000000000000008282888888604051620003f39062000783565b620004049695949392919062000a27565b604051809103906000f08015801562000421573d6000803e3d6000fd5b506001600160a01b0387811660009081526002602090815260408083208c851684529091529081902080546001600160a01b031916848416908117909155600154915163352f8d5160e11b815291909216600482015291945090636a5f1aa290602401600060405180830381600087803b1580156200049f57600080fd5b505af1158015620004b4573d6000803e3d6000fd5b5050604051630f629b7960e41b81526001600160a01b038b811660048301528616925063f629b7909150602401600060405180830381600087803b158015620004fc57600080fd5b505af115801562000511573d6000803e3d6000fd5b50505050856001600160a01b03167fbbb81e87410172e2219503367e1507048327020e1b07c3cf90e0767372d77a79898585858a8a6040516200055a9695949392919062000a27565b60405180910390a2505095945050505050565b6000546001600160a01b031633146200059a5760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620005e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f762269721c640b876d4178d08b6bad5f4d8c426de583cf39e3d827d7b193b4ee906020015b60405180910390a150565b6000546001600160a01b03163314620006635760405162461bcd60e51b8152600401620001ff9062000943565b6001600160a01b038116620006aa5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401620001ff565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fb8773da123d3f2b88f12592ce68f9d474fa4b3f7cf7ced0e5a72298048613d08906020016200062b565b60006001600160a01b038316158015906200077c575082826040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000741573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000767919062000aae565b60e083901b6001600160e01b03199081169116145b9392505050565b61326a8062000adb83390190565b6001600160a01b0381168114620007a757600080fd5b50565b60008060408385031215620007be57600080fd5b8235620007cb8162000791565b91506020830135620007dd8162000791565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200082a576200082a620007e8565b604052919050565b600080600080600060a086880312156200084b57600080fd5b8535620008588162000791565b94506020868101356200086b8162000791565b945060408701356200087d8162000791565b935060608701356200088f8162000791565b9250608087013567ffffffffffffffff80821115620008ad57600080fd5b818901915089601f830112620008c257600080fd5b813581811115620008d757620008d7620007e8565b620008eb601f8201601f19168501620007fe565b91508082528a848285010111156200090257600080fd5b80848401858401376000848284010152508093505050509295509295909350565b6000602082840312156200093657600080fd5b81356200077c8162000791565b6020808252600b908201526a085b585b9859d95b595b9d60aa1b604082015260600190565b6000602082840312156200097b57600080fd5b81516200077c8162000791565b600060c082840312156200099b57600080fd5b60405160c0810181811067ffffffffffffffff82111715620009c157620009c1620007e8565b6040528251620009d18162000791565b81526020830151620009e38162000791565b60208201526040830151620009f88162000791565b80604083015250606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600060018060a01b03808916835260208189168185015281881660408501528187166060850152818616608085015260c060a0850152845191508160c085015260005b8281101562000a885785810182015185820160e00152810162000a6a565b5050600060e0828501015260e0601f19601f830116840101915050979650505050505050565b60006020828403121562000ac157600080fd5b81516001600160e01b0319811681146200077c57600080fdfe6101206040526000805462ffffff1916622710011790553480156200002357600080fd5b506040516200326a3803806200326a83398101604081905262000046916200065f565b6001600160a01b0383166080523060a0526040518390829082908290620000b3906200007f9084908490339081908190602401620007a4565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200014716565b505073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050506001600160a01b0386811660c05285811660e05284811661010052600280546001600160a01b0319168483161790556200013b90841686600019620001db602090811b62000fc817901c565b5050505050506200083e565b606060008073bb51273d6c746910c7c06fe718f30c936170fed06001600160a01b0316846040516200017a9190620007e7565b600060405180830381855af49150503d8060008114620001b7576040519150601f19603f3d011682016040523d82523d6000602084013e620001bc565b606091505b509150915081620001d4576040513d806000833e8082fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620002359085908390620002b116565b620002ab576040516001600160a01b0384166024820152600060448201526200029f90859063095ea7b360e01b9060640160408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200036916565b620002ab848262000369565b50505050565b6000806000846001600160a01b031684604051620002d09190620007e7565b6000604051808303816000865af19150503d80600081146200030f576040519150601f19603f3d011682016040523d82523d6000602084013e62000314565b606091505b5091509150818015620003425750805115806200034257508080602001905181019062000342919062000805565b801562000360575062000360856200045360201b620010821760201c565b95945050505050565b6000620003c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200046260201b62001091179092919060201c565b9050805160001480620003e9575080806020019051810190620003e9919062000805565b6200044e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6001600160a01b03163b151590565b60606200047384846000856200047b565b949350505050565b606082471015620004de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000445565b600080866001600160a01b03168587604051620004fc9190620007e7565b60006040518083038185875af1925050503d80600081146200053b576040519150601f19603f3d011682016040523d82523d6000602084013e62000540565b606091505b50909250905062000554878383876200055f565b979650505050505050565b60608315620005d3578251600003620005cb576001600160a01b0385163b620005cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000445565b508162000473565b620004738383815115620005ea5781518083602001fd5b8060405162461bcd60e51b815260040162000445919062000829565b80516001600160a01b03811681146200061e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006565781810151838201526020016200063c565b50506000910152565b60008060008060008060c087890312156200067957600080fd5b620006848762000606565b9550620006946020880162000606565b9450620006a46040880162000606565b9350620006b46060880162000606565b9250620006c46080880162000606565b60a08801519092506001600160401b0380821115620006e257600080fd5b818901915089601f830112620006f757600080fd5b8151818111156200070c576200070c62000623565b604051601f8201601f19908116603f0116810190838211818310171562000737576200073762000623565b816040528281528c60208487010111156200075157600080fd5b6200076483602083016020880162000639565b80955050505050509295509295509295565b600081518084526200079081602086016020860162000639565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a06020840152620007c860a084018862000776565b9581166040840152938416606083015250911660809091015292915050565b60008251620007fb81846020870162000639565b9190910192915050565b6000602082840312156200081857600080fd5b81518015158114620001d457600080fd5b602081526000620001d4602083018462000776565b60805160a05160c05160e051610100516128d66200099460003960008181610313015281816110e001528181612098015261212d01526000818161040d0152818161048401528181610643015281816106f70152818161094b01528181611211015281816112cc0152818161137b0152818161177a01528181611d0101526120270152600081816103e6015281816107fb01526109a1015260008181610ade01528181610bcd01528181610c6e01528181610cee01528181610d7701528181610e6401528181610ee4015281816113ed01526116010152600081816104590152818161050601528181610612015281816106cc0152818161076a015281816108920152818161097301528181610b4201528181610c35015281816111e9015281816112960152818161135001528181611489015281816115590152818161174401528181611cd90152611ff801526128d66000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639735b0e3116100de578063d19a3bb811610097578063e655dbd811610071578063e655dbd8146103ce578063e9176c60146103e1578063eb3beb2914610408578063fde813a81461042f5761018e565b8063d19a3bb814610388578063d6968601146103a3578063e5e19b4a146103b65761018e565b80639735b0e3146102e85780639d7fb70c146102fb578063a8d5fd651461030e578063ac00ff261461034d578063af1df25514610360578063c2b18aa0146103735761018e565b8063503160d91161014b578063652109421161012557806365210942146102925780636718835f146102a55780637d969932146102c2578063950b3d73146102d55761018e565b8063503160d9146102365780635476bd72146102495780635d265d3f1461025c5761018e565b806304bd4629146101c9578063372500ab146101ef5780633d6cb575146101f757806346aa2f121461020a57806349317f1d1461021d5780634a5d094314610225575b73bb51273d6c746910c7c06fe718f30c936170fed03660008037600080366000845af43d6000803e8080156101c2573d6000f35b3d6000fd5b005b6101dc6101d73660046123df565b610442565b6040519081526020015b60405180910390f35b6101c7610589565b6101c76102053660046123fc565b6105e7565b6101dc6102183660046123df565b6105fb565b6101dc610a98565b600054610100900461ffff166101dc565b6101c76102443660046123fc565b610ab8565b6101c7610257366004612415565b610ac9565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b17905290516101e69160009161249e565b6101c76102a03660046123df565b610bb8565b6000546102b29060ff1681565b60405190151581526020016101e6565b6000546301000000900461ffff166101dc565b6101c76102e33660046123fc565b610c59565b6101c76102f6366004612415565b610cd9565b6101c76103093660046123fc565b610d5a565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e6565b6101c761035b3660046124c7565b610d62565b600254610335906001600160a01b031681565b61037b610ded565b6040516101e69190612528565b61033573bb51273d6c746910c7c06fe718f30c936170fed081565b6101c76103b13660046123fc565b610e4f565b600054600160281b90046001600160a01b0316610335565b6101c76103dc3660046123df565b610ecf565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6103357f000000000000000000000000000000000000000000000000000000000000000081565b6101c761043d3660046123fc565b610fb7565b60405163b8c876b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b8c876b190602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610579919061253b565b610583919061256a565b92915050565b600054600160281b90046001600160a01b031633146105dd5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b6105e56110aa565b565b6105ef61119b565b6105f8816111d2565b50565b60405163a6e08aa160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a6e08aa190604401602060405180830381865afa15801561068c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b0919061257d565b15610a8b5760405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bf2730419060240160c060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906125a5565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612640565b6107f590600a612747565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612756565b6040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906341976e0990602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610907919061253b565b905060008284608001518560600151610920919061256a565b61092a9084612773565b61093491906127a0565b604051630968252160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906312d04a4290604401602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c919061253b565b90506000198103610a2557506000199695505050505050565b81811115610a7e5760008385610a3b85856127c2565b610a459190612773565b610a4f91906127a0565b905080600003610a6757506000979650505050505050565b610a726001826127c2565b98975050505050505050565b5060009695505050505050565b506000919050565b919050565b6000610aa261119b565b610aaa611339565b9050610ab5816115e3565b90565b610ac061119b565b6105f88161172d565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610b2857600080fd5b505afa158015610b3c573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610baa5760405162461bcd60e51b815260206004820152600660248201526508585cdcd95d60d21b60448201526064016105d4565b610bb482826117a9565b5050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506105f8817f000000000000000000000000000000000000000000000000000000000000000061188f565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506105f881611a14565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b50505050610bb48282611aaf565b6105f861119b565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610dc157600080fd5b505afa158015610dd5573d6000803e3d6000fd5b50506000805460ff1916931515939093179092555050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e27575b5050505050905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506105f881611c61565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b5050506001600160a01b0382169050610f955760405162461bcd60e51b815260206004820152601560248201527410b4b731b2b73a34bb32b9a1b7b73a3937b63632b960591b60448201526064016105d4565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610fbf61119b565b6105f881611cc2565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526110198482611d88565b61107c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611072908590611e2f565b61107c8482611e2f565b50505050565b6001600160a01b03163b151590565b60606110a08484600085611f04565b90505b9392505050565b6002546001600160a01b031680156105f857604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611112576111126127d5565b6001600160a01b039283166020918202929092010152604051633111e7b360e01b815290831690633111e7b3906111539084906000199030906004016127eb565b6020604051808303816000875af1158015611172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061253b565b505050565b3330146105e55760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016105d4565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af115801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e919061253b565b5060405163ead5d35960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ead5d359906064015b60408051808303816000875af1158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611196919061281e565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690639198e515906024016020604051808303816000875af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061253b565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061257d565b611544576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc919061253b565b9050600061150a60006105fb565b90506127108211801561151e575061271081115b1561154157808211611538576115338261172d565b611541565b6115418161172d565b50505b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cc919061253b565b6115d4611fe1565b6115de919061256a565b905090565b60005460ff166115fd57506000805460ff19166001179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611681919061253b565b9050808211156116f557600054612710906116a590610100900461ffff1683612773565b6116af91906127a0565b6116b982846127c2565b1115610bb45760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b60448201526064016105d4565b81811115610bb45760005461271090611719906301000000900461ffff1683612773565b61172391906127a0565b6116b983836127c2565b6040516307dba22560e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690633edd1128906064016112f7565b600054600160281b90046001600160a01b0316801561183c576117d86001600160a01b03841682600019610fc8565b604051632642a09360e11b81526001600160a01b0384811660048301528381166024830152821690634c85412690604401600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050505b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160281b90046001600160a01b031680156118b0576118b06121a7565b6001600160a01b0383166118c357505050565b6000600180548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118fd575b5050505050905060005b81518110156119e1576000828281518110611942576119426127d5565b6020026020010151905061196c86600019836001600160a01b0316610fc89092919063ffffffff16565b604051632642a09360e11b81526001600160a01b0382811660048301528681166024830152871690634c85412690604401600060405180830381600087803b1580156119b757600080fd5b505af11580156119cb573d6000803e3d6000fd5b5050505050806119da90612842565b9050611925565b5050600080546001600160a01b03909416600160281b0265010000000000600160c81b0319909416939093179092555050565b60008111611a535760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b60448201526064016105d4565b61ffff811115611a915760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b60448201526064016105d4565b6000805461ffff9092166101000262ffff0019909216919091179055565b60008054600160281b90046001600160a01b031690611acc610ded565b905060005b8151811015611c5a57846001600160a01b0316828281518110611af657611af66127d5565b60200260200101516001600160a01b031603611c4a5760018251611b1a91906127c2565b8114611b7a578160018351611b2f91906127c2565b81518110611b3f57611b3f6127d5565b6020026020010151828281518110611b5957611b596127d5565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001600160a01b03831615611c0257611b9e6001600160a01b038616846000610fc8565b604051639cd38be560e01b81526001600160a01b0386811660048301528581166024830152841690639cd38be590604401600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505b8151611c15906001906020850190612350565b506001805480611c2757611c2761285b565b600082815260209020810160001990810180546001600160a01b03191690550190555b611c5381612842565b9050611ad1565b5050505050565b6127108110611ca05760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b60448201526064016105d4565b6000805461ffff90921663010000000264ffff00000019909216919091179055565b604051639198e51560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639198e515906024016020604051808303816000875af1158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e919061253b565b506105f8611d8382611d7e611fe1565b612234565b6111d2565b6000806000846001600160a01b031684604051611da59190612871565b6000604051808303816000865af19150503d8060008114611de2576040519150601f19603f3d011682016040523d82523d6000602084013e611de7565b606091505b5091509150818015611e11575080511580611e11575080806020019051810190611e11919061257d565b8015611e2657506001600160a01b0385163b15155b95945050505050565b6000611e84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110919092919063ffffffff16565b9050805160001480611ea5575080806020019051810190611ea5919061257d565b6111965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d4565b606082471015611f655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d4565b600080866001600160a01b03168587604051611f819190612871565b60006040518083038185875af1925050503d8060008114611fbe576040519150601f19603f3d011682016040523d82523d6000602084013e611fc3565b606091505b5091509150611fd48783838761224a565b925050505b949350505050565b60405163bf27304160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000916115de917f0000000000000000000000000000000000000000000000000000000000000000169063bf2730419060240160c060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906125a5565b606001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612118919061253b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561217c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a0919061253b565b91906122c3565b60008054600160281b90046001600160a01b0316906121c4610ded565b905060005b815181101561221a5761220a8360008484815181106121ea576121ea6127d5565b60200260200101516001600160a01b0316610fc89092919063ffffffff16565b61221381612842565b90506121c9565b50506000805465010000000000600160c81b031916905550565b600081831061224357816110a3565b5090919050565b606083156122b95782516000036122b2576001600160a01b0385163b6122b25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d4565b5081611fd9565b611fd98383612326565b60008115806122d0575082155b156122dd575060006110a3565b6122e78385612773565b90508181816122f8576122f861278a565b0490508015801561230857508315155b156110a357604051630cb65c7760e21b815260040160405180910390fd5b8151156123365781518083602001fd5b8060405162461bcd60e51b81526004016105d4919061288d565b8280548282559060005260206000209081019282156123a5579160200282015b828111156123a557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612370565b506123b19291506123b5565b5090565b5b808211156123b157600081556001016123b6565b6001600160a01b03811681146105f857600080fd5b6000602082840312156123f157600080fd5b81356110a3816123ca565b60006020828403121561240e57600080fd5b5035919050565b6000806040838503121561242857600080fd5b8235612433816123ca565b91506020830135612443816123ca565b809150509250929050565b60005b83811015612469578181015183820152602001612451565b50506000910152565b6000815180845261248a81602086016020860161244e565b601f01601f19169290920160200192915050565b82151581526040602082015260006110a06040830184612472565b80151581146105f857600080fd5b6000602082840312156124d957600080fd5b81356110a3816124b9565b600081518084526020808501945080840160005b8381101561251d5781516001600160a01b0316875295820195908201906001016124f8565b509495945050505050565b6020815260006110a360208301846124e4565b60006020828403121561254d57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058357610583612554565b60006020828403121561258f57600080fd5b81516110a3816124b9565b8051610a93816123ca565b600060c082840312156125b757600080fd5b60405160c0810181811067ffffffffffffffff821117156125e857634e487b7160e01b600052604160045260246000fd5b6040526125f48361259a565b81526126026020840161259a565b60208201526126136040840161259a565b6040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60006020828403121561265257600080fd5b815160ff811681146110a357600080fd5b600181815b8085111561269e57816000190482111561268457612684612554565b8085161561269157918102915b93841c9390800290612668565b509250929050565b6000826126b557506001610583565b816126c257506000610583565b81600181146126d857600281146126e2576126fe565b6001915050610583565b60ff8411156126f3576126f3612554565b50506001821b610583565b5060208310610133831016604e8410600b8410161715612721575081810a610583565b61272b8383612663565b806000190482111561273f5761273f612554565b029392505050565b60006110a360ff8416836126a6565b60006020828403121561276857600080fd5b81516110a3816123ca565b808202811582820484141761058357610583612554565b634e487b7160e01b600052601260045260246000fd5b6000826127bd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561058357610583612554565b634e487b7160e01b600052603260045260246000fd5b6060815260006127fe60608301866124e4565b6020830194909452506001600160a01b0391909116604090910152919050565b6000806040838503121561283157600080fd5b505080516020909101519092909150565b60006001820161285457612854612554565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6000825161288381846020870161244e565b9190910192915050565b6020815260006110a3602083018461247256fea2646970667358221220c28a6707e8f7699808ec64f0ca659339b54e11791f1d4c0c73190d7429c0435264736f6c63430008120033a26469706673582212209cd5415d8ff2ed730a800f8027a0ea3a3e0557e92665208d08df270eb27db89b64736f6c63430008120033000000000000000000000000bacbbefda6fd1fbf5a2d6a79916f4b6124ed2d490000000000000000000000006a16cfa0df474f3cb1bf5bba595248eefb404e2b000000000000000000000000318d0059efe546b5687fa6744af4339391153981", + "nonce": "0x26", "chainId": "0x1" }, "additionalContracts": [], @@ -26,25 +26,25 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x64dbd5", + "cumulativeGasUsed": "0xc4328d", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x0", - "transactionHash": "0x095c17580fe3a7bd3df42ec3879a67d3e92d2eff62f01a501aaa014937d7d73b", - "transactionIndex": "0x12", - "blockHash": "0x09111395d678ed9b2df0c7da63e002b0072dd4ca76beca12ec42e42b49522136", - "blockNumber": "0x134571e", - "gasUsed": "0x35477a", - "effectiveGasPrice": "0xa7e6440b", + "transactionHash": "0xcb3504fb130a0932d6bf14d2721edd0f023a44f6d1e9bcdfada8770bbfa984d7", + "transactionIndex": "0x4a", + "blockHash": "0x8730ac1c8e70d24a654ebfde4a669c746a6637fa364ce265dcc3b23b1db8e948", + "blockNumber": "0x137d556", + "gasUsed": "0x354786", + "effectiveGasPrice": "0x223319c64", "from": "0x318d0059efe546b5687fa6744af4339391153981", "to": null, - "contractAddress": "0xba230f4bf34e48d04e65de9a0f6fe5ecdaa0c17a" + "contractAddress": "0xbaf4cb2a7182e5bd4abb54c6f116d56c0e8b588c" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1719785307, + "timestamp": 1722546820, "chain": 1, - "commit": "db3b5fd" + "commit": "0f742b5" } \ No newline at end of file diff --git a/script/DeploySiloFactory.s.sol b/script/DeploySiloFactory.s.sol index fb5cf3d..d980463 100644 --- a/script/DeploySiloFactory.s.sol +++ b/script/DeploySiloFactory.s.sol @@ -11,18 +11,25 @@ import "forge-std/Script.sol"; // forge script script/DeploySiloFactory.s.sol:DeploySiloFactory --verify --legacy --etherscan-api-key $KEY --rpc-url $RPC_URL --broadcast // verify: -// --constructor-args $(cast abi-encode "constructor(address,address,address)" 0x8658047e48CC09161f4152c79155Dac1d710Ff0a 0x1dcAD21ccD74b7A8A7BC7D19894de8Af41D9ea03 0x5C1E6bA712e9FC3399Ee7d5824B6Ec68A0363C02) +// --constructor-args $(cast abi-encode "constructor(address,address,address)" 0xbACBBefda6fD1FbF5a2d6A79916F4B6124eD2D49 0x6A16CFA0dF474f3cB1BF5bBa595248EEfb404e2b 0x318d0059efE546b5687FA6744aF4339391153981) // forge verify-contract --etherscan-api-key $KEY --watch --chain-id 42161 --compiler-version v0.8.18+commit.87f61d96 --verifier-url https://api.arbiscan.io/api 0x9a5eca1b228e47a15BD9fab07716a9FcE9Eebfb5 src/ERC404/BaseERC404.sol:BaseERC404 +// - acceptManagement() +// - setEmergencyAdmin() to 0x6346282DB8323A54E840c6C772B4399C9c655C0d +// - setMaxProfitUnlockTime to 86400 +// - setKeeper to 0xE0D19f6b240659da8E87ABbB73446E7B4346Baee +// - addToken for ARB => USDC.e + contract DeploySiloFactory is Script { - // address private constant MANAGEMENT = 0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7; // mainnet - address private constant MANAGEMENT = 0x1dcAD21ccD74b7A8A7BC7D19894de8Af41D9ea03; // arbitrum + address private constant MANAGEMENT = 0x6A16CFA0dF474f3cB1BF5bBa595248EEfb404e2b; // mainnet + // address private constant MANAGEMENT = 0x1dcAD21ccD74b7A8A7BC7D19894de8Af41D9ea03; // arbitrum address private constant PERFORMANCE_FEE_RECIPIENT = 0x318d0059efE546b5687FA6744aF4339391153981; // yearn deployer // ISiloRepository private constant REPO = ISiloRepository(0xBCd67f35c7A2F212db0AD7f68fC773b5aC15377c); // https://devdocs.silo.finance/security/smart-contracts#silo-llama-ethereum // ISiloRepository private constant REPO = ISiloRepository(0xd998C35B7900b344bbBe6555cc11576942Cf309d); // https://devdocs.silo.finance/security/smart-contracts#silo-legacy-ethereum - ISiloRepository private constant REPO = ISiloRepository(0x8658047e48CC09161f4152c79155Dac1d710Ff0a); // https://devdocs.silo.finance/security/smart-contracts#silo-arbitrum + ISiloRepository private constant REPO = ISiloRepository(0xbACBBefda6fD1FbF5a2d6A79916F4B6124eD2D49); // https://devdocs.silo.finance/security/smart-contracts#silo-legacy-ethereum + // ISiloRepository private constant REPO = ISiloRepository(0x8658047e48CC09161f4152c79155Dac1d710Ff0a); // https://devdocs.silo.finance/security/smart-contracts#silo-arbitrum function run() external { vm.startBroadcast(vm.envUint("PRIVATE_KEY")); diff --git a/src/strategies/silo/deployments/README.md b/src/strategies/silo/deployments/README.md index 04edb03..60fd850 100644 --- a/src/strategies/silo/deployments/README.md +++ b/src/strategies/silo/deployments/README.md @@ -1,6 +1,24 @@ ------------ NOTES ------------ poolpi deployments - https://hackmd.io/qyPSHxCWT-G4jfMvAPzSqg +yHaaS Network Guide - https://hackmd.io/@mil0xeth/B1Ux3cLKR + +Set up (arbitrum): + - acceptManagement() from committee multisig + - setEmergencyAdmin() to 0x6346282DB8323A54E840c6C772B4399C9c655C0d + - setMaxProfitUnlockTime to 86400 (1 day) + - setTradeFactory to whatever the trade factory address is... + - addToken for ARB => USDC.e + - setKeeper to 0xE0D19f6b240659da8E87ABbB73446E7B4346Baee (see yHaaS Network Guide) + +Set up (mainnet): + - acceptManagement() from committee multisig + - setEmergencyAdmin() to XXX + - setMaxProfitUnlockTime to 86400 (1 day) + - setTradeFactory to whatever the trade factory address is... + - addToken for SILO => USDC + - setKeeper to 0x604e586F17cE106B64185A7a0d2c1Da5bAce711E (see yHaaS Network Guide) + ------------ Mainnet ------------ @@ -13,6 +31,12 @@ Factory Llama Edition: Factory Silo Legacy: - 0xBa230f4Bf34E48D04e65dE9a0F6Fe5EcDAa0c17A +Factory Silo New: + - 0xbAF4Cb2A7182e5bD4abb54C6F116d56c0E8b588C + +Stratagies Silo New: + - Silo Lender: USDC/PT-ezETH (26 Sep) - 0x8783C4aAf81B9312AdCCCcC09fa7B36b9d1f624f (need to set up) + ------------ Arbitrum ------------ Vaults: @@ -21,10 +45,6 @@ Vaults: Factory: - 0xDd737dADA46F3A111074dCE29B9430a7EA000092 -Stratagies (deprecated): - - Silo Lender: USDC.e/wstETH - 0x034f12A217405D54bf2654b66A96fa74aD715951 -- update fee reciever - - Silo Lender: USDC.e/SILO - 0x9a5eca1b228e47a15BD9fab07716a9FcE9Eebfb5 -- REPLACE (outdated incentives controller) - - Staking Rewards Autocompounder: TODO - -Staking: - - TODO \ No newline at end of file +Stratagies: + - Silo Lender: USDC.e/wstETH - 0x127A7F610cc704Be6122dfa76eb61E84C9cb0Efd + - Silo Lender: USDC.e/wBTC - 0x2d25Ce68AAd6Ffef1585ff05bC621db1F9F2E499 \ No newline at end of file diff --git a/src/test/utils/Setup.sol b/src/test/utils/Setup.sol index 384f49c..acd2900 100644 --- a/src/test/utils/Setup.sol +++ b/src/test/utils/Setup.sol @@ -40,8 +40,8 @@ contract Setup is Strategies, IEvents { _setTokenAddrs(); // Set asset - // asset = ERC20(tokenAddrs["crvUSD"]); - asset = ERC20(tokenAddrs["USDC.e - Arbi"]); + asset = ERC20(tokenAddrs["crvUSD"]); + // asset = ERC20(tokenAddrs["USDC.e - Arbi"]); // asset = ERC20(tokenAddrs["USDC.e - OP"]); // Set decimals diff --git a/src/test/utils/Strategies.sol b/src/test/utils/Strategies.sol index 2ebde4b..36add97 100644 --- a/src/test/utils/Strategies.sol +++ b/src/test/utils/Strategies.sol @@ -30,6 +30,7 @@ contract Strategies is ExtendedTest { address private constant _siloRepositoryARB = 0x8658047e48CC09161f4152c79155Dac1d710Ff0a; address private constant _usdc = 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8; // 6 decimals address private constant _incentivesControllerARB = 0x7e5BFBb25b33f335e34fa0d78b878092931F8D20; // SILO rewards + // 0xCC4933B0405Ae9DDFE05a54d20f56A0447c9EBcF // ARB rewards address private constant _wstETH = 0x5979D7b546E38E414F7E9822514be443A4800529; address private constant _crvArb = 0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978; @@ -48,20 +49,20 @@ contract Strategies is ExtendedTest { address private _borrower = address(420); // Ethereum - // address private constant silo = _crvUSDYFISilo; - // address private constant borrowedAsset = _crvUSD; - // address private constant collateralAsset = _yfi; - // address private constant incentivesController = _incentivesControllerLlama; - // address private constant siloRepository = _siloRepositoryLlama; - // address private constant _crv = _crvEth; + address private constant silo = _crvUSDYFISilo; + address private constant borrowedAsset = _crvUSD; + address private constant collateralAsset = _yfi; + address private constant incentivesController = _incentivesControllerLlama; + address private constant siloRepository = _siloRepositoryLlama; + address private constant _crv = _crvEth; // Arbitrum - address private constant silo = _usdcwstETHSilo; - address private constant borrowedAsset = _usdc; - address private constant collateralAsset = _wstETH; - address private constant incentivesController = _incentivesControllerARB; - address private constant siloRepository = _siloRepositoryARB; - address private constant _crv = _crvArb; + // address private constant silo = _usdcwstETHSilo; + // address private constant borrowedAsset = _usdc; + // address private constant collateralAsset = _wstETH; + // address private constant incentivesController = _incentivesControllerARB; + // address private constant siloRepository = _siloRepositoryARB; + // address private constant _crv = _crvArb; // Optimism // address private constant silo = _usdcwBTCSilo;