@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
381 lines (380 loc) • 31.2 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "SwapStableInvestStrategy",
"sourceName": "contracts/strategies/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": [],
"name": "investAssetPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "0x3060808181526040610140818152601e610180527f636f2e656e7375726f2e496e766573745374726174656779436c69656e7400006101a052610160939093526101208290526101c09052902060a05234801561005a575f5ffd5b50604051611825380380611825833981016040819052610079916101ee565b82826012826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100dd9190610227565b60ff1611156100ff57604051636448d6e960e11b815260040160405180910390fd5b6012816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101619190610227565b60ff16111561018357604051636448d6e960e11b815260040160405180910390fd5b806001600160a01b0316826001600160a01b0316036101b557604051636448d6e960e11b815260040160405180910390fd5b6001600160a01b0391821660c0521660e052610100525061024e9050565b80516001600160a01b03811681146101e9575f5ffd5b919050565b5f5f5f60608486031215610200575f5ffd5b610209846101d3565b9250610217602085016101d3565b9150604084015190509250925092565b5f60208284031215610237575f5ffd5b815160ff81168114610247575f5ffd5b9392505050565b60805160a05160c05160e0516101005161150f6103165f395f818160fa015281816107ed01528181610bbf0152610c4801525f81816102400152818161039a015281816104420152818161056e015281816107c9015281816108830152610c1801525f81816101bc0152818161046401528181610590015281816107a70152610be901525f81816101890152818161091c01528181610aab0152610af101525f81816102810152818161031d01528181610631015281816106ad015261072a015261150f5ff3fe608060405234801561000f575f5ffd5b50600436106100cb575f3560e01c80635b9a4c3511610088578063b6b55f2511610063578063b6b55f2514610209578063ce96cb771461021c578063de846ae41461022f578063f3e0ffbf14610262575f5ffd5b80635b9a4c35146101845780639c4667a2146101ab5780639cd47128146101f6575f5ffd5b80630981b1c2146100cf5780631418983b146100f85780632e1a7d4d14610128578063402d267d1461013d57806342b054f0146101515780635a11745614610171575b5f5ffd5b6100e26100dd366004610ee8565b610275565b6040516100ef9190610f63565b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020016100ef565b61013b610136366004610f75565b610313565b005b61011a61014b366004610f8c565b505f1990565b61016461015f366004610f8c565b610603565b6040516100ef9190611014565b61013b61017f366004611026565b610627565b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b6101de6101b9366004610f8c565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ef565b61013b610204366004611045565b6106a3565b61013b610217366004610f75565b610720565b61011a61022a366004610f8c565b610858565b6101de61023d366004610f8c565b507f000000000000000000000000000000000000000000000000000000000000000090565b61011a610270366004610f8c565b61085e565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036102c057604051632abf118b60e21b815260040160405180910390fd5b5f60ff841680156102d3576102d3610fb2565b90505f8180156102e5576102e5610fb2565b036100cb576102fc6102f6306108f2565b846109b4565b505060408051602081019091525f81525b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361035c57604051632abf118b60e21b815260040160405180910390fd5b8015610600575f61036b610ad4565b90505f610376610baf565b6040516370a0823160e01b8152306004820152909150610409906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156103df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104039190611077565b30610be3565b831061053d576040516370a0823160e01b815230600482015273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063775669159084907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d79190611077565b866040518663ffffffff1660e01b81526004016104f895949392919061108e565b602060405180830381865af4158015610513573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105379190611077565b506105fd565b60405163581e517d60e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063581e517d906105bc9085907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908990889060040161108e565b602060405180830381865af41580156105d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105fb9190611077565b505b50505b50565b60408051606080820183525f80835260208301529181019190915261030d826108f2565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361067057604051632abf118b60e21b815260040160405180910390fd5b8015801561068557506106823061085e565b15155b15610600576040516342a176d160e11b815260040160405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106ec57604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261060090805f81526020015f815260200160405180602001604052805f815250815250826109b4565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361076957604051632abf118b60e21b815260040160405180910390fd5b801561060057610777610ad4565b604051637756691560e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9163775669159161081591907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009087907f00000000000000000000000000000000000000000000000000000000000000009060040161108e565b602060405180830381865af4158015610830573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108549190611077565b5050565b5f61030d825b6040516370a0823160e01b81526001600160a01b0382811660048301525f9161030d917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156108c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ec9190611077565b83610be3565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610970573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610997919081019061111a565b9050808060200190518101906109ad919061114c565b9392505050565b5f818060200190518101906109c9919061114c565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610a03908490600401611014565b5f6040518083038186803b158015610a19575f5ffd5b505af4158015610a2b573d5f5f3e3d5ffd5b50505050815181604051602001610a429190611014565b6040516020818303038152906040525114610a70576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610aa19291906111d8565b60405180910390a17f00000000000000000000000000000000000000000000000000000000000000006105fb8382611288565b60408051606080820183525f8083526020830152918101919091527f00000000000000000000000000000000000000000000000000000000000000008054610b1b90611205565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4790611205565b8015610b925780601f10610b6957610100808354040283529160200191610b92565b820191905f5260205f20905b815481529060010190602001808311610b7557829003601f168201915b5050505050806020019051810190610baa919061114c565b905090565b5f610baa670de0b6b3a7640000807f0000000000000000000000000000000000000000000000000000000000000000610c9f565b5f610c0d7f0000000000000000000000000000000000000000000000000000000000000000610d4f565b610c95610c76610c3c7f0000000000000000000000000000000000000000000000000000000000000000610d4f565b610c469087611357565b7f00000000000000000000000000000000000000000000000000000000000000005b670de0b6b3a7640000610c9f565b610c7f856108f2565b60200151610c6890670de0b6b3a764000061136e565b6109ad9190611395565b5f5f5f610cac8686610dc6565b91509150815f03610cd057838181610cc657610cc6611381565b04925050506109ad565b818411610ce757610ce76003851502601118610de2565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db091906113b4565b610dbb9060126113cf565b61030d90600a6114cb565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b60ff81168114610600575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610e3857610e38610e01565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e6757610e67610e01565b604052919050565b5f67ffffffffffffffff821115610e8857610e88610e01565b50601f01601f191660200190565b5f82601f830112610ea5575f5ffd5b8135610eb8610eb382610e6f565b610e3e565b818152846020838601011115610ecc575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610ef9575f5ffd5b8235610f0481610df3565b9150602083013567ffffffffffffffff811115610f1f575f5ffd5b610f2b85828601610e96565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109ad6020830184610f35565b5f60208284031215610f85575f5ffd5b5035919050565b5f60208284031215610f9c575f5ffd5b81356001600160a01b03811681146109ad575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f815160038110610fe557634e487b7160e01b5f52602160045260245ffd5b808452506020820151602084015260408201516060604085015261100c6060850182610f35565b949350505050565b602081525f6109ad6020830184610fc6565b5f60208284031215611036575f5ffd5b813580151581146109ad575f5ffd5b5f60208284031215611055575f5ffd5b813567ffffffffffffffff81111561106b575f5ffd5b61100c84828501610e96565b5f60208284031215611087575f5ffd5b5051919050565b60a081525f6110a060a0830188610fc6565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f82601f8301126110dc575f5ffd5b81516110ea610eb382610e6f565b8181528460208386010111156110fe575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561112a575f5ffd5b815167ffffffffffffffff811115611140575f5ffd5b61100c848285016110cd565b5f6020828403121561115c575f5ffd5b815167ffffffffffffffff811115611172575f5ffd5b820160608185031215611183575f5ffd5b61118b610e15565b815160038110611199575f5ffd5b815260208281015190820152604082015167ffffffffffffffff8111156111be575f5ffd5b6111ca868285016110cd565b604083015250949350505050565b604081525f6111ea6040830185610fc6565b82810360208401526111fc8185610fc6565b95945050505050565b600181811c9082168061121957607f821691505b60208210810361123757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156105fd57805f5260205f20601f840160051c810160208510156112625750805b601f840160051c820191505b81811015611281575f815560010161126e565b5050505050565b815167ffffffffffffffff8111156112a2576112a2610e01565b6112b6816112b08454611205565b8461123d565b6020601f8211600181146112e8575f83156112d15750848201515b5f19600385901b1c1916600184901b178455611281565b5f84815260208120601f198516915b8281101561131757878501518255602094850194600190920191016112f7565b508482101561133457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761030d5761030d611343565b8181038181111561030d5761030d611343565b634e487b7160e01b5f52601260045260245ffd5b5f826113af57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156113c4575f5ffd5b81516109ad81610df3565b60ff828116828216039081111561030d5761030d611343565b6001815b60018411156114235780850481111561140757611407611343565b600184161561141557908102905b60019390931c9280026113ec565b935093915050565b5f826114395750600161030d565b8161144557505f61030d565b816001811461145b576002811461146557611481565b600191505061030d565b60ff84111561147657611476611343565b50506001821b61030d565b5060208310610133831016604e8410600b84101617156114a4575081810a61030d565b6114b05f1984846113e8565b805f19048211156114c3576114c3611343565b029392505050565b5f6109ad60ff84168361142b56fea2646970667358221220a0a23d761b87053be335ea25d765fe4df78c1379ebb0ef6ed139360180fadd2d64736f6c634300081e0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100cb575f3560e01c80635b9a4c3511610088578063b6b55f2511610063578063b6b55f2514610209578063ce96cb771461021c578063de846ae41461022f578063f3e0ffbf14610262575f5ffd5b80635b9a4c35146101845780639c4667a2146101ab5780639cd47128146101f6575f5ffd5b80630981b1c2146100cf5780631418983b146100f85780632e1a7d4d14610128578063402d267d1461013d57806342b054f0146101515780635a11745614610171575b5f5ffd5b6100e26100dd366004610ee8565b610275565b6040516100ef9190610f63565b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020016100ef565b61013b610136366004610f75565b610313565b005b61011a61014b366004610f8c565b505f1990565b61016461015f366004610f8c565b610603565b6040516100ef9190611014565b61013b61017f366004611026565b610627565b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b6101de6101b9366004610f8c565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ef565b61013b610204366004611045565b6106a3565b61013b610217366004610f75565b610720565b61011a61022a366004610f8c565b610858565b6101de61023d366004610f8c565b507f000000000000000000000000000000000000000000000000000000000000000090565b61011a610270366004610f8c565b61085e565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036102c057604051632abf118b60e21b815260040160405180910390fd5b5f60ff841680156102d3576102d3610fb2565b90505f8180156102e5576102e5610fb2565b036100cb576102fc6102f6306108f2565b846109b4565b505060408051602081019091525f81525b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361035c57604051632abf118b60e21b815260040160405180910390fd5b8015610600575f61036b610ad4565b90505f610376610baf565b6040516370a0823160e01b8152306004820152909150610409906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156103df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104039190611077565b30610be3565b831061053d576040516370a0823160e01b815230600482015273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063775669159084907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d79190611077565b866040518663ffffffff1660e01b81526004016104f895949392919061108e565b602060405180830381865af4158015610513573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105379190611077565b506105fd565b60405163581e517d60e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063581e517d906105bc9085907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908990889060040161108e565b602060405180830381865af41580156105d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105fb9190611077565b505b50505b50565b60408051606080820183525f80835260208301529181019190915261030d826108f2565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361067057604051632abf118b60e21b815260040160405180910390fd5b8015801561068557506106823061085e565b15155b15610600576040516342a176d160e11b815260040160405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106ec57604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261060090805f81526020015f815260200160405180602001604052805f815250815250826109b4565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361076957604051632abf118b60e21b815260040160405180910390fd5b801561060057610777610ad4565b604051637756691560e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9163775669159161081591907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009087907f00000000000000000000000000000000000000000000000000000000000000009060040161108e565b602060405180830381865af4158015610830573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108549190611077565b5050565b5f61030d825b6040516370a0823160e01b81526001600160a01b0382811660048301525f9161030d917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156108c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ec9190611077565b83610be3565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610970573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610997919081019061111a565b9050808060200190518101906109ad919061114c565b9392505050565b5f818060200190518101906109c9919061114c565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610a03908490600401611014565b5f6040518083038186803b158015610a19575f5ffd5b505af4158015610a2b573d5f5f3e3d5ffd5b50505050815181604051602001610a429190611014565b6040516020818303038152906040525114610a70576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610aa19291906111d8565b60405180910390a17f00000000000000000000000000000000000000000000000000000000000000006105fb8382611288565b60408051606080820183525f8083526020830152918101919091527f00000000000000000000000000000000000000000000000000000000000000008054610b1b90611205565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4790611205565b8015610b925780601f10610b6957610100808354040283529160200191610b92565b820191905f5260205f20905b815481529060010190602001808311610b7557829003601f168201915b5050505050806020019051810190610baa919061114c565b905090565b5f610baa670de0b6b3a7640000807f0000000000000000000000000000000000000000000000000000000000000000610c9f565b5f610c0d7f0000000000000000000000000000000000000000000000000000000000000000610d4f565b610c95610c76610c3c7f0000000000000000000000000000000000000000000000000000000000000000610d4f565b610c469087611357565b7f00000000000000000000000000000000000000000000000000000000000000005b670de0b6b3a7640000610c9f565b610c7f856108f2565b60200151610c6890670de0b6b3a764000061136e565b6109ad9190611395565b5f5f5f610cac8686610dc6565b91509150815f03610cd057838181610cc657610cc6611381565b04925050506109ad565b818411610ce757610ce76003851502601118610de2565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db091906113b4565b610dbb9060126113cf565b61030d90600a6114cb565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b60ff81168114610600575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610e3857610e38610e01565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e6757610e67610e01565b604052919050565b5f67ffffffffffffffff821115610e8857610e88610e01565b50601f01601f191660200190565b5f82601f830112610ea5575f5ffd5b8135610eb8610eb382610e6f565b610e3e565b818152846020838601011115610ecc575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610ef9575f5ffd5b8235610f0481610df3565b9150602083013567ffffffffffffffff811115610f1f575f5ffd5b610f2b85828601610e96565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109ad6020830184610f35565b5f60208284031215610f85575f5ffd5b5035919050565b5f60208284031215610f9c575f5ffd5b81356001600160a01b03811681146109ad575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f815160038110610fe557634e487b7160e01b5f52602160045260245ffd5b808452506020820151602084015260408201516060604085015261100c6060850182610f35565b949350505050565b602081525f6109ad6020830184610fc6565b5f60208284031215611036575f5ffd5b813580151581146109ad575f5ffd5b5f60208284031215611055575f5ffd5b813567ffffffffffffffff81111561106b575f5ffd5b61100c84828501610e96565b5f60208284031215611087575f5ffd5b5051919050565b60a081525f6110a060a0830188610fc6565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f82601f8301126110dc575f5ffd5b81516110ea610eb382610e6f565b8181528460208386010111156110fe575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561112a575f5ffd5b815167ffffffffffffffff811115611140575f5ffd5b61100c848285016110cd565b5f6020828403121561115c575f5ffd5b815167ffffffffffffffff811115611172575f5ffd5b820160608185031215611183575f5ffd5b61118b610e15565b815160038110611199575f5ffd5b815260208281015190820152604082015167ffffffffffffffff8111156111be575f5ffd5b6111ca868285016110cd565b604083015250949350505050565b604081525f6111ea6040830185610fc6565b82810360208401526111fc8185610fc6565b95945050505050565b600181811c9082168061121957607f821691505b60208210810361123757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156105fd57805f5260205f20601f840160051c810160208510156112625750805b601f840160051c820191505b81811015611281575f815560010161126e565b5050505050565b815167ffffffffffffffff8111156112a2576112a2610e01565b6112b6816112b08454611205565b8461123d565b6020601f8211600181146112e8575f83156112d15750848201515b5f19600385901b1c1916600184901b178455611281565b5f84815260208120601f198516915b8281101561131757878501518255602094850194600190920191016112f7565b508482101561133457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761030d5761030d611343565b8181038181111561030d5761030d611343565b634e487b7160e01b5f52601260045260245ffd5b5f826113af57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156113c4575f5ffd5b81516109ad81610df3565b60ff828116828216039081111561030d5761030d611343565b6001815b60018411156114235780850481111561140757611407611343565b600184161561141557908102905b60019390931c9280026113ec565b935093915050565b5f826114395750600161030d565b8161144557505f61030d565b816001811461145b576002811461146557611481565b600191505061030d565b60ff84111561147657611476611343565b50506001821b61030d565b5060208310610133831016604e8410600b84101617156114a4575081810a61030d565b6114b05f1984846113e8565b805f19048211156114c3576114c3611343565b029392505050565b5f6109ad60ff84168361142b56fea2646970667358221220a0a23d761b87053be335ea25d765fe4df78c1379ebb0ef6ed139360180fadd2d64736f6c634300081e0033",
"linkReferences": {
"@ensuro/swaplibrary/contracts/SwapLibrary.sol": {
"SwapLibrary": [
{
"length": 20,
"start": 1850
},
{
"length": 20,
"start": 2146
},
{
"length": 20,
"start": 2716
},
{
"length": 20,
"start": 3313
}
]
}
},
"deployedLinkReferences": {
"@ensuro/swaplibrary/contracts/SwapLibrary.sol": {
"SwapLibrary": [
{
"length": 20,
"start": 1060
},
{
"length": 20,
"start": 1356
},
{
"length": 20,
"start": 1926
},
{
"length": 20,
"start": 2523
}
]
}
}
}