@ensuro/core 2.8.2 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -231,8 +231,8 @@
231
231
  "type": "function"
232
232
  }
233
233
  ],
234
- "bytecode": "0x60c06040523480156200001157600080fd5b50604051620017663803806200176683398101604081905262000034916200015b565b816001600160a01b038116620000b75760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b0390811660805281166200012f5760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b6064820152608401620000ae565b6001600160a01b031660a052506200019a565b6001600160a01b03811681146200015857600080fd5b50565b600080604083850312156200016f57600080fd5b82516200017c8162000142565b60208401519092506200018f8162000142565b809150509250929050565b60805160a05161154b6200021b6000396000818161069e015281816109f001528181610ac201528181610e330152610f370152600081816101680152818161025b01528181610356015281816104ad015281816105cf015281816108380152818161092601528181610a2001528181610c460152610f88015261154b6000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80634eb978a4116100715780634eb978a41461011b5780637d7c2a1c146101235780638d7ddd901461012b578063948cb71914610133578063cec16f3f1461013b578063f9c4fd1b1461014357600080fd5b8062a9bb8d146100ad57806301ffc9a7146100c25780631014a0c2146100ea5780633b6612c81461010b5780634dd93bd314610113575b600080fd5b6100c06100bb36600461121f565b61014b565b005b6100d56100d036600461124b565b610454565b60405190151581526020015b60405180910390f35b6100fd6100f8366004611275565b61048b565b6040519081526020016100e1565b6100fd6105cb565b6100fd610686565b6100fd610778565b6100c0610820565b6100fd610922565b6100c06109d1565b6100fd610a8d565b6100fd610c42565b6000805160206114f6833981519152600019841461024d576102027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e8919061128e565b6101f390600a6113ab565b6101fd90866113ba565b610cf9565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198314610348576102f07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db919061128e565b6102e690600a6113ab565b6101fd90856113ba565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610446576103eb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d6919061128e565b6103e190600a6113ab565b6101fd90846113ba565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061044f610d62565b505050565b60006001600160e01b031982166301ffc9a760e01b148061048557506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051891906113dc565b90508281106105845760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b600061058e610686565b905081610599610c42565b6105a390866113f5565b6105ad9190611408565b9250808311156105bb578092505b6105c483610e07565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f919061128e565b61065a90600a6113ab565b6000805160206114f6833981519152546106819190600160401b900463ffffffff1661141b565b905090565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906113dc565b6040518263ffffffff1660e01b815260040161073791815260200190565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906113dc565b600080610783610686565b6000805160206114f68339815191528054919250906000906107b590600160601b90046001600160801b03168461143a565b90506107c083610ea9565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906113dc565b90506108b56105cb565b8111156108d9576108d66108c7610c42565b6108d19083611408565b610f12565b50565b6108e1610922565b8110156108d657600061090d6108f5610686565b836108fe610c42565b6109089190611408565b610f6e565b9050801561091e5761091e81610e07565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061128e565b6109b190600a6113ab565b6000805160206114f683398151915254610681919063ffffffff1661141b565b6109d9610f86565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611461565b6000806000805160206114f68339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3591906113dc565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba491906113dc565b8254909150610bc390600160601b90046001600160801b03168261143a565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061128e565b610cd190600a6113ab565b6000805160206114f6833981519152546106819190640100000000900463ffffffff1661141b565b600063ffffffff821115610d5e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161057b565b5090565b6000805160206114f6833981519152805463ffffffff64010000000082048116911611801590610daa5750805463ffffffff600160401b820481166401000000009092041611155b6108d65760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b606482015260840161057b565b610e10816110d9565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303816000875af1158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906113dc565b60006001600160801b03821115610d5e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161057b565b610f1b81611190565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e66565b6000818310610f7d5781610f7f565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190611498565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190611498565b6001600160a01b0316146110ba5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b604482015260640161057b565b6000805160206114f683398151915280546001600160e01b0319169055565b6000805160206114f6833981519152805461110d9061110890600160601b90046001600160801b031684610f6e565b610ea9565b81548290600c9061112f908490600160601b90046001600160801b03166114b5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161118491815260200190565b60405180910390a15050565b6000805160206114f68339815191526111a882610ea9565b81548290600c906111ca908490600160601b90046001600160801b03166114d5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161118491815260200190565b60008060006060848603121561123457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561125d57600080fd5b81356001600160e01b031981168114610f7f57600080fd5b60006020828403121561128757600080fd5b5035919050565b6000602082840312156112a057600080fd5b815160ff81168114610f7f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113025781600019048211156112e8576112e86112b1565b808516156112f557918102915b93841c93908002906112cc565b509250929050565b60008261131957506001610485565b8161132657506000610485565b816001811461133c576002811461134657611362565b6001915050610485565b60ff841115611357576113576112b1565b50506001821b610485565b5060208310610133831016604e8410600b8410161715611385575081810a610485565b61138f83836112c7565b80600019048211156113a3576113a36112b1565b029392505050565b6000610f7f60ff84168361130a565b6000826113d757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156113ee57600080fd5b5051919050565b80820180821115610485576104856112b1565b81810381811115610485576104856112b1565b6000816000190483118215151615611435576114356112b1565b500290565b818103600083128015838313168383128216171561145a5761145a6112b1565b5092915050565b60006020828403121561147357600080fd5b81518015158114610f7f57600080fd5b6001600160a01b03811681146108d657600080fd5b6000602082840312156114aa57600080fd5b8151610f7f81611483565b6001600160801b0382811682821603908082111561145a5761145a6112b1565b6001600160801b0381811683821601908082111561145a5761145a6112b156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a264697066735822122052438e7c30c649c8ec086d78319a29bc7a4e80492cc41da1830a3893941c9e4764736f6c63430008100033",
235
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a85760003560e01c80634eb978a4116100715780634eb978a41461011b5780637d7c2a1c146101235780638d7ddd901461012b578063948cb71914610133578063cec16f3f1461013b578063f9c4fd1b1461014357600080fd5b8062a9bb8d146100ad57806301ffc9a7146100c25780631014a0c2146100ea5780633b6612c81461010b5780634dd93bd314610113575b600080fd5b6100c06100bb36600461121f565b61014b565b005b6100d56100d036600461124b565b610454565b60405190151581526020015b60405180910390f35b6100fd6100f8366004611275565b61048b565b6040519081526020016100e1565b6100fd6105cb565b6100fd610686565b6100fd610778565b6100c0610820565b6100fd610922565b6100c06109d1565b6100fd610a8d565b6100fd610c42565b6000805160206114f6833981519152600019841461024d576102027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e8919061128e565b6101f390600a6113ab565b6101fd90866113ba565b610cf9565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198314610348576102f07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db919061128e565b6102e690600a6113ab565b6101fd90856113ba565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610446576103eb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d6919061128e565b6103e190600a6113ab565b6101fd90846113ba565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061044f610d62565b505050565b60006001600160e01b031982166301ffc9a760e01b148061048557506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051891906113dc565b90508281106105845760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b600061058e610686565b905081610599610c42565b6105a390866113f5565b6105ad9190611408565b9250808311156105bb578092505b6105c483610e07565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f919061128e565b61065a90600a6113ab565b6000805160206114f6833981519152546106819190600160401b900463ffffffff1661141b565b905090565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906113dc565b6040518263ffffffff1660e01b815260040161073791815260200190565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906113dc565b600080610783610686565b6000805160206114f68339815191528054919250906000906107b590600160601b90046001600160801b03168461143a565b90506107c083610ea9565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906113dc565b90506108b56105cb565b8111156108d9576108d66108c7610c42565b6108d19083611408565b610f12565b50565b6108e1610922565b8110156108d657600061090d6108f5610686565b836108fe610c42565b6109089190611408565b610f6e565b9050801561091e5761091e81610e07565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061128e565b6109b190600a6113ab565b6000805160206114f683398151915254610681919063ffffffff1661141b565b6109d9610f86565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611461565b6000806000805160206114f68339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3591906113dc565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba491906113dc565b8254909150610bc390600160601b90046001600160801b03168261143a565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061128e565b610cd190600a6113ab565b6000805160206114f6833981519152546106819190640100000000900463ffffffff1661141b565b600063ffffffff821115610d5e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161057b565b5090565b6000805160206114f6833981519152805463ffffffff64010000000082048116911611801590610daa5750805463ffffffff600160401b820481166401000000009092041611155b6108d65760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b606482015260840161057b565b610e10816110d9565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303816000875af1158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906113dc565b60006001600160801b03821115610d5e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161057b565b610f1b81611190565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e66565b6000818310610f7d5781610f7f565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190611498565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190611498565b6001600160a01b0316146110ba5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b604482015260640161057b565b6000805160206114f683398151915280546001600160e01b0319169055565b6000805160206114f6833981519152805461110d9061110890600160601b90046001600160801b031684610f6e565b610ea9565b81548290600c9061112f908490600160601b90046001600160801b03166114b5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161118491815260200190565b60405180910390a15050565b6000805160206114f68339815191526111a882610ea9565b81548290600c906111ca908490600160601b90046001600160801b03166114d5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161118491815260200190565b60008060006060848603121561123457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561125d57600080fd5b81356001600160e01b031981168114610f7f57600080fd5b60006020828403121561128757600080fd5b5035919050565b6000602082840312156112a057600080fd5b815160ff81168114610f7f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113025781600019048211156112e8576112e86112b1565b808516156112f557918102915b93841c93908002906112cc565b509250929050565b60008261131957506001610485565b8161132657506000610485565b816001811461133c576002811461134657611362565b6001915050610485565b60ff841115611357576113576112b1565b50506001821b610485565b5060208310610133831016604e8410600b8410161715611385575081810a610485565b61138f83836112c7565b80600019048211156113a3576113a36112b1565b029392505050565b6000610f7f60ff84168361130a565b6000826113d757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156113ee57600080fd5b5051919050565b80820180821115610485576104856112b1565b81810381811115610485576104856112b1565b6000816000190483118215151615611435576114356112b1565b500290565b818103600083128015838313168383128216171561145a5761145a6112b1565b5092915050565b60006020828403121561147357600080fd5b81518015158114610f7f57600080fd5b6001600160a01b03811681146108d657600080fd5b6000602082840312156114aa57600080fd5b8151610f7f81611483565b6001600160801b0382811682821603908082111561145a5761145a6112b1565b6001600160801b0381811683821601908082111561145a5761145a6112b156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a264697066735822122052438e7c30c649c8ec086d78319a29bc7a4e80492cc41da1830a3893941c9e4764736f6c63430008100033",
234
+ "bytecode": "0x60c06040523480156200001157600080fd5b506040516200187a3803806200187a833981016040819052620000349162000248565b816001600160a01b038116620000b75760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b0390811660805281166200012f5760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b6064820152608401620000ae565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000194919062000287565b6001600160a01b0316826001600160a01b0316146200021c5760405162461bcd60e51b815260206004820152603360248201527f4552433436323641737365744d616e616765723a207661756c74206d7573742060448201527f68617665207468652073616d65206173736574000000000000000000000000006064820152608401620000ae565b6001600160a01b031660a05250620002ae565b6001600160a01b03811681146200024557600080fd5b50565b600080604083850312156200025c57600080fd5b825162000269816200022f565b60208401519092506200027c816200022f565b809150509250929050565b6000602082840312156200029a57600080fd5b8151620002a7816200022f565b9392505050565b60805160a05161154b6200032f6000396000818161069e015281816109f001528181610ac201528181610e330152610f370152600081816101680152818161025b01528181610356015281816104ad015281816105cf015281816108380152818161092601528181610a2001528181610c460152610f88015261154b6000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80634eb978a4116100715780634eb978a41461011b5780637d7c2a1c146101235780638d7ddd901461012b578063948cb71914610133578063cec16f3f1461013b578063f9c4fd1b1461014357600080fd5b8062a9bb8d146100ad57806301ffc9a7146100c25780631014a0c2146100ea5780633b6612c81461010b5780634dd93bd314610113575b600080fd5b6100c06100bb36600461121f565b61014b565b005b6100d56100d036600461124b565b610454565b60405190151581526020015b60405180910390f35b6100fd6100f8366004611275565b61048b565b6040519081526020016100e1565b6100fd6105cb565b6100fd610686565b6100fd610778565b6100c0610820565b6100fd610922565b6100c06109d1565b6100fd610a8d565b6100fd610c42565b6000805160206114f6833981519152600019841461024d576102027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e8919061128e565b6101f390600a6113ab565b6101fd90866113ba565b610cf9565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198314610348576102f07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db919061128e565b6102e690600a6113ab565b6101fd90856113ba565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610446576103eb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d6919061128e565b6103e190600a6113ab565b6101fd90846113ba565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061044f610d62565b505050565b60006001600160e01b031982166301ffc9a760e01b148061048557506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051891906113dc565b90508281106105845760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b600061058e610686565b905081610599610c42565b6105a390866113f5565b6105ad9190611408565b9250808311156105bb578092505b6105c483610e07565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f919061128e565b61065a90600a6113ab565b6000805160206114f6833981519152546106819190600160401b900463ffffffff1661141b565b905090565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906113dc565b6040518263ffffffff1660e01b815260040161073791815260200190565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906113dc565b600080610783610686565b6000805160206114f68339815191528054919250906000906107b590600160601b90046001600160801b03168461143a565b90506107c083610ea9565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906113dc565b90506108b56105cb565b8111156108d9576108d66108c7610c42565b6108d19083611408565b610f12565b50565b6108e1610922565b8110156108d657600061090d6108f5610686565b836108fe610c42565b6109089190611408565b610f6e565b9050801561091e5761091e81610e07565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061128e565b6109b190600a6113ab565b6000805160206114f683398151915254610681919063ffffffff1661141b565b6109d9610f86565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611461565b6000806000805160206114f68339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3591906113dc565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba491906113dc565b8254909150610bc390600160601b90046001600160801b03168261143a565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061128e565b610cd190600a6113ab565b6000805160206114f6833981519152546106819190640100000000900463ffffffff1661141b565b600063ffffffff821115610d5e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161057b565b5090565b6000805160206114f6833981519152805463ffffffff64010000000082048116911611801590610daa5750805463ffffffff600160401b820481166401000000009092041611155b6108d65760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b606482015260840161057b565b610e10816110d9565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303816000875af1158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906113dc565b60006001600160801b03821115610d5e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161057b565b610f1b81611190565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e66565b6000818310610f7d5781610f7f565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190611498565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190611498565b6001600160a01b0316146110ba5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b604482015260640161057b565b6000805160206114f683398151915280546001600160e01b0319169055565b6000805160206114f6833981519152805461110d9061110890600160601b90046001600160801b031684610f6e565b610ea9565b81548290600c9061112f908490600160601b90046001600160801b03166114b5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161118491815260200190565b60405180910390a15050565b6000805160206114f68339815191526111a882610ea9565b81548290600c906111ca908490600160601b90046001600160801b03166114d5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161118491815260200190565b60008060006060848603121561123457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561125d57600080fd5b81356001600160e01b031981168114610f7f57600080fd5b60006020828403121561128757600080fd5b5035919050565b6000602082840312156112a057600080fd5b815160ff81168114610f7f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113025781600019048211156112e8576112e86112b1565b808516156112f557918102915b93841c93908002906112cc565b509250929050565b60008261131957506001610485565b8161132657506000610485565b816001811461133c576002811461134657611362565b6001915050610485565b60ff841115611357576113576112b1565b50506001821b610485565b5060208310610133831016604e8410600b8410161715611385575081810a610485565b61138f83836112c7565b80600019048211156113a3576113a36112b1565b029392505050565b6000610f7f60ff84168361130a565b6000826113d757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156113ee57600080fd5b5051919050565b80820180821115610485576104856112b1565b81810381811115610485576104856112b1565b6000816000190483118215151615611435576114356112b1565b500290565b818103600083128015838313168383128216171561145a5761145a6112b1565b5092915050565b60006020828403121561147357600080fd5b81518015158114610f7f57600080fd5b6001600160a01b03811681146108d657600080fd5b6000602082840312156114aa57600080fd5b8151610f7f81611483565b6001600160801b0382811682821603908082111561145a5761145a6112b1565b6001600160801b0381811683821601908082111561145a5761145a6112b156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220c0f7479c854afdf2fdacbce81339b25d1c74a74dc59352bacf482b5bea403a3e64736f6c63430008100033",
235
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a85760003560e01c80634eb978a4116100715780634eb978a41461011b5780637d7c2a1c146101235780638d7ddd901461012b578063948cb71914610133578063cec16f3f1461013b578063f9c4fd1b1461014357600080fd5b8062a9bb8d146100ad57806301ffc9a7146100c25780631014a0c2146100ea5780633b6612c81461010b5780634dd93bd314610113575b600080fd5b6100c06100bb36600461121f565b61014b565b005b6100d56100d036600461124b565b610454565b60405190151581526020015b60405180910390f35b6100fd6100f8366004611275565b61048b565b6040519081526020016100e1565b6100fd6105cb565b6100fd610686565b6100fd610778565b6100c0610820565b6100fd610922565b6100c06109d1565b6100fd610a8d565b6100fd610c42565b6000805160206114f6833981519152600019841461024d576102027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e8919061128e565b6101f390600a6113ab565b6101fd90866113ba565b610cf9565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198314610348576102f07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db919061128e565b6102e690600a6113ab565b6101fd90856113ba565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610446576103eb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d6919061128e565b6103e190600a6113ab565b6101fd90846113ba565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061044f610d62565b505050565b60006001600160e01b031982166301ffc9a760e01b148061048557506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051891906113dc565b90508281106105845760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b600061058e610686565b905081610599610c42565b6105a390866113f5565b6105ad9190611408565b9250808311156105bb578092505b6105c483610e07565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f919061128e565b61065a90600a6113ab565b6000805160206114f6833981519152546106819190600160401b900463ffffffff1661141b565b905090565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906113dc565b6040518263ffffffff1660e01b815260040161073791815260200190565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906113dc565b600080610783610686565b6000805160206114f68339815191528054919250906000906107b590600160601b90046001600160801b03168461143a565b90506107c083610ea9565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906113dc565b90506108b56105cb565b8111156108d9576108d66108c7610c42565b6108d19083611408565b610f12565b50565b6108e1610922565b8110156108d657600061090d6108f5610686565b836108fe610c42565b6109089190611408565b610f6e565b9050801561091e5761091e81610e07565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061128e565b6109b190600a6113ab565b6000805160206114f683398151915254610681919063ffffffff1661141b565b6109d9610f86565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611461565b6000806000805160206114f68339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3591906113dc565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba491906113dc565b8254909150610bc390600160601b90046001600160801b03168261143a565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061128e565b610cd190600a6113ab565b6000805160206114f6833981519152546106819190640100000000900463ffffffff1661141b565b600063ffffffff821115610d5e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161057b565b5090565b6000805160206114f6833981519152805463ffffffff64010000000082048116911611801590610daa5750805463ffffffff600160401b820481166401000000009092041611155b6108d65760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b606482015260840161057b565b610e10816110d9565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303816000875af1158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906113dc565b60006001600160801b03821115610d5e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161057b565b610f1b81611190565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e66565b6000818310610f7d5781610f7f565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190611498565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190611498565b6001600160a01b0316146110ba5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b604482015260640161057b565b6000805160206114f683398151915280546001600160e01b0319169055565b6000805160206114f6833981519152805461110d9061110890600160601b90046001600160801b031684610f6e565b610ea9565b81548290600c9061112f908490600160601b90046001600160801b03166114b5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161118491815260200190565b60405180910390a15050565b6000805160206114f68339815191526111a882610ea9565b81548290600c906111ca908490600160601b90046001600160801b03166114d5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161118491815260200190565b60008060006060848603121561123457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561125d57600080fd5b81356001600160e01b031981168114610f7f57600080fd5b60006020828403121561128757600080fd5b5035919050565b6000602082840312156112a057600080fd5b815160ff81168114610f7f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113025781600019048211156112e8576112e86112b1565b808516156112f557918102915b93841c93908002906112cc565b509250929050565b60008261131957506001610485565b8161132657506000610485565b816001811461133c576002811461134657611362565b6001915050610485565b60ff841115611357576113576112b1565b50506001821b610485565b5060208310610133831016604e8410600b8410161715611385575081810a610485565b61138f83836112c7565b80600019048211156113a3576113a36112b1565b029392505050565b6000610f7f60ff84168361130a565b6000826113d757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156113ee57600080fd5b5051919050565b80820180821115610485576104856112b1565b81810381811115610485576104856112b1565b6000816000190483118215151615611435576114356112b1565b500290565b818103600083128015838313168383128216171561145a5761145a6112b1565b5092915050565b60006020828403121561147357600080fd5b81518015158114610f7f57600080fd5b6001600160a01b03811681146108d657600080fd5b6000602082840312156114aa57600080fd5b8151610f7f81611483565b6001600160801b0382811682821603908082111561145a5761145a6112b1565b6001600160801b0381811683821601908082111561145a5761145a6112b156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220c0f7479c854afdf2fdacbce81339b25d1c74a74dc59352bacf482b5bea403a3e64736f6c63430008100033",
236
236
  "linkReferences": {},
237
237
  "deployedLinkReferences": {}
238
238
  }
@@ -0,0 +1,269 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC4626PlusVaultAssetManager",
4
+ "sourceName": "contracts/ERC4626PlusVaultAssetManager.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IERC20Metadata",
10
+ "name": "asset_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IERC4626",
15
+ "name": "vault_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "contract IERC4626",
20
+ "name": "discretionaryVault_",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": false,
32
+ "internalType": "int256",
33
+ "name": "earnings",
34
+ "type": "int256"
35
+ }
36
+ ],
37
+ "name": "EarningsRecorded",
38
+ "type": "event"
39
+ },
40
+ {
41
+ "anonymous": false,
42
+ "inputs": [
43
+ {
44
+ "indexed": true,
45
+ "internalType": "enum IAccessManager.GovernanceActions",
46
+ "name": "action",
47
+ "type": "uint8"
48
+ },
49
+ {
50
+ "indexed": false,
51
+ "internalType": "uint256",
52
+ "name": "value",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "GovernanceAction",
57
+ "type": "event"
58
+ },
59
+ {
60
+ "anonymous": false,
61
+ "inputs": [
62
+ {
63
+ "indexed": false,
64
+ "internalType": "uint256",
65
+ "name": "amount",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "MoneyDeinvested",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "anonymous": false,
74
+ "inputs": [
75
+ {
76
+ "indexed": false,
77
+ "internalType": "uint256",
78
+ "name": "amount",
79
+ "type": "uint256"
80
+ }
81
+ ],
82
+ "name": "MoneyInvested",
83
+ "type": "event"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "connect",
88
+ "outputs": [],
89
+ "stateMutability": "nonpayable",
90
+ "type": "function"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "deinvestAll",
95
+ "outputs": [
96
+ {
97
+ "internalType": "int256",
98
+ "name": "earnings",
99
+ "type": "int256"
100
+ }
101
+ ],
102
+ "stateMutability": "nonpayable",
103
+ "type": "function"
104
+ },
105
+ {
106
+ "inputs": [
107
+ {
108
+ "internalType": "uint256",
109
+ "name": "amount",
110
+ "type": "uint256"
111
+ }
112
+ ],
113
+ "name": "discretionaryToVault",
114
+ "outputs": [],
115
+ "stateMutability": "nonpayable",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [],
120
+ "name": "getInvestmentValue",
121
+ "outputs": [
122
+ {
123
+ "internalType": "uint256",
124
+ "name": "",
125
+ "type": "uint256"
126
+ }
127
+ ],
128
+ "stateMutability": "view",
129
+ "type": "function"
130
+ },
131
+ {
132
+ "inputs": [],
133
+ "name": "liquidityMax",
134
+ "outputs": [
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "",
138
+ "type": "uint256"
139
+ }
140
+ ],
141
+ "stateMutability": "view",
142
+ "type": "function"
143
+ },
144
+ {
145
+ "inputs": [],
146
+ "name": "liquidityMiddle",
147
+ "outputs": [
148
+ {
149
+ "internalType": "uint256",
150
+ "name": "",
151
+ "type": "uint256"
152
+ }
153
+ ],
154
+ "stateMutability": "view",
155
+ "type": "function"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "liquidityMin",
160
+ "outputs": [
161
+ {
162
+ "internalType": "uint256",
163
+ "name": "",
164
+ "type": "uint256"
165
+ }
166
+ ],
167
+ "stateMutability": "view",
168
+ "type": "function"
169
+ },
170
+ {
171
+ "inputs": [],
172
+ "name": "rebalance",
173
+ "outputs": [],
174
+ "stateMutability": "nonpayable",
175
+ "type": "function"
176
+ },
177
+ {
178
+ "inputs": [],
179
+ "name": "recordEarnings",
180
+ "outputs": [
181
+ {
182
+ "internalType": "int256",
183
+ "name": "",
184
+ "type": "int256"
185
+ }
186
+ ],
187
+ "stateMutability": "nonpayable",
188
+ "type": "function"
189
+ },
190
+ {
191
+ "inputs": [
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "paymentAmount",
195
+ "type": "uint256"
196
+ }
197
+ ],
198
+ "name": "refillWallet",
199
+ "outputs": [
200
+ {
201
+ "internalType": "uint256",
202
+ "name": "deinvest",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "stateMutability": "nonpayable",
207
+ "type": "function"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "internalType": "uint256",
213
+ "name": "min",
214
+ "type": "uint256"
215
+ },
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "middle",
219
+ "type": "uint256"
220
+ },
221
+ {
222
+ "internalType": "uint256",
223
+ "name": "max",
224
+ "type": "uint256"
225
+ }
226
+ ],
227
+ "name": "setLiquidityThresholds",
228
+ "outputs": [],
229
+ "stateMutability": "nonpayable",
230
+ "type": "function"
231
+ },
232
+ {
233
+ "inputs": [
234
+ {
235
+ "internalType": "bytes4",
236
+ "name": "interfaceId",
237
+ "type": "bytes4"
238
+ }
239
+ ],
240
+ "name": "supportsInterface",
241
+ "outputs": [
242
+ {
243
+ "internalType": "bool",
244
+ "name": "",
245
+ "type": "bool"
246
+ }
247
+ ],
248
+ "stateMutability": "view",
249
+ "type": "function"
250
+ },
251
+ {
252
+ "inputs": [
253
+ {
254
+ "internalType": "uint256",
255
+ "name": "amount",
256
+ "type": "uint256"
257
+ }
258
+ ],
259
+ "name": "vaultToDiscretionary",
260
+ "outputs": [],
261
+ "stateMutability": "nonpayable",
262
+ "type": "function"
263
+ }
264
+ ],
265
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200222438038062002224833981016040819052620000349162000415565b8282816001600160a01b038116620000b95760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b039081166080528116620001315760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b6064820152608401620000b0565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000196919062000469565b6001600160a01b0316826001600160a01b0316146200021e5760405162461bcd60e51b815260206004820152603360248201527f4552433436323641737365744d616e616765723a207661756c74206d7573742060448201527f68617665207468652073616d65206173736574000000000000000000000000006064820152608401620000b0565b6001600160a01b0390811660a05282169050620002935760405162461bcd60e51b815260206004820152603a60248201526000805160206200220483398151915260448201527f756c742063616e6e6f74206265207a65726f20616464726573730000000000006064820152608401620000b0565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f8919062000469565b6001600160a01b0316836001600160a01b0316146200036f5760405162461bcd60e51b815260206004820152603c60248201526000805160206200220483398151915260448201527f756c74206d7573742068617665207468652073616d65206173736574000000006064820152608401620000b0565b806001600160a01b0316826001600160a01b031603620003e75760405162461bcd60e51b815260206004820152603660248201526000805160206200220483398151915260448201527f756c7473206d75737420626520646966666572656e74000000000000000000006064820152608401620000b0565b6001600160a01b031660c05250620004909050565b6001600160a01b03811681146200041257600080fd5b50565b6000806000606084860312156200042b57600080fd5b83516200043881620003fc565b60208501519093506200044b81620003fc565b60408501519092506200045e81620003fc565b809150509250925092565b6000602082840312156200047c57600080fd5b81516200048981620003fc565b9392505050565b60805160a05160c051611c956200056f600039600081816106f2015281816107ee0152818161090801528181610c4d01528181610d9101528181610f5d01528181610ff2015261143501526000818161088b0152818161093101528181610b2701528181610bb401528181610e64015281816113140152818161139e015281816115e401526116520152600081816101b4015281816102a7015281816103a2015281816104f90152818161061b01528181610a1f01528181610cc701528181610dc1015281816111240152818161168201526117f90152611c956000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80634eb978a41161008c5780638d7ddd90116100665780638d7ddd9014610177578063948cb7191461017f578063cec16f3f14610187578063f9c4fd1b1461018f57600080fd5b80634eb978a4146101545780637d7c2a1c1461015c5780638831c06e1461016457600080fd5b8062a9bb8d146100d357806301ffc9a7146100e85780631014a0c2146101105780633b6612c8146101315780633db77cb8146101395780634dd93bd31461014c575b600080fd5b6100e66100e136600461194a565b610197565b005b6100fb6100f6366004611976565b6104a0565b60405190151581526020015b60405180910390f35b61012361011e3660046119a0565b6104d7565b604051908152602001610107565b610123610617565b6100e66101473660046119a0565b6106d2565b610123610901565b61012361095f565b6100e6610a07565b6100e66101723660046119a0565b610b09565b610123610cc3565b6100e6610d72565b610123610e2f565b610123611120565b600080516020611c4083398151915260001984146102995761024e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906119b9565b61023f90600a611ad6565b6102499086611ae5565b6111d7565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b60001983146103945761033c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032791906119b9565b61033290600a611ad6565b6102499085611ae5565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610492576104377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906119b9565b61042d90600a611ad6565b6102499084611ae5565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061049b611240565b505050565b60006001600160e01b031982166301ffc9a760e01b14806104d157506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105649190611b07565b90508281106105d05760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b60006105da610901565b9050816105e5611120565b6105ef9086611b20565b6105f99190611b33565b925080831115610607578092505b610610836112e5565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906119b9565b6106a690600a611ad6565b600080516020611c40833981519152546106cd9190600160401b900463ffffffff16611b46565b905090565b600060001982036107d757604051636c82bbbf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba08765290829063d905777e90602401602060405180830381865afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d9190611b07565b30306040518463ffffffff1660e01b815260040161078d93929190611b65565b6020604051808303816000875af11580156107ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d09190611b07565b905061086f565b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061082790859030908190600401611b65565b6020604051808303816000875af1158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190611b07565b508190505b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af11580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049b9190611b07565b600061092c7f0000000000000000000000000000000000000000000000000000000000000000611484565b6109557f0000000000000000000000000000000000000000000000000000000000000000611484565b6106cd9190611b20565b60008061096a610901565b600080516020611c4083398151915280549192509060009061099c90600160601b90046001600160801b031684611b84565b90506109a783611556565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611b07565b9050610a9c610617565b811115610ac057610abd610aae611120565b610ab89083611b33565b6115bf565b50565b610ac8610cc3565b811015610abd576000610af4610adc610901565b83610ae5611120565b610aef9190611b33565b61161b565b90508015610b0557610b05816112e5565b5050565b6000198103610b9d5760405163ce96cb7760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce96cb7790602401602060405180830381865afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a9190611b07565b90505b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af9490610bed90849030908190600401611b65565b6020604051808303816000875af1158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190611b07565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611b07565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4791906119b9565b610d5290600a611ad6565b600080516020611c40833981519152546106cd919063ffffffff16611b46565b610d7a611633565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015b6020604051808303816000875af1158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611bab565b600080600080516020611c408339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611b07565b30306040518463ffffffff1660e01b8152600401610ef793929190611b65565b6020604051808303816000875af1158015610f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3a9190611b07565b604051636c82bbbf60e11b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d905777e90602401602060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190611b07565b9050600081600003610fdb57600061106e565b604051635d043b2960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529061102b90859030908190600401611b65565b6020604051808303816000875af115801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e9190611b07565b8454909150600160601b90046001600160801b031661108d8285611b20565b6110979190611b84565b8454600160601b600160e01b031916855594507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c656110d58483611b20565b60405190815260200160405180910390a16040518581527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a15050505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a491906119b9565b6111af90600a611ad6565b600080516020611c40833981519152546106cd9190640100000000900463ffffffff16611b46565b600063ffffffff82111561123c5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105c7565b5090565b600080516020611c40833981519152805463ffffffff640100000000820481169116118015906112885750805463ffffffff600160401b820481166401000000009092041611155b610abd5760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b60648201526084016105c7565b6112ee816116b1565b60405163ce96cb7760e01b815230600482015260009061137f9083906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb7790602401602060405180830381865afa15801561135b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aef9190611b07565b9050801561141c57604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906113d790849030908190600401611b65565b6020604051808303816000875af11580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611b07565b505b6114268183611b33565b15610b05576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663b460af946114648385611b33565b30306040518463ffffffff1660e01b81526004016108be93929190611b65565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156114d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f79190611b07565b6040518263ffffffff1660e01b815260040161151591815260200190565b602060405180830381865afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190611b07565b60006001600160801b0382111561123c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016105c7565b6115c881611768565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610c80565b600081831061162a578161162c565b825b9392505050565b61163b6117f7565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401610dec565b600080516020611c4083398151915280546116e5906116e090600160601b90046001600160801b03168461161b565b611556565b81548290600c90611707908490600160601b90046001600160801b0316611bcd565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161175c91815260200190565b60405180910390a15050565b600080516020611c4083398151915261178082611556565b81548290600c906117a2908490600160601b90046001600160801b0316611bed565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161175c91815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118839190611c22565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e49190611c22565b6001600160a01b03161461192b5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b60448201526064016105c7565b600080516020611c4083398151915280546001600160e01b0319169055565b60008060006060848603121561195f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561198857600080fd5b81356001600160e01b03198116811461162c57600080fd5b6000602082840312156119b257600080fd5b5035919050565b6000602082840312156119cb57600080fd5b815160ff8116811461162c57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a2d578160001904821115611a1357611a136119dc565b80851615611a2057918102915b93841c93908002906119f7565b509250929050565b600082611a44575060016104d1565b81611a51575060006104d1565b8160018114611a675760028114611a7157611a8d565b60019150506104d1565b60ff841115611a8257611a826119dc565b50506001821b6104d1565b5060208310610133831016604e8410600b8410161715611ab0575081810a6104d1565b611aba83836119f2565b8060001904821115611ace57611ace6119dc565b029392505050565b600061162c60ff841683611a35565b600082611b0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b1957600080fd5b5051919050565b808201808211156104d1576104d16119dc565b818103818111156104d1576104d16119dc565b6000816000190483118215151615611b6057611b606119dc565b500290565b9283526001600160a01b03918216602084015216604082015260600190565b8181036000831280158383131683831282161715611ba457611ba46119dc565b5092915050565b600060208284031215611bbd57600080fd5b8151801515811461162c57600080fd5b6001600160801b03828116828216039080821115611ba457611ba46119dc565b6001600160801b03818116838216019080821115611ba457611ba46119dc565b6001600160a01b0381168114610abd57600080fd5b600060208284031215611c3457600080fd5b815161162c81611c0d56fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220ed83f68147792d5e060d3d630c126909bdd66d5acb458d2f2a96907fd7065be464736f6c6343000810003345524334363236506c75735661756c7441737365744d616e616765723a207661",
266
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ce5760003560e01c80634eb978a41161008c5780638d7ddd90116100665780638d7ddd9014610177578063948cb7191461017f578063cec16f3f14610187578063f9c4fd1b1461018f57600080fd5b80634eb978a4146101545780637d7c2a1c1461015c5780638831c06e1461016457600080fd5b8062a9bb8d146100d357806301ffc9a7146100e85780631014a0c2146101105780633b6612c8146101315780633db77cb8146101395780634dd93bd31461014c575b600080fd5b6100e66100e136600461194a565b610197565b005b6100fb6100f6366004611976565b6104a0565b60405190151581526020015b60405180910390f35b61012361011e3660046119a0565b6104d7565b604051908152602001610107565b610123610617565b6100e66101473660046119a0565b6106d2565b610123610901565b61012361095f565b6100e6610a07565b6100e66101723660046119a0565b610b09565b610123610cc3565b6100e6610d72565b610123610e2f565b610123611120565b600080516020611c4083398151915260001984146102995761024e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906119b9565b61023f90600a611ad6565b6102499086611ae5565b6111d7565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b60001983146103945761033c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032791906119b9565b61033290600a611ad6565b6102499085611ae5565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610492576104377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906119b9565b61042d90600a611ad6565b6102499084611ae5565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061049b611240565b505050565b60006001600160e01b031982166301ffc9a760e01b14806104d157506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105649190611b07565b90508281106105d05760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b60006105da610901565b9050816105e5611120565b6105ef9086611b20565b6105f99190611b33565b925080831115610607578092505b610610836112e5565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906119b9565b6106a690600a611ad6565b600080516020611c40833981519152546106cd9190600160401b900463ffffffff16611b46565b905090565b600060001982036107d757604051636c82bbbf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba08765290829063d905777e90602401602060405180830381865afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d9190611b07565b30306040518463ffffffff1660e01b815260040161078d93929190611b65565b6020604051808303816000875af11580156107ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d09190611b07565b905061086f565b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061082790859030908190600401611b65565b6020604051808303816000875af1158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190611b07565b508190505b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af11580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049b9190611b07565b600061092c7f0000000000000000000000000000000000000000000000000000000000000000611484565b6109557f0000000000000000000000000000000000000000000000000000000000000000611484565b6106cd9190611b20565b60008061096a610901565b600080516020611c4083398151915280549192509060009061099c90600160601b90046001600160801b031684611b84565b90506109a783611556565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611b07565b9050610a9c610617565b811115610ac057610abd610aae611120565b610ab89083611b33565b6115bf565b50565b610ac8610cc3565b811015610abd576000610af4610adc610901565b83610ae5611120565b610aef9190611b33565b61161b565b90508015610b0557610b05816112e5565b5050565b6000198103610b9d5760405163ce96cb7760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce96cb7790602401602060405180830381865afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a9190611b07565b90505b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af9490610bed90849030908190600401611b65565b6020604051808303816000875af1158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190611b07565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611b07565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4791906119b9565b610d5290600a611ad6565b600080516020611c40833981519152546106cd919063ffffffff16611b46565b610d7a611633565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015b6020604051808303816000875af1158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611bab565b600080600080516020611c408339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611b07565b30306040518463ffffffff1660e01b8152600401610ef793929190611b65565b6020604051808303816000875af1158015610f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3a9190611b07565b604051636c82bbbf60e11b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d905777e90602401602060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190611b07565b9050600081600003610fdb57600061106e565b604051635d043b2960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529061102b90859030908190600401611b65565b6020604051808303816000875af115801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e9190611b07565b8454909150600160601b90046001600160801b031661108d8285611b20565b6110979190611b84565b8454600160601b600160e01b031916855594507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c656110d58483611b20565b60405190815260200160405180910390a16040518581527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a15050505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a491906119b9565b6111af90600a611ad6565b600080516020611c40833981519152546106cd9190640100000000900463ffffffff16611b46565b600063ffffffff82111561123c5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105c7565b5090565b600080516020611c40833981519152805463ffffffff640100000000820481169116118015906112885750805463ffffffff600160401b820481166401000000009092041611155b610abd5760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b60648201526084016105c7565b6112ee816116b1565b60405163ce96cb7760e01b815230600482015260009061137f9083906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb7790602401602060405180830381865afa15801561135b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aef9190611b07565b9050801561141c57604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906113d790849030908190600401611b65565b6020604051808303816000875af11580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611b07565b505b6114268183611b33565b15610b05576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663b460af946114648385611b33565b30306040518463ffffffff1660e01b81526004016108be93929190611b65565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156114d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f79190611b07565b6040518263ffffffff1660e01b815260040161151591815260200190565b602060405180830381865afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190611b07565b60006001600160801b0382111561123c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016105c7565b6115c881611768565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610c80565b600081831061162a578161162c565b825b9392505050565b61163b6117f7565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401610dec565b600080516020611c4083398151915280546116e5906116e090600160601b90046001600160801b03168461161b565b611556565b81548290600c90611707908490600160601b90046001600160801b0316611bcd565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161175c91815260200190565b60405180910390a15050565b600080516020611c4083398151915261178082611556565b81548290600c906117a2908490600160601b90046001600160801b0316611bed565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161175c91815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118839190611c22565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e49190611c22565b6001600160a01b03161461192b5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b60448201526064016105c7565b600080516020611c4083398151915280546001600160e01b0319169055565b60008060006060848603121561195f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561198857600080fd5b81356001600160e01b03198116811461162c57600080fd5b6000602082840312156119b257600080fd5b5035919050565b6000602082840312156119cb57600080fd5b815160ff8116811461162c57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a2d578160001904821115611a1357611a136119dc565b80851615611a2057918102915b93841c93908002906119f7565b509250929050565b600082611a44575060016104d1565b81611a51575060006104d1565b8160018114611a675760028114611a7157611a8d565b60019150506104d1565b60ff841115611a8257611a826119dc565b50506001821b6104d1565b5060208310610133831016604e8410600b8410161715611ab0575081810a6104d1565b611aba83836119f2565b8060001904821115611ace57611ace6119dc565b029392505050565b600061162c60ff841683611a35565b600082611b0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b1957600080fd5b5051919050565b808201808211156104d1576104d16119dc565b818103818111156104d1576104d16119dc565b6000816000190483118215151615611b6057611b606119dc565b500290565b9283526001600160a01b03918216602084015216604082015260600190565b8181036000831280158383131683831282161715611ba457611ba46119dc565b5092915050565b600060208284031215611bbd57600080fd5b8151801515811461162c57600080fd5b6001600160801b03828116828216039080821115611ba457611ba46119dc565b6001600160801b03818116838216019080821115611ba457611ba46119dc565b6001600160a01b0381168114610abd57600080fd5b600060208284031215611c3457600080fd5b815161162c81611c0d56fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220ed83f68147792d5e060d3d630c126909bdd66d5acb458d2f2a96907fd7065be464736f6c63430008100033",
267
+ "linkReferences": {},
268
+ "deployedLinkReferences": {}
269
+ }
@@ -21,25 +21,26 @@ contract ERC4626AssetManager is LiquidityThresholdAssetManager {
21
21
 
22
22
  constructor(IERC20Metadata asset_, IERC4626 vault_) LiquidityThresholdAssetManager(asset_) {
23
23
  require(address(vault_) != address(0), "ERC4626AssetManager: vault cannot be zero address");
24
+ require(address(asset_) == vault_.asset(), "ERC4626AssetManager: vault must have the same asset");
24
25
  _vault = vault_;
25
26
  }
26
27
 
27
- function connect() public override {
28
+ function connect() public virtual override {
28
29
  super.connect();
29
30
  _asset.approve(address(_vault), type(uint256).max); // infinite approval to the vault
30
31
  }
31
32
 
32
- function _invest(uint256 amount) internal override {
33
+ function _invest(uint256 amount) internal virtual override {
33
34
  super._invest(amount);
34
35
  _vault.deposit(amount, address(this));
35
36
  }
36
37
 
37
- function _deinvest(uint256 amount) internal override {
38
+ function _deinvest(uint256 amount) internal virtual override {
38
39
  super._deinvest(amount);
39
40
  _vault.withdraw(amount, address(this), address(this));
40
41
  }
41
42
 
42
- function deinvestAll() external override returns (int256 earnings) {
43
+ function deinvestAll() external virtual override returns (int256 earnings) {
43
44
  DiamondStorage storage ds = diamondStorage();
44
45
  uint256 assets = _vault.redeem(_vault.balanceOf(address(this)), address(this), address(this));
45
46
  earnings = int256(assets) - int256(uint256(ds.lastInvestmentValue));
@@ -49,7 +50,7 @@ contract ERC4626AssetManager is LiquidityThresholdAssetManager {
49
50
  return earnings;
50
51
  }
51
52
 
52
- function getInvestmentValue() public view override returns (uint256) {
53
+ function getInvestmentValue() public view virtual override returns (uint256) {
53
54
  return _vault.convertToAssets(_vault.balanceOf(address(this)));
54
55
  }
55
56
  }
@@ -0,0 +1,105 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.0;
3
+
4
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
5
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
+ import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
7
+ import {ERC4626AssetManager} from "./ERC4626AssetManager.sol";
8
+ import {LiquidityThresholdAssetManager} from "./LiquidityThresholdAssetManager.sol";
9
+
10
+ /**
11
+ * @title Asset Manager that deploys the funds into a given ERC4626 but also, at request, can deploy the funds in
12
+ * another vault, the discretionary vault.
13
+ * @dev Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into _vault.
14
+ * By request of the administrator it can also deploy the funds in _discretionaryVault. When deinvesting, if
15
+ * funds in _vault are not enough, it tries to withdraw from _discretionaryVault.
16
+ * @custom:security-contact security@ensuro.co
17
+ * @author Ensuro
18
+ */
19
+ contract ERC4626PlusVaultAssetManager is ERC4626AssetManager {
20
+ IERC4626 internal immutable _discretionaryVault;
21
+
22
+ constructor(
23
+ IERC20Metadata asset_,
24
+ IERC4626 vault_,
25
+ IERC4626 discretionaryVault_
26
+ ) ERC4626AssetManager(asset_, vault_) {
27
+ require(address(discretionaryVault_) != address(0), "ERC4626PlusVaultAssetManager: vault cannot be zero address");
28
+ require(
29
+ address(asset_) == discretionaryVault_.asset(),
30
+ "ERC4626PlusVaultAssetManager: vault must have the same asset"
31
+ );
32
+ require(vault_ != discretionaryVault_, "ERC4626PlusVaultAssetManager: vaults must be different");
33
+ _discretionaryVault = discretionaryVault_;
34
+ }
35
+
36
+ function _deinvest(uint256 amount) internal virtual override {
37
+ LiquidityThresholdAssetManager._deinvest(amount);
38
+ uint256 vaultAmount = Math.min(amount, _vault.maxWithdraw(address(this)));
39
+ if (vaultAmount != 0) _vault.withdraw(vaultAmount, address(this), address(this));
40
+ if (amount - vaultAmount != 0) _discretionaryVault.withdraw(amount - vaultAmount, address(this), address(this));
41
+ }
42
+
43
+ function connect() public override {
44
+ super.connect();
45
+ _asset.approve(address(_discretionaryVault), type(uint256).max); // infinite approval to the vault
46
+ }
47
+
48
+ function deinvestAll() external virtual override returns (int256 earnings) {
49
+ DiamondStorage storage ds = diamondStorage();
50
+ uint256 fromVault = _vault.redeem(_vault.balanceOf(address(this)), address(this), address(this));
51
+ /**
52
+ * WARNING: this was implemented withdrawing as much as possible from the vault WITHOUT failing.
53
+ * This implementation might leave some assets (those that aren't withdrawable) in the vault and those will
54
+ * be reported as losses.
55
+ */
56
+ uint256 redeemable = _discretionaryVault.maxRedeem(address(this));
57
+ uint256 fromDiscVault = redeemable != 0 ? _discretionaryVault.redeem(redeemable, address(this), address(this)) : 0;
58
+ earnings = int256(fromVault + fromDiscVault) - int256(uint256(ds.lastInvestmentValue));
59
+ ds.lastInvestmentValue = 0;
60
+ emit MoneyDeinvested(fromDiscVault + fromVault);
61
+ emit EarningsRecorded(earnings);
62
+ return earnings;
63
+ }
64
+
65
+ function _erc4626Assets(IERC4626 vault) internal view returns (uint256) {
66
+ return vault.convertToAssets(vault.balanceOf(address(this)));
67
+ }
68
+
69
+ function getInvestmentValue() public view virtual override returns (uint256) {
70
+ return _erc4626Assets(_vault) + _erc4626Assets(_discretionaryVault);
71
+ }
72
+
73
+ /**
74
+ * @dev Transfers the given amount from _vault to the _discretionaryVault
75
+ *
76
+ * @param amount The amount to transfer. If that amount isn't available in _vault it reverts.
77
+ * If amount = type(uint256).max it withdraws all the withdrawable funds from _vault.
78
+ */
79
+ function vaultToDiscretionary(uint256 amount) external {
80
+ if (amount == type(uint256).max) amount = _vault.maxWithdraw(address(this));
81
+ _vault.withdraw(amount, address(this), address(this));
82
+ _discretionaryVault.deposit(amount, address(this));
83
+ }
84
+
85
+ /**
86
+ * @dev Transfers the given amount from the _discretionaryVault to _vault
87
+ *
88
+ * @param amount The amount to transfer. If that amount isn't available in the _discretionaryVault it reverts.
89
+ * If amount = type(uint256).max it withdraws all the funds withdrawable in the _discretionaryVault
90
+ */
91
+ function discretionaryToVault(uint256 amount) external {
92
+ uint256 withdrawn;
93
+ if (amount == type(uint256).max) {
94
+ withdrawn = _discretionaryVault.redeem(
95
+ _discretionaryVault.maxRedeem(address(this)),
96
+ address(this),
97
+ address(this)
98
+ );
99
+ } else {
100
+ _discretionaryVault.withdraw(amount, address(this), address(this));
101
+ withdrawn = amount;
102
+ }
103
+ _vault.deposit(withdrawn, address(this));
104
+ }
105
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ensuro/core",
3
3
  "description": "Ensuro - Decentralized insurance protocol",
4
- "version": "2.8.2",
4
+ "version": "2.8.3",
5
5
  "files": [
6
6
  "**/*.sol",
7
7
  "/build",