@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
368 lines (367 loc) • 31.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "SwapStableInvestStrategy",
"sourceName": "contracts/SwapStableInvestStrategy.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IERC20Metadata",
"name": "asset_",
"type": "address"
},
{
"internalType": "contract IERC20Metadata",
"name": "investAsset_",
"type": "address"
},
{
"internalType": "uint256",
"name": "price_",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "CanBeCalledOnlyThroughDelegateCall",
"type": "error"
},
{
"inputs": [],
"name": "CannotDisconnectWithAssets",
"type": "error"
},
{
"inputs": [],
"name": "InvalidAsset",
"type": "error"
},
{
"inputs": [],
"name": "NoExtraDataAllowed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "enum SwapLibrary.SwapProtocol",
"name": "protocol",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "maxSlippage",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "customParams",
"type": "bytes"
}
],
"indexed": false,
"internalType": "struct SwapLibrary.SwapConfig",
"name": "oldConfig",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum SwapLibrary.SwapProtocol",
"name": "protocol",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "maxSlippage",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "customParams",
"type": "bytes"
}
],
"indexed": false,
"internalType": "struct SwapLibrary.SwapConfig",
"name": "newConfig",
"type": "tuple"
}
],
"name": "SwapConfigChanged",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "asset",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "initData",
"type": "bytes"
}
],
"name": "connect",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "assets",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "force",
"type": "bool"
}
],
"name": "disconnect",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "method",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "params",
"type": "bytes"
}
],
"name": "forwardEntryPoint",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contract_",
"type": "address"
}
],
"name": "getSwapConfig",
"outputs": [
{
"components": [
{
"internalType": "enum SwapLibrary.SwapProtocol",
"name": "protocol",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "maxSlippage",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "customParams",
"type": "bytes"
}
],
"internalType": "struct SwapLibrary.SwapConfig",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "investAsset",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "maxDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contract_",
"type": "address"
}
],
"name": "maxWithdraw",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "storageSlot",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contract_",
"type": "address"
}
],
"name": "totalAssets",
"outputs": [
{
"internalType": "uint256",
"name": "assets",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "assets",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x3060808181526040610140818152601e610180527f636f2e656e7375726f2e496e766573745374726174656779436c69656e7400006101a052610160939093526101208290526101c09052902060a05234801561005a575f5ffd5b506040516118e43803806118e4833981016040819052610079916101ea565b6012836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100db9190610223565b60ff1611156100fd57604051636448d6e960e11b815260040160405180910390fd5b6012826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015f9190610223565b60ff16111561018157604051636448d6e960e11b815260040160405180910390fd5b816001600160a01b0316836001600160a01b0316036101b357604051636448d6e960e11b815260040160405180910390fd5b6001600160a01b0392831660c052911660e0526101005261024a565b80516001600160a01b03811681146101e5575f5ffd5b919050565b5f5f5f606084860312156101fc575f5ffd5b610205846101cf565b9250610213602085016101cf565b9150604084015190509250925092565b5f60208284031215610233575f5ffd5b815160ff81168114610243575f5ffd5b9392505050565b60805160a05160c05160e051610100516115ca61031a5f395f81816103f4015281816109c40152610dc201525f81816102040152818161043c015281816104e40152818161061001528181610730015281816109a001528181610a560152610d9201525f818161018001528181610506015281816106320152818161097e0152610d6301525f818161014d015281816103290152818161089101528181610aef0152610c7e01525f8181610245015281816102e1015281816106d3015281816107cc015261084901526115ca5ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80639c4667a21161006e5780639c4667a21461016f5780639cd47128146101ba578063b6b55f25146101cd578063ce96cb77146101e0578063de846ae4146101f3578063f3e0ffbf14610226575f5ffd5b80630981b1c2146100b55780632e1a7d4d146100de578063402d267d146100f357806342b054f0146101155780635a117456146101355780635b9a4c3514610148575b5f5ffd5b6100c86100c3366004610fa3565b610239565b6040516100d5919061101e565b60405180910390f35b6100f16100ec366004611030565b6102d7565b005b610107610101366004611047565b505f1990565b6040519081526020016100d5565b610128610123366004611047565b6106a5565b6040516100d591906110cf565b6100f16101433660046110e1565b6106c9565b6101077f000000000000000000000000000000000000000000000000000000000000000081565b6101a261017d366004611047565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100d5565b6100f16101c8366004611100565b6107c2565b6100f16101db366004611030565b61083f565b6101076101ee366004611047565b610a2b565b6101a2610201366004611047565b507f000000000000000000000000000000000000000000000000000000000000000090565b610107610234366004611047565b610a31565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361028457604051632abf118b60e21b815260040160405180910390fd5b5f60ff841680156102975761029761106d565b90505f8180156102a9576102a961106d565b036100b1576102c06102ba30610ac5565b84610b87565b505060408051602081019091525f81525b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361032057604051632abf118b60e21b815260040160405180910390fd5b80156106a2575f7f0000000000000000000000000000000000000000000000000000000000000000805461035390611132565b80601f016020809104026020016040519081016040528092919081815260200182805461037f90611132565b80156103ca5780601f106103a1576101008083540402835291602001916103ca565b820191905f5260205f20905b8154815290600101906020018083116103ad57829003601f168201915b50505050508060200190518101906103e291906111b7565b90505f610418670de0b6b3a7640000807f0000000000000000000000000000000000000000000000000000000000000000610ca7565b6040516370a0823160e01b81523060048201529091506104ab906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610481573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a59190611243565b30610d5d565b83106105df576040516370a0823160e01b815230600482015273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063775669159084907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610555573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105799190611243565b866040518663ffffffff1660e01b815260040161059a95949392919061125a565b602060405180830381865af41580156105b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d99190611243565b5061069f565b60405163581e517d60e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063581e517d9061065e9085907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908990889060040161125a565b602060405180830381865af4158015610679573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069d9190611243565b505b50505b50565b60408051606080820183525f8083526020830152918101919091526102d182610ac5565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361071257604051632abf118b60e21b815260040160405180910390fd5b801580156107a457506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561077d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a19190611243565b15155b156106a2576040516342a176d160e11b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361080b57604051632abf118b60e21b815260040160405180910390fd5b60408051606081019091526106a290805f81526020015f815260200160405180602001604052805f81525081525082610b87565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361088857604051632abf118b60e21b815260040160405180910390fd5b80156106a2575f7f000000000000000000000000000000000000000000000000000000000000000080546108bb90611132565b80601f01602080910402602001604051908101604052809291908181526020018280546108e790611132565b80156109325780601f1061090957610100808354040283529160200191610932565b820191905f5260205f20905b81548152906001019060200180831161091557829003601f168201915b505050505080602001905181019061094a91906111b7565b604051637756691560e01b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__906377566915906109ec9084907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088907f00000000000000000000000000000000000000000000000000000000000000009060040161125a565b602060405180830381865af4158015610a07573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069f9190611243565b5f6102d1825b6040516370a0823160e01b81526001600160a01b0382811660048301525f916102d1917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610a9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abf9190611243565b83610d5d565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610b43573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b6a9190810190611299565b905080806020019051810190610b8091906111b7565b9392505050565b5f81806020019051810190610b9c91906111b7565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610bd69084906004016110cf565b5f6040518083038186803b158015610bec575f5ffd5b505af4158015610bfe573d5f5f3e3d5ffd5b50505050815181604051602001610c1591906110cf565b6040516020818303038152906040525114610c43576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610c749291906112cb565b60405180910390a17f000000000000000000000000000000000000000000000000000000000000000061069d8382611343565b5f838302815f1985870982811083820303915050805f03610cdb57838281610cd157610cd16113fe565b0492505050610b80565b808411610cf257610cf26003851502601118610e26565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f610d877f0000000000000000000000000000000000000000000000000000000000000000610e37565b610e1c610def610db67f0000000000000000000000000000000000000000000000000000000000000000610e37565b610dc09087611426565b7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000610ca7565b610df885610ac5565b60200151610e0e90670de0b6b3a764000061143d565b670de0b6b3a7640000610ca7565b610b809190611450565b634e487b715f52806020526024601cfd5b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e98919061146f565b610ea390601261148a565b6102d190600a611586565b60ff811681146106a2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610ef357610ef3610ebc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f2257610f22610ebc565b604052919050565b5f67ffffffffffffffff821115610f4357610f43610ebc565b50601f01601f191660200190565b5f82601f830112610f60575f5ffd5b8135610f73610f6e82610f2a565b610ef9565b818152846020838601011115610f87575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610fb4575f5ffd5b8235610fbf81610eae565b9150602083013567ffffffffffffffff811115610fda575f5ffd5b610fe685828601610f51565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610b806020830184610ff0565b5f60208284031215611040575f5ffd5b5035919050565b5f60208284031215611057575f5ffd5b81356001600160a01b0381168114610b80575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f8151600381106110a057634e487b7160e01b5f52602160045260245ffd5b80845250602082015160208401526040820151606060408501526110c76060850182610ff0565b949350505050565b602081525f610b806020830184611081565b5f602082840312156110f1575f5ffd5b81358015158114610b80575f5ffd5b5f60208284031215611110575f5ffd5b813567ffffffffffffffff811115611126575f5ffd5b6110c784828501610f51565b600181811c9082168061114657607f821691505b60208210810361116457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112611179575f5ffd5b8151611187610f6e82610f2a565b81815284602083860101111561119b575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f602082840312156111c7575f5ffd5b815167ffffffffffffffff8111156111dd575f5ffd5b8201606081850312156111ee575f5ffd5b6111f6610ed0565b815160038110611204575f5ffd5b815260208281015190820152604082015167ffffffffffffffff811115611229575f5ffd5b6112358682850161116a565b604083015250949350505050565b5f60208284031215611253575f5ffd5b5051919050565b60a081525f61126c60a0830188611081565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f602082840312156112a9575f5ffd5b815167ffffffffffffffff8111156112bf575f5ffd5b6110c78482850161116a565b604081525f6112dd6040830185611081565b82810360208401526112ef8185611081565b95945050505050565b601f82111561069f57805f5260205f20601f840160051c8101602085101561131d5750805b601f840160051c820191505b8181101561133c575f8155600101611329565b5050505050565b815167ffffffffffffffff81111561135d5761135d610ebc565b6113718161136b8454611132565b846112f8565b6020601f8211600181146113a3575f831561138c5750848201515b5f19600385901b1c1916600184901b17845561133c565b5f84815260208120601f198516915b828110156113d257878501518255602094850194600190920191016113b2565b50848210156113ef57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176102d1576102d1611412565b818103818111156102d1576102d1611412565b5f8261146a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561147f575f5ffd5b8151610b8081610eae565b60ff82811682821603908111156102d1576102d1611412565b6001815b60018411156114de578085048111156114c2576114c2611412565b60018416156114d057908102905b60019390931c9280026114a7565b935093915050565b5f826114f4575060016102d1565b8161150057505f6102d1565b816001811461151657600281146115205761153c565b60019150506102d1565b60ff84111561153157611531611412565b50506001821b6102d1565b5060208310610133831016604e8410600b841016171561155f575081810a6102d1565b61156b5f1984846114a3565b805f190482111561157e5761157e611412565b029392505050565b5f610b8060ff8416836114e656fea26469706673582212207ba311e6b07b36ff43d36d7b838671ac7a2197dfab146b696d165fca56b2c91d64736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80639c4667a21161006e5780639c4667a21461016f5780639cd47128146101ba578063b6b55f25146101cd578063ce96cb77146101e0578063de846ae4146101f3578063f3e0ffbf14610226575f5ffd5b80630981b1c2146100b55780632e1a7d4d146100de578063402d267d146100f357806342b054f0146101155780635a117456146101355780635b9a4c3514610148575b5f5ffd5b6100c86100c3366004610fa3565b610239565b6040516100d5919061101e565b60405180910390f35b6100f16100ec366004611030565b6102d7565b005b610107610101366004611047565b505f1990565b6040519081526020016100d5565b610128610123366004611047565b6106a5565b6040516100d591906110cf565b6100f16101433660046110e1565b6106c9565b6101077f000000000000000000000000000000000000000000000000000000000000000081565b6101a261017d366004611047565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100d5565b6100f16101c8366004611100565b6107c2565b6100f16101db366004611030565b61083f565b6101076101ee366004611047565b610a2b565b6101a2610201366004611047565b507f000000000000000000000000000000000000000000000000000000000000000090565b610107610234366004611047565b610a31565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361028457604051632abf118b60e21b815260040160405180910390fd5b5f60ff841680156102975761029761106d565b90505f8180156102a9576102a961106d565b036100b1576102c06102ba30610ac5565b84610b87565b505060408051602081019091525f81525b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361032057604051632abf118b60e21b815260040160405180910390fd5b80156106a2575f7f0000000000000000000000000000000000000000000000000000000000000000805461035390611132565b80601f016020809104026020016040519081016040528092919081815260200182805461037f90611132565b80156103ca5780601f106103a1576101008083540402835291602001916103ca565b820191905f5260205f20905b8154815290600101906020018083116103ad57829003601f168201915b50505050508060200190518101906103e291906111b7565b90505f610418670de0b6b3a7640000807f0000000000000000000000000000000000000000000000000000000000000000610ca7565b6040516370a0823160e01b81523060048201529091506104ab906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610481573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a59190611243565b30610d5d565b83106105df576040516370a0823160e01b815230600482015273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063775669159084907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610555573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105799190611243565b866040518663ffffffff1660e01b815260040161059a95949392919061125a565b602060405180830381865af41580156105b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d99190611243565b5061069f565b60405163581e517d60e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063581e517d9061065e9085907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908990889060040161125a565b602060405180830381865af4158015610679573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069d9190611243565b505b50505b50565b60408051606080820183525f8083526020830152918101919091526102d182610ac5565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361071257604051632abf118b60e21b815260040160405180910390fd5b801580156107a457506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561077d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a19190611243565b15155b156106a2576040516342a176d160e11b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361080b57604051632abf118b60e21b815260040160405180910390fd5b60408051606081019091526106a290805f81526020015f815260200160405180602001604052805f81525081525082610b87565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361088857604051632abf118b60e21b815260040160405180910390fd5b80156106a2575f7f000000000000000000000000000000000000000000000000000000000000000080546108bb90611132565b80601f01602080910402602001604051908101604052809291908181526020018280546108e790611132565b80156109325780601f1061090957610100808354040283529160200191610932565b820191905f5260205f20905b81548152906001019060200180831161091557829003601f168201915b505050505080602001905181019061094a91906111b7565b604051637756691560e01b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__906377566915906109ec9084907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088907f00000000000000000000000000000000000000000000000000000000000000009060040161125a565b602060405180830381865af4158015610a07573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069f9190611243565b5f6102d1825b6040516370a0823160e01b81526001600160a01b0382811660048301525f916102d1917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610a9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abf9190611243565b83610d5d565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610b43573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b6a9190810190611299565b905080806020019051810190610b8091906111b7565b9392505050565b5f81806020019051810190610b9c91906111b7565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610bd69084906004016110cf565b5f6040518083038186803b158015610bec575f5ffd5b505af4158015610bfe573d5f5f3e3d5ffd5b50505050815181604051602001610c1591906110cf565b6040516020818303038152906040525114610c43576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610c749291906112cb565b60405180910390a17f000000000000000000000000000000000000000000000000000000000000000061069d8382611343565b5f838302815f1985870982811083820303915050805f03610cdb57838281610cd157610cd16113fe565b0492505050610b80565b808411610cf257610cf26003851502601118610e26565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f610d877f0000000000000000000000000000000000000000000000000000000000000000610e37565b610e1c610def610db67f0000000000000000000000000000000000000000000000000000000000000000610e37565b610dc09087611426565b7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000610ca7565b610df885610ac5565b60200151610e0e90670de0b6b3a764000061143d565b670de0b6b3a7640000610ca7565b610b809190611450565b634e487b715f52806020526024601cfd5b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e98919061146f565b610ea390601261148a565b6102d190600a611586565b60ff811681146106a2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610ef357610ef3610ebc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f2257610f22610ebc565b604052919050565b5f67ffffffffffffffff821115610f4357610f43610ebc565b50601f01601f191660200190565b5f82601f830112610f60575f5ffd5b8135610f73610f6e82610f2a565b610ef9565b818152846020838601011115610f87575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610fb4575f5ffd5b8235610fbf81610eae565b9150602083013567ffffffffffffffff811115610fda575f5ffd5b610fe685828601610f51565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610b806020830184610ff0565b5f60208284031215611040575f5ffd5b5035919050565b5f60208284031215611057575f5ffd5b81356001600160a01b0381168114610b80575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f8151600381106110a057634e487b7160e01b5f52602160045260245ffd5b80845250602082015160208401526040820151606060408501526110c76060850182610ff0565b949350505050565b602081525f610b806020830184611081565b5f602082840312156110f1575f5ffd5b81358015158114610b80575f5ffd5b5f60208284031215611110575f5ffd5b813567ffffffffffffffff811115611126575f5ffd5b6110c784828501610f51565b600181811c9082168061114657607f821691505b60208210810361116457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112611179575f5ffd5b8151611187610f6e82610f2a565b81815284602083860101111561119b575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f602082840312156111c7575f5ffd5b815167ffffffffffffffff8111156111dd575f5ffd5b8201606081850312156111ee575f5ffd5b6111f6610ed0565b815160038110611204575f5ffd5b815260208281015190820152604082015167ffffffffffffffff811115611229575f5ffd5b6112358682850161116a565b604083015250949350505050565b5f60208284031215611253575f5ffd5b5051919050565b60a081525f61126c60a0830188611081565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f602082840312156112a9575f5ffd5b815167ffffffffffffffff8111156112bf575f5ffd5b6110c78482850161116a565b604081525f6112dd6040830185611081565b82810360208401526112ef8185611081565b95945050505050565b601f82111561069f57805f5260205f20601f840160051c8101602085101561131d5750805b601f840160051c820191505b8181101561133c575f8155600101611329565b5050505050565b815167ffffffffffffffff81111561135d5761135d610ebc565b6113718161136b8454611132565b846112f8565b6020601f8211600181146113a3575f831561138c5750848201515b5f19600385901b1c1916600184901b17845561133c565b5f84815260208120601f198516915b828110156113d257878501518255602094850194600190920191016113b2565b50848210156113ef57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176102d1576102d1611412565b818103818111156102d1576102d1611412565b5f8261146a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561147f575f5ffd5b8151610b8081610eae565b60ff82811682821603908111156102d1576102d1611412565b6001815b60018411156114de578085048111156114c2576114c2611412565b60018416156114d057908102905b60019390931c9280026114a7565b935093915050565b5f826114f4575060016102d1565b8161150057505f6102d1565b816001811461151657600281146115205761153c565b60019150506102d1565b60ff84111561153157611531611412565b50506001821b6102d1565b5060208310610133831016604e8410600b841016171561155f575081810a6102d1565b61156b5f1984846114a3565b805f190482111561157e5761157e611412565b029392505050565b5f610b8060ff8416836114e656fea26469706673582212207ba311e6b07b36ff43d36d7b838671ac7a2197dfab146b696d165fca56b2c91d64736f6c634300081c0033",
"linkReferences": {
"@ensuro/swaplibrary/contracts/SwapLibrary.sol": {
"SwapLibrary": [
{
"length": 20,
"start": 2016
},
{
"length": 20,
"start": 2312
},
{
"length": 20,
"start": 3190
},
{
"length": 20,
"start": 3784
}
]
}
},
"deployedLinkReferences": {
"@ensuro/swaplibrary/contracts/SwapLibrary.sol": {
"SwapLibrary": [
{
"length": 20,
"start": 1222
},
{
"length": 20,
"start": 1518
},
{
"length": 20,
"start": 2396
},
{
"length": 20,
"start": 2990
}
]
}
}
}