@gooddollar/goodprotocol
Version:
GoodDollar Protocol
319 lines (318 loc) • 28.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "BuyGDClone",
"sourceName": "contracts/utils/BuyGDClone.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract ISwapRouter",
"name": "_router",
"type": "address"
},
{
"internalType": "address",
"name": "_cusd",
"type": "address"
},
{
"internalType": "address",
"name": "_gd",
"type": "address"
},
{
"internalType": "contract IStaticOracle",
"name": "_oracle",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "NO_BALANCE",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "REFUND_FAILED",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "inToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "inAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "outAmount",
"type": "uint256"
}
],
"name": "Bought",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"inputs": [],
"name": "celo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cusd",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gd",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "baseAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"internalType": "uint32",
"name": "period",
"type": "uint32"
}
],
"name": "minAmountByTWAP",
"outputs": [
{
"internalType": "uint256",
"name": "minTwap",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "quote",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oracle",
"outputs": [
{
"internalType": "contract IStaticOracle",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "recover",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "router",
"outputs": [
{
"internalType": "contract ISwapRouter",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_minAmount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "refundGas",
"type": "address"
}
],
"name": "swap",
"outputs": [
{
"internalType": "uint256",
"name": "bought",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_minAmount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "refundGas",
"type": "address"
}
],
"name": "swapCelo",
"outputs": [
{
"internalType": "uint256",
"name": "bought",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_minAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "refundGas",
"type": "address"
}
],
"name": "swapCusd",
"outputs": [
{
"internalType": "uint256",
"name": "bought",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "twapPeriod",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x6101206040523480156200001257600080fd5b506040516200167e3803806200167e833981016040819052620000359162000078565b6001600160a01b0393841660805291831660c052821660e052166101005261012c60a052620000e0565b6001600160a01b03811681146200007557600080fd5b50565b600080600080608085870312156200008f57600080fd5b84516200009c816200005f565b6020860151909450620000af816200005f565b6040860151909350620000c2816200005f565b6060860151909250620000d5816200005f565b939692955090935050565b60805160a05160c05160e051610100516114bf620001bf6000396000818161015801528181610500015281816105be01526106db0152600081816101e70152818161060f015281816109130152610cd301526000818161010201528181610531015281816105ed01528181610712015281816108d101528181610ada01528181610b7901528181610bea01528181610c9101528181610dee015261101b01526000818161028f015281816107c70152610b9a0152600081816102d80152818161082f0152818161098101528181610c170152610d4101526114bf6000f3fe6080604052600436106100a65760003560e01c8063051ed8ef146100b25780630c577bdc146100f05780630cd865ec146101245780637dc0d1d014610146578063821dc9101461017a5780638da5cb5b146101af578063a5e598fc146101d5578063aa6bfa9d14610209578063b1a5fa9f1461022a578063c4d66de81461024a578063d3986f081461026a578063f62073261461027d578063f887ea40146102c657600080fd5b366100ad57005b600080fd5b3480156100be57600080fd5b506100da73471ece3750da237f93b8e339c536989b8978a43881565b6040516100e791906110c2565b60405180910390f35b3480156100fc57600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b34801561013057600080fd5b5061014461013f3660046110eb565b6102fa565b005b34801561015257600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b34801561018657600080fd5b5061019a61019536600461110f565b610473565b604080519283526020830191909152016100e7565b3480156101bb57600080fd5b506000546100da906201000090046001600160a01b031681565b3480156101e157600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b61021c61021736600461115a565b6106a6565b6040519081526020016100e7565b34801561023657600080fd5b5061021c61024536600461115a565b610a9a565b34801561025657600080fd5b506101446102653660046110eb565b610e68565b61021c61027836600461115a565b610f93565b34801561028957600080fd5b506102b17f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100e7565b3480156102d257600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03811661038c5760008054604051620100009091046001600160a01b03169047908381818185875af1925050503d806000811461035a576040519150601f19603f3d011682016040523d82523d6000602084013e61035f565b606091505b50509050806103885760405163e2a1cc9160e01b81524760048201526024015b60405180910390fd5b5050565b6000546040516370a0823160e01b81526001600160a01b038084169263a9059cbb92620100009091049091169083906370a08231906103cf9030906004016110c2565b602060405180830381865afa1580156103ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610410919061118a565b6040518363ffffffff1660e01b815260040161042d9291906111a3565b6020604051808303816000875af115801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038891906111bc565b50565b6040805160018082528183019092526000918291829160208083019080368337019050509050612710816000815181106104af576104af6111f4565b62ffffff909216602092830291909101909101528573471ece3750da237f93b8e339c536989b8978a437196001600160a01b038716016105a757604051630757bc8160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630757bc819061055b9084908a907f0000000000000000000000000000000000000000000000000000000000000000908b9060040161120a565b600060405180830381865afa158015610578573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105a09190810190611250565b5092508290505b604051636c022f6560e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d8045eca9061063b9084907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088908c90600401611322565b600060405180830381865afa158015610658573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106809190810190611250565b50925060646106908460626113be565b61069a91906113d5565b93505050935093915050565b6000805481906001600160a01b0384811662010000909204161461079c57604051630757bc8160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630757bc81906107539067016345785d8a0000907f00000000000000000000000000000000000000000000000000000000000000009073471ece3750da237f93b8e339c536989b8978a43890603c9060040161120a565b600060405180830381865afa158015610770573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107989190810190611250565b5090505b60006107a882476113f7565b905060006107eb8273471ece3750da237f93b8e339c536989b8978a4387f0000000000000000000000000000000000000000000000000000000000000000610473565b5090508086116107fb57806107fd565b855b60405163095ea7b360e01b815290965073471ece3750da237f93b8e339c536989b8978a4389063095ea7b390610859907f00000000000000000000000000000000000000000000000000000000000000009086906004016111a3565b6020604051808303816000875af1158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c91906111bc565b50604080516080810182527308e3d9c6ea1b446ff2771c6738a6d313712f148760631b60a082015261017760eb1b60b48201527f0000000000000000000000000000000000000000000000000000000000000000606090811b6001600160601b031990811660b784015261027160ec1b60cb8401527f0000000000000000000000000000000000000000000000000000000000000000821b1660ce830152825160c281840301815260e28301845282526000546201000090046001600160a01b039081166020840152828401869052908201899052915163b858183f60e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063b858183f906109b690849060040161140a565b6020604051808303816000875af11580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f9919061118a565b6000549095506001600160a01b03878116620100009092041614610a90576000866001600160a01b03168560405160006040518083038185875af1925050503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610a8e5760405163e2a1cc9160e01b81526004810186905260240161037f565b505b5050505092915050565b6000805481906001600160a01b0362010000909104811690841603610ac0576000610aca565b67016345785d8a00005b6001600160401b031690506000817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610b2491906110c2565b602060405180830381865afa158015610b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b65919061118a565b610b6f91906113f7565b90506000610bbe827f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610473565b509050808611610bce5780610bd0565b855b60405163095ea7b360e01b81529096506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390610c41907f00000000000000000000000000000000000000000000000000000000000000009086906004016111a3565b6020604051808303816000875af1158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8491906111bc565b50604080516080810182527f0000000000000000000000000000000000000000000000000000000000000000606090811b6001600160601b031990811660a084015261027160ec1b60b48401527f0000000000000000000000000000000000000000000000000000000000000000821b1660b7830152825160ab81840301815260cb8301845282526000546201000090046001600160a01b039081166020840152828401869052908201899052915163b858183f60e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063b858183f90610d7690849060040161140a565b6020604051808303816000875af1158015610d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db9919061118a565b6000549095506001600160a01b03878116620100009092041614610a905760405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90610e2590899088906004016111a3565b6020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e91906111bc565b600054610100900460ff1615808015610e885750600054600160ff909116105b80610ea25750303b158015610ea2575060005460ff166001145b610f055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161037f565b6000805460ff191660011790558015610f28576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015610388576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600047801561100457610fa684846106a6565b6040805173471ece3750da237f93b8e339c536989b8978a4388152602081018490529081018290529092507fa9a40dec7a304e5915d11358b968c1e8d365992abf20f82285d1df1b30c8e24c9060600160405180910390a1506110bc565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906110509030906004016110c2565b602060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611091919061118a565b905080156110a357610fa68484610a9a565b60405163701b93d160e11b815260040160405180910390fd5b92915050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461047057600080fd5b6000602082840312156110fd57600080fd5b8135611108816110d6565b9392505050565b60008060006060848603121561112457600080fd5b833592506020840135611136816110d6565b9150604084013563ffffffff8116811461114f57600080fd5b809150509250925092565b6000806040838503121561116d57600080fd5b82359150602083013561117f816110d6565b809150509250929050565b60006020828403121561119c57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b6000602082840312156111ce57600080fd5b8151801515811461110857600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160801b039490941684526001600160a01b0392831660208501529116604083015263ffffffff16606082015260800190565b805161124b816110d6565b919050565b6000806040838503121561126357600080fd5b8251602080850151919350906001600160401b038082111561128457600080fd5b818601915086601f83011261129857600080fd5b8151818111156112aa576112aa6111de565b8060051b604051601f19603f830116810181811085821117156112cf576112cf6111de565b6040529182528482019250838101850191898311156112ed57600080fd5b938501935b828510156113125761130385611240565b845293850193928501926112f2565b8096505050505050509250929050565b6001600160801b03861681526001600160a01b03858116602080840191909152908516604083015260a06060830181905284519083018190526000918581019160c0850190845b8181101561138a57845162ffffff1683529383019391830191600101611369565b505080935050505063ffffffff831660808301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176110bc576110bc6113a8565b6000826113f257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156110bc576110bc6113a8565b60006020808352835160808285015280518060a086015260005b818110156114405782810184015186820160c001528301611424565b50600060c08287010152918501516001600160a01b0381166040860152916040860151606086810191909152909501516080850152505050601f91909101601f19160160c0019056fea26469706673582212205b883f52fd9493ab828b2bf1b9f3881e1741fb1b632b1f581ef25d36deb05d6f64736f6c63430008130033",
"deployedBytecode": "0x6080604052600436106100a65760003560e01c8063051ed8ef146100b25780630c577bdc146100f05780630cd865ec146101245780637dc0d1d014610146578063821dc9101461017a5780638da5cb5b146101af578063a5e598fc146101d5578063aa6bfa9d14610209578063b1a5fa9f1461022a578063c4d66de81461024a578063d3986f081461026a578063f62073261461027d578063f887ea40146102c657600080fd5b366100ad57005b600080fd5b3480156100be57600080fd5b506100da73471ece3750da237f93b8e339c536989b8978a43881565b6040516100e791906110c2565b60405180910390f35b3480156100fc57600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b34801561013057600080fd5b5061014461013f3660046110eb565b6102fa565b005b34801561015257600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b34801561018657600080fd5b5061019a61019536600461110f565b610473565b604080519283526020830191909152016100e7565b3480156101bb57600080fd5b506000546100da906201000090046001600160a01b031681565b3480156101e157600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b61021c61021736600461115a565b6106a6565b6040519081526020016100e7565b34801561023657600080fd5b5061021c61024536600461115a565b610a9a565b34801561025657600080fd5b506101446102653660046110eb565b610e68565b61021c61027836600461115a565b610f93565b34801561028957600080fd5b506102b17f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100e7565b3480156102d257600080fd5b506100da7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03811661038c5760008054604051620100009091046001600160a01b03169047908381818185875af1925050503d806000811461035a576040519150601f19603f3d011682016040523d82523d6000602084013e61035f565b606091505b50509050806103885760405163e2a1cc9160e01b81524760048201526024015b60405180910390fd5b5050565b6000546040516370a0823160e01b81526001600160a01b038084169263a9059cbb92620100009091049091169083906370a08231906103cf9030906004016110c2565b602060405180830381865afa1580156103ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610410919061118a565b6040518363ffffffff1660e01b815260040161042d9291906111a3565b6020604051808303816000875af115801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038891906111bc565b50565b6040805160018082528183019092526000918291829160208083019080368337019050509050612710816000815181106104af576104af6111f4565b62ffffff909216602092830291909101909101528573471ece3750da237f93b8e339c536989b8978a437196001600160a01b038716016105a757604051630757bc8160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630757bc819061055b9084908a907f0000000000000000000000000000000000000000000000000000000000000000908b9060040161120a565b600060405180830381865afa158015610578573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105a09190810190611250565b5092508290505b604051636c022f6560e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d8045eca9061063b9084907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088908c90600401611322565b600060405180830381865afa158015610658573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106809190810190611250565b50925060646106908460626113be565b61069a91906113d5565b93505050935093915050565b6000805481906001600160a01b0384811662010000909204161461079c57604051630757bc8160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630757bc81906107539067016345785d8a0000907f00000000000000000000000000000000000000000000000000000000000000009073471ece3750da237f93b8e339c536989b8978a43890603c9060040161120a565b600060405180830381865afa158015610770573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107989190810190611250565b5090505b60006107a882476113f7565b905060006107eb8273471ece3750da237f93b8e339c536989b8978a4387f0000000000000000000000000000000000000000000000000000000000000000610473565b5090508086116107fb57806107fd565b855b60405163095ea7b360e01b815290965073471ece3750da237f93b8e339c536989b8978a4389063095ea7b390610859907f00000000000000000000000000000000000000000000000000000000000000009086906004016111a3565b6020604051808303816000875af1158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c91906111bc565b50604080516080810182527308e3d9c6ea1b446ff2771c6738a6d313712f148760631b60a082015261017760eb1b60b48201527f0000000000000000000000000000000000000000000000000000000000000000606090811b6001600160601b031990811660b784015261027160ec1b60cb8401527f0000000000000000000000000000000000000000000000000000000000000000821b1660ce830152825160c281840301815260e28301845282526000546201000090046001600160a01b039081166020840152828401869052908201899052915163b858183f60e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063b858183f906109b690849060040161140a565b6020604051808303816000875af11580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f9919061118a565b6000549095506001600160a01b03878116620100009092041614610a90576000866001600160a01b03168560405160006040518083038185875af1925050503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610a8e5760405163e2a1cc9160e01b81526004810186905260240161037f565b505b5050505092915050565b6000805481906001600160a01b0362010000909104811690841603610ac0576000610aca565b67016345785d8a00005b6001600160401b031690506000817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610b2491906110c2565b602060405180830381865afa158015610b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b65919061118a565b610b6f91906113f7565b90506000610bbe827f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610473565b509050808611610bce5780610bd0565b855b60405163095ea7b360e01b81529096506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390610c41907f00000000000000000000000000000000000000000000000000000000000000009086906004016111a3565b6020604051808303816000875af1158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8491906111bc565b50604080516080810182527f0000000000000000000000000000000000000000000000000000000000000000606090811b6001600160601b031990811660a084015261027160ec1b60b48401527f0000000000000000000000000000000000000000000000000000000000000000821b1660b7830152825160ab81840301815260cb8301845282526000546201000090046001600160a01b039081166020840152828401869052908201899052915163b858183f60e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063b858183f90610d7690849060040161140a565b6020604051808303816000875af1158015610d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db9919061118a565b6000549095506001600160a01b03878116620100009092041614610a905760405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90610e2590899088906004016111a3565b6020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e91906111bc565b600054610100900460ff1615808015610e885750600054600160ff909116105b80610ea25750303b158015610ea2575060005460ff166001145b610f055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161037f565b6000805460ff191660011790558015610f28576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015610388576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600047801561100457610fa684846106a6565b6040805173471ece3750da237f93b8e339c536989b8978a4388152602081018490529081018290529092507fa9a40dec7a304e5915d11358b968c1e8d365992abf20f82285d1df1b30c8e24c9060600160405180910390a1506110bc565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906110509030906004016110c2565b602060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611091919061118a565b905080156110a357610fa68484610a9a565b60405163701b93d160e11b815260040160405180910390fd5b92915050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461047057600080fd5b6000602082840312156110fd57600080fd5b8135611108816110d6565b9392505050565b60008060006060848603121561112457600080fd5b833592506020840135611136816110d6565b9150604084013563ffffffff8116811461114f57600080fd5b809150509250925092565b6000806040838503121561116d57600080fd5b82359150602083013561117f816110d6565b809150509250929050565b60006020828403121561119c57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b6000602082840312156111ce57600080fd5b8151801515811461110857600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160801b039490941684526001600160a01b0392831660208501529116604083015263ffffffff16606082015260800190565b805161124b816110d6565b919050565b6000806040838503121561126357600080fd5b8251602080850151919350906001600160401b038082111561128457600080fd5b818601915086601f83011261129857600080fd5b8151818111156112aa576112aa6111de565b8060051b604051601f19603f830116810181811085821117156112cf576112cf6111de565b6040529182528482019250838101850191898311156112ed57600080fd5b938501935b828510156113125761130385611240565b845293850193928501926112f2565b8096505050505050509250929050565b6001600160801b03861681526001600160a01b03858116602080840191909152908516604083015260a06060830181905284519083018190526000918581019160c0850190845b8181101561138a57845162ffffff1683529383019391830191600101611369565b505080935050505063ffffffff831660808301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176110bc576110bc6113a8565b6000826113f257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156110bc576110bc6113a8565b60006020808352835160808285015280518060a086015260005b818110156114405782810184015186820160c001528301611424565b50600060c08287010152918501516001600160a01b0381166040860152916040860151606086810191909152909501516080850152505050601f91909101601f19160160c0019056fea26469706673582212205b883f52fd9493ab828b2bf1b9f3881e1741fb1b632b1f581ef25d36deb05d6f64736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}