From 460d2c1d26310042adb4441ca3a506da9deb040a Mon Sep 17 00:00:00 2001 From: Rick Date: Thu, 28 May 2020 14:57:21 +0100 Subject: [PATCH] Refactor function in model --- .gitattributes | 2 + .vscode/settings.json | 4 + client/src/contracts/ActivePool.json | 411 +++++++++ client/src/contracts/CDPManager.json | 986 ++++++++++++++++++++ client/src/contracts/CLVToken.json | 541 +++++++++++ client/src/contracts/CLVTokenData.json | 267 ++++++ client/src/contracts/Context.json | 15 + client/src/contracts/DeciMath.json | 332 +++++++ client/src/contracts/DefaultPool.json | 411 +++++++++ client/src/contracts/ERC20.json | 256 ++++++ client/src/contracts/FunctionCaller.json | 341 +++++++ client/src/contracts/ICDPManager.json | 561 ++++++++++++ client/src/contracts/ICLVToken.json | 367 ++++++++ client/src/contracts/IERC20.json | 204 +++++ client/src/contracts/IPool.json | 207 +++++ client/src/contracts/IPoolManager.json | 648 +++++++++++++ client/src/contracts/IPriceFeed.json | 86 ++ client/src/contracts/ISortedCDPs.json | 347 +++++++ client/src/contracts/IStabilityPool.json | 297 ++++++ client/src/contracts/Migrations.json | 75 ++ client/src/contracts/NameRegistry.json | 214 +++++ client/src/contracts/Ownable.json | 88 ++ client/src/contracts/PoolManager.json | 1065 ++++++++++++++++++++++ client/src/contracts/PriceFeed.json | 180 ++++ client/src/contracts/SafeMath.json | 8 + client/src/contracts/SortedCDPs.json | 420 +++++++++ client/src/contracts/StabilityPool.json | 471 ++++++++++ client/src/contracts/console.json | 8 + packages/contracts/model/model_v2.py | 27 +- 29 files changed, 8828 insertions(+), 11 deletions(-) create mode 100644 .gitattributes create mode 100644 .vscode/settings.json create mode 100644 client/src/contracts/ActivePool.json create mode 100644 client/src/contracts/CDPManager.json create mode 100644 client/src/contracts/CLVToken.json create mode 100644 client/src/contracts/CLVTokenData.json create mode 100644 client/src/contracts/Context.json create mode 100644 client/src/contracts/DeciMath.json create mode 100644 client/src/contracts/DefaultPool.json create mode 100644 client/src/contracts/ERC20.json create mode 100644 client/src/contracts/FunctionCaller.json create mode 100644 client/src/contracts/ICDPManager.json create mode 100644 client/src/contracts/ICLVToken.json create mode 100644 client/src/contracts/IERC20.json create mode 100644 client/src/contracts/IPool.json create mode 100644 client/src/contracts/IPoolManager.json create mode 100644 client/src/contracts/IPriceFeed.json create mode 100644 client/src/contracts/ISortedCDPs.json create mode 100644 client/src/contracts/IStabilityPool.json create mode 100644 client/src/contracts/Migrations.json create mode 100644 client/src/contracts/NameRegistry.json create mode 100644 client/src/contracts/Ownable.json create mode 100644 client/src/contracts/PoolManager.json create mode 100644 client/src/contracts/PriceFeed.json create mode 100644 client/src/contracts/SafeMath.json create mode 100644 client/src/contracts/SortedCDPs.json create mode 100644 client/src/contracts/StabilityPool.json create mode 100644 client/src/contracts/console.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..b1d6af36d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Enable syntax highlighting for Solidity +*.sol linguist-language=Solidity \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..ad07a3f77 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "slither.solcPath": "", + "slither.hiddenDetectors": [] +} \ No newline at end of file diff --git a/client/src/contracts/ActivePool.json b/client/src/contracts/ActivePool.json new file mode 100644 index 000000000..2bbd3bcec --- /dev/null +++ b/client/src/contracts/ActivePool.json @@ -0,0 +1,411 @@ +{ + "contractName": "ActivePool", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "CLVBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "ETHBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "EtherSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "CLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "defaultPoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getRawETHBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolManagerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendETH", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + } + ], + "name": "setDefaultPoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_stabilityPoolAddress", + "type": "address" + } + ], + "name": "setStabilityPoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stabilityPoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b0361007316565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610077565b3390565b610d4e806100866000396000f3fe6080604052600436106101295760003560e01c80638f32d59b116100a5578063ad09d65811610074578063e6a13f3011610059578063e6a13f30146103f6578063e9c839571461040b578063f2fde38b1461043557610129565b8063ad09d658146103ae578063e1cf19c1146103e157610129565b80638f32d59b1461031e5780639822339d14610333578063aac1846f14610366578063ab95b1a21461037b57610129565b806364a197f3116100fc578063715018a6116100e1578063715018a6146102df5780638322fff2146102f45780638da5cb5b1461030957610129565b806364a197f31461027d57806366416219146102ca57610129565b80630617edb4146101e45780630b622ab21461020b57806314f6c3be1461023c5780634de7363114610251575b6001546001600160a01b031661013d610468565b6001600160a01b0316148061016c57506002546001600160a01b0316610161610468565b6001600160a01b0316145b8061019157506003546001600160a01b0316610186610468565b6001600160a01b0316145b6101cc5760405162461bcd60e51b8152600401808060200182810382526035815260200180610ce56035913960400191505060405180910390fd5b6004546101df903463ffffffff61046c16565b600455005b3480156101f057600080fd5b506101f96104cd565b60408051918252519081900360200190f35b34801561021757600080fd5b506102206104d1565b604080516001600160a01b039092168252519081900360200190f35b34801561024857600080fd5b506101f96104e0565b34801561025d57600080fd5b5061027b6004803603602081101561027457600080fd5b50356104e6565b005b34801561028957600080fd5b506102b6600480360360408110156102a057600080fd5b506001600160a01b03813516906020013561058c565b604080519115158252519081900360200190f35b3480156102d657600080fd5b506101f961072d565b3480156102eb57600080fd5b5061027b610733565b34801561030057600080fd5b506101f96107d6565b34801561031557600080fd5b506102206107dc565b34801561032a57600080fd5b506102b66107eb565b34801561033f57600080fd5b5061027b6004803603602081101561035657600080fd5b50356001600160a01b031661080f565b34801561037257600080fd5b506102206108c2565b34801561038757600080fd5b5061027b6004803603602081101561039e57600080fd5b50356001600160a01b03166108d1565b3480156103ba57600080fd5b5061027b600480360360208110156103d157600080fd5b50356001600160a01b031661097e565b3480156103ed57600080fd5b506101f9610a31565b34801561040257600080fd5b50610220610a37565b34801561041757600080fd5b5061027b6004803603602081101561042e57600080fd5b5035610a46565b34801561044157600080fd5b5061027b6004803603602081101561045857600080fd5b50356001600160a01b0316610ab2565b3390565b6000828201838110156104c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b4790565b6002546001600160a01b031681565b60045490565b6001546001600160a01b03166104fa610468565b6001600160a01b03161461053f5760405162461bcd60e51b815260040180806020018281038252602e815260200180610c91602e913960400191505060405180910390fd5b600554610552908263ffffffff61046c16565b600581905560408051918252517f2345ee7f5f8837fcb9b95ec4fe3db62d9d05d7830cab26fe632f036008a935d89181900360200190a150565b6001546000906001600160a01b03166105a3610468565b6001600160a01b0316146105e85760405162461bcd60e51b815260040180806020018281038252602e815260200180610c91602e913960400191505060405180910390fd5b6004546105fb908363ffffffff610b1716565b6004556040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610649576040519150601f19603f3d011682016040523d82523d6000602084013e61064e565b606091505b50909150506001811515146106aa576040805162461bcd60e51b815260206004820181905260248201527f416374697665506f6f6c3a207472616e73616374696f6e207265766572746564604482015290519081900360640190fd5b60045460408051918252517f7ab2bdf6e6d108cd138a8f6436723e8dfd0cb22727fe608e40b5adfb8357f1b99181900360200190a1604080516001600160a01b03861681526020810185905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a15060019392505050565b60055481565b61073b6107eb565b61078c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b6000546001600160a01b031690565b600080546001600160a01b0316610800610468565b6001600160a01b031614905090565b6108176107eb565b610868576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b916020908290030190a150565b6003546001600160a01b031681565b6108d96107eb565b61092a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f88509181900360200190a150565b6109866107eb565b6109d7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f916020908290030190a150565b60055490565b6001546001600160a01b031681565b6001546001600160a01b0316610a5a610468565b6001600160a01b031614610a9f5760405162461bcd60e51b815260040180806020018281038252602e815260200180610c91602e913960400191505060405180910390fd5b600554610552908263ffffffff610b1716565b610aba6107eb565b610b0b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610b1481610b59565b50565b60006104c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bf9565b6001600160a01b038116610b9e5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cbf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610c885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c4d578181015183820152602001610c35565b50505050905090810190601f168015610c7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe416374697665506f6f6c3a204f6e6c792074686520706f6f6c4d616e6167657220697320617574686f72697a65644f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416374697665506f6f6c3a206f6e6c792072656365697665204554482066726f6d20506f6f6c206f7220506f6f6c4d616e61676572a265627a7a723158202dac522841cb4b9b9398d86463d1901f91020ca9a95e15e06ae2b36f91ce817264736f6c634300050f0032", + "deployedBytecode": "0x6080604052600436106101295760003560e01c80638f32d59b116100a5578063ad09d65811610074578063e6a13f3011610059578063e6a13f30146103f6578063e9c839571461040b578063f2fde38b1461043557610129565b8063ad09d658146103ae578063e1cf19c1146103e157610129565b80638f32d59b1461031e5780639822339d14610333578063aac1846f14610366578063ab95b1a21461037b57610129565b806364a197f3116100fc578063715018a6116100e1578063715018a6146102df5780638322fff2146102f45780638da5cb5b1461030957610129565b806364a197f31461027d57806366416219146102ca57610129565b80630617edb4146101e45780630b622ab21461020b57806314f6c3be1461023c5780634de7363114610251575b6001546001600160a01b031661013d610468565b6001600160a01b0316148061016c57506002546001600160a01b0316610161610468565b6001600160a01b0316145b8061019157506003546001600160a01b0316610186610468565b6001600160a01b0316145b6101cc5760405162461bcd60e51b8152600401808060200182810382526035815260200180610ce56035913960400191505060405180910390fd5b6004546101df903463ffffffff61046c16565b600455005b3480156101f057600080fd5b506101f96104cd565b60408051918252519081900360200190f35b34801561021757600080fd5b506102206104d1565b604080516001600160a01b039092168252519081900360200190f35b34801561024857600080fd5b506101f96104e0565b34801561025d57600080fd5b5061027b6004803603602081101561027457600080fd5b50356104e6565b005b34801561028957600080fd5b506102b6600480360360408110156102a057600080fd5b506001600160a01b03813516906020013561058c565b604080519115158252519081900360200190f35b3480156102d657600080fd5b506101f961072d565b3480156102eb57600080fd5b5061027b610733565b34801561030057600080fd5b506101f96107d6565b34801561031557600080fd5b506102206107dc565b34801561032a57600080fd5b506102b66107eb565b34801561033f57600080fd5b5061027b6004803603602081101561035657600080fd5b50356001600160a01b031661080f565b34801561037257600080fd5b506102206108c2565b34801561038757600080fd5b5061027b6004803603602081101561039e57600080fd5b50356001600160a01b03166108d1565b3480156103ba57600080fd5b5061027b600480360360208110156103d157600080fd5b50356001600160a01b031661097e565b3480156103ed57600080fd5b506101f9610a31565b34801561040257600080fd5b50610220610a37565b34801561041757600080fd5b5061027b6004803603602081101561042e57600080fd5b5035610a46565b34801561044157600080fd5b5061027b6004803603602081101561045857600080fd5b50356001600160a01b0316610ab2565b3390565b6000828201838110156104c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b4790565b6002546001600160a01b031681565b60045490565b6001546001600160a01b03166104fa610468565b6001600160a01b03161461053f5760405162461bcd60e51b815260040180806020018281038252602e815260200180610c91602e913960400191505060405180910390fd5b600554610552908263ffffffff61046c16565b600581905560408051918252517f2345ee7f5f8837fcb9b95ec4fe3db62d9d05d7830cab26fe632f036008a935d89181900360200190a150565b6001546000906001600160a01b03166105a3610468565b6001600160a01b0316146105e85760405162461bcd60e51b815260040180806020018281038252602e815260200180610c91602e913960400191505060405180910390fd5b6004546105fb908363ffffffff610b1716565b6004556040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610649576040519150601f19603f3d011682016040523d82523d6000602084013e61064e565b606091505b50909150506001811515146106aa576040805162461bcd60e51b815260206004820181905260248201527f416374697665506f6f6c3a207472616e73616374696f6e207265766572746564604482015290519081900360640190fd5b60045460408051918252517f7ab2bdf6e6d108cd138a8f6436723e8dfd0cb22727fe608e40b5adfb8357f1b99181900360200190a1604080516001600160a01b03861681526020810185905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a15060019392505050565b60055481565b61073b6107eb565b61078c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b6000546001600160a01b031690565b600080546001600160a01b0316610800610468565b6001600160a01b031614905090565b6108176107eb565b610868576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b916020908290030190a150565b6003546001600160a01b031681565b6108d96107eb565b61092a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f88509181900360200190a150565b6109866107eb565b6109d7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f916020908290030190a150565b60055490565b6001546001600160a01b031681565b6001546001600160a01b0316610a5a610468565b6001600160a01b031614610a9f5760405162461bcd60e51b815260040180806020018281038252602e815260200180610c91602e913960400191505060405180910390fd5b600554610552908263ffffffff610b1716565b610aba6107eb565b610b0b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610b1481610b59565b50565b60006104c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bf9565b6001600160a01b038116610b9e5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cbf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610c885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c4d578181015183820152602001610c35565b50505050905090810190601f168015610c7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe416374697665506f6f6c3a204f6e6c792074686520706f6f6c4d616e6167657220697320617574686f72697a65644f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416374697665506f6f6c3a206f6e6c792072656365697665204554482066726f6d20506f6f6c206f7220506f6f6c4d616e61676572a265627a7a723158202dac522841cb4b9b9398d86463d1901f91020ca9a95e15e06ae2b36f91ce817264736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/CDPManager.json b/client/src/contracts/CDPManager.json new file mode 100644 index 000000000..8299eae8e --- /dev/null +++ b/client/src/contracts/CDPManager.json @@ -0,0 +1,986 @@ +{ + "contractName": "CDPManager", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "CDPClosed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "arrayIndex", + "type": "uint256" + } + ], + "name": "CDPCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_debt", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_coll", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "arrayIndex", + "type": "uint256" + } + ], + "name": "CDPUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountRepayed", + "type": "uint256" + } + ], + "name": "CLVRepayed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCLVTokenAddress", + "type": "address" + } + ], + "name": "CLVTokenAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountWithdrawn", + "type": "uint256" + } + ], + "name": "CLVWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountAdded", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "exchangedCLV", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "redeemedETH", + "type": "uint256" + } + ], + "name": "CollateralRedeemed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountWithdrawn", + "type": "uint256" + } + ], + "name": "CollateralWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPoolManagerAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPriceFeedAddress", + "type": "address" + } + ], + "name": "PriceFeedAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_sortedCDPsAddress", + "type": "address" + } + ], + "name": "SortedCDPsAddressChanged", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "CCR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "CDPs", + "outputs": [ + { + "internalType": "uint256", + "name": "debt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "coll", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "internalType": "enum CDPManager.Status", + "name": "status", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "arrayIndex", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "L_CLVDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "L_ETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MCR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MIN_COLL_IN_USD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "addColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "checkTCRAndSetRecoveryMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "clvTokenAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "CR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numTrials", + "type": "uint256" + } + ], + "name": "getApproxHint", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCDPOwnersCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getCurrentICR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "_debtIncrease", + "type": "uint256" + } + ], + "name": "getNewTCRfromDebtIncrease", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "liquidate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "n", + "type": "uint256" + } + ], + "name": "liquidateCDPs", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolManagerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "priceFeedAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "recoveryMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CLVamount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "redeemCollateral", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "repayCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewardSnapshots", + "outputs": [ + { + "internalType": "uint256", + "name": "ETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "CLVDebt", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_clvTokenAddress", + "type": "address" + } + ], + "name": "setCLVToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_priceFeedAddress", + "type": "address" + } + ], + "name": "setPriceFeed", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_sortedCDPsAddress", + "type": "address" + } + ], + "name": "setSortedCDPs", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "sortedCDPsAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalCollateralSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalStakes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalStakesSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "withdrawCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "withdrawColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526000620000196001600160e01b036200006916565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200006d565b3390565b614c3c806200007d6000396000f3fe6080604052600436106102345760003560e01c80638f32d59b11610138578063bf9befb1116100b0578063e6a13f301161007f578063f78b338811610064578063f78b338814610730578063fee83f1414610769578063fefb4c581461077e57610234565b8063e6a13f30146106e8578063f2fde38b146106fd57610234565b8063bf9befb114610670578063bfd0d88614610685578063c50404741461069a578063e0abca0b146106d357610234565b8063a20a804511610107578063b1e9da1f116100ec578063b1e9da1f14610601578063b6659dd614610616578063b6c7b6e51461064657610234565b8063a20a80451461058f578063a532483e146105c857610234565b80638f32d59b1461053b57806396d711ff146105505780639dd233d2146105655780639e1d6c781461057a57610234565b80636828482d116101cb578063724e78da1161019a5780637aef67151161017f5780637aef6715146104de578063807d138d146105115780638da5cb5b1461052657610234565b8063724e78da14610496578063794e5724146104c957610234565b80636828482d14610409578063685e91af1461043e57806368647db114610453578063715018a61461048157610234565b80632f865568116102075780632f8655681461031d5780634ecf5726146103505780634fa93e66146103815780635733d58f146103f457610234565b8063020e799a1461023957806307a00b1f146102775780631673c79a1461028c57806327fb7d89146102d8575b600080fd5b34801561024557600080fd5b506102636004803603602081101561025c57600080fd5b50356107b1565b604080519115158252519081900360200190f35b34801561028357600080fd5b50610263610aa4565b34801561029857600080fd5b506102bf600480360360208110156102af57600080fd5b50356001600160a01b0316610ab4565b6040805192835260208301919091528051918290030190f35b3480156102e457600080fd5b5061030b600480360360208110156102fb57600080fd5b50356001600160a01b0316610acd565b60408051918252519081900360200190f35b34801561032957600080fd5b506102636004803603602081101561034057600080fd5b50356001600160a01b0316610b5c565b34801561035c57600080fd5b50610365610c15565b604080516001600160a01b039092168252519081900360200190f35b34801561038d57600080fd5b506103b4600480360360208110156103a457600080fd5b50356001600160a01b0316610c24565b604051808681526020018581526020018481526020018360028111156103d657fe5b60ff1681526020018281526020019550505050505060405180910390f35b34801561040057600080fd5b5061030b610c56565b34801561041557600080fd5b5061043c6004803603602081101561042c57600080fd5b50356001600160a01b0316610c62565b005b34801561044a57600080fd5b5061030b610d9d565b6102636004803603604081101561046957600080fd5b506001600160a01b0381358116916020013516610da4565b34801561048d57600080fd5b5061043c6111f0565b3480156104a257600080fd5b5061043c600480360360208110156104b957600080fd5b50356001600160a01b0316611293565b3480156104d557600080fd5b5061030b611353565b3480156104ea57600080fd5b5061043c6004803603602081101561050157600080fd5b50356001600160a01b031661135f565b34801561051d57600080fd5b5061030b611417565b34801561053257600080fd5b5061036561141d565b34801561054757600080fd5b5061026361142c565b34801561055c57600080fd5b5061030b611450565b34801561057157600080fd5b5061030b611456565b34801561058657600080fd5b5061036561145c565b34801561059b57600080fd5b50610263600480360360408110156105b257600080fd5b50803590602001356001600160a01b031661146b565b3480156105d457600080fd5b50610263600480360360408110156105eb57600080fd5b50803590602001356001600160a01b0316611b08565b34801561060d57600080fd5b5061030b611ece565b34801561062257600080fd5b506103656004803603604081101561063957600080fd5b5080359060200135611edb565b34801561065257600080fd5b5061030b6004803603602081101561066957600080fd5b5035612043565b34801561067c57600080fd5b5061030b612278565b34801561069157600080fd5b5061030b61227e565b3480156106a657600080fd5b50610263600480360360408110156106bd57600080fd5b50803590602001356001600160a01b0316612284565b3480156106df57600080fd5b506103656126a4565b3480156106f457600080fd5b506103656126b3565b34801561070957600080fd5b5061043c6004803603602081101561072057600080fd5b50356001600160a01b03166126c2565b34801561073c57600080fd5b506102636004803603604081101561075357600080fd5b50803590602001356001600160a01b0316612727565b34801561077557600080fd5b50610263612b37565b34801561078a57600080fd5b5061043c600480360360208110156107a157600080fd5b50356001600160a01b0316612dd6565b60006107bb612b37565b50600854600160a01b900460ff161515600114156109395760005b8281101561092f5760075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b15801561082357600080fd5b505afa158015610837573d6000803e3d6000fd5b505050506040513d602081101561084d57600080fd5b50519050600061085c82610acd565b905061086782610b5c565b50600854600160a01b900460ff1615801561088a5750670f43fc2c04ee00008110155b806109195750600760009054906101000a90046001600160a01b03166001600160a01b0316631e2231436040518163ffffffff1660e01b815260040160206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b50516001600160a01b038381169116145b1561092557505061092f565b50506001016107d6565b6001915050610a9f565b600854600160a01b900460ff16610a9b5760005b82811015610a995760075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b15801561099a57600080fd5b505afa1580156109ae573d6000803e3d6000fd5b505050506040513d60208110156109c457600080fd5b5051905060006109d382610acd565b9050670f43fc2c04ee00008110156109f4576109ee82610b5c565b506109fb565b5050610a99565b600760009054906101000a90046001600160a01b03166001600160a01b0316631e2231436040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4957600080fd5b505afa158015610a5d573d6000803e3d6000fd5b505050506040513d6020811015610a7357600080fd5b50516001600160a01b0383811691161415610a8f575050610a99565b505060010161094d565b505b5060015b919050565b600854600160a01b900460ff1681565b600f602052600090815260409020805460019091015482565b600080610ad983612e8e565b90506000610ae684612f5b565b6001600160a01b03851660009081526009602052604081206001015491925090610b16908463ffffffff612f9a16565b6001600160a01b03861660009081526009602052604081205491925090610b43908463ffffffff612f9a16565b90506000610b518383612ffb565b979650505050505050565b6000610b66612b37565b5060016001600160a01b03831660009081526009602052604090206003015460ff166002811115610b9357fe5b14610bcf5760405162461bcd60e51b815260040180806020018281038252603381526020018061499b6033913960400191505060405180910390fd5b600854600160a01b900460ff16151560011415610bf557610bef826131bf565b50610a9f565b600854600160a01b900460ff16610a9f57610c0f82613705565b50919050565b6008546001600160a01b031681565b6009602052600090815260409020805460018201546002830154600384015460049094015492939192909160ff169085565b6714d1120d7b16000081565b610c6a61142c565b610cbb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600880546001600160a01b03199081166001600160a01b03848116918217909355600780549092161790819055604080517f816e117c000000000000000000000000000000000000000000000000000000008152620f424060048201529051919092169163816e117c91602480830192600092919082900301818387803b158015610d4557600080fd5b505af1158015610d59573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f328bb7558e87ad9d5a9ba346a1e55a13c7998dd76b12ae08ee93a729ff23147a9350908190036020019150a150565b6010545b90565b600080806001600160a01b03851660009081526009602052604090206003015460ff166002811115610dd257fe5b1480610e07575060026001600160a01b03851660009081526009602052604090206003015460ff166002811115610e0557fe5b145b15610e60576801158e460913d00000610e1f34613941565b1015610e5c5760405162461bcd60e51b815260040180806020018281038252604f815260200180614b72604f913960600191505060405180910390fd5b5060015b6001600160a01b0384166000908152600960205260409020600301805460ff19166001179055610e8f84613a65565b506001600160a01b038416600090815260096020526040902060010154610ebc903463ffffffff612f9a16565b6001600160a01b038516600090815260096020526040902060010155610ee184613c21565b506000610eed85610acd565b9050811561102957600754604080517f46f7cf870000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015260248201859052878116604483018190526064830152915191909216916346f7cf8791608480830192600092919082900301818387803b158015610f7257600080fd5b505af1158015610f86573d6000803e3d6000fd5b505060108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672810180546001600160a01b0319166001600160a01b038a16908117909155600081815260096020908152604091829020600401849055815192835282019290925281517f9aae360b1167f55ad3b0cb0b44f33887cdbbffea820e0a955295af4a05fa31f49450908190039091019150a16110a6565b6007546040805163015f109360e51b81526001600160a01b0388811660048301526024820185905287811660448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b15801561108d57600080fd5b505af11580156110a1573d6000803e3d6000fd5b505050505b600160009054906101000a90046001600160a01b03166001600160a01b03166325a2e6e7346040518263ffffffff1660e01b81526004016020604051808303818588803b1580156110f657600080fd5b505af115801561110a573d6000803e3d6000fd5b50505050506040513d602081101561112157600080fd5b5061112c9050612b37565b50604080516001600160a01b038716815234602082015281517f7dba1be544024070cd5eebfa8bdd80a8b198cea8058c7d3cc1f8dd36e41ab2f7929181900390910190a16001600160a01b0385166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a16001925050505b92915050565b6111f861142c565b611249576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61129b61142c565b6112ec576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600680546001600160a01b038084166001600160a01b0319928316811793849055600580549093169390911692909217905560408051918252517f8c537274438aa850a330284665d81a85dd38267d09e4050d416bfc94142db2649181900360200190a150565b670f43fc2c04ee000081565b61136761142c565b6113b8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b03199182168117909255600180549091168217905560408051918252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f88509181900360200190a150565b600b5481565b6000546001600160a01b031690565b600080546001600160a01b0316611441613cb9565b6001600160a01b031614905090565b600c5481565b600d5481565b6004546001600160a01b031681565b60035460009083906001600160a01b03166370a08231611489613cb9565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156114cf57600080fd5b505afa1580156114e3573d6000803e3d6000fd5b505050506040513d60208110156114f957600080fd5b505110156115385760405162461bcd60e51b815260040180806020018281038252602b815260200180614a0d602b913960400191505060405180910390fd5b6000805b84821015611aaf5760075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b5051905060006115c282610acd565b90506000600560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561161457600080fd5b505afa158015611628573d6000803e3d6000fd5b505050506040513d602081101561163e57600080fd5b50516001546040805163697b93fd60e01b815290519293506000926001600160a01b039092169163697b93fd91600480820192602092909190829003018186803b15801561168b57600080fd5b505afa15801561169f573d6000803e3d6000fd5b505050506040513d60208110156116b557600080fd5b50519050806116c75750505050611aaf565b670f43fc2c04ee00008310156116e6576116e084610b5c565b50611aa6565b6116ef84613a65565b50600073__$3c31caed800dd799d299e04f3574ae6bfa$__630fd95db561171c8c8a63ffffffff613cbd16565b6001600160a01b0388166000908152600960209081526040918290205482517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152600481019490945260248401529051604480840193829003018186803b15801561178d57600080fd5b505af41580156117a1573d6000803e3d6000fd5b505050506040513d60208110156117b757600080fd5b5051604080517f563d4c2300000000000000000000000000000000000000000000000000000000815260048101839052670de0b6b3a7640000602482015260448101869052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__9163563d4c23916064808301926020929190829003018186803b15801561183f57600080fd5b505af4158015611853573d6000803e3d6000fd5b505050506040513d602081101561186957600080fd5b50516001600160a01b038716600090815260096020526040902054909150611897908363ffffffff613cbd16565b6001600160a01b0387166000908152600960205260409020908155600101546118c6908263ffffffff613cbd16565b6001600160a01b0387166000908152600960205260408120600101919091556118ee87610acd565b6001549091506001600160a01b0316637cb19fe861190a613cb9565b85856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050602060405180830381600087803b15801561196257600080fd5b505af1158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50506007546040805163015f109360e51b81526001600160a01b038a81166004830152602482018590528e811660448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b1580156119f257600080fd5b505af1158015611a06573d6000803e3d6000fd5b5050506001600160a01b0388166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb392509081900360a00190a1611a8e898463ffffffff612f9a16565b9850611aa0888363ffffffff612f9a16565b97505050505b5050505061153c565b7fb71097a7e9f94d7dd73e8b8e2901f5a66a36ee98ec47692a555d83d674f3a7cd611ad8613cb9565b604080516001600160a01b03909216825260208201859052818101849052519081900360600190a1505092915050565b6000611b12612b37565b506000611b1d613cb9565b905060016001600160a01b03821660009081526009602052604090206003015460ff166002811115611b4b57fe5b14611b875760405162461bcd60e51b815260040180806020018281038252602b81526020018061493b602b913960400191505060405180910390fd5b60008411611bc65760405162461bcd60e51b81526004018080602001828103825260348152602001806148ae6034913960400191505060405180910390fd5b6000611bd185612043565b90506000611bdf8387613cff565b600854909150600160a01b900460ff1615611c2b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806149ce603f913960400191505060405180910390fd5b6714d1120d7b160000821015611c725760405162461bcd60e51b815260040180806020018281038252604c815260200180614ab0604c913960600191505060405180910390fd5b670f43fc2c04ee0000811015611cb95760405162461bcd60e51b815260040180806020018281038252603c815260200180614a38603c913960400191505060405180910390fd5b6001600160a01b038316600090815260096020526040902054611ce2908763ffffffff612f9a16565b6001600160a01b0380851660008181526009602052604080822094909455600754845163015f109360e51b815260048101939093526024830186905289841660448401819052606484015293519390921692632be212609260848084019391929182900301818387803b158015611d5857600080fd5b505af1158015611d6c573d6000803e3d6000fd5b5050600154604080517f2e90bbd80000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018c90529151919092169350632e90bbd8925060448083019260209291908290030181600087803b158015611ddf57600080fd5b505af1158015611df3573d6000803e3d6000fd5b505050506040513d6020811015611e0957600080fd5b5050604080516001600160a01b03851681526020810188905281517f640913f748017f33c962e4f95d85294d0233e0f9a254706a2d739a5b47f68ef0929181900390910190a16001600160a01b0383166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a150600195945050505050565b6801158e460913d0000081565b60105460009060011115611f205760405162461bcd60e51b81526004018080602001828103825260288152602001806148576028913960400191505060405180910390fd5b60075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b158015611f6557600080fd5b505afa158015611f79573d6000803e3d6000fd5b505050506040513d6020811015611f8f57600080fd5b505190506000611f9e82610acd565b90506000611fac8683613da1565b905060015b85811015612038576000611fd6611fce428463ffffffff612f9a16565b601054613dd9565b9050600060108281548110611fe757fe5b60009182526020822001546001600160a01b0316915061200682610acd565b90506000612014828c613da1565b905085811015612028578196508095508297505b505060019092019150611fb19050565b509195945050505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b0316631f5499076040518163ffffffff1660e01b815260040160206040518083038186803b15801561209457600080fd5b505afa1580156120a8573d6000803e3d6000fd5b505050506040513d60208110156120be57600080fd5b50516001546040805163697b93fd60e01b815290519293506000926001600160a01b039092169163697b93fd91600480820192602092909190829003018186803b15801561210b57600080fd5b505afa15801561211f573d6000803e3d6000fd5b505050506040513d602081101561213557600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b15801561218257600080fd5b505afa158015612196573d6000803e3d6000fd5b505050506040513d60208110156121ac57600080fd5b505160015460408051639594897d60e01b815290519293506000926001600160a01b0390921691639594897d91600480820192602092909190829003018186803b1580156121f957600080fd5b505afa15801561220d573d6000803e3d6000fd5b505050506040513d602081101561222357600080fd5b505190506000612239858463ffffffff612f9a16565b9050600061225d88612251878663ffffffff612f9a16565b9063ffffffff612f9a16565b9050600061226b8383612ffb565b9998505050505050505050565b600a5481565b600e5481565b600061228e612b37565b506000612299613cb9565b905060016001600160a01b03821660009081526009602052604090206003015460ff1660028111156122c757fe5b146123035760405162461bcd60e51b815260040180806020018281038252602b81526020018061493b602b913960400191505060405180910390fd5b61230c81613a65565b506001600160a01b0381166000908152600960205260409020600101548411156123675760405162461bcd60e51b81526004018080602001828103825260338152602001806149086033913960400191505060405180910390fd5b6001600160a01b038116600090815260096020526040812060010154612393908663ffffffff613cbd16565b90506801158e460913d000006123a882613941565b1015806123b3575080155b6123ee5760405162461bcd60e51b8152600401808060200182810382526047815260200180614afc6047913960600191505060405180910390fd5b60006123fa8387613e10565b600854909150600160a01b900460ff16156124465760405162461bcd60e51b8152600401808060200182810382526047815260200180614bc16047913960600191505060405180910390fd5b670f43fc2c04ee000081101561248d5760405162461bcd60e51b815260040180806020018281038252603c815260200180614a74603c913960400191505060405180910390fd5b6001600160a01b03831660009081526009602052604090206001018290556124b483613c21565b50816124c9576124c383613ea6565b506125fd565b6007546040805163015f109360e51b81526001600160a01b0386811660048301526024820185905288811660448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b15801561252d57600080fd5b505af1158015612541573d6000803e3d6000fd5b5050604080516001600160a01b0387168152602081018a905281517fc30fcfbcaac9e0deffa719714eaa82396ff506a0d0d0eebe170830177288715d9450908190039091019150a16001600160a01b0383166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a15b600154604080517ff568dd8e0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018a90529151919092169163f568dd8e9160448083019260209291908290030181600087803b15801561266c57600080fd5b505af1158015612680573d6000803e3d6000fd5b505050506040513d602081101561269657600080fd5b506001979650505050505050565b6006546001600160a01b031681565b6002546001600160a01b031681565b6126ca61142c565b61271b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61272481613f8f565b50565b600080612732613cb9565b905060016001600160a01b03821660009081526009602052604090206003015460ff16600281111561276057fe5b1461279c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061493b602b913960400191505060405180910390fd5b600084116127db5760405162461bcd60e51b815260040180806020018281038252602f81526020018061487f602f913960400191505060405180910390fd5b6001600160a01b0381166000908152600960205260409020548411156128325760405162461bcd60e51b81526004018080602001828103825260358152602001806149666035913960400191505060405180910390fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529151879392909216916370a0823191602480820192602092909190829003018186803b15801561289b57600080fd5b505afa1580156128af573d6000803e3d6000fd5b505050506040513d60208110156128c557600080fd5b505110156129045760405162461bcd60e51b815260040180806020018281038252602f815260200180614b43602f913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090205461292d908563ffffffff613cbd16565b6001600160a01b03821660009081526009602052604081209190915561295282610acd565b6007546040805163015f109360e51b81526001600160a01b038681166004830152602482018590528881166044830181905260648301529151939450911691632be212609160848082019260009290919082900301818387803b1580156129b857600080fd5b505af11580156129cc573d6000803e3d6000fd5b5050600154604080517fb96c51810000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152602482018b9052915191909216935063b96c5181925060448083019260209291908290030181600087803b158015612a3f57600080fd5b505af1158015612a53573d6000803e3d6000fd5b505050506040513d6020811015612a6957600080fd5b50612a749050612b37565b50604080516001600160a01b03841681526020810187905281517fafaf8c5829f2f3411c5edb27fcaf3e40d24c78f622b01131b90ee281a49fde5a929181900390910190a16001600160a01b0382166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a1506001949350505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b0316631f5499076040518163ffffffff1660e01b815260040160206040518083038186803b158015612b8857600080fd5b505afa158015612b9c573d6000803e3d6000fd5b505050506040513d6020811015612bb257600080fd5b50516001546040805163697b93fd60e01b815290519293506000926001600160a01b039092169163697b93fd91600480820192602092909190829003018186803b158015612bff57600080fd5b505afa158015612c13573d6000803e3d6000fd5b505050506040513d6020811015612c2957600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b158015612c7657600080fd5b505afa158015612c8a573d6000803e3d6000fd5b505050506040513d6020811015612ca057600080fd5b505160015460408051639594897d60e01b815290519293506000926001600160a01b0390921691639594897d91600480820192602092909190829003018186803b158015612ced57600080fd5b505afa158015612d01573d6000803e3d6000fd5b505050506040513d6020811015612d1757600080fd5b505190506000612d2d858463ffffffff612f9a16565b90506000612d41858463ffffffff612f9a16565b90506000612d4f8383612ffb565b90506714d1120d7b16000081108015612d725750600854600160a01b900460ff16155b15612d8f576008805460ff60a01b1916600160a01b179055612dc8565b6714d1120d7b1600008110158015612db55750600854600160a01b900460ff1615156001145b15612dc8576008805460ff60a01b191690555b600197505050505050505090565b612dde61142c565b612e2f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b03199182168117909255600380549091168217905560408051918252517f373a23842c9bfba0a655597bb13c6493895da5266bd6617086a73f8dcfe2ae709181900360200190a150565b6001600160a01b038116600090815260096020908152604080832060020154600f909252822054600d548390612eca908363ffffffff613cbd16565b9050600073__$3c31caed800dd799d299e04f3574ae6bfa$__633cbd79aa85846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612f2557600080fd5b505af4158015612f39573d6000803e3d6000fd5b505050506040513d6020811015612f4f57600080fd5b50519695505050505050565b6001600160a01b038116600090815260096020908152604080832060020154600f909252822060010154600e548390612eca908363ffffffff613cbd16565b600082820183811015612ff4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561304c57600080fd5b505afa158015613060573d6000803e3d6000fd5b505050506040513d602081101561307657600080fd5b5051905082156131b457600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5686866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156130d957600080fd5b505af41580156130ed573d6000803e3d6000fd5b505050506040513d602081101561310357600080fd5b5051604080517fd4eb14410000000000000000000000000000000000000000000000000000000081526004810185905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__9163d4eb1441916044808301926020929190829003018186803b15801561317d57600080fd5b505af4158015613191573d6000803e3d6000fd5b505050506040513d60208110156131a757600080fd5b505193506111ea92505050565b6000199150506111ea565b6001546040805162e233eb60e61b81526001600160a01b0384811660048301529151600093929092169163388cfac09160248082019260209290919082900301818787803b15801561321057600080fd5b505af1158015613224573d6000803e3d6000fd5b505050506040513d602081101561323a57600080fd5b506000905061324883610acd565b9050670de0b6b3a764000081116132b15761326283613a65565b5061326c8361402f565b506001600160a01b0383166000908152600960205260409020600181015490546132968282614082565b506132a085613ea6565b506132a9614292565b5050506136f6565b670de0b6b3a7640000811180156132cf5750670f43fc2c04ee000081105b156133c4576132dd83613a65565b506132e78361402f565b506132f06147c9565b600180546001600160a01b038681166000908152600960205260408082208054950154815163335525ad60e01b8152600481019690965260248601528051929093169363335525ad93604480830194919391928390030190829087803b15801561335957600080fd5b505af115801561336d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561339257600080fd5b5080516020820151919250906133a88183614082565b506133b286613ea6565b506133bb614292565b505050506136f6565b600760009054906101000a90046001600160a01b03166001600160a01b0316634d6228316040518163ffffffff1660e01b815260040160206040518083038186803b15801561341257600080fd5b505afa158015613426573d6000803e3d6000fd5b505050506040513d602081101561343c57600080fd5b50516001600160a01b0384811691161480156134d05750600160009054906101000a90046001600160a01b03166001600160a01b03166385cb43e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156134a157600080fd5b505afa1580156134b5573d6000803e3d6000fd5b505050506040513d60208110156134cb57600080fd5b505115155b156136f6576134de83613a65565b506134e88361402f565b506134f16147c9565b600180546001600160a01b038681166000908152600960205260408082208054950154815163335525ad60e01b8152600481019690965260248601528051929093169363335525ad93604480830194919391928390030190829087803b15801561355a57600080fd5b505af115801561356e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561359357600080fd5b508051602082015191925090816135b8576135ad86613ea6565b506135b6614292565b505b81156136f2576135c7816143a3565b506001600160a01b0386166000908152600960205260409020600181018290558290556135f386613c21565b5060006135ff87610acd565b6007546040805163015f109360e51b81526001600160a01b038b811660048301819052602483018690526044830181905260648301529151939450911691632be212609160848082019260009290919082900301818387803b15801561366457600080fd5b505af1158015613678573d6000803e3d6000fd5b5050506001600160a01b0388166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb392509081900360a00190a1505b5050505b6136fe612b37565b5050919050565b60008061371183610acd565b9050670f43fc2c04ee00008110156137ae576001546040805162e233eb60e61b81526001600160a01b0386811660048301529151919092169163388cfac09160248083019260209291908290030181600087803b15801561377157600080fd5b505af1158015613785573d6000803e3d6000fd5b505050506040513d602081101561379b57600080fd5b506137a7905083610acd565b90506137b8565b6000915050610a9f565b670f43fc2c04ee000081111561384d576007546040805163015f109360e51b81526001600160a01b03868116600483018190526024830186905260448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b15801561382b57600080fd5b505af115801561383f573d6000803e3d6000fd5b505050506000915050610a9f565b61385683613a65565b506138608361402f565b506138696147c9565b600180546001600160a01b038681166000908152600960205260408082208054950154815163335525ad60e01b8152600481019690965260248601528051929093169363335525ad93604480830194919391928390030190829087803b1580156138d257600080fd5b505af11580156138e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561390b57600080fd5b5080516020820151919250906139218183614082565b5061392b86613ea6565b50613934614292565b5060019695505050505050565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__63d4eb1441600560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139ab57600080fd5b505afa1580156139bf573d6000803e3d6000fd5b505050506040513d60208110156139d557600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925260248201869052516044808301926020929190829003018186803b158015613a3357600080fd5b505af4158015613a47573d6000803e3d6000fd5b505050506040513d6020811015613a5d57600080fd5b505192915050565b600060016001600160a01b03831660009081526009602052604090206003015460ff166002811115613a9357fe5b14613acf5760405162461bcd60e51b815260040180806020018281038252602881526020018061482f6028913960400191505060405180910390fd5b6000613ada83612e8e565b90506000613ae784612f5b565b6001600160a01b038516600090815260096020526040902060010154909150613b16908363ffffffff612f9a16565b6001600160a01b0385166000908152600960205260409020600181019190915554613b47908263ffffffff612f9a16565b6001600160a01b0380861660009081526009602090815260408083209490945560015484517ff09892710000000000000000000000000000000000000000000000000000000081526004810187905260248101889052945193169363f09892719360448083019491928390030190829087803b158015613bc657600080fd5b505af1158015613bda573d6000803e3d6000fd5b505050506040513d6020811015613bf057600080fd5b5050600d546001600160a01b03949094166000908152600f602052604090209384555050600e546001928301555090565b6001600160a01b038116600090815260096020526040812060020154600a54613c50908263ffffffff613cbd16565b600a556001600160a01b038316600090815260096020526040812060010154613c78906144b9565b6001600160a01b0385166000908152600960205260409020600201819055600a54909150613cac908263ffffffff612f9a16565b600a555060019392505050565b3390565b6000612ff483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614601565b600080613d0b84612e8e565b90506000613d1885612f5b565b6001600160a01b03861660009081526009602052604081206001015491925090613d48908463ffffffff612f9a16565b6001600160a01b03871660009081526009602052604081205491925090613d75908463ffffffff612f9a16565b90506000613d89828863ffffffff612f9a16565b9050613d958382612ffb565b98975050505050505050565b6000818310613dc157613dba838363ffffffff613cbd16565b90506111ea565b818310156111ea57613dba828463ffffffff613cbd16565b60408051602080820185905282518083038201815291830190925280519101206000908190839081613e0757fe5b06949350505050565b600080613e1c84612e8e565b90506000613e2985612f5b565b6001600160a01b03861660009081526009602052604081206001015491925090613e59908463ffffffff612f9a16565b6001600160a01b03871660009081526009602052604081205491925090613e86908463ffffffff612f9a16565b90506000613e9a838863ffffffff613cbd16565b9050613d958183612ffb565b6001600160a01b03818116600081815260096020526040808220600301805460ff1916600217905560075481517f29092d0e00000000000000000000000000000000000000000000000000000000815260048101949094529051919316916329092d0e916024808301928692919082900301818387803b158015613f2957600080fd5b505af1158015613f3d573d6000803e3d6000fd5b50505050613f4a82614698565b50604080516001600160a01b038416815290517f8dc2af76274aae5c06e0223e41dba1dfdafc467ec4844fa1742b68c987d0d81c9181900360200190a1506001919050565b6001600160a01b038116613fd45760405162461bcd60e51b81526004018080602001828103825260268152602001806148e26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260096020526040812060020154600a5461405e908263ffffffff613cbd16565b600a55506001600160a01b0390911660009081526009602052604081206002015590565b600081156111ea57600a54156141f257600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5685600a546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156140ed57600080fd5b505af4158015614101573d6000803e3d6000fd5b505050506040513d602081101561411757600080fd5b5051600a54604080517f11923a560000000000000000000000000000000000000000000000000000000081526004810187905260248101929092525191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__916311923a56916044808301926020929190829003018186803b15801561419457600080fd5b505af41580156141a8573d6000803e3d6000fd5b505050506040513d60208110156141be57600080fd5b5051600d549091506141d6908363ffffffff612f9a16565b600d55600e546141ec908263ffffffff612f9a16565b600e5550505b600154604080517fd296d1f1000000000000000000000000000000000000000000000000000000008152600481018590526024810186905290516001600160a01b039092169163d296d1f1916044808201926020929091908290030181600087803b15801561426057600080fd5b505af1158015614274573d6000803e3d6000fd5b505050506040513d602081101561428a57600080fd5b505092915050565b600a54600b5560015460408051631f54990760e01b8152905160009283926001600160a01b0390911691631f54990791600480820192602092909190829003018186803b1580156142e257600080fd5b505afa1580156142f6573d6000803e3d6000fd5b505050506040513d602081101561430c57600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b15801561435957600080fd5b505afa15801561436d573d6000803e3d6000fd5b505050506040513d602081101561438357600080fd5b50519050614397828263ffffffff612f9a16565b600c5550600191505090565b600a54600b5560015460408051631f54990760e01b8152905160009283926001600160a01b0390911691631f54990791600480820192602092909190829003018186803b1580156143f357600080fd5b505afa158015614407573d6000803e3d6000fd5b505050506040513d602081101561441d57600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b15801561446a57600080fd5b505afa15801561447e573d6000803e3d6000fd5b505050506040513d602081101561449457600080fd5b505190506144ac81612251848763ffffffff613cbd16565b600c555060019392505050565b600080600c54600014156144ce5750816111ea565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a56600b54600c546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561452b57600080fd5b505af415801561453f573d6000803e3d6000fd5b505050506040513d602081101561455557600080fd5b5051604080517f3cbd79aa0000000000000000000000000000000000000000000000000000000081526004810187905260248101839052905191925073__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa91604480820192602092909190829003018186803b1580156145cd57600080fd5b505af41580156145e1573d6000803e3d6000fd5b505050506040513d60208110156145f757600080fd5b5051949350505050565b600081848411156146905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561465557818101518382015260200161463d565b50505050905090810190601f1680156146825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600060026001600160a01b03831660009081526009602052604090206003015460ff1660028111156146c657fe5b14614718576040805162461bcd60e51b815260206004820152601f60248201527f4344504d616e616765723a20434450206973207374696c6c2061637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526009602052604081206004015460108054919291600019810190811061474957fe5b600091825260209091200154601080546001600160a01b03909216925082918490811061477257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260099091526040902060040182905560108054906147c19060001983016147e7565b505050919050565b60405180604001604052806002906020820280388339509192915050565b81548183558181111561480b5760008381526020902061480b918101908301614810565b505050565b610da191905b8082111561482a5760008155600101614816565b509056fe4344504d616e616765723a2075736572206d757374206861766520616e20616374697665204344504344504d616e616765723a20736f727465644c697374206d757374206e6f7420626520656d7074794344504d616e616765723a2052657061696420616d6f756e74206d757374206265206c6172676572207468616e20304344504d616e616765723a20416d6f756e7420746f207769746864726177206d757374206265206c6172676572207468616e20304f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734344504d616e616765723a20496e73756666696369656e742062616c616e636520666f7220455448207769746864726177616c4344504d616e616765723a2043445020646f6573206e6f74206578697374206f7220697320636c6f7365644344504d616e616765723a2052657061696420616d6f756e74206973206c6172676572207468616e2063757272656e7420646562744344504d616e616765723a2043445020646f6573206e6f74206578697374206f7220697320616c726561647920636c6f7365644344504d616e616765723a20446562742069737375616e6365206973206e6f74207065726d697474656420647572696e67205265636f76657279204d6f64654344504d616e616765723a2053656e6465722068617320696e73756666696369656e742062616c616e63654344504d616e616765723a20496e73756666696369656e7420636f6c6c61746572616c20726174696f20666f7220434c56207769746864726177616c4344504d616e616765723a20496e73756666696369656e7420636f6c6c61746572616c20726174696f20666f7220455448207769746864726177616c4344504d616e616765723a206120434c56207769746864726177616c207468617420776f756c6420726573756c7420696e20544352203c20434352206973206e6f74207065726d69747465644344504d616e616765723a2052656d61696e696e6720636f6c6c61746572616c206d757374206861766520245553442076616c7565203e3d2032302c206f72206265207a65726f4344504d616e616765723a2053656e6465722068617320696e73756666696369656e7420434c562062616c616e63654344504d616e616765723a20446f6c6c61722076616c7565206f6620636f6c6c61746572616c206465706f736974206d75737420657175616c206f722065786365656420746865206d696e696d756d4344504d616e616765723a20436f6c6c61746572616c207769746864726177616c206973206e6f74207065726d697474656420647572696e67205265636f76657279204d6f6465a265627a7a72315820d8257d8e528549ff5c14f84f159046c93f9f039cc45c1b10b89854c6b63a87ad64736f6c634300050f0032", + "deployedBytecode": "0x6080604052600436106102345760003560e01c80638f32d59b11610138578063bf9befb1116100b0578063e6a13f301161007f578063f78b338811610064578063f78b338814610730578063fee83f1414610769578063fefb4c581461077e57610234565b8063e6a13f30146106e8578063f2fde38b146106fd57610234565b8063bf9befb114610670578063bfd0d88614610685578063c50404741461069a578063e0abca0b146106d357610234565b8063a20a804511610107578063b1e9da1f116100ec578063b1e9da1f14610601578063b6659dd614610616578063b6c7b6e51461064657610234565b8063a20a80451461058f578063a532483e146105c857610234565b80638f32d59b1461053b57806396d711ff146105505780639dd233d2146105655780639e1d6c781461057a57610234565b80636828482d116101cb578063724e78da1161019a5780637aef67151161017f5780637aef6715146104de578063807d138d146105115780638da5cb5b1461052657610234565b8063724e78da14610496578063794e5724146104c957610234565b80636828482d14610409578063685e91af1461043e57806368647db114610453578063715018a61461048157610234565b80632f865568116102075780632f8655681461031d5780634ecf5726146103505780634fa93e66146103815780635733d58f146103f457610234565b8063020e799a1461023957806307a00b1f146102775780631673c79a1461028c57806327fb7d89146102d8575b600080fd5b34801561024557600080fd5b506102636004803603602081101561025c57600080fd5b50356107b1565b604080519115158252519081900360200190f35b34801561028357600080fd5b50610263610aa4565b34801561029857600080fd5b506102bf600480360360208110156102af57600080fd5b50356001600160a01b0316610ab4565b6040805192835260208301919091528051918290030190f35b3480156102e457600080fd5b5061030b600480360360208110156102fb57600080fd5b50356001600160a01b0316610acd565b60408051918252519081900360200190f35b34801561032957600080fd5b506102636004803603602081101561034057600080fd5b50356001600160a01b0316610b5c565b34801561035c57600080fd5b50610365610c15565b604080516001600160a01b039092168252519081900360200190f35b34801561038d57600080fd5b506103b4600480360360208110156103a457600080fd5b50356001600160a01b0316610c24565b604051808681526020018581526020018481526020018360028111156103d657fe5b60ff1681526020018281526020019550505050505060405180910390f35b34801561040057600080fd5b5061030b610c56565b34801561041557600080fd5b5061043c6004803603602081101561042c57600080fd5b50356001600160a01b0316610c62565b005b34801561044a57600080fd5b5061030b610d9d565b6102636004803603604081101561046957600080fd5b506001600160a01b0381358116916020013516610da4565b34801561048d57600080fd5b5061043c6111f0565b3480156104a257600080fd5b5061043c600480360360208110156104b957600080fd5b50356001600160a01b0316611293565b3480156104d557600080fd5b5061030b611353565b3480156104ea57600080fd5b5061043c6004803603602081101561050157600080fd5b50356001600160a01b031661135f565b34801561051d57600080fd5b5061030b611417565b34801561053257600080fd5b5061036561141d565b34801561054757600080fd5b5061026361142c565b34801561055c57600080fd5b5061030b611450565b34801561057157600080fd5b5061030b611456565b34801561058657600080fd5b5061036561145c565b34801561059b57600080fd5b50610263600480360360408110156105b257600080fd5b50803590602001356001600160a01b031661146b565b3480156105d457600080fd5b50610263600480360360408110156105eb57600080fd5b50803590602001356001600160a01b0316611b08565b34801561060d57600080fd5b5061030b611ece565b34801561062257600080fd5b506103656004803603604081101561063957600080fd5b5080359060200135611edb565b34801561065257600080fd5b5061030b6004803603602081101561066957600080fd5b5035612043565b34801561067c57600080fd5b5061030b612278565b34801561069157600080fd5b5061030b61227e565b3480156106a657600080fd5b50610263600480360360408110156106bd57600080fd5b50803590602001356001600160a01b0316612284565b3480156106df57600080fd5b506103656126a4565b3480156106f457600080fd5b506103656126b3565b34801561070957600080fd5b5061043c6004803603602081101561072057600080fd5b50356001600160a01b03166126c2565b34801561073c57600080fd5b506102636004803603604081101561075357600080fd5b50803590602001356001600160a01b0316612727565b34801561077557600080fd5b50610263612b37565b34801561078a57600080fd5b5061043c600480360360208110156107a157600080fd5b50356001600160a01b0316612dd6565b60006107bb612b37565b50600854600160a01b900460ff161515600114156109395760005b8281101561092f5760075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b15801561082357600080fd5b505afa158015610837573d6000803e3d6000fd5b505050506040513d602081101561084d57600080fd5b50519050600061085c82610acd565b905061086782610b5c565b50600854600160a01b900460ff1615801561088a5750670f43fc2c04ee00008110155b806109195750600760009054906101000a90046001600160a01b03166001600160a01b0316631e2231436040518163ffffffff1660e01b815260040160206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b50516001600160a01b038381169116145b1561092557505061092f565b50506001016107d6565b6001915050610a9f565b600854600160a01b900460ff16610a9b5760005b82811015610a995760075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b15801561099a57600080fd5b505afa1580156109ae573d6000803e3d6000fd5b505050506040513d60208110156109c457600080fd5b5051905060006109d382610acd565b9050670f43fc2c04ee00008110156109f4576109ee82610b5c565b506109fb565b5050610a99565b600760009054906101000a90046001600160a01b03166001600160a01b0316631e2231436040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4957600080fd5b505afa158015610a5d573d6000803e3d6000fd5b505050506040513d6020811015610a7357600080fd5b50516001600160a01b0383811691161415610a8f575050610a99565b505060010161094d565b505b5060015b919050565b600854600160a01b900460ff1681565b600f602052600090815260409020805460019091015482565b600080610ad983612e8e565b90506000610ae684612f5b565b6001600160a01b03851660009081526009602052604081206001015491925090610b16908463ffffffff612f9a16565b6001600160a01b03861660009081526009602052604081205491925090610b43908463ffffffff612f9a16565b90506000610b518383612ffb565b979650505050505050565b6000610b66612b37565b5060016001600160a01b03831660009081526009602052604090206003015460ff166002811115610b9357fe5b14610bcf5760405162461bcd60e51b815260040180806020018281038252603381526020018061499b6033913960400191505060405180910390fd5b600854600160a01b900460ff16151560011415610bf557610bef826131bf565b50610a9f565b600854600160a01b900460ff16610a9f57610c0f82613705565b50919050565b6008546001600160a01b031681565b6009602052600090815260409020805460018201546002830154600384015460049094015492939192909160ff169085565b6714d1120d7b16000081565b610c6a61142c565b610cbb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600880546001600160a01b03199081166001600160a01b03848116918217909355600780549092161790819055604080517f816e117c000000000000000000000000000000000000000000000000000000008152620f424060048201529051919092169163816e117c91602480830192600092919082900301818387803b158015610d4557600080fd5b505af1158015610d59573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f328bb7558e87ad9d5a9ba346a1e55a13c7998dd76b12ae08ee93a729ff23147a9350908190036020019150a150565b6010545b90565b600080806001600160a01b03851660009081526009602052604090206003015460ff166002811115610dd257fe5b1480610e07575060026001600160a01b03851660009081526009602052604090206003015460ff166002811115610e0557fe5b145b15610e60576801158e460913d00000610e1f34613941565b1015610e5c5760405162461bcd60e51b815260040180806020018281038252604f815260200180614b72604f913960600191505060405180910390fd5b5060015b6001600160a01b0384166000908152600960205260409020600301805460ff19166001179055610e8f84613a65565b506001600160a01b038416600090815260096020526040902060010154610ebc903463ffffffff612f9a16565b6001600160a01b038516600090815260096020526040902060010155610ee184613c21565b506000610eed85610acd565b9050811561102957600754604080517f46f7cf870000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015260248201859052878116604483018190526064830152915191909216916346f7cf8791608480830192600092919082900301818387803b158015610f7257600080fd5b505af1158015610f86573d6000803e3d6000fd5b505060108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672810180546001600160a01b0319166001600160a01b038a16908117909155600081815260096020908152604091829020600401849055815192835282019290925281517f9aae360b1167f55ad3b0cb0b44f33887cdbbffea820e0a955295af4a05fa31f49450908190039091019150a16110a6565b6007546040805163015f109360e51b81526001600160a01b0388811660048301526024820185905287811660448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b15801561108d57600080fd5b505af11580156110a1573d6000803e3d6000fd5b505050505b600160009054906101000a90046001600160a01b03166001600160a01b03166325a2e6e7346040518263ffffffff1660e01b81526004016020604051808303818588803b1580156110f657600080fd5b505af115801561110a573d6000803e3d6000fd5b50505050506040513d602081101561112157600080fd5b5061112c9050612b37565b50604080516001600160a01b038716815234602082015281517f7dba1be544024070cd5eebfa8bdd80a8b198cea8058c7d3cc1f8dd36e41ab2f7929181900390910190a16001600160a01b0385166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a16001925050505b92915050565b6111f861142c565b611249576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61129b61142c565b6112ec576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600680546001600160a01b038084166001600160a01b0319928316811793849055600580549093169390911692909217905560408051918252517f8c537274438aa850a330284665d81a85dd38267d09e4050d416bfc94142db2649181900360200190a150565b670f43fc2c04ee000081565b61136761142c565b6113b8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b03199182168117909255600180549091168217905560408051918252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f88509181900360200190a150565b600b5481565b6000546001600160a01b031690565b600080546001600160a01b0316611441613cb9565b6001600160a01b031614905090565b600c5481565b600d5481565b6004546001600160a01b031681565b60035460009083906001600160a01b03166370a08231611489613cb9565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156114cf57600080fd5b505afa1580156114e3573d6000803e3d6000fd5b505050506040513d60208110156114f957600080fd5b505110156115385760405162461bcd60e51b815260040180806020018281038252602b815260200180614a0d602b913960400191505060405180910390fd5b6000805b84821015611aaf5760075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b5051905060006115c282610acd565b90506000600560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561161457600080fd5b505afa158015611628573d6000803e3d6000fd5b505050506040513d602081101561163e57600080fd5b50516001546040805163697b93fd60e01b815290519293506000926001600160a01b039092169163697b93fd91600480820192602092909190829003018186803b15801561168b57600080fd5b505afa15801561169f573d6000803e3d6000fd5b505050506040513d60208110156116b557600080fd5b50519050806116c75750505050611aaf565b670f43fc2c04ee00008310156116e6576116e084610b5c565b50611aa6565b6116ef84613a65565b50600073__$3c31caed800dd799d299e04f3574ae6bfa$__630fd95db561171c8c8a63ffffffff613cbd16565b6001600160a01b0388166000908152600960209081526040918290205482517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152600481019490945260248401529051604480840193829003018186803b15801561178d57600080fd5b505af41580156117a1573d6000803e3d6000fd5b505050506040513d60208110156117b757600080fd5b5051604080517f563d4c2300000000000000000000000000000000000000000000000000000000815260048101839052670de0b6b3a7640000602482015260448101869052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__9163563d4c23916064808301926020929190829003018186803b15801561183f57600080fd5b505af4158015611853573d6000803e3d6000fd5b505050506040513d602081101561186957600080fd5b50516001600160a01b038716600090815260096020526040902054909150611897908363ffffffff613cbd16565b6001600160a01b0387166000908152600960205260409020908155600101546118c6908263ffffffff613cbd16565b6001600160a01b0387166000908152600960205260408120600101919091556118ee87610acd565b6001549091506001600160a01b0316637cb19fe861190a613cb9565b85856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050602060405180830381600087803b15801561196257600080fd5b505af1158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50506007546040805163015f109360e51b81526001600160a01b038a81166004830152602482018590528e811660448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b1580156119f257600080fd5b505af1158015611a06573d6000803e3d6000fd5b5050506001600160a01b0388166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb392509081900360a00190a1611a8e898463ffffffff612f9a16565b9850611aa0888363ffffffff612f9a16565b97505050505b5050505061153c565b7fb71097a7e9f94d7dd73e8b8e2901f5a66a36ee98ec47692a555d83d674f3a7cd611ad8613cb9565b604080516001600160a01b03909216825260208201859052818101849052519081900360600190a1505092915050565b6000611b12612b37565b506000611b1d613cb9565b905060016001600160a01b03821660009081526009602052604090206003015460ff166002811115611b4b57fe5b14611b875760405162461bcd60e51b815260040180806020018281038252602b81526020018061493b602b913960400191505060405180910390fd5b60008411611bc65760405162461bcd60e51b81526004018080602001828103825260348152602001806148ae6034913960400191505060405180910390fd5b6000611bd185612043565b90506000611bdf8387613cff565b600854909150600160a01b900460ff1615611c2b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806149ce603f913960400191505060405180910390fd5b6714d1120d7b160000821015611c725760405162461bcd60e51b815260040180806020018281038252604c815260200180614ab0604c913960600191505060405180910390fd5b670f43fc2c04ee0000811015611cb95760405162461bcd60e51b815260040180806020018281038252603c815260200180614a38603c913960400191505060405180910390fd5b6001600160a01b038316600090815260096020526040902054611ce2908763ffffffff612f9a16565b6001600160a01b0380851660008181526009602052604080822094909455600754845163015f109360e51b815260048101939093526024830186905289841660448401819052606484015293519390921692632be212609260848084019391929182900301818387803b158015611d5857600080fd5b505af1158015611d6c573d6000803e3d6000fd5b5050600154604080517f2e90bbd80000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018c90529151919092169350632e90bbd8925060448083019260209291908290030181600087803b158015611ddf57600080fd5b505af1158015611df3573d6000803e3d6000fd5b505050506040513d6020811015611e0957600080fd5b5050604080516001600160a01b03851681526020810188905281517f640913f748017f33c962e4f95d85294d0233e0f9a254706a2d739a5b47f68ef0929181900390910190a16001600160a01b0383166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a150600195945050505050565b6801158e460913d0000081565b60105460009060011115611f205760405162461bcd60e51b81526004018080602001828103825260288152602001806148576028913960400191505060405180910390fd5b60075460408051634d62283160e01b815290516000926001600160a01b031691634d622831916004808301926020929190829003018186803b158015611f6557600080fd5b505afa158015611f79573d6000803e3d6000fd5b505050506040513d6020811015611f8f57600080fd5b505190506000611f9e82610acd565b90506000611fac8683613da1565b905060015b85811015612038576000611fd6611fce428463ffffffff612f9a16565b601054613dd9565b9050600060108281548110611fe757fe5b60009182526020822001546001600160a01b0316915061200682610acd565b90506000612014828c613da1565b905085811015612028578196508095508297505b505060019092019150611fb19050565b509195945050505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b0316631f5499076040518163ffffffff1660e01b815260040160206040518083038186803b15801561209457600080fd5b505afa1580156120a8573d6000803e3d6000fd5b505050506040513d60208110156120be57600080fd5b50516001546040805163697b93fd60e01b815290519293506000926001600160a01b039092169163697b93fd91600480820192602092909190829003018186803b15801561210b57600080fd5b505afa15801561211f573d6000803e3d6000fd5b505050506040513d602081101561213557600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b15801561218257600080fd5b505afa158015612196573d6000803e3d6000fd5b505050506040513d60208110156121ac57600080fd5b505160015460408051639594897d60e01b815290519293506000926001600160a01b0390921691639594897d91600480820192602092909190829003018186803b1580156121f957600080fd5b505afa15801561220d573d6000803e3d6000fd5b505050506040513d602081101561222357600080fd5b505190506000612239858463ffffffff612f9a16565b9050600061225d88612251878663ffffffff612f9a16565b9063ffffffff612f9a16565b9050600061226b8383612ffb565b9998505050505050505050565b600a5481565b600e5481565b600061228e612b37565b506000612299613cb9565b905060016001600160a01b03821660009081526009602052604090206003015460ff1660028111156122c757fe5b146123035760405162461bcd60e51b815260040180806020018281038252602b81526020018061493b602b913960400191505060405180910390fd5b61230c81613a65565b506001600160a01b0381166000908152600960205260409020600101548411156123675760405162461bcd60e51b81526004018080602001828103825260338152602001806149086033913960400191505060405180910390fd5b6001600160a01b038116600090815260096020526040812060010154612393908663ffffffff613cbd16565b90506801158e460913d000006123a882613941565b1015806123b3575080155b6123ee5760405162461bcd60e51b8152600401808060200182810382526047815260200180614afc6047913960600191505060405180910390fd5b60006123fa8387613e10565b600854909150600160a01b900460ff16156124465760405162461bcd60e51b8152600401808060200182810382526047815260200180614bc16047913960600191505060405180910390fd5b670f43fc2c04ee000081101561248d5760405162461bcd60e51b815260040180806020018281038252603c815260200180614a74603c913960400191505060405180910390fd5b6001600160a01b03831660009081526009602052604090206001018290556124b483613c21565b50816124c9576124c383613ea6565b506125fd565b6007546040805163015f109360e51b81526001600160a01b0386811660048301526024820185905288811660448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b15801561252d57600080fd5b505af1158015612541573d6000803e3d6000fd5b5050604080516001600160a01b0387168152602081018a905281517fc30fcfbcaac9e0deffa719714eaa82396ff506a0d0d0eebe170830177288715d9450908190039091019150a16001600160a01b0383166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a15b600154604080517ff568dd8e0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018a90529151919092169163f568dd8e9160448083019260209291908290030181600087803b15801561266c57600080fd5b505af1158015612680573d6000803e3d6000fd5b505050506040513d602081101561269657600080fd5b506001979650505050505050565b6006546001600160a01b031681565b6002546001600160a01b031681565b6126ca61142c565b61271b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61272481613f8f565b50565b600080612732613cb9565b905060016001600160a01b03821660009081526009602052604090206003015460ff16600281111561276057fe5b1461279c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061493b602b913960400191505060405180910390fd5b600084116127db5760405162461bcd60e51b815260040180806020018281038252602f81526020018061487f602f913960400191505060405180910390fd5b6001600160a01b0381166000908152600960205260409020548411156128325760405162461bcd60e51b81526004018080602001828103825260358152602001806149666035913960400191505060405180910390fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529151879392909216916370a0823191602480820192602092909190829003018186803b15801561289b57600080fd5b505afa1580156128af573d6000803e3d6000fd5b505050506040513d60208110156128c557600080fd5b505110156129045760405162461bcd60e51b815260040180806020018281038252602f815260200180614b43602f913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090205461292d908563ffffffff613cbd16565b6001600160a01b03821660009081526009602052604081209190915561295282610acd565b6007546040805163015f109360e51b81526001600160a01b038681166004830152602482018590528881166044830181905260648301529151939450911691632be212609160848082019260009290919082900301818387803b1580156129b857600080fd5b505af11580156129cc573d6000803e3d6000fd5b5050600154604080517fb96c51810000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152602482018b9052915191909216935063b96c5181925060448083019260209291908290030181600087803b158015612a3f57600080fd5b505af1158015612a53573d6000803e3d6000fd5b505050506040513d6020811015612a6957600080fd5b50612a749050612b37565b50604080516001600160a01b03841681526020810187905281517fafaf8c5829f2f3411c5edb27fcaf3e40d24c78f622b01131b90ee281a49fde5a929181900390910190a16001600160a01b0382166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb39181900360a00190a1506001949350505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b0316631f5499076040518163ffffffff1660e01b815260040160206040518083038186803b158015612b8857600080fd5b505afa158015612b9c573d6000803e3d6000fd5b505050506040513d6020811015612bb257600080fd5b50516001546040805163697b93fd60e01b815290519293506000926001600160a01b039092169163697b93fd91600480820192602092909190829003018186803b158015612bff57600080fd5b505afa158015612c13573d6000803e3d6000fd5b505050506040513d6020811015612c2957600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b158015612c7657600080fd5b505afa158015612c8a573d6000803e3d6000fd5b505050506040513d6020811015612ca057600080fd5b505160015460408051639594897d60e01b815290519293506000926001600160a01b0390921691639594897d91600480820192602092909190829003018186803b158015612ced57600080fd5b505afa158015612d01573d6000803e3d6000fd5b505050506040513d6020811015612d1757600080fd5b505190506000612d2d858463ffffffff612f9a16565b90506000612d41858463ffffffff612f9a16565b90506000612d4f8383612ffb565b90506714d1120d7b16000081108015612d725750600854600160a01b900460ff16155b15612d8f576008805460ff60a01b1916600160a01b179055612dc8565b6714d1120d7b1600008110158015612db55750600854600160a01b900460ff1615156001145b15612dc8576008805460ff60a01b191690555b600197505050505050505090565b612dde61142c565b612e2f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b03199182168117909255600380549091168217905560408051918252517f373a23842c9bfba0a655597bb13c6493895da5266bd6617086a73f8dcfe2ae709181900360200190a150565b6001600160a01b038116600090815260096020908152604080832060020154600f909252822054600d548390612eca908363ffffffff613cbd16565b9050600073__$3c31caed800dd799d299e04f3574ae6bfa$__633cbd79aa85846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612f2557600080fd5b505af4158015612f39573d6000803e3d6000fd5b505050506040513d6020811015612f4f57600080fd5b50519695505050505050565b6001600160a01b038116600090815260096020908152604080832060020154600f909252822060010154600e548390612eca908363ffffffff613cbd16565b600082820183811015612ff4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561304c57600080fd5b505afa158015613060573d6000803e3d6000fd5b505050506040513d602081101561307657600080fd5b5051905082156131b457600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5686866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156130d957600080fd5b505af41580156130ed573d6000803e3d6000fd5b505050506040513d602081101561310357600080fd5b5051604080517fd4eb14410000000000000000000000000000000000000000000000000000000081526004810185905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__9163d4eb1441916044808301926020929190829003018186803b15801561317d57600080fd5b505af4158015613191573d6000803e3d6000fd5b505050506040513d60208110156131a757600080fd5b505193506111ea92505050565b6000199150506111ea565b6001546040805162e233eb60e61b81526001600160a01b0384811660048301529151600093929092169163388cfac09160248082019260209290919082900301818787803b15801561321057600080fd5b505af1158015613224573d6000803e3d6000fd5b505050506040513d602081101561323a57600080fd5b506000905061324883610acd565b9050670de0b6b3a764000081116132b15761326283613a65565b5061326c8361402f565b506001600160a01b0383166000908152600960205260409020600181015490546132968282614082565b506132a085613ea6565b506132a9614292565b5050506136f6565b670de0b6b3a7640000811180156132cf5750670f43fc2c04ee000081105b156133c4576132dd83613a65565b506132e78361402f565b506132f06147c9565b600180546001600160a01b038681166000908152600960205260408082208054950154815163335525ad60e01b8152600481019690965260248601528051929093169363335525ad93604480830194919391928390030190829087803b15801561335957600080fd5b505af115801561336d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561339257600080fd5b5080516020820151919250906133a88183614082565b506133b286613ea6565b506133bb614292565b505050506136f6565b600760009054906101000a90046001600160a01b03166001600160a01b0316634d6228316040518163ffffffff1660e01b815260040160206040518083038186803b15801561341257600080fd5b505afa158015613426573d6000803e3d6000fd5b505050506040513d602081101561343c57600080fd5b50516001600160a01b0384811691161480156134d05750600160009054906101000a90046001600160a01b03166001600160a01b03166385cb43e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156134a157600080fd5b505afa1580156134b5573d6000803e3d6000fd5b505050506040513d60208110156134cb57600080fd5b505115155b156136f6576134de83613a65565b506134e88361402f565b506134f16147c9565b600180546001600160a01b038681166000908152600960205260408082208054950154815163335525ad60e01b8152600481019690965260248601528051929093169363335525ad93604480830194919391928390030190829087803b15801561355a57600080fd5b505af115801561356e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561359357600080fd5b508051602082015191925090816135b8576135ad86613ea6565b506135b6614292565b505b81156136f2576135c7816143a3565b506001600160a01b0386166000908152600960205260409020600181018290558290556135f386613c21565b5060006135ff87610acd565b6007546040805163015f109360e51b81526001600160a01b038b811660048301819052602483018690526044830181905260648301529151939450911691632be212609160848082019260009290919082900301818387803b15801561366457600080fd5b505af1158015613678573d6000803e3d6000fd5b5050506001600160a01b0388166000818152600960209081526040918290208054600182015460028301546004909301548551968752938601919091528484015260608401526080830152517fea624984c2b644d65d0c0865c2b01599f40c1daee847efc465c290098802bfb392509081900360a00190a1505b5050505b6136fe612b37565b5050919050565b60008061371183610acd565b9050670f43fc2c04ee00008110156137ae576001546040805162e233eb60e61b81526001600160a01b0386811660048301529151919092169163388cfac09160248083019260209291908290030181600087803b15801561377157600080fd5b505af1158015613785573d6000803e3d6000fd5b505050506040513d602081101561379b57600080fd5b506137a7905083610acd565b90506137b8565b6000915050610a9f565b670f43fc2c04ee000081111561384d576007546040805163015f109360e51b81526001600160a01b03868116600483018190526024830186905260448301819052606483015291519190921691632be2126091608480830192600092919082900301818387803b15801561382b57600080fd5b505af115801561383f573d6000803e3d6000fd5b505050506000915050610a9f565b61385683613a65565b506138608361402f565b506138696147c9565b600180546001600160a01b038681166000908152600960205260408082208054950154815163335525ad60e01b8152600481019690965260248601528051929093169363335525ad93604480830194919391928390030190829087803b1580156138d257600080fd5b505af11580156138e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561390b57600080fd5b5080516020820151919250906139218183614082565b5061392b86613ea6565b50613934614292565b5060019695505050505050565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__63d4eb1441600560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139ab57600080fd5b505afa1580156139bf573d6000803e3d6000fd5b505050506040513d60208110156139d557600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925260248201869052516044808301926020929190829003018186803b158015613a3357600080fd5b505af4158015613a47573d6000803e3d6000fd5b505050506040513d6020811015613a5d57600080fd5b505192915050565b600060016001600160a01b03831660009081526009602052604090206003015460ff166002811115613a9357fe5b14613acf5760405162461bcd60e51b815260040180806020018281038252602881526020018061482f6028913960400191505060405180910390fd5b6000613ada83612e8e565b90506000613ae784612f5b565b6001600160a01b038516600090815260096020526040902060010154909150613b16908363ffffffff612f9a16565b6001600160a01b0385166000908152600960205260409020600181019190915554613b47908263ffffffff612f9a16565b6001600160a01b0380861660009081526009602090815260408083209490945560015484517ff09892710000000000000000000000000000000000000000000000000000000081526004810187905260248101889052945193169363f09892719360448083019491928390030190829087803b158015613bc657600080fd5b505af1158015613bda573d6000803e3d6000fd5b505050506040513d6020811015613bf057600080fd5b5050600d546001600160a01b03949094166000908152600f602052604090209384555050600e546001928301555090565b6001600160a01b038116600090815260096020526040812060020154600a54613c50908263ffffffff613cbd16565b600a556001600160a01b038316600090815260096020526040812060010154613c78906144b9565b6001600160a01b0385166000908152600960205260409020600201819055600a54909150613cac908263ffffffff612f9a16565b600a555060019392505050565b3390565b6000612ff483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614601565b600080613d0b84612e8e565b90506000613d1885612f5b565b6001600160a01b03861660009081526009602052604081206001015491925090613d48908463ffffffff612f9a16565b6001600160a01b03871660009081526009602052604081205491925090613d75908463ffffffff612f9a16565b90506000613d89828863ffffffff612f9a16565b9050613d958382612ffb565b98975050505050505050565b6000818310613dc157613dba838363ffffffff613cbd16565b90506111ea565b818310156111ea57613dba828463ffffffff613cbd16565b60408051602080820185905282518083038201815291830190925280519101206000908190839081613e0757fe5b06949350505050565b600080613e1c84612e8e565b90506000613e2985612f5b565b6001600160a01b03861660009081526009602052604081206001015491925090613e59908463ffffffff612f9a16565b6001600160a01b03871660009081526009602052604081205491925090613e86908463ffffffff612f9a16565b90506000613e9a838863ffffffff613cbd16565b9050613d958183612ffb565b6001600160a01b03818116600081815260096020526040808220600301805460ff1916600217905560075481517f29092d0e00000000000000000000000000000000000000000000000000000000815260048101949094529051919316916329092d0e916024808301928692919082900301818387803b158015613f2957600080fd5b505af1158015613f3d573d6000803e3d6000fd5b50505050613f4a82614698565b50604080516001600160a01b038416815290517f8dc2af76274aae5c06e0223e41dba1dfdafc467ec4844fa1742b68c987d0d81c9181900360200190a1506001919050565b6001600160a01b038116613fd45760405162461bcd60e51b81526004018080602001828103825260268152602001806148e26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260096020526040812060020154600a5461405e908263ffffffff613cbd16565b600a55506001600160a01b0390911660009081526009602052604081206002015590565b600081156111ea57600a54156141f257600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5685600a546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156140ed57600080fd5b505af4158015614101573d6000803e3d6000fd5b505050506040513d602081101561411757600080fd5b5051600a54604080517f11923a560000000000000000000000000000000000000000000000000000000081526004810187905260248101929092525191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__916311923a56916044808301926020929190829003018186803b15801561419457600080fd5b505af41580156141a8573d6000803e3d6000fd5b505050506040513d60208110156141be57600080fd5b5051600d549091506141d6908363ffffffff612f9a16565b600d55600e546141ec908263ffffffff612f9a16565b600e5550505b600154604080517fd296d1f1000000000000000000000000000000000000000000000000000000008152600481018590526024810186905290516001600160a01b039092169163d296d1f1916044808201926020929091908290030181600087803b15801561426057600080fd5b505af1158015614274573d6000803e3d6000fd5b505050506040513d602081101561428a57600080fd5b505092915050565b600a54600b5560015460408051631f54990760e01b8152905160009283926001600160a01b0390911691631f54990791600480820192602092909190829003018186803b1580156142e257600080fd5b505afa1580156142f6573d6000803e3d6000fd5b505050506040513d602081101561430c57600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b15801561435957600080fd5b505afa15801561436d573d6000803e3d6000fd5b505050506040513d602081101561438357600080fd5b50519050614397828263ffffffff612f9a16565b600c5550600191505090565b600a54600b5560015460408051631f54990760e01b8152905160009283926001600160a01b0390911691631f54990791600480820192602092909190829003018186803b1580156143f357600080fd5b505afa158015614407573d6000803e3d6000fd5b505050506040513d602081101561441d57600080fd5b5051600154604080516332e34f9560e21b815290519293506000926001600160a01b039092169163cb8d3e5491600480820192602092909190829003018186803b15801561446a57600080fd5b505afa15801561447e573d6000803e3d6000fd5b505050506040513d602081101561449457600080fd5b505190506144ac81612251848763ffffffff613cbd16565b600c555060019392505050565b600080600c54600014156144ce5750816111ea565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a56600b54600c546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561452b57600080fd5b505af415801561453f573d6000803e3d6000fd5b505050506040513d602081101561455557600080fd5b5051604080517f3cbd79aa0000000000000000000000000000000000000000000000000000000081526004810187905260248101839052905191925073__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa91604480820192602092909190829003018186803b1580156145cd57600080fd5b505af41580156145e1573d6000803e3d6000fd5b505050506040513d60208110156145f757600080fd5b5051949350505050565b600081848411156146905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561465557818101518382015260200161463d565b50505050905090810190601f1680156146825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600060026001600160a01b03831660009081526009602052604090206003015460ff1660028111156146c657fe5b14614718576040805162461bcd60e51b815260206004820152601f60248201527f4344504d616e616765723a20434450206973207374696c6c2061637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526009602052604081206004015460108054919291600019810190811061474957fe5b600091825260209091200154601080546001600160a01b03909216925082918490811061477257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260099091526040902060040182905560108054906147c19060001983016147e7565b505050919050565b60405180604001604052806002906020820280388339509192915050565b81548183558181111561480b5760008381526020902061480b918101908301614810565b505050565b610da191905b8082111561482a5760008155600101614816565b509056fe4344504d616e616765723a2075736572206d757374206861766520616e20616374697665204344504344504d616e616765723a20736f727465644c697374206d757374206e6f7420626520656d7074794344504d616e616765723a2052657061696420616d6f756e74206d757374206265206c6172676572207468616e20304344504d616e616765723a20416d6f756e7420746f207769746864726177206d757374206265206c6172676572207468616e20304f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734344504d616e616765723a20496e73756666696369656e742062616c616e636520666f7220455448207769746864726177616c4344504d616e616765723a2043445020646f6573206e6f74206578697374206f7220697320636c6f7365644344504d616e616765723a2052657061696420616d6f756e74206973206c6172676572207468616e2063757272656e7420646562744344504d616e616765723a2043445020646f6573206e6f74206578697374206f7220697320616c726561647920636c6f7365644344504d616e616765723a20446562742069737375616e6365206973206e6f74207065726d697474656420647572696e67205265636f76657279204d6f64654344504d616e616765723a2053656e6465722068617320696e73756666696369656e742062616c616e63654344504d616e616765723a20496e73756666696369656e7420636f6c6c61746572616c20726174696f20666f7220434c56207769746864726177616c4344504d616e616765723a20496e73756666696369656e7420636f6c6c61746572616c20726174696f20666f7220455448207769746864726177616c4344504d616e616765723a206120434c56207769746864726177616c207468617420776f756c6420726573756c7420696e20544352203c20434352206973206e6f74207065726d69747465644344504d616e616765723a2052656d61696e696e6720636f6c6c61746572616c206d757374206861766520245553442076616c7565203e3d2032302c206f72206265207a65726f4344504d616e616765723a2053656e6465722068617320696e73756666696369656e7420434c562062616c616e63654344504d616e616765723a20446f6c6c61722076616c7565206f6620636f6c6c61746572616c206465706f736974206d75737420657175616c206f722065786365656420746865206d696e696d756d4344504d616e616765723a20436f6c6c61746572616c207769746864726177616c206973206e6f74207065726d697474656420647572696e67205265636f76657279204d6f6465a265627a7a72315820d8257d8e528549ff5c14f84f159046c93f9f039cc45c1b10b89854c6b63a87ad64736f6c634300050f0032", + "linkReferences": { + "contracts/DeciMath.sol": { + "DeciMath": [ + { + "length": 20, + "start": 6001 + }, + { + "length": 20, + "start": 6275 + }, + { + "length": 20, + "start": 12109 + }, + { + "length": 20, + "start": 12545 + }, + { + "length": 20, + "start": 12737 + }, + { + "length": 20, + "start": 14786 + }, + { + "length": 20, + "start": 16659 + }, + { + "length": 20, + "start": 16856 + }, + { + "length": 20, + "start": 17743 + }, + { + "length": 20, + "start": 17936 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/DeciMath.sol": { + "DeciMath": [ + { + "length": 20, + "start": 5876 + }, + { + "length": 20, + "start": 6150 + }, + { + "length": 20, + "start": 11984 + }, + { + "length": 20, + "start": 12420 + }, + { + "length": 20, + "start": 12612 + }, + { + "length": 20, + "start": 14661 + }, + { + "length": 20, + "start": 16534 + }, + { + "length": 20, + "start": 16731 + }, + { + "length": 20, + "start": 17618 + }, + { + "length": 20, + "start": 17811 + } + ] + } + } +} diff --git a/client/src/contracts/CLVToken.json b/client/src/contracts/CLVToken.json new file mode 100644 index 000000000..692a6d873 --- /dev/null +++ b/client/src/contracts/CLVToken.json @@ -0,0 +1,541 @@ +{ + "contractName": "CLVToken", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CLVTokenBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPoolManagerAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "_totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolManagerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "returnFromPool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendToPool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenDataAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b036100c916565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060405161007a906100cd565b604051809103906000f080158015610096573d6000803e3d6000fd5b50600380546001600160a01b03199081166001600160a01b039384161791829055600480549290931691161790556100da565b3390565b610a718061162983390190565b611540806100e96000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638f32d59b116100cd578063bb997bac11610081578063dd62ed3e11610066578063dd62ed3e146103db578063e6a13f3014610409578063f2fde38b146104115761016c565b8063bb997bac1461039d578063cf56c99f146103d35761016c565b8063a457c2d7116100b2578063a457c2d71461031f578063a9059cbb1461034b578063ab95b1a2146103775761016c565b80638f32d59b146102eb5780639dc29fac146102f35761016c565b80633eaaf86b1161012457806370a082311161010957806370a0823114610297578063715018a6146102bd5780638da5cb5b146102c75761016c565b80633eaaf86b1461026357806340c10f191461026b5761016c565b806320c582be1161015557806320c582be146101cb57806323b872dd1461020157806339509351146102375761016c565b8063095ea7b31461017157806318160ddd146101b1575b600080fd5b61019d6004803603604081101561018757600080fd5b506001600160a01b038135169060200135610437565b604080519115158252519081900360200190f35b6101b9610454565b60408051918252519081900360200190f35b61019d600480360360608110156101e157600080fd5b506001600160a01b0381358116916020810135909116906040013561045a565b61019d6004803603606081101561021757600080fd5b506001600160a01b0381358116916020810135909116906040013561050f565b61019d6004803603604081101561024d57600080fd5b506001600160a01b03813516906020013561060c565b6101b96106eb565b61019d6004803603604081101561028157600080fd5b506001600160a01b0381351690602001356106f1565b6101b9600480360360208110156102ad57600080fd5b50356001600160a01b03166107a4565b6102c561083f565b005b6102cf6108ef565b604080516001600160a01b039092168252519081900360200190f35b61019d6108fe565b61019d6004803603604081101561030957600080fd5b506001600160a01b038135169060200135610922565b61019d6004803603604081101561033557600080fd5b506001600160a01b038135169060200135610988565b61019d6004803603604081101561036157600080fd5b506001600160a01b038135169060200135610a26565b6102c56004803603602081101561038d57600080fd5b50356001600160a01b0316610a3a565b61019d600480360360608110156103b357600080fd5b506001600160a01b03813581169160208101359091169060400135610af4565b6102cf610ba9565b6101b9600480360360408110156103f157600080fd5b506001600160a01b0381358116916020013516610bb8565b6102cf610c2a565b6102c56004803603602081101561042757600080fd5b50356001600160a01b0316610c39565b600061044b610444610c9e565b8484610ca2565b50600192915050565b60025490565b6001546000906001600160a01b0316610471610c9e565b6001600160a01b0316146104b65760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b6104c1848484610e01565b604080516001600160a01b03861681526020810184905281517f35219d9223d5f1e0175ab717a2f671095fb0b34df51ad5255f2578870882dd9a929181900390910190a15060019392505050565b600061051c848484610e01565b60006105ed83604051806060016040528060288152602001611430602891396003546001600160a01b0316630af4187d89610555610c9e565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156105b457600080fd5b505afa1580156105c8573d6000803e3d6000fd5b505050506040513d60208110156105de57600080fd5b5051919063ffffffff610fac16565b9050610601856105fb610c9e565b83610ca2565b506001949350505050565b60035460009081906106cd9084906001600160a01b0316630af4187d610630610c9e565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152918a166024830152516044808301926020929190829003018186803b15801561069557600080fd5b505afa1580156106a9573d6000803e3d6000fd5b505050506040513d60208110156106bf57600080fd5b50519063ffffffff61104316565b90506106e16106da610c9e565b8583610ca2565b5060019392505050565b60025481565b6001546000906001600160a01b0316610708610c9e565b6001600160a01b03161461074d5760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b61075783836110a4565b604080516001600160a01b03851681526020810184905281517f35219d9223d5f1e0175ab717a2f671095fb0b34df51ad5255f2578870882dd9a929181900390910190a150600192915050565b600354604080517ff8b2cb4f0000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015291516000938493169163f8b2cb4f916024808301926020929190829003018186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50519392505050565b6108476108fe565b610898576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b0316610913610c9e565b6001600160a01b031614905090565b6001546000906001600160a01b0316610939610c9e565b6001600160a01b03161461097e5760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b61075783836111c7565b6000806106cd836040518060600160405280602581526020016114e7602591396003546001600160a01b0316630af4187d6109c1610c9e565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152918b166024830152516044808301926020929190829003018186803b1580156105b457600080fd5b600061044b610a33610c9e565b8484610e01565b610a426108fe565b610a93576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f88509181900360200190a150565b6001546000906001600160a01b0316610b0b610c9e565b6001600160a01b031614610b505760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b610b5b848484610e01565b604080516001600160a01b03851681526020810184905281517f35219d9223d5f1e0175ab717a2f671095fb0b34df51ad5255f2578870882dd9a929181900390910190a15060019392505050565b6004546001600160a01b031681565b600354604080517f0af4187d0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152848116602483015291516000939290921691630af4187d91604480820192602092909190829003018186803b15801561080c57600080fd5b6001546001600160a01b031681565b610c416108fe565b610c92576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610c9b816112d5565b50565b3390565b6001600160a01b038316610ce75760405162461bcd60e51b815260040180806020018281038252602481526020018061149e6024913960400191505060405180910390fd5b6001600160a01b038216610d2c5760405162461bcd60e51b815260040180806020018281038252602281526020018061140e6022913960400191505060405180910390fd5b600354604080517fda46098c0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529151919092169163da46098c91606480830192600092919082900301818387803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b50506040805184815290516001600160a01b038087169450871692507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a3505050565b6001600160a01b038316610e465760405162461bcd60e51b81526004018080602001828103825260258152602001806114796025913960400191505060405180910390fd5b6001600160a01b038216610e8b5760405162461bcd60e51b81526004018080602001828103825260238152602001806113c56023913960400191505060405180910390fd5b60035460408051630c311fe960e41b81526001600160a01b038681166004830152602482018590529151919092169163c311fe9091604480830192600092919082900301818387803b158015610ee057600080fd5b505af1158015610ef4573d6000803e3d6000fd5b5050600354604080516358403cd360e11b81526001600160a01b03878116600483015260248201879052915191909216935063b08079a69250604480830192600092919082900301818387803b158015610f4d57600080fd5b505af1158015610f61573d6000803e3d6000fd5b50506040805184815290516001600160a01b038087169450871692507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b6000818484111561103b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611000578181015183820152602001610fe8565b50505050905090810190601f16801561102d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561109d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166110ff576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254611112908263ffffffff61104316565b600255600354604080516358403cd360e11b81526001600160a01b038581166004830152602482018590529151919092169163b08079a691604480830192600092919082900301818387803b15801561116a57600080fd5b505af115801561117e573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350600092507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b03821661120c5760405162461bcd60e51b81526004018080602001828103825260218152602001806114586021913960400191505060405180910390fd5b60035460408051630c311fe960e41b81526001600160a01b038581166004830152602482018590529151919092169163c311fe9091604480830192600092919082900301818387803b15801561126157600080fd5b505af1158015611275573d6000803e3d6000fd5b505060025461128d925090508263ffffffff61138216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b03811661131a5760405162461bcd60e51b81526004018080602001828103825260268152602001806113e86026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600061109d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fac56fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373434c56546f6b656e3a204f6e6c792074686520706f6f6c20697320617574686f72697a656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820c1ecf379e151cd95df6b70d3cfe22d064599c632ba21cfa29d156cf2ec84093464736f6c634300050f0032608060405234801561001057600080fd5b5060006100246001600160e01b036100a416565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061007f6001600160e01b036100a416565b600380546001600160a01b0319166001600160a01b03929092169190911790556100a8565b3390565b6109ba806100b76000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063b08079a611610081578063e30443bc1161005b578063e30443bc14610245578063f2fde38b14610271578063f8b2cb4f14610297576100d4565b8063b08079a6146101b7578063c311fe90146101e3578063da46098c1461020f576100d4565b8063715018a6116100b2578063715018a61461016d5780638da5cb5b146101775780638f32d59b1461019b576100d4565b80630af4187d146100d957806327e235e31461011957806355b6ed5c1461013f575b600080fd5b610107600480360360408110156100ef57600080fd5b506001600160a01b03813581169160200135166102bd565b60408051918252519081900360200190f35b6101076004803603602081101561012f57600080fd5b50356001600160a01b0316610345565b6101076004803603604081101561015557600080fd5b506001600160a01b0381358116916020013516610357565b610175610374565b005b61017f610424565b604080516001600160a01b039092168252519081900360200190f35b6101a3610433565b604080519115158252519081900360200190f35b610175600480360360408110156101cd57600080fd5b506001600160a01b038135169060200135610457565b610175600480360360408110156101f957600080fd5b506001600160a01b0381351690602001356104f9565b6101756004803603606081101561022557600080fd5b506001600160a01b03813581169160208101359091169060400135610595565b6101756004803603604081101561025b57600080fd5b506001600160a01b03813516906020013561061a565b6101756004803603602081101561028757600080fd5b50356001600160a01b031661068f565b610107600480360360208110156102ad57600080fd5b50356001600160a01b03166106f4565b6003546000906001600160a01b03166102d461076c565b6001600160a01b0316146103195760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b506001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60016020526000908152604090205481565b600260209081526000928352604080842090915290825290205481565b61037c610433565b6103cd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b031661044861076c565b6001600160a01b031614905090565b6003546001600160a01b031661046b61076c565b6001600160a01b0316146104b05760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b0382166000908152600160205260409020546104d9908263ffffffff61077016565b6001600160a01b0390921660009081526001602052604090209190915550565b6003546001600160a01b031661050d61076c565b6001600160a01b0316146105525760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6104d98160405180606001604052806028815260200161093c602891396001600160a01b038516600090815260016020526040902054919063ffffffff6107d116565b6003546001600160a01b03166105a961076c565b6001600160a01b0316146105ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6003546001600160a01b031661062e61076c565b6001600160a01b0316146106735760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b03909116600090815260016020526040902055565b610697610433565b6106e8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106f181610868565b50565b6003546000906001600160a01b031661070b61076c565b6001600160a01b0316146107505760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b506001600160a01b031660009081526001602052604090205490565b3390565b6000828201838110156107ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600081848411156108605760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561082557818101518382015260200161080d565b50505050905090810190601f1680156108525780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0381166108ad5760405162461bcd60e51b81526004018080602001828103825260268152602001806109166026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a207375627472616374656420616d6f756e7420657863656564732062616c616e6365434c56546f6b656e446174613a206f6e6c7920636c76546f6b656e41646472657373a265627a7a72315820c690f70077069427c8ce1354d734e9caa984d87083f06b9363359d6c5fc9752364736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c80638f32d59b116100cd578063bb997bac11610081578063dd62ed3e11610066578063dd62ed3e146103db578063e6a13f3014610409578063f2fde38b146104115761016c565b8063bb997bac1461039d578063cf56c99f146103d35761016c565b8063a457c2d7116100b2578063a457c2d71461031f578063a9059cbb1461034b578063ab95b1a2146103775761016c565b80638f32d59b146102eb5780639dc29fac146102f35761016c565b80633eaaf86b1161012457806370a082311161010957806370a0823114610297578063715018a6146102bd5780638da5cb5b146102c75761016c565b80633eaaf86b1461026357806340c10f191461026b5761016c565b806320c582be1161015557806320c582be146101cb57806323b872dd1461020157806339509351146102375761016c565b8063095ea7b31461017157806318160ddd146101b1575b600080fd5b61019d6004803603604081101561018757600080fd5b506001600160a01b038135169060200135610437565b604080519115158252519081900360200190f35b6101b9610454565b60408051918252519081900360200190f35b61019d600480360360608110156101e157600080fd5b506001600160a01b0381358116916020810135909116906040013561045a565b61019d6004803603606081101561021757600080fd5b506001600160a01b0381358116916020810135909116906040013561050f565b61019d6004803603604081101561024d57600080fd5b506001600160a01b03813516906020013561060c565b6101b96106eb565b61019d6004803603604081101561028157600080fd5b506001600160a01b0381351690602001356106f1565b6101b9600480360360208110156102ad57600080fd5b50356001600160a01b03166107a4565b6102c561083f565b005b6102cf6108ef565b604080516001600160a01b039092168252519081900360200190f35b61019d6108fe565b61019d6004803603604081101561030957600080fd5b506001600160a01b038135169060200135610922565b61019d6004803603604081101561033557600080fd5b506001600160a01b038135169060200135610988565b61019d6004803603604081101561036157600080fd5b506001600160a01b038135169060200135610a26565b6102c56004803603602081101561038d57600080fd5b50356001600160a01b0316610a3a565b61019d600480360360608110156103b357600080fd5b506001600160a01b03813581169160208101359091169060400135610af4565b6102cf610ba9565b6101b9600480360360408110156103f157600080fd5b506001600160a01b0381358116916020013516610bb8565b6102cf610c2a565b6102c56004803603602081101561042757600080fd5b50356001600160a01b0316610c39565b600061044b610444610c9e565b8484610ca2565b50600192915050565b60025490565b6001546000906001600160a01b0316610471610c9e565b6001600160a01b0316146104b65760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b6104c1848484610e01565b604080516001600160a01b03861681526020810184905281517f35219d9223d5f1e0175ab717a2f671095fb0b34df51ad5255f2578870882dd9a929181900390910190a15060019392505050565b600061051c848484610e01565b60006105ed83604051806060016040528060288152602001611430602891396003546001600160a01b0316630af4187d89610555610c9e565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156105b457600080fd5b505afa1580156105c8573d6000803e3d6000fd5b505050506040513d60208110156105de57600080fd5b5051919063ffffffff610fac16565b9050610601856105fb610c9e565b83610ca2565b506001949350505050565b60035460009081906106cd9084906001600160a01b0316630af4187d610630610c9e565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152918a166024830152516044808301926020929190829003018186803b15801561069557600080fd5b505afa1580156106a9573d6000803e3d6000fd5b505050506040513d60208110156106bf57600080fd5b50519063ffffffff61104316565b90506106e16106da610c9e565b8583610ca2565b5060019392505050565b60025481565b6001546000906001600160a01b0316610708610c9e565b6001600160a01b03161461074d5760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b61075783836110a4565b604080516001600160a01b03851681526020810184905281517f35219d9223d5f1e0175ab717a2f671095fb0b34df51ad5255f2578870882dd9a929181900390910190a150600192915050565b600354604080517ff8b2cb4f0000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015291516000938493169163f8b2cb4f916024808301926020929190829003018186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50519392505050565b6108476108fe565b610898576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b0316610913610c9e565b6001600160a01b031614905090565b6001546000906001600160a01b0316610939610c9e565b6001600160a01b03161461097e5760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b61075783836111c7565b6000806106cd836040518060600160405280602581526020016114e7602591396003546001600160a01b0316630af4187d6109c1610c9e565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152918b166024830152516044808301926020929190829003018186803b1580156105b457600080fd5b600061044b610a33610c9e565b8484610e01565b610a426108fe565b610a93576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f88509181900360200190a150565b6001546000906001600160a01b0316610b0b610c9e565b6001600160a01b031614610b505760405162461bcd60e51b81526004018080602001828103825260258152602001806114c26025913960400191505060405180910390fd5b610b5b848484610e01565b604080516001600160a01b03851681526020810184905281517f35219d9223d5f1e0175ab717a2f671095fb0b34df51ad5255f2578870882dd9a929181900390910190a15060019392505050565b6004546001600160a01b031681565b600354604080517f0af4187d0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152848116602483015291516000939290921691630af4187d91604480820192602092909190829003018186803b15801561080c57600080fd5b6001546001600160a01b031681565b610c416108fe565b610c92576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610c9b816112d5565b50565b3390565b6001600160a01b038316610ce75760405162461bcd60e51b815260040180806020018281038252602481526020018061149e6024913960400191505060405180910390fd5b6001600160a01b038216610d2c5760405162461bcd60e51b815260040180806020018281038252602281526020018061140e6022913960400191505060405180910390fd5b600354604080517fda46098c0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529151919092169163da46098c91606480830192600092919082900301818387803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b50506040805184815290516001600160a01b038087169450871692507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a3505050565b6001600160a01b038316610e465760405162461bcd60e51b81526004018080602001828103825260258152602001806114796025913960400191505060405180910390fd5b6001600160a01b038216610e8b5760405162461bcd60e51b81526004018080602001828103825260238152602001806113c56023913960400191505060405180910390fd5b60035460408051630c311fe960e41b81526001600160a01b038681166004830152602482018590529151919092169163c311fe9091604480830192600092919082900301818387803b158015610ee057600080fd5b505af1158015610ef4573d6000803e3d6000fd5b5050600354604080516358403cd360e11b81526001600160a01b03878116600483015260248201879052915191909216935063b08079a69250604480830192600092919082900301818387803b158015610f4d57600080fd5b505af1158015610f61573d6000803e3d6000fd5b50506040805184815290516001600160a01b038087169450871692507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b6000818484111561103b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611000578181015183820152602001610fe8565b50505050905090810190601f16801561102d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561109d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166110ff576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254611112908263ffffffff61104316565b600255600354604080516358403cd360e11b81526001600160a01b038581166004830152602482018590529151919092169163b08079a691604480830192600092919082900301818387803b15801561116a57600080fd5b505af115801561117e573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350600092507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b03821661120c5760405162461bcd60e51b81526004018080602001828103825260218152602001806114586021913960400191505060405180910390fd5b60035460408051630c311fe960e41b81526001600160a01b038581166004830152602482018590529151919092169163c311fe9091604480830192600092919082900301818387803b15801561126157600080fd5b505af1158015611275573d6000803e3d6000fd5b505060025461128d925090508263ffffffff61138216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b03811661131a5760405162461bcd60e51b81526004018080602001828103825260268152602001806113e86026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600061109d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fac56fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373434c56546f6b656e3a204f6e6c792074686520706f6f6c20697320617574686f72697a656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820c1ecf379e151cd95df6b70d3cfe22d064599c632ba21cfa29d156cf2ec84093464736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/CLVTokenData.json b/client/src/contracts/CLVTokenData.json new file mode 100644 index 000000000..bd067fcc0 --- /dev/null +++ b/client/src/contracts/CLVTokenData.json @@ -0,0 +1,267 @@ +{ + "contractName": "CLVTokenData", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "addToBalance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowances", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "getAllowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + } + ], + "name": "setAllowance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "setBalance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "subFromBalance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b036100a416565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061007f6001600160e01b036100a416565b600380546001600160a01b0319166001600160a01b03929092169190911790556100a8565b3390565b6109ba806100b76000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063b08079a611610081578063e30443bc1161005b578063e30443bc14610245578063f2fde38b14610271578063f8b2cb4f14610297576100d4565b8063b08079a6146101b7578063c311fe90146101e3578063da46098c1461020f576100d4565b8063715018a6116100b2578063715018a61461016d5780638da5cb5b146101775780638f32d59b1461019b576100d4565b80630af4187d146100d957806327e235e31461011957806355b6ed5c1461013f575b600080fd5b610107600480360360408110156100ef57600080fd5b506001600160a01b03813581169160200135166102bd565b60408051918252519081900360200190f35b6101076004803603602081101561012f57600080fd5b50356001600160a01b0316610345565b6101076004803603604081101561015557600080fd5b506001600160a01b0381358116916020013516610357565b610175610374565b005b61017f610424565b604080516001600160a01b039092168252519081900360200190f35b6101a3610433565b604080519115158252519081900360200190f35b610175600480360360408110156101cd57600080fd5b506001600160a01b038135169060200135610457565b610175600480360360408110156101f957600080fd5b506001600160a01b0381351690602001356104f9565b6101756004803603606081101561022557600080fd5b506001600160a01b03813581169160208101359091169060400135610595565b6101756004803603604081101561025b57600080fd5b506001600160a01b03813516906020013561061a565b6101756004803603602081101561028757600080fd5b50356001600160a01b031661068f565b610107600480360360208110156102ad57600080fd5b50356001600160a01b03166106f4565b6003546000906001600160a01b03166102d461076c565b6001600160a01b0316146103195760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b506001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60016020526000908152604090205481565b600260209081526000928352604080842090915290825290205481565b61037c610433565b6103cd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b031661044861076c565b6001600160a01b031614905090565b6003546001600160a01b031661046b61076c565b6001600160a01b0316146104b05760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b0382166000908152600160205260409020546104d9908263ffffffff61077016565b6001600160a01b0390921660009081526001602052604090209190915550565b6003546001600160a01b031661050d61076c565b6001600160a01b0316146105525760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6104d98160405180606001604052806028815260200161093c602891396001600160a01b038516600090815260016020526040902054919063ffffffff6107d116565b6003546001600160a01b03166105a961076c565b6001600160a01b0316146105ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6003546001600160a01b031661062e61076c565b6001600160a01b0316146106735760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b03909116600090815260016020526040902055565b610697610433565b6106e8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106f181610868565b50565b6003546000906001600160a01b031661070b61076c565b6001600160a01b0316146107505760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b506001600160a01b031660009081526001602052604090205490565b3390565b6000828201838110156107ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600081848411156108605760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561082557818101518382015260200161080d565b50505050905090810190601f1680156108525780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0381166108ad5760405162461bcd60e51b81526004018080602001828103825260268152602001806109166026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a207375627472616374656420616d6f756e7420657863656564732062616c616e6365434c56546f6b656e446174613a206f6e6c7920636c76546f6b656e41646472657373a265627a7a72315820c690f70077069427c8ce1354d734e9caa984d87083f06b9363359d6c5fc9752364736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063b08079a611610081578063e30443bc1161005b578063e30443bc14610245578063f2fde38b14610271578063f8b2cb4f14610297576100d4565b8063b08079a6146101b7578063c311fe90146101e3578063da46098c1461020f576100d4565b8063715018a6116100b2578063715018a61461016d5780638da5cb5b146101775780638f32d59b1461019b576100d4565b80630af4187d146100d957806327e235e31461011957806355b6ed5c1461013f575b600080fd5b610107600480360360408110156100ef57600080fd5b506001600160a01b03813581169160200135166102bd565b60408051918252519081900360200190f35b6101076004803603602081101561012f57600080fd5b50356001600160a01b0316610345565b6101076004803603604081101561015557600080fd5b506001600160a01b0381358116916020013516610357565b610175610374565b005b61017f610424565b604080516001600160a01b039092168252519081900360200190f35b6101a3610433565b604080519115158252519081900360200190f35b610175600480360360408110156101cd57600080fd5b506001600160a01b038135169060200135610457565b610175600480360360408110156101f957600080fd5b506001600160a01b0381351690602001356104f9565b6101756004803603606081101561022557600080fd5b506001600160a01b03813581169160208101359091169060400135610595565b6101756004803603604081101561025b57600080fd5b506001600160a01b03813516906020013561061a565b6101756004803603602081101561028757600080fd5b50356001600160a01b031661068f565b610107600480360360208110156102ad57600080fd5b50356001600160a01b03166106f4565b6003546000906001600160a01b03166102d461076c565b6001600160a01b0316146103195760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b506001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60016020526000908152604090205481565b600260209081526000928352604080842090915290825290205481565b61037c610433565b6103cd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b031661044861076c565b6001600160a01b031614905090565b6003546001600160a01b031661046b61076c565b6001600160a01b0316146104b05760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b0382166000908152600160205260409020546104d9908263ffffffff61077016565b6001600160a01b0390921660009081526001602052604090209190915550565b6003546001600160a01b031661050d61076c565b6001600160a01b0316146105525760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6104d98160405180606001604052806028815260200161093c602891396001600160a01b038516600090815260016020526040902054919063ffffffff6107d116565b6003546001600160a01b03166105a961076c565b6001600160a01b0316146105ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6003546001600160a01b031661062e61076c565b6001600160a01b0316146106735760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b6001600160a01b03909116600090815260016020526040902055565b610697610433565b6106e8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106f181610868565b50565b6003546000906001600160a01b031661070b61076c565b6001600160a01b0316146107505760405162461bcd60e51b81526004018080602001828103825260228152602001806109646022913960400191505060405180910390fd5b506001600160a01b031660009081526001602052604090205490565b3390565b6000828201838110156107ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600081848411156108605760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561082557818101518382015260200161080d565b50505050905090810190601f1680156108525780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0381166108ad5760405162461bcd60e51b81526004018080602001828103825260268152602001806109166026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a207375627472616374656420616d6f756e7420657863656564732062616c616e6365434c56546f6b656e446174613a206f6e6c7920636c76546f6b656e41646472657373a265627a7a72315820c690f70077069427c8ce1354d734e9caa984d87083f06b9363359d6c5fc9752364736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/Context.json b/client/src/contracts/Context.json new file mode 100644 index 000000000..7dc97c1c1 --- /dev/null +++ b/client/src/contracts/Context.json @@ -0,0 +1,15 @@ +{ + "contractName": "Context", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/DeciMath.json b/client/src/contracts/DeciMath.json new file mode 100644 index 000000000..63d282a5a --- /dev/null +++ b/client/src/contracts/DeciMath.json @@ -0,0 +1,332 @@ +{ + "contractName": "DeciMath", + "abi": [ + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "z", + "type": "uint256" + } + ], + "name": "accurateMulDiv", + "outputs": [ + { + "internalType": "uint256", + "name": "fraction", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "name": "decDiv", + "outputs": [ + { + "internalType": "uint256", + "name": "quotient", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "name": "decMul", + "outputs": [ + { + "internalType": "uint256", + "name": "prod", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "name": "div_toDuint", + "outputs": [ + { + "internalType": "uint256", + "name": "quotient", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "duint", + "type": "uint256" + } + ], + "name": "fromDuint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "duint", + "type": "uint256" + } + ], + "name": "fromDuint_commonRounding", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "duint", + "type": "uint256" + } + ], + "name": "fromDuint_roundUp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "name": "getMin", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y_duint", + "type": "uint256" + } + ], + "name": "mul_uintByDuint", + "outputs": [ + { + "internalType": "uint256", + "name": "prod", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y_duint", + "type": "uint256" + } + ], + "name": "mul_uintByDuint_roundUp", + "outputs": [ + { + "internalType": "uint256", + "name": "prod", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "name": "normalDiv", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "name": "normalMul", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "integer", + "type": "uint256" + } + ], + "name": "toDuint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x610743610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100e95760003560e01c80635a1b0906116100965780637205a09f116100705780637205a09f1461022f578063d4eb144114610252578063e6cd66ab14610275578063f179175714610298576100e9565b80635a1b0906146101d2578063673e9499146101f5578063689ab3e814610212576100e9565b80633cbd79aa116100c75780633cbd79aa146101635780634e121d3114610186578063563d4c23146101a9576100e9565b80630fd95db5146100ee57806311923a56146101235780633c3e4c5014610146575b600080fd5b6101116004803603604081101561010457600080fd5b50803590602001356102b5565b60408051918252519081900360200190f35b6101116004803603604081101561013957600080fd5b50803590602001356102ce565b6101116004803603602081101561015c57600080fd5b50356102fc565b6101116004803603604081101561017957600080fd5b5080359060200135610318565b6101116004803603604081101561019c57600080fd5b5080359060200135610349565b610111600480360360608110156101bf57600080fd5b508035906020810135906040013561035c565b610111600480360360408110156101e857600080fd5b508035906020013561040c565b6101116004803603602081101561020b57600080fd5b5035610418565b6101116004803603602081101561022857600080fd5b503561048d565b6101116004803603604081101561024557600080fd5b50803590602001356104a1565b6101116004803603604081101561026857600080fd5b50803590602001356104da565b6101116004803603604081101561028b57600080fd5b5080359060200135610514565b610111600480360360208110156102ae57600080fd5b5035610537565b60008183116102c55750816102c8565b50805b92915050565b6000806102da846102fc565b905060006102e7846102fc565b90506102f382826104a1565b95945050505050565b600061031082670de0b6b3a7640000610556565b90505b919050565b600080610324846102fc565b9050600061033282856104da565b9050600061033f8261048d565b9695505050505050565b600061035583836105af565b9392505050565b6000816103b0576040805162461bcd60e51b815260206004820181905260248201527f446563694d6174683a2063616e206e6f7420646976696465206279207a65726f604482015290519081900360640190fd5b60006103bb856102fc565b905060006103c8856102fc565b905060006103d5856102fc565b905060006103e384846104da565b905060006103f182846104a1565b905060006103fe8261048d565b9a9950505050505050505050565b60006103558383610556565b60008080610438670de0b6b3a7640000850667016345785d8a00006105af565b9050600581106104615761045484670de0b6b3a76400006105af565b6001019250610313915050565b60058110156104865761047c84670de0b6b3a76400006105af565b9250610313915050565b5050919050565b600061031082670de0b6b3a76400006105af565b6000806104b684670de0b6b3a7640000610556565b905060006104c58460026105af565b90506102f36104d483836105f1565b856105af565b6000806104e78484610556565b905061050c6104fe826706f05b59d3b200006105f1565b670de0b6b3a76400006105af565b949350505050565b600080610520846102fc565b9050600061052e82856104da565b9050600061033f825b60008061054c83670de0b6b3a76400006105af565b6001019392505050565b600082610565575060006102c8565b8282028284828161057257fe5b04146103555760405162461bcd60e51b81526004018080602001828103825260218152602001806106ee6021913960400191505060405180910390fd5b600061035583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061064b565b600082820183811015610355576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081836106d75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069c578181015183820152602001610684565b50505050905090810190601f1680156106c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816106e357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582051ad5c3676445056aa01adcb05d67aca2276078ce1b4c3bd039ba6b2f213450364736f6c634300050f0032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100e95760003560e01c80635a1b0906116100965780637205a09f116100705780637205a09f1461022f578063d4eb144114610252578063e6cd66ab14610275578063f179175714610298576100e9565b80635a1b0906146101d2578063673e9499146101f5578063689ab3e814610212576100e9565b80633cbd79aa116100c75780633cbd79aa146101635780634e121d3114610186578063563d4c23146101a9576100e9565b80630fd95db5146100ee57806311923a56146101235780633c3e4c5014610146575b600080fd5b6101116004803603604081101561010457600080fd5b50803590602001356102b5565b60408051918252519081900360200190f35b6101116004803603604081101561013957600080fd5b50803590602001356102ce565b6101116004803603602081101561015c57600080fd5b50356102fc565b6101116004803603604081101561017957600080fd5b5080359060200135610318565b6101116004803603604081101561019c57600080fd5b5080359060200135610349565b610111600480360360608110156101bf57600080fd5b508035906020810135906040013561035c565b610111600480360360408110156101e857600080fd5b508035906020013561040c565b6101116004803603602081101561020b57600080fd5b5035610418565b6101116004803603602081101561022857600080fd5b503561048d565b6101116004803603604081101561024557600080fd5b50803590602001356104a1565b6101116004803603604081101561026857600080fd5b50803590602001356104da565b6101116004803603604081101561028b57600080fd5b5080359060200135610514565b610111600480360360208110156102ae57600080fd5b5035610537565b60008183116102c55750816102c8565b50805b92915050565b6000806102da846102fc565b905060006102e7846102fc565b90506102f382826104a1565b95945050505050565b600061031082670de0b6b3a7640000610556565b90505b919050565b600080610324846102fc565b9050600061033282856104da565b9050600061033f8261048d565b9695505050505050565b600061035583836105af565b9392505050565b6000816103b0576040805162461bcd60e51b815260206004820181905260248201527f446563694d6174683a2063616e206e6f7420646976696465206279207a65726f604482015290519081900360640190fd5b60006103bb856102fc565b905060006103c8856102fc565b905060006103d5856102fc565b905060006103e384846104da565b905060006103f182846104a1565b905060006103fe8261048d565b9a9950505050505050505050565b60006103558383610556565b60008080610438670de0b6b3a7640000850667016345785d8a00006105af565b9050600581106104615761045484670de0b6b3a76400006105af565b6001019250610313915050565b60058110156104865761047c84670de0b6b3a76400006105af565b9250610313915050565b5050919050565b600061031082670de0b6b3a76400006105af565b6000806104b684670de0b6b3a7640000610556565b905060006104c58460026105af565b90506102f36104d483836105f1565b856105af565b6000806104e78484610556565b905061050c6104fe826706f05b59d3b200006105f1565b670de0b6b3a76400006105af565b949350505050565b600080610520846102fc565b9050600061052e82856104da565b9050600061033f825b60008061054c83670de0b6b3a76400006105af565b6001019392505050565b600082610565575060006102c8565b8282028284828161057257fe5b04146103555760405162461bcd60e51b81526004018080602001828103825260218152602001806106ee6021913960400191505060405180910390fd5b600061035583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061064b565b600082820183811015610355576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081836106d75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069c578181015183820152602001610684565b50505050905090810190601f1680156106c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816106e357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582051ad5c3676445056aa01adcb05d67aca2276078ce1b4c3bd039ba6b2f213450364736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/DefaultPool.json b/client/src/contracts/DefaultPool.json new file mode 100644 index 000000000..c264f48f2 --- /dev/null +++ b/client/src/contracts/DefaultPool.json @@ -0,0 +1,411 @@ +{ + "contractName": "DefaultPool", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "CLVBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "ETHBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "EtherSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "CLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "activePoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getRawETHBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolManagerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendETH", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + } + ], + "name": "setActivePoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_stabilityPoolAddress", + "type": "address" + } + ], + "name": "setStabilityPoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stabilityPoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b0361007316565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610077565b3390565b610d5e806100866000396000f3fe6080604052600436106101295760003560e01c80638f32d59b116100a5578063c458bffb11610074578063e6a13f3011610059578063e6a13f30146103f6578063e9c839571461040b578063f2fde38b1461043557610129565b8063c458bffb146103ae578063e1cf19c1146103e157610129565b80638f32d59b1461031e578063ab95b1a214610333578063ad09d65814610366578063b08bc7221461039957610129565b806364a197f3116100fc578063715018a6116100e1578063715018a6146102df5780638322fff2146102f45780638da5cb5b1461030957610129565b806364a197f31461027d57806366416219146102ca57610129565b80630617edb4146101e45780630b622ab21461020b57806314f6c3be1461023c5780634de7363114610251575b6001546001600160a01b031661013d610468565b6001600160a01b0316148061016c57506002546001600160a01b0316610161610468565b6001600160a01b0316145b8061019157506003546001600160a01b0316610186610468565b6001600160a01b0316145b6101cc5760405162461bcd60e51b8152600401808060200182810382526036815260200180610ca46036913960400191505060405180910390fd5b6004546101df903463ffffffff61046c16565b600455005b3480156101f057600080fd5b506101f96104cd565b60408051918252519081900360200190f35b34801561021757600080fd5b506102206104d1565b604080516001600160a01b039092168252519081900360200190f35b34801561024857600080fd5b506101f96104e0565b34801561025d57600080fd5b5061027b6004803603602081101561027457600080fd5b50356104e6565b005b34801561028957600080fd5b506102b6600480360360408110156102a057600080fd5b506001600160a01b03813516906020013561058c565b604080519115158252519081900360200190f35b3480156102d657600080fd5b506101f9610714565b3480156102eb57600080fd5b5061027b61071a565b34801561030057600080fd5b506101f96107bd565b34801561031557600080fd5b506102206107c3565b34801561032a57600080fd5b506102b66107d2565b34801561033f57600080fd5b5061027b6004803603602081101561035657600080fd5b50356001600160a01b03166107f6565b34801561037257600080fd5b5061027b6004803603602081101561038957600080fd5b50356001600160a01b03166108a9565b3480156103a557600080fd5b5061022061095c565b3480156103ba57600080fd5b5061027b600480360360208110156103d157600080fd5b50356001600160a01b031661096b565b3480156103ed57600080fd5b506101f9610a1e565b34801561040257600080fd5b50610220610a24565b34801561041757600080fd5b5061027b6004803603602081101561042e57600080fd5b5035610a33565b34801561044157600080fd5b5061027b6004803603602081101561045857600080fd5b50356001600160a01b0316610a9f565b3390565b6000828201838110156104c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b4790565b6002546001600160a01b031681565b60045490565b6001546001600160a01b03166104fa610468565b6001600160a01b03161461053f5760405162461bcd60e51b815260040180806020018281038252602f815260200180610cda602f913960400191505060405180910390fd5b600554610552908263ffffffff61046c16565b600581905560408051918252517f2345ee7f5f8837fcb9b95ec4fe3db62d9d05d7830cab26fe632f036008a935d89181900360200190a150565b6001546000906001600160a01b03166105a3610468565b6001600160a01b0316146105e85760405162461bcd60e51b815260040180806020018281038252602f815260200180610cda602f913960400191505060405180910390fd5b6004546105fb908363ffffffff610b0416565b6004556040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610649576040519150601f19603f3d011682016040523d82523d6000602084013e61064e565b606091505b50909150506001811515146106945760405162461bcd60e51b8152600401808060200182810382526021815260200180610d096021913960400191505060405180910390fd5b60045460408051918252517f7ab2bdf6e6d108cd138a8f6436723e8dfd0cb22727fe608e40b5adfb8357f1b99181900360200190a1604080516001600160a01b03861681526020810185905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a19392505050565b60055481565b6107226107d2565b610773576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b6000546001600160a01b031690565b600080546001600160a01b03166107e7610468565b6001600160a01b031614905090565b6107fe6107d2565b61084f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f8850916020908290030190a150565b6108b16107d2565b610902576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f916020908290030190a150565b6003546001600160a01b031681565b6109736107d2565b6109c4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd882916020908290030190a150565b60055490565b6001546001600160a01b031681565b6001546001600160a01b0316610a47610468565b6001600160a01b031614610a8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180610cda602f913960400191505060405180910390fd5b600554610552908263ffffffff610b0416565b610aa76107d2565b610af8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610b0181610b46565b50565b60006104c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610be6565b6001600160a01b038116610b8b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610c7e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610c755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c3a578181015183820152602001610c22565b50505050905090810190601f168015610c675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737344656661756c74506f6f6c3a206f6e6c792072656365697665204554482066726f6d20506f6f6c206f7220506f6f6c4d616e6167657244656661756c74506f6f6c3a204f6e6c792074686520706f6f6c4d616e6167657220697320617574686f72697a656444656661756c74506f6f6c3a207472616e73616374696f6e207265766572746564a265627a7a72315820d762ab0d393b049f711cae855f198650d6f24f0aba4f17f6299834ac6efb812164736f6c634300050f0032", + "deployedBytecode": "0x6080604052600436106101295760003560e01c80638f32d59b116100a5578063c458bffb11610074578063e6a13f3011610059578063e6a13f30146103f6578063e9c839571461040b578063f2fde38b1461043557610129565b8063c458bffb146103ae578063e1cf19c1146103e157610129565b80638f32d59b1461031e578063ab95b1a214610333578063ad09d65814610366578063b08bc7221461039957610129565b806364a197f3116100fc578063715018a6116100e1578063715018a6146102df5780638322fff2146102f45780638da5cb5b1461030957610129565b806364a197f31461027d57806366416219146102ca57610129565b80630617edb4146101e45780630b622ab21461020b57806314f6c3be1461023c5780634de7363114610251575b6001546001600160a01b031661013d610468565b6001600160a01b0316148061016c57506002546001600160a01b0316610161610468565b6001600160a01b0316145b8061019157506003546001600160a01b0316610186610468565b6001600160a01b0316145b6101cc5760405162461bcd60e51b8152600401808060200182810382526036815260200180610ca46036913960400191505060405180910390fd5b6004546101df903463ffffffff61046c16565b600455005b3480156101f057600080fd5b506101f96104cd565b60408051918252519081900360200190f35b34801561021757600080fd5b506102206104d1565b604080516001600160a01b039092168252519081900360200190f35b34801561024857600080fd5b506101f96104e0565b34801561025d57600080fd5b5061027b6004803603602081101561027457600080fd5b50356104e6565b005b34801561028957600080fd5b506102b6600480360360408110156102a057600080fd5b506001600160a01b03813516906020013561058c565b604080519115158252519081900360200190f35b3480156102d657600080fd5b506101f9610714565b3480156102eb57600080fd5b5061027b61071a565b34801561030057600080fd5b506101f96107bd565b34801561031557600080fd5b506102206107c3565b34801561032a57600080fd5b506102b66107d2565b34801561033f57600080fd5b5061027b6004803603602081101561035657600080fd5b50356001600160a01b03166107f6565b34801561037257600080fd5b5061027b6004803603602081101561038957600080fd5b50356001600160a01b03166108a9565b3480156103a557600080fd5b5061022061095c565b3480156103ba57600080fd5b5061027b600480360360208110156103d157600080fd5b50356001600160a01b031661096b565b3480156103ed57600080fd5b506101f9610a1e565b34801561040257600080fd5b50610220610a24565b34801561041757600080fd5b5061027b6004803603602081101561042e57600080fd5b5035610a33565b34801561044157600080fd5b5061027b6004803603602081101561045857600080fd5b50356001600160a01b0316610a9f565b3390565b6000828201838110156104c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b4790565b6002546001600160a01b031681565b60045490565b6001546001600160a01b03166104fa610468565b6001600160a01b03161461053f5760405162461bcd60e51b815260040180806020018281038252602f815260200180610cda602f913960400191505060405180910390fd5b600554610552908263ffffffff61046c16565b600581905560408051918252517f2345ee7f5f8837fcb9b95ec4fe3db62d9d05d7830cab26fe632f036008a935d89181900360200190a150565b6001546000906001600160a01b03166105a3610468565b6001600160a01b0316146105e85760405162461bcd60e51b815260040180806020018281038252602f815260200180610cda602f913960400191505060405180910390fd5b6004546105fb908363ffffffff610b0416565b6004556040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610649576040519150601f19603f3d011682016040523d82523d6000602084013e61064e565b606091505b50909150506001811515146106945760405162461bcd60e51b8152600401808060200182810382526021815260200180610d096021913960400191505060405180910390fd5b60045460408051918252517f7ab2bdf6e6d108cd138a8f6436723e8dfd0cb22727fe608e40b5adfb8357f1b99181900360200190a1604080516001600160a01b03861681526020810185905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a19392505050565b60055481565b6107226107d2565b610773576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b6000546001600160a01b031690565b600080546001600160a01b03166107e7610468565b6001600160a01b031614905090565b6107fe6107d2565b61084f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f8850916020908290030190a150565b6108b16107d2565b610902576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f916020908290030190a150565b6003546001600160a01b031681565b6109736107d2565b6109c4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd882916020908290030190a150565b60055490565b6001546001600160a01b031681565b6001546001600160a01b0316610a47610468565b6001600160a01b031614610a8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180610cda602f913960400191505060405180910390fd5b600554610552908263ffffffff610b0416565b610aa76107d2565b610af8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610b0181610b46565b50565b60006104c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610be6565b6001600160a01b038116610b8b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610c7e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610c755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c3a578181015183820152602001610c22565b50505050905090810190601f168015610c675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737344656661756c74506f6f6c3a206f6e6c792072656365697665204554482066726f6d20506f6f6c206f7220506f6f6c4d616e6167657244656661756c74506f6f6c3a204f6e6c792074686520706f6f6c4d616e6167657220697320617574686f72697a656444656661756c74506f6f6c3a207472616e73616374696f6e207265766572746564a265627a7a72315820d762ab0d393b049f711cae855f198650d6f24f0aba4f17f6299834ac6efb812164736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/ERC20.json b/client/src/contracts/ERC20.json new file mode 100644 index 000000000..2c5937596 --- /dev/null +++ b/client/src/contracts/ERC20.json @@ -0,0 +1,256 @@ +{ + "contractName": "ERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405261083b806100136000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d5610212565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610218565b6100b96004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102a5565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102f9565b6100b96004803603604081101561018557600080fd5b506001600160a01b038135169060200135610314565b6100b9600480360360408110156101b157600080fd5b506001600160a01b038135169060200135610382565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610396565b60006102096102026103c1565b84846103c5565b50600192915050565b60025490565b60006102258484846104b1565b61029b846102316103c1565b61029685604051806060016040528060288152602001610771602891396001600160a01b038a1660009081526001602052604081209061026f6103c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61060d16565b6103c5565b5060019392505050565b60006102096102b26103c1565b8461029685600160006102c36103c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6106a416565b6001600160a01b031660009081526020819052604090205490565b60006102096103216103c1565b84610296856040518060600160405280602581526020016107e2602591396001600061034b6103c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61060d16565b600061020961038f6103c1565b84846104b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661040a5760405162461bcd60e51b81526004018080602001828103825260248152602001806107be6024913960400191505060405180910390fd5b6001600160a01b03821661044f5760405162461bcd60e51b81526004018080602001828103825260228152602001806107296022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104f65760405162461bcd60e51b81526004018080602001828103825260258152602001806107996025913960400191505060405180910390fd5b6001600160a01b03821661053b5760405162461bcd60e51b81526004018080602001828103825260238152602001806107066023913960400191505060405180910390fd5b61057e8160405180606001604052806026815260200161074b602691396001600160a01b038616600090815260208190526040902054919063ffffffff61060d16565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546105b3908263ffffffff6106a416565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561069c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610661578181015183820152602001610649565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156106fe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158200024e67a0510dff1ca84054f39820c250f978453c743589c2266260fb1c0022264736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d5610212565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610218565b6100b96004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102a5565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102f9565b6100b96004803603604081101561018557600080fd5b506001600160a01b038135169060200135610314565b6100b9600480360360408110156101b157600080fd5b506001600160a01b038135169060200135610382565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610396565b60006102096102026103c1565b84846103c5565b50600192915050565b60025490565b60006102258484846104b1565b61029b846102316103c1565b61029685604051806060016040528060288152602001610771602891396001600160a01b038a1660009081526001602052604081209061026f6103c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61060d16565b6103c5565b5060019392505050565b60006102096102b26103c1565b8461029685600160006102c36103c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6106a416565b6001600160a01b031660009081526020819052604090205490565b60006102096103216103c1565b84610296856040518060600160405280602581526020016107e2602591396001600061034b6103c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61060d16565b600061020961038f6103c1565b84846104b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661040a5760405162461bcd60e51b81526004018080602001828103825260248152602001806107be6024913960400191505060405180910390fd5b6001600160a01b03821661044f5760405162461bcd60e51b81526004018080602001828103825260228152602001806107296022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104f65760405162461bcd60e51b81526004018080602001828103825260258152602001806107996025913960400191505060405180910390fd5b6001600160a01b03821661053b5760405162461bcd60e51b81526004018080602001828103825260238152602001806107066023913960400191505060405180910390fd5b61057e8160405180606001604052806026815260200161074b602691396001600160a01b038616600090815260208190526040902054919063ffffffff61060d16565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546105b3908263ffffffff6106a416565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561069c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610661578181015183820152602001610649565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156106fe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158200024e67a0510dff1ca84054f39820c250f978453c743589c2266260fb1c0022264736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/FunctionCaller.json b/client/src/contracts/FunctionCaller.json new file mode 100644 index 000000000..fedb378a0 --- /dev/null +++ b/client/src/contracts/FunctionCaller.json @@ -0,0 +1,341 @@ +{ + "contractName": "FunctionCaller", + "abi": [ + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_numTrials", + "type": "uint256" + } + ], + "name": "cdpManager_getApproxHint", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "cdpManager_getCurrentICR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "z", + "type": "uint256" + } + ], + "name": "decimath_accurateMulDiv", + "outputs": [ + { + "internalType": "uint256", + "name": "fraction", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "name": "decimath_decDiv", + "outputs": [ + { + "internalType": "uint256", + "name": "quotient", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "name": "decimath_decMul", + "outputs": [ + { + "internalType": "uint256", + "name": "prod", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "name": "decimath_div_toDuint", + "outputs": [ + { + "internalType": "uint256", + "name": "quotient", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y_duint", + "type": "uint256" + } + ], + "name": "decimath_mul_uintByDuint", + "outputs": [ + { + "internalType": "uint256", + "name": "prod", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "name": "getMin", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "setCDPManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_sortedCDPsAddress", + "type": "address" + } + ], + "name": "setSortedCDPsAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "sortedCDPs_findInsertPosition", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506107bf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806342b989b811610081578063cb797f491161005b578063cb797f4914610259578063ef6151a61461027c578063f75964c3146102a2576100c9565b806342b989b8146101b457806348c6ae731461020e578063c0b26c0614610236576100c9565b80630c24ff6c116100b25780630c24ff6c1461012f5780630fd95db5146101525780633321112314610175576100c9565b806304565369146100ce578063060d937814610109575b600080fd5b6100f7600480360360608110156100e457600080fd5b50803590602081013590604001356102c5565b60408051918252519081900360200190f35b6100f76004803603602081101561011f57600080fd5b50356001600160a01b031661035a565b6100f76004803603604081101561014557600080fd5b50803590602001356103f3565b6100f76004803603604081101561016857600080fd5b508035906020013561047f565b6101986004803603604081101561018b57600080fd5b50803590602001356104d8565b604080516001600160a01b039092168252519081900360200190f35b6101e8600480360360608110156101ca57600080fd5b508035906001600160a01b0360208201358116916040013516610559565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b6102346004803603602081101561022457600080fd5b50356001600160a01b031661060d565b005b6100f76004803603604081101561024c57600080fd5b5080359060200135610646565b6100f76004803603604081101561026f57600080fd5b508035906020013561069f565b6102346004803603602081101561029257600080fd5b50356001600160a01b03166106f8565b6100f7600480360360408110156102b857600080fd5b5080359060200135610731565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__63563d4c238585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561032657600080fd5b505af415801561033a573d6000803e3d6000fd5b505050506040513d602081101561035057600080fd5b5051949350505050565b60008054604080517f27fb7d890000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156103c157600080fd5b505afa1580156103d5573d6000803e3d6000fd5b505050506040513d60208110156103eb57600080fd5b509092915050565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__637205a09f84846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b505af4158015610460573d6000803e3d6000fd5b505050506040513d602081101561047657600080fd5b50519392505050565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__630fd95db584846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b60008054604080517fb6659dd6000000000000000000000000000000000000000000000000000000008152600481018690526024810185905290516001600160a01b039092169163b6659dd691604480820192602092909190829003018186803b15801561054557600080fd5b505afa158015610460573d6000803e3d6000fd5b600254604080517f416980dc000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b03858116602483015284811660448301528251600094859492169263416980dc926064808301939192829003018186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d60408110156105f857600080fd5b50805160209091015190969095509350505050565b600180546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316811790915560028054909216179055565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5684846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b600073__$3c31caed800dd799d299e04f3574ae6bfa$__63d4eb144184846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b600180546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316811790915560008054909216179055565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__633cbd79aa84846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fdfea265627a7a723158204eedc234c8a2d376d6fe44f630297ed0cc22f97503de59831b5ca130994e29fe64736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c806342b989b811610081578063cb797f491161005b578063cb797f4914610259578063ef6151a61461027c578063f75964c3146102a2576100c9565b806342b989b8146101b457806348c6ae731461020e578063c0b26c0614610236576100c9565b80630c24ff6c116100b25780630c24ff6c1461012f5780630fd95db5146101525780633321112314610175576100c9565b806304565369146100ce578063060d937814610109575b600080fd5b6100f7600480360360608110156100e457600080fd5b50803590602081013590604001356102c5565b60408051918252519081900360200190f35b6100f76004803603602081101561011f57600080fd5b50356001600160a01b031661035a565b6100f76004803603604081101561014557600080fd5b50803590602001356103f3565b6100f76004803603604081101561016857600080fd5b508035906020013561047f565b6101986004803603604081101561018b57600080fd5b50803590602001356104d8565b604080516001600160a01b039092168252519081900360200190f35b6101e8600480360360608110156101ca57600080fd5b508035906001600160a01b0360208201358116916040013516610559565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b6102346004803603602081101561022457600080fd5b50356001600160a01b031661060d565b005b6100f76004803603604081101561024c57600080fd5b5080359060200135610646565b6100f76004803603604081101561026f57600080fd5b508035906020013561069f565b6102346004803603602081101561029257600080fd5b50356001600160a01b03166106f8565b6100f7600480360360408110156102b857600080fd5b5080359060200135610731565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__63563d4c238585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561032657600080fd5b505af415801561033a573d6000803e3d6000fd5b505050506040513d602081101561035057600080fd5b5051949350505050565b60008054604080517f27fb7d890000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156103c157600080fd5b505afa1580156103d5573d6000803e3d6000fd5b505050506040513d60208110156103eb57600080fd5b509092915050565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__637205a09f84846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b505af4158015610460573d6000803e3d6000fd5b505050506040513d602081101561047657600080fd5b50519392505050565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__630fd95db584846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b60008054604080517fb6659dd6000000000000000000000000000000000000000000000000000000008152600481018690526024810185905290516001600160a01b039092169163b6659dd691604480820192602092909190829003018186803b15801561054557600080fd5b505afa158015610460573d6000803e3d6000fd5b600254604080517f416980dc000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b03858116602483015284811660448301528251600094859492169263416980dc926064808301939192829003018186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d60408110156105f857600080fd5b50805160209091015190969095509350505050565b600180546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316811790915560028054909216179055565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5684846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b600073__$3c31caed800dd799d299e04f3574ae6bfa$__63d4eb144184846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fd5b600180546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316811790915560008054909216179055565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__633cbd79aa84846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561044c57600080fdfea265627a7a723158204eedc234c8a2d376d6fe44f630297ed0cc22f97503de59831b5ca130994e29fe64736f6c634300050f0032", + "linkReferences": { + "contracts/DeciMath.sol": { + "DeciMath": [ + { + "length": 20, + "start": 745 + }, + { + "length": 20, + "start": 1047 + }, + { + "length": 20, + "start": 1187 + }, + { + "length": 20, + "start": 1642 + }, + { + "length": 20, + "start": 1731 + }, + { + "length": 20, + "start": 1877 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/DeciMath.sol": { + "DeciMath": [ + { + "length": 20, + "start": 713 + }, + { + "length": 20, + "start": 1015 + }, + { + "length": 20, + "start": 1155 + }, + { + "length": 20, + "start": 1610 + }, + { + "length": 20, + "start": 1699 + }, + { + "length": 20, + "start": 1845 + } + ] + } + } +} diff --git a/client/src/contracts/ICDPManager.json b/client/src/contracts/ICDPManager.json new file mode 100644 index 000000000..9dc67618a --- /dev/null +++ b/client/src/contracts/ICDPManager.json @@ -0,0 +1,561 @@ +{ + "contractName": "ICDPManager", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "CDPClosed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "arrayIndex", + "type": "uint256" + } + ], + "name": "CDPCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_debt", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_coll", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "arrayIndex", + "type": "uint256" + } + ], + "name": "CDPUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountRepayed", + "type": "uint256" + } + ], + "name": "CLVRepayed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCLVTokenAddress", + "type": "address" + } + ], + "name": "CLVTokenAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountWithdrawn", + "type": "uint256" + } + ], + "name": "CLVWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountAdded", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "exchangedCLV", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "redeemedETH", + "type": "uint256" + } + ], + "name": "CollateralRedeemed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amountWithdrawn", + "type": "uint256" + } + ], + "name": "CollateralWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPoolManagerAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPriceFeedAddress", + "type": "address" + } + ], + "name": "PriceFeedAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_sortedCDPsAddress", + "type": "address" + } + ], + "name": "SortedCDPsAddressChanged", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "addColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "checkTCRAndSetRecoveryMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "CR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numTrials", + "type": "uint256" + } + ], + "name": "getApproxHint", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCDPOwnersCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getCurrentICR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "_debtIncrease", + "type": "uint256" + } + ], + "name": "getNewTCRfromDebtIncrease", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "liquidate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_n", + "type": "uint256" + } + ], + "name": "liquidateCDPs", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CLVAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "redeemCollateral", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "repayCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_clvTokenAddress", + "type": "address" + } + ], + "name": "setCLVToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_priceFeedAddress", + "type": "address" + } + ], + "name": "setPriceFeed", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_sortedCDPsAddress", + "type": "address" + } + ], + "name": "setSortedCDPs", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "withdrawCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_hint", + "type": "address" + } + ], + "name": "withdrawColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/ICLVToken.json b/client/src/contracts/ICLVToken.json new file mode 100644 index 000000000..1f00d62df --- /dev/null +++ b/client/src/contracts/ICLVToken.json @@ -0,0 +1,367 @@ +{ + "contractName": "ICLVToken", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CLVTokenBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPoolManagerAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "returnFromPool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendToPool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/IERC20.json b/client/src/contracts/IERC20.json new file mode 100644 index 000000000..83a73eb31 --- /dev/null +++ b/client/src/contracts/IERC20.json @@ -0,0 +1,204 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/IPool.json b/client/src/contracts/IPool.json new file mode 100644 index 000000000..0e1da0bbd --- /dev/null +++ b/client/src/contracts/IPool.json @@ -0,0 +1,207 @@ +{ + "contractName": "IPool", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "CLVBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "ETHBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "EtherSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getRawETHBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendETH", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/IPoolManager.json b/client/src/contracts/IPoolManager.json new file mode 100644 index 000000000..0eca300e6 --- /dev/null +++ b/client/src/contracts/IPoolManager.json @@ -0,0 +1,648 @@ +{ + "contractName": "IPoolManager", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCDPManagerAddress", + "type": "address" + } + ], + "name": "CDPManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCLVTokenAddress", + "type": "address" + } + ], + "name": "CLVTokenAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimantReward", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "depositor", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "remainder", + "type": "uint256" + } + ], + "name": "OverstayPenaltyClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPriceFeedAddress", + "type": "address" + } + ], + "name": "PriceFeedAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_S_CLV", + "type": "uint256" + } + ], + "name": "S_CLVUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_S_ETH", + "type": "uint256" + } + ], + "name": "S_ETHUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "UserDepositChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "UserSnapshotUpdated", + "type": "event" + }, + { + "constant": false, + "inputs": [], + "name": "addColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "applyPendingRewards", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getActiveColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getActiveDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getClosedDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidatedColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getStabilityPoolCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "liquidate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_debt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_coll", + "type": "uint256" + } + ], + "name": "offset", + "outputs": [ + { + "internalType": "uint256[2]", + "name": "", + "type": "uint256[2]" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "provideToSP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "redeemCollateral", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + } + ], + "name": "repayCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + } + ], + "name": "setActivePool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "setCDPManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_CLVAddress", + "type": "address" + } + ], + "name": "setCLVToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + } + ], + "name": "setDefaultPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_priceFeedAddress", + "type": "address" + } + ], + "name": "setPriceFeed", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_stabilityPoolAddress", + "type": "address" + } + ], + "name": "setStabilityPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + } + ], + "name": "withdrawCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "withdrawColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromSP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "withdrawFromSPtoCDP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "withdrawPenaltyFromSP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/IPriceFeed.json b/client/src/contracts/IPriceFeed.json new file mode 100644 index 000000000..33fd225f2 --- /dev/null +++ b/client/src/contracts/IPriceFeed.json @@ -0,0 +1,86 @@ +{ + "contractName": "IPriceFeed", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "CDPManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newPrice", + "type": "uint256" + } + ], + "name": "PriceUpdated", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "setCDPManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "name": "setPrice", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/ISortedCDPs.json b/client/src/contracts/ISortedCDPs.json new file mode 100644 index 000000000..eb0840da5 --- /dev/null +++ b/client/src/contracts/ISortedCDPs.json @@ -0,0 +1,347 @@ +{ + "contractName": "ISortedCDPs", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_sortedDoublyLLAddress", + "type": "address" + } + ], + "name": "SortedCDPsAddressChanged", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "contains", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "findInsertPosition", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFirst", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLast", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getMaxSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "getNext", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "getPrev", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "insert", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEmpty", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isFull", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_newICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "reInsert", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "remove", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_CDPManagerAddress", + "type": "address" + } + ], + "name": "setCDPManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_size", + "type": "uint256" + } + ], + "name": "setMaxSize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "validInsertPosition", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/IStabilityPool.json b/client/src/contracts/IStabilityPool.json new file mode 100644 index 000000000..94865a5f4 --- /dev/null +++ b/client/src/contracts/IStabilityPool.json @@ -0,0 +1,297 @@ +{ + "contractName": "IStabilityPool", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "CLVBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "ETHBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "EtherSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseTotalCLVDeposits", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getRawETHBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTotalCLVDeposits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseTotalCLVDeposits", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendETH", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + } + ], + "name": "setActivePoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + } + ], + "name": "setDefaultPoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/Migrations.json b/client/src/contracts/Migrations.json new file mode 100644 index 000000000..ffe84cbdc --- /dev/null +++ b/client/src/contracts/Migrations.json @@ -0,0 +1,75 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72315820ea58a0d56f6149c55b32e4f7dcbfb3935d2247da09cd30fc644d729936c5d1d564736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72315820ea58a0d56f6149c55b32e4f7dcbfb3935d2247da09cd30fc644d729936c5d1d564736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/NameRegistry.json b/client/src/contracts/NameRegistry.json new file mode 100644 index 000000000..903584188 --- /dev/null +++ b/client/src/contracts/NameRegistry.json @@ -0,0 +1,214 @@ +{ + "contractName": "NameRegistry", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "name": "ContractAddressUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "name": "NewContractRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "getAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "addr", + "type": "address" + } + ], + "name": "registerContract", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "registry", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "addr", + "type": "address" + } + ], + "name": "updateAddress", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b610bd1806100796000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b1461023157806392a296c914610239578063bf40fac1146102df578063f2fde38b1461038557610088565b80633e21750a1461008d578063715018a6146101525780637f3c2c281461015c5780638da5cb5b1461020d575b600080fd5b61013e600480360360408110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506103ab9050565b604080519115158252519081900360200190f35b61015a6105ed565b005b61013e6004803603604081101561017257600080fd5b81019060208101813564010000000081111561018d57600080fd5b82018360208201111561019f57600080fd5b803590602001918460018302840111640100000000831117156101c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b0316915061069d9050565b610215610897565b604080516001600160a01b039092168252519081900360200190f35b61013e6108a6565b6102156004803603602081101561024f57600080fd5b81019060208101813564010000000081111561026a57600080fd5b82018360208201111561027c57600080fd5b8035906020019184600183028401116401000000008311171561029e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108ca945050505050565b610215600480360360208110156102f557600080fd5b81019060208101813564010000000081111561031057600080fd5b82018360208201111561032257600080fd5b8035906020019184600183028401116401000000008311171561034457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108f0945050505050565b61015a6004803603602081101561039b57600080fd5b50356001600160a01b0316610a16565b60006103b56108a6565b610406576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006001600160a01b03166001846040518082805190602001908083835b602083106104435780518252601f199092019160209182019101610424565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b0316929092141591506104bc90505760405162461bcd60e51b8152600401808060200182810382526025815260200180610b2d6025913960400191505060405180910390fd5b816001846040518082805190602001908083835b602083106104ef5780518252601f1990920191602091820191016104d0565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0397881617905594871684820152848452875194840194909452505084517fa42de6429c1410f4470a8ff5afeeae27c734519ac1693e8eb58798a81715c947928692869290918291606083019186019080838360005b838110156105a9578181015183820152602001610591565b50505050905090810190601f1680156105d65780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150600192915050565b6105f56108a6565b610646576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006106a76108a6565b6106f8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006001600160a01b03166001846040518082805190602001908083835b602083106107355780518252601f199092019160209182019101610716565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b03169290921491506107ad90505760405162461bcd60e51b8152600401808060200182810382526025815260200180610b786025913960400191505060405180910390fd5b816001846040518082805190602001908083835b602083106107e05780518252601f1990920191602091820191016107c1565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0397881617905594871684820152848452875194840194909452505084517f3231fef7b835f8f98159628a6b139e7c3640fc203734709553768e5ed6dc699a9286928692909182916060830191860190808383600083156105a9578181015183820152602001610591565b6000546001600160a01b031690565b600080546001600160a01b03166108bb610a7b565b6001600160a01b031614905090565b80516020818301810180516001825292820191909301209152546001600160a01b031681565b6000806001600160a01b03166001836040518082805190602001908083835b6020831061092e5780518252601f19909201916020918201910161090f565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b0316929092141591506109a790505760405162461bcd60e51b8152600401808060200182810382526025815260200180610b2d6025913960400191505060405180910390fd5b6001826040518082805190602001908083835b602083106109d95780518252601f1990920191602091820191016109ba565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b0316949350505050565b610a1e6108a6565b610a6f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a7881610a7f565b50565b3390565b6001600160a01b038116610ac45760405162461bcd60e51b8152600401808060200182810382526026815260200180610b526026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4e616d655265673a206e616d6520646f6573206e6f74206d617020746f20616e20616464724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734e616d655265673a206e616d6520616c7265616479206d61707320746f20616e2061646472a265627a7a72315820c2612d5814d270610fb66289e39fb8fc88ee9e94104481740c569fc8eadd996764736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b1461023157806392a296c914610239578063bf40fac1146102df578063f2fde38b1461038557610088565b80633e21750a1461008d578063715018a6146101525780637f3c2c281461015c5780638da5cb5b1461020d575b600080fd5b61013e600480360360408110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506103ab9050565b604080519115158252519081900360200190f35b61015a6105ed565b005b61013e6004803603604081101561017257600080fd5b81019060208101813564010000000081111561018d57600080fd5b82018360208201111561019f57600080fd5b803590602001918460018302840111640100000000831117156101c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b0316915061069d9050565b610215610897565b604080516001600160a01b039092168252519081900360200190f35b61013e6108a6565b6102156004803603602081101561024f57600080fd5b81019060208101813564010000000081111561026a57600080fd5b82018360208201111561027c57600080fd5b8035906020019184600183028401116401000000008311171561029e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108ca945050505050565b610215600480360360208110156102f557600080fd5b81019060208101813564010000000081111561031057600080fd5b82018360208201111561032257600080fd5b8035906020019184600183028401116401000000008311171561034457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108f0945050505050565b61015a6004803603602081101561039b57600080fd5b50356001600160a01b0316610a16565b60006103b56108a6565b610406576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006001600160a01b03166001846040518082805190602001908083835b602083106104435780518252601f199092019160209182019101610424565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b0316929092141591506104bc90505760405162461bcd60e51b8152600401808060200182810382526025815260200180610b2d6025913960400191505060405180910390fd5b816001846040518082805190602001908083835b602083106104ef5780518252601f1990920191602091820191016104d0565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0397881617905594871684820152848452875194840194909452505084517fa42de6429c1410f4470a8ff5afeeae27c734519ac1693e8eb58798a81715c947928692869290918291606083019186019080838360005b838110156105a9578181015183820152602001610591565b50505050905090810190601f1680156105d65780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150600192915050565b6105f56108a6565b610646576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006106a76108a6565b6106f8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006001600160a01b03166001846040518082805190602001908083835b602083106107355780518252601f199092019160209182019101610716565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b03169290921491506107ad90505760405162461bcd60e51b8152600401808060200182810382526025815260200180610b786025913960400191505060405180910390fd5b816001846040518082805190602001908083835b602083106107e05780518252601f1990920191602091820191016107c1565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0397881617905594871684820152848452875194840194909452505084517f3231fef7b835f8f98159628a6b139e7c3640fc203734709553768e5ed6dc699a9286928692909182916060830191860190808383600083156105a9578181015183820152602001610591565b6000546001600160a01b031690565b600080546001600160a01b03166108bb610a7b565b6001600160a01b031614905090565b80516020818301810180516001825292820191909301209152546001600160a01b031681565b6000806001600160a01b03166001836040518082805190602001908083835b6020831061092e5780518252601f19909201916020918201910161090f565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b0316929092141591506109a790505760405162461bcd60e51b8152600401808060200182810382526025815260200180610b2d6025913960400191505060405180910390fd5b6001826040518082805190602001908083835b602083106109d95780518252601f1990920191602091820191016109ba565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b0316949350505050565b610a1e6108a6565b610a6f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a7881610a7f565b50565b3390565b6001600160a01b038116610ac45760405162461bcd60e51b8152600401808060200182810382526026815260200180610b526026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4e616d655265673a206e616d6520646f6573206e6f74206d617020746f20616e20616464724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734e616d655265673a206e616d6520616c7265616479206d61707320746f20616e2061646472a265627a7a72315820c2612d5814d270610fb66289e39fb8fc88ee9e94104481740c569fc8eadd996764736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/Ownable.json b/client/src/contracts/Ownable.json new file mode 100644 index 000000000..7e12d0f82 --- /dev/null +++ b/client/src/contracts/Ownable.json @@ -0,0 +1,88 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/PoolManager.json b/client/src/contracts/PoolManager.json new file mode 100644 index 000000000..950f83c6e --- /dev/null +++ b/client/src/contracts/PoolManager.json @@ -0,0 +1,1065 @@ +{ + "contractName": "PoolManager", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCDPManagerAddress", + "type": "address" + } + ], + "name": "CDPManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCLVTokenAddress", + "type": "address" + } + ], + "name": "CLVTokenAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimantReward", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "depositor", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "remainder", + "type": "uint256" + } + ], + "name": "OverstayPenaltyClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPriceFeedAddress", + "type": "address" + } + ], + "name": "PriceFeedAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_S_CLV", + "type": "uint256" + } + ], + "name": "S_CLVUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_S_ETH", + "type": "uint256" + } + ], + "name": "S_ETHUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "UserDepositChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "UserSnapshotUpdated", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "S_CLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "S_ETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "activePool", + "outputs": [ + { + "internalType": "contract IPool", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "activePoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "addColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "applyPendingRewards", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "cdpManagerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "clvAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "defaultPool", + "outputs": [ + { + "internalType": "contract IPool", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "defaultPoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "deposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getActiveColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getActiveDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getClosedDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidatedColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getStabilityPoolCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTCR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "liquidate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_debt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_coll", + "type": "uint256" + } + ], + "name": "offset", + "outputs": [ + { + "internalType": "uint256[2]", + "name": "", + "type": "uint256[2]" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "priceFeedAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "provideToSP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "redeemCollateral", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + } + ], + "name": "repayCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + } + ], + "name": "setActivePool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "setCDPManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_CLVAddress", + "type": "address" + } + ], + "name": "setCLVToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + } + ], + "name": "setDefaultPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_priceFeedAddress", + "type": "address" + } + ], + "name": "setPriceFeed", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_stabilityPoolAddress", + "type": "address" + } + ], + "name": "setStabilityPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "snapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "ETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "CLV", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stabilityPool", + "outputs": [ + { + "internalType": "contract IStabilityPool", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stabilityPoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_CLV", + "type": "uint256" + } + ], + "name": "withdrawCLV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + } + ], + "name": "withdrawColl", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromSP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "withdrawFromSPtoCDP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "withdrawPenaltyFromSP", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052600154600280546001600160a01b0319166001600160a01b039092169190911790553480156200003357600080fd5b506000620000496001600160e01b036200009916565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200009d565b3390565b613cc680620000ad6000396000f3fe6080604052600436106102d15760003560e01c80638c192ed411610179578063cb8d3e54116100d6578063f09892711161008a578063f568dd8e11610064578063f568dd8e146108fb578063f7883a8b14610934578063fefb4c5814610967576102d1565b8063f098927114610865578063f2fde38b14610895578063f340fa01146108c8576102d1565b8063d31cadf6116100bb578063d31cadf614610808578063e0abca0b1461081d578063ef6151a614610832576102d1565b8063cb8d3e54146107c3578063d296d1f1146107d8576102d1565b8063aac1846f1161012d578063b08bc72211610112578063b08bc72214610760578063b620115d14610775578063b96c51811461078a576102d1565b8063aac1846f14610718578063afc7f50f1461072d576102d1565b80638f32d59b1161015e5780638f32d59b146106bb5780639594897d146106d057806398d721e0146106e5576102d1565b80638c192ed4146106735780638da5cb5b146106a6576102d1565b8063388cfac011610232578063715018a6116101e65780637cb19fe8116101c05780637cb19fe81461060a5780637f7dde4a1461064957806385cb43e81461065e576102d1565b8063715018a614610598578063724e78da146105ad57806378c77a24146105e0576102d1565b8063697b93fd11610217578063697b93fd146105595780636bad51981461056e578063708249b314610583576102d1565b8063388cfac0146105115780633cc7422514610544576102d1565b806325a2e6e7116102895780632e54bf951161026e5780632e54bf95146104505780632e90bbd81461047a578063335525ad146104b3576102d1565b806325a2e6e7146103e85780632651216014610404576102d1565b80630b622ab2116102ba5780630b622ab21461039757806312065fe0146103ac5780631f549907146103d3576102d1565b806302f6567f14610351578063048c661d14610382575b6008546001600160a01b03166102e561099a565b6001600160a01b031614806103145750600a546001600160a01b031661030961099a565b6001600160a01b0316145b61034f5760405162461bcd60e51b815260040180806020018281038252603b815260200180613abe603b913960400191505060405180910390fd5b005b34801561035d57600080fd5b5061036661099f565b604080516001600160a01b039092168252519081900360200190f35b34801561038e57600080fd5b506103666109ae565b3480156103a357600080fd5b506103666109bd565b3480156103b857600080fd5b506103c16109cc565b60408051918252519081900360200190f35b3480156103df57600080fd5b506103c16109d0565b6103f0610a46565b604080519115158252519081900360200190f35b34801561041057600080fd5b506104376004803603602081101561042757600080fd5b50356001600160a01b0316610b3f565b6040805192835260208301919091528051918290030190f35b34801561045c57600080fd5b506103f06004803603602081101561047357600080fd5b5035610b58565b34801561048657600080fd5b506103f06004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610c72565b6104d6600480360360408110156104c957600080fd5b5080359060200135610dd9565b6040518082600260200280838360005b838110156104fe5781810151838201526020016104e6565b5050505090500191505060405180910390f35b34801561051d57600080fd5b506103f06004803603602081101561053457600080fd5b50356001600160a01b03166114b2565b34801561055057600080fd5b506103666115fd565b34801561056557600080fd5b506103c161160c565b34801561057a57600080fd5b506103c1611651565b34801561058f57600080fd5b506103c1611657565b3480156105a457600080fd5b5061034f61165d565b3480156105b957600080fd5b5061034f600480360360208110156105d057600080fd5b50356001600160a01b0316611700565b3480156105ec57600080fd5b506103f06004803603602081101561060357600080fd5b50356117b8565b34801561061657600080fd5b506103f06004803603606081101561062d57600080fd5b506001600160a01b03813516906020810135906040013561185a565b34801561065557600080fd5b50610366611a1d565b34801561066a57600080fd5b506103c1611a2c565b34801561067f57600080fd5b5061034f6004803603602081101561069657600080fd5b50356001600160a01b0316611a71565b3480156106b257600080fd5b50610366611b31565b3480156106c757600080fd5b506103f0611b40565b3480156106dc57600080fd5b506103c1611b64565b3480156106f157600080fd5b5061034f6004803603602081101561070857600080fd5b50356001600160a01b0316611ba9565b34801561072457600080fd5b50610366611c69565b34801561073957600080fd5b506103f06004803603602081101561075057600080fd5b50356001600160a01b0316611c78565b34801561076c57600080fd5b506103666120ac565b34801561078157600080fd5b506103c16120bb565b34801561079657600080fd5b506103f0600480360360408110156107ad57600080fd5b506001600160a01b038135169060200135612397565b3480156107cf57600080fd5b506103c16124ae565b3480156107e457600080fd5b506103f0600480360360408110156107fb57600080fd5b50803590602001356124f3565b34801561081457600080fd5b50610366612672565b34801561082957600080fd5b50610366612681565b34801561083e57600080fd5b5061034f6004803603602081101561085557600080fd5b50356001600160a01b0316612690565b34801561087157600080fd5b506103f06004803603604081101561088857600080fd5b5080359060200135612748565b3480156108a157600080fd5b5061034f600480360360208110156108b857600080fd5b50356001600160a01b03166128c7565b3480156108d457600080fd5b506103c1600480360360208110156108eb57600080fd5b50356001600160a01b031661292c565b34801561090757600080fd5b506103f06004803603604081101561091e57600080fd5b506001600160a01b03813516906020013561293e565b34801561094057600080fd5b5061034f6004803603602081101561095757600080fd5b50356001600160a01b03166129f0565b34801561097357600080fd5b5061034f6004803603602081101561098a57600080fd5b50356001600160a01b0316612ab0565b335b90565b6001546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b4790565b60095460408051630a7b61df60e11b815290516000926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610a1557600080fd5b505afa158015610a29573d6000803e3d6000fd5b505050506040513d6020811015610a3f57600080fd5b5051905090565b6001546000906001600160a01b0316610a5d61099a565b6001600160a01b031614610aa25760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600a546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5090915050600181151514610b3a5760405162461bcd60e51b815260040180806020018281038252602f815260200180613b1f602f913960400191505060405180910390fd5b905090565b6010602052600090815260409020805460019091015482565b60025460408051633fba0fc560e21b815290516000926001600160a01b03169163fee83f1491600480830192602092919082900301818787803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050506040513d6020811015610bc857600080fd5b5060009050610bd561099a565b6001600160a01b0381166000908152600d602052604090205490915080610c2d5760405162461bcd60e51b815260040180806020018281038252602e815260200180613bac602e913960400191505060405180910390fd5b610c35613a9f565b610c3e83612b68565b805190915080861015610c6657610c6484610c5f838963ffffffff612f8516565b612fce565b505b50600195945050505050565b6001546000906001600160a01b0316610c8961099a565b6001600160a01b031614610cce5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b60095460408051634de7363160e01b81526004810185905290516001600160a01b0390921691634de736319160248082019260009290919082900301818387803b158015610d1b57600080fd5b505af1158015610d2f573d6000803e3d6000fd5b5050600554604080517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301526024820188905291519190921693506340c10f19925060448083019260209291908290030181600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050506040513d6020811015610dcc57600080fd5b5060019150505b92915050565b610de1613a9f565b6001546001600160a01b0316610df561099a565b6001600160a01b031614610e3a5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b610e42613a9f565b600754604080517fb739777600000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b7397776916004808301926020929190829003018186803b158015610ea057600080fd5b505afa158015610eb4573d6000803e3d6000fd5b505050506040513d6020811015610eca57600080fd5b50516007546040805163e1cf19c160e01b815290519293506000926001600160a01b039092169163e1cf19c191600480820192602092909190829003018186803b158015610f1757600080fd5b505afa158015610f2b573d6000803e3d6000fd5b505050506040513d6020811015610f4157600080fd5b50519050801580610f50575081155b15610f68575050838152602081018390529050610dd3565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__630fd95db588846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610fc157600080fd5b505af4158015610fd5573d6000803e3d6000fd5b505050506040513d6020811015610feb57600080fd5b5051604080516308c91d2b60e11b815260048101839052602481018a9052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__916311923a56916044808301926020929190829003018186803b15801561104c57600080fd5b505af4158015611060573d6000803e3d6000fd5b505050506040513d602081101561107657600080fd5b505160408051631e5ebcd560e11b8152600481018a905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa916044808301926020929190829003018186803b1580156110d757600080fd5b505af41580156110eb573d6000803e3d6000fd5b505050506040513d602081101561110157600080fd5b5051604080516308c91d2b60e11b81526004810186905260248101889052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__916311923a56916044808301926020929190829003018186803b15801561116257600080fd5b505af4158015611176573d6000803e3d6000fd5b505050506040513d602081101561118c57600080fd5b5051600e549091506111a4908263ffffffff61333e16565b600e81905560408051918252517f5c256972fe7489f98ce15d224bf8dab74d0e19cc6aa966608916a15f6f60d0f79181900360200190a1600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5684896040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561123457600080fd5b505af4158015611248573d6000803e3d6000fd5b505050506040513d602081101561125e57600080fd5b5051600f54909150611276908263ffffffff61333e16565b600f81905560408051918252517f929e5fb9f1edf861ea5c93ad246b11b366de90467ba54a72bcb6f04e4d7195919181900360200190a16009546040805163e9c8395760e01b81526004810188905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b1580156112fa57600080fd5b505af115801561130e573d6000803e3d6000fd5b50506007546040805163e9c8395760e01b8152600481018a905290516001600160a01b03909216935063e9c83957925060248082019260009290919082900301818387803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050600954600854604080516364a197f360e01b81526001600160a01b0392831660048201526024810189905290519190921693506364a197f3925060448083019260209291908290030181600087803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b505050506040513d60208110156113fa57600080fd5b505060055460085460408051632770a7eb60e21b81526001600160a01b0392831660048201526024810189905290519190921691639dc29fac9160448083019260209291908290030181600087803b15801561145557600080fd5b505af1158015611469573d6000803e3d6000fd5b505050506040513d602081101561147f57600080fd5b5061149290508b8663ffffffff612f8516565b885261149e8a84612f85565b602089015250959998505050505050505050565b60015460009082906001600160a01b03166114cb61099a565b6001600160a01b031614806114f857506114e361099a565b6001600160a01b0316816001600160a01b0316145b6115335760405162461bcd60e51b8152600401808060200182810382526051815260200180613c416051913960600191505060405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663fee83f146040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561158357600080fd5b505af1158015611597573d6000803e3d6000fd5b505050506040513d60208110156115ad57600080fd5b50506001600160a01b0383166000908152600d6020526040902054806115d75760009250506115f7565b6115df613a9f565b6115e885613398565b8051909150610c648682612fce565b50919050565b600b546001600160a01b031681565b6009546040805163e1cf19c160e01b815290516000926001600160a01b03169163e1cf19c1916004808301926020929190829003018186803b158015610a1557600080fd5b600f5481565b600e5481565b611665611b40565b6116b6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611708611b40565b611759576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b03199182168117909255600380549091168217905560408051918252517f8c537274438aa850a330284665d81a85dd38267d09e4050d416bfc94142db2649181900360200190a150565b60025460408051633fba0fc560e21b815290516000926001600160a01b03169163fee83f1491600480830192602092919082900301818787803b1580156117fe57600080fd5b505af1158015611812573d6000803e3d6000fd5b505050506040513d602081101561182857600080fd5b506000905061183561099a565b905061183f613a9f565b61184882612b68565b8051909150848101610c643382612fce565b6001546000906001600160a01b031661187161099a565b6001600160a01b0316146118b65760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b6009546040805163e9c8395760e01b81526004810186905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b15801561190357600080fd5b505af1158015611917573d6000803e3d6000fd5b5050600954604080516364a197f360e01b81526001600160a01b0389811660048301526024820188905291519190921693506364a197f3925060448083019260209291908290030181600087803b15801561197157600080fd5b505af1158015611985573d6000803e3d6000fd5b505050506040513d602081101561199b57600080fd5b505060055460408051632770a7eb60e21b81526001600160a01b0387811660048301526024820187905291519190921691639dc29fac9160448083019260209291908290030181600087803b1580156119f357600080fd5b505af1158015611a07573d6000803e3d6000fd5b505050506040513d6020811015610c6657600080fd5b6009546001600160a01b031681565b6007546040805163e1cf19c160e01b815290516000926001600160a01b03169163e1cf19c1916004808301926020929190829003018186803b158015610a1557600080fd5b611a79611b40565b611aca576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600c80546001600160a01b038084166001600160a01b0319928316811793849055600b80549093169390911692909217905560408051918252517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b9181900360200190a150565b6000546001600160a01b031690565b600080546001600160a01b0316611b5561099a565b6001600160a01b031614905090565b600b546040805163e1cf19c160e01b815290516000926001600160a01b03169163e1cf19c1916004808301926020929190829003018186803b158015610a1557600080fd5b611bb1611b40565b611c02576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600880546001600160a01b038084166001600160a01b0319928316811793849055600780549093169390911692909217905560408051918252517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f9181900360200190a150565b600c546001600160a01b031681565b60025460408051633fba0fc560e21b815290516000926001600160a01b03169163fee83f1491600480830192602092919082900301818787803b158015611cbe57600080fd5b505af1158015611cd2573d6000803e3d6000fd5b505050506040513d6020811015611ce857600080fd5b5060009050611cf561099a565b9050826000611d0382613865565b6001600160a01b0383166000908152600d6020526040902054909150808211611d5d5760405162461bcd60e51b8152600401808060200182810382526029815260200180613b4e6029913960400191505060405180910390fd5b6000611d688461392f565b9050600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5684866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611dc357600080fd5b505af4158015611dd7573d6000803e3d6000fd5b505050506040513d6020811015611ded57600080fd5b505160408051631e5ebcd560e11b81526004810185905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa916044808301926020929190829003018186803b158015611e4e57600080fd5b505af4158015611e62573d6000803e3d6000fd5b505050506040513d6020811015611e7857600080fd5b505190506000611e8e848363ffffffff612f8516565b6001600160a01b0388166000818152600d60208181526040808420848155600e5460108452948290206001810195909555600f54909455918152915481519384529183019190915280519293507fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c992918290030190a17f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f5055600e54600f54604051808381526020018281526020019250505060405180910390a1600754604080516364a197f360e01b81526001600160a01b038b8116600483015260248201859052915191909216916364a197f39160448083019260209291908290030181600087803b158015611f9d57600080fd5b505af1158015611fb1573d6000803e3d6000fd5b505050506040513d6020811015611fc757600080fd5b5050600754604080516364a197f360e01b81526001600160a01b038a8116600483015260248201869052915191909216916364a197f39160448083019260209291908290030181600087803b15801561201f57600080fd5b505af1158015612033573d6000803e3d6000fd5b505050506040513d602081101561204957600080fd5b5050604080516001600160a01b03808b168252602082018490528916818301526060810184905290517f719a419f2a63c458272234c889194ae6dad9bf9b24d69cef17912f087ac8a6a89181900360800190a15060019998505050505050505050565b600a546001600160a01b031681565b600080600960009054906101000a90046001600160a01b03166001600160a01b03166314f6c3be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561210c57600080fd5b505afa158015612120573d6000803e3d6000fd5b505050506040513d602081101561213657600080fd5b50516009546040805163e1cf19c160e01b815290519293506000926001600160a01b039092169163e1cf19c191600480820192602092909190829003018186803b15801561218357600080fd5b505afa158015612197573d6000803e3d6000fd5b505050506040513d60208110156121ad57600080fd5b5051600354604080517f98d5fdca00000000000000000000000000000000000000000000000000000000815290519293506000926001600160a01b03909216916398d5fdca91600480820192602092909190829003018186803b15801561221357600080fd5b505afa158015612227573d6000803e3d6000fd5b505050506040513d602081101561223d57600080fd5b505190508215801561224d575081155b1561225e576001935050505061099c565b821580159061226b575081155b1561227d57600019935050505061099c565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5685856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156122d657600080fd5b505af41580156122ea573d6000803e3d6000fd5b505050506040513d602081101561230057600080fd5b505160408051631e5ebcd560e11b81526004810185905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa916044808301926020929190829003018186803b15801561236157600080fd5b505af4158015612375573d6000803e3d6000fd5b505050506040513d602081101561238b57600080fd5b50519550505050505090565b6001546000906001600160a01b03166123ae61099a565b6001600160a01b0316146123f35760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b6009546040805163e9c8395760e01b81526004810185905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b15801561244057600080fd5b505af1158015612454573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038881166004830152602482018890529151919092169350639dc29fac925060448083019260209291908290030181600087803b158015610da257600080fd5b600b5460408051630a7b61df60e11b815290516000926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610a1557600080fd5b6001546000906001600160a01b031661250a61099a565b6001600160a01b03161461254f5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600b5460408051634de7363160e01b81526004810186905290516001600160a01b0390921691634de736319160248082019260009290919082900301818387803b15801561259c57600080fd5b505af11580156125b0573d6000803e3d6000fd5b50506009546040805163e9c8395760e01b81526004810188905290516001600160a01b03909216935063e9c83957925060248082019260009290919082900301818387803b15801561260157600080fd5b505af1158015612615573d6000803e3d6000fd5b5050600954600c54604080516364a197f360e01b81526001600160a01b0392831660048201526024810188905290519190921693506364a197f3925060448083019260209291908290030181600087803b158015610da257600080fd5b6006546001600160a01b031681565b6004546001600160a01b031681565b612698611b40565b6126e9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b03199182168117909255600280549091168217905560408051918252517f0addbd30df51ac41ccaf56a058c50522fbdc092b4e2ec8b829b29ad6716bd0979181900360200190a150565b6001546000906001600160a01b031661275f61099a565b6001600160a01b0316146127a45760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600b546040805163e9c8395760e01b81526004810186905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b1580156127f157600080fd5b505af1158015612805573d6000803e3d6000fd5b505060095460408051634de7363160e01b81526004810188905290516001600160a01b039092169350634de73631925060248082019260009290919082900301818387803b15801561285657600080fd5b505af115801561286a573d6000803e3d6000fd5b5050600b54600a54604080516364a197f360e01b81526001600160a01b0392831660048201526024810188905290519190921693506364a197f3925060448083019260209291908290030181600087803b158015610da257600080fd5b6128cf611b40565b612920576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61292981613968565b50565b600d6020526000908152604090205481565b6001546000906001600160a01b031661295561099a565b6001600160a01b03161461299a5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600954604080516364a197f360e01b81526001600160a01b03868116600483015260248201869052915191909216916364a197f39160448083019260209291908290030181600087803b158015610da257600080fd5b6129f8611b40565b612a49576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a80546001600160a01b038084166001600160a01b0319928316811793849055600980549093169390911692909217905560408051918252517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd8829181900360200190a150565b612ab8611b40565b612b09576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600680546001600160a01b0383166001600160a01b03199182168117909255600580549091168217905560408051918252517f373a23842c9bfba0a655597bb13c6493895da5266bd6617086a73f8dcfe2ae709181900360200190a150565b612b70613a9f565b6001600160a01b0382166000908152600d602052604081205490612b938461392f565b90506000612ba085613865565b9050600083821115612bb457506000612bc7565b612bc4848363ffffffff612f8516565b90505b6001600160a01b0386166000818152600d60208181526040808420848155600e5460108452948290206001810195909555600f54909455918152915481519384529183019190915280517fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c99281900390910190a17f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f5055600e54600f54604051808381526020018281526020019250505060405180910390a16005546008546007546040805163e1cf19c160e01b815290516001600160a01b03948516946320c582be948116938c9373__$3c31caed800dd799d299e04f3574ae6bfa$__93630fd95db5938a93169163e1cf19c1916004808301926020929190829003018186803b158015612cf357600080fd5b505afa158015612d07573d6000803e3d6000fd5b505050506040513d6020811015612d1d57600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152516044808301926020929190829003018186803b158015612d6457600080fd5b505af4158015612d78573d6000803e3d6000fd5b505050506040513d6020811015612d8e57600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015612de657600080fd5b505af1158015612dfa573d6000803e3d6000fd5b505050506040513d6020811015612e1057600080fd5b50506007546040805163e9c8395760e01b81526004810184905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b158015612e5f57600080fd5b505af1158015612e73573d6000803e3d6000fd5b505060075460408051631283abc560e21b81526004810189905290516001600160a01b039092169350634a0eaf14925060248082019260009290919082900301818387803b158015612ec457600080fd5b505af1158015612ed8573d6000803e3d6000fd5b5050600754604080516364a197f360e01b81526001600160a01b038b811660048301526024820189905291519190921693506364a197f3925060448083019260209291908290030181600087803b158015612f3257600080fd5b505af1158015612f46573d6000803e3d6000fd5b505050506040513d6020811015612f5c57600080fd5b50612f679050613a9f565b50604080518082019091529081526020810192909252509392505050565b6000612fc783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613a08565b9392505050565b6001600160a01b0382166000908152600d6020526040812054156130235760405162461bcd60e51b8152600401808060200182810382526035815260200180613b776035913960400191505060405180910390fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529151859392909216916370a0823191602480820192602092909190829003018186803b15801561308c57600080fd5b505afa1580156130a0573d6000803e3d6000fd5b505050506040513d60208110156130b657600080fd5b505110156130f55760405162461bcd60e51b815260040180806020018281038252603e815260200180613bda603e913960400191505060405180910390fd5b600554600854604080517fbb997bac0000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301529283166024820152604481018690529051919092169163bb997bac9160648083019260209291908290030181600087803b15801561316f57600080fd5b505af1158015613183573d6000803e3d6000fd5b505050506040513d602081101561319957600080fd5b505060075460408051634de7363160e01b81526004810185905290516001600160a01b0390921691634de736319160248082019260009290919082900301818387803b1580156131e857600080fd5b505af11580156131fc573d6000803e3d6000fd5b5050600754604080517fde10fb780000000000000000000000000000000000000000000000000000000081526004810187905290516001600160a01b03909216935063de10fb78925060248082019260009290919082900301818387803b15801561326657600080fd5b505af115801561327a573d6000803e3d6000fd5b5050506001600160a01b0384166000908152600d60209081526040808320869055600e805460108452938290206001810194909455600f54938490555481519081529182019290925281517f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f505593509081900390910190a1604080516001600160a01b03851681526020810184905281517fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c9929181900390910190a150600192915050565b600082820183811015612fc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6133a0613a9f565b6001600160a01b0382166000908152600d6020526040902054806133f55760405162461bcd60e51b815260040180806020018281038252602e815260200180613bac602e913960400191505060405180910390fd5b60006134008461392f565b9050600061340d85613865565b905060008382111561342157506000613434565b613431848363ffffffff612f8516565b90505b6001600160a01b0386166000818152600d60208181526040808420848155600e5460108452948290206001810195909555600f54909455918152915481519384529183019190915280517fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c99281900390910190a17f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f5055600e54600f54604051808381526020018281526020019250505060405180910390a16005546008546007546040805163e1cf19c160e01b815290516001600160a01b03948516946320c582be948116938c9373__$3c31caed800dd799d299e04f3574ae6bfa$__93630fd95db5938a93169163e1cf19c1916004808301926020929190829003018186803b15801561356057600080fd5b505afa158015613574573d6000803e3d6000fd5b505050506040513d602081101561358a57600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152516044808301926020929190829003018186803b1580156135d157600080fd5b505af41580156135e5573d6000803e3d6000fd5b505050506040513d60208110156135fb57600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561365357600080fd5b505af1158015613667573d6000803e3d6000fd5b505050506040513d602081101561367d57600080fd5b50506007546040805163e9c8395760e01b81526004810184905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b1580156136cc57600080fd5b505af11580156136e0573d6000803e3d6000fd5b505060075460408051631283abc560e21b81526004810189905290516001600160a01b039092169350634a0eaf14925060248082019260009290919082900301818387803b15801561373157600080fd5b505af1158015613745573d6000803e3d6000fd5b5050600754604080516364a197f360e01b81523060048201526024810188905290516001600160a01b0390921693506364a197f392506044808201926020929091908290030181600087803b15801561379d57600080fd5b505af11580156137b1573d6000803e3d6000fd5b505050506040513d60208110156137c757600080fd5b5050600254604080517f68647db10000000000000000000000000000000000000000000000000000000081526001600160a01b03898116600483018190526024830152915191909216916368647db191869160448082019260209290919082900301818588803b15801561383a57600080fd5b505af115801561384e573d6000803e3d6000fd5b50505050506040513d6020811015612f5c57600080fd5b6001600160a01b0381166000908152600d60209081526040808320546010909252822060010154600e5483906138a1908363ffffffff612f8516565b905073__$3c31caed800dd799d299e04f3574ae6bfa$__633cbd79aa84836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156138fa57600080fd5b505af415801561390e573d6000803e3d6000fd5b505050506040513d602081101561392457600080fd5b505195945050505050565b6001600160a01b0381166000908152600d60209081526040808320546010909252822054600f5483906138a1908363ffffffff612f8516565b6001600160a01b0381166139ad5760405162461bcd60e51b8152600401808060200182810382526026815260200180613af96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115613a975760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a5c578181015183820152602001613a44565b50505050905090810190601f168015613a895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6040518060400160405280600290602082028038833950919291505056fe506f6f6c4d616e616765723a2043616c6c6572206973206e6569746865722053746162696c697479506f6f6c206e6f7220416374697665506f6f6c4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373506f6f6c4d616e616765723a207472616e73616374696f6e20746f20616374697665506f6f6c207265766572746564506f6f6c4d616e616765723a206465706f7369746f7220686173206e6f74206f766572737461796564506f6f6c4d616e616765723a207573657220616c72656164792068617320612053746162696c697479506f6f6c206465706f736974506f6f6c4d616e616765723a2055736572206d75737420686176652061206e6f6e2d7a65726f206465706f736974506f6f6c4d616e616765723a20757365722068617320696e73756666696369656e7420434c562062616c616e636520746f206d616b65206465706f736974506f6f6c4d616e616765723a2043616c6c6572206973206e6f7420746865204344504d616e61676572506f6f6c4d616e616765723a2054617267657420434450206d757374206265205f6d736753656e64657228292c206f74686572776973652063616c6c6572206d757374206265204344504d616e61676572a265627a7a72315820b3fdc5af0b589904c0b93bb010824aff8cd1bc394afafb8cea884cd22fcd271064736f6c634300050f0032", + "deployedBytecode": "0x6080604052600436106102d15760003560e01c80638c192ed411610179578063cb8d3e54116100d6578063f09892711161008a578063f568dd8e11610064578063f568dd8e146108fb578063f7883a8b14610934578063fefb4c5814610967576102d1565b8063f098927114610865578063f2fde38b14610895578063f340fa01146108c8576102d1565b8063d31cadf6116100bb578063d31cadf614610808578063e0abca0b1461081d578063ef6151a614610832576102d1565b8063cb8d3e54146107c3578063d296d1f1146107d8576102d1565b8063aac1846f1161012d578063b08bc72211610112578063b08bc72214610760578063b620115d14610775578063b96c51811461078a576102d1565b8063aac1846f14610718578063afc7f50f1461072d576102d1565b80638f32d59b1161015e5780638f32d59b146106bb5780639594897d146106d057806398d721e0146106e5576102d1565b80638c192ed4146106735780638da5cb5b146106a6576102d1565b8063388cfac011610232578063715018a6116101e65780637cb19fe8116101c05780637cb19fe81461060a5780637f7dde4a1461064957806385cb43e81461065e576102d1565b8063715018a614610598578063724e78da146105ad57806378c77a24146105e0576102d1565b8063697b93fd11610217578063697b93fd146105595780636bad51981461056e578063708249b314610583576102d1565b8063388cfac0146105115780633cc7422514610544576102d1565b806325a2e6e7116102895780632e54bf951161026e5780632e54bf95146104505780632e90bbd81461047a578063335525ad146104b3576102d1565b806325a2e6e7146103e85780632651216014610404576102d1565b80630b622ab2116102ba5780630b622ab21461039757806312065fe0146103ac5780631f549907146103d3576102d1565b806302f6567f14610351578063048c661d14610382575b6008546001600160a01b03166102e561099a565b6001600160a01b031614806103145750600a546001600160a01b031661030961099a565b6001600160a01b0316145b61034f5760405162461bcd60e51b815260040180806020018281038252603b815260200180613abe603b913960400191505060405180910390fd5b005b34801561035d57600080fd5b5061036661099f565b604080516001600160a01b039092168252519081900360200190f35b34801561038e57600080fd5b506103666109ae565b3480156103a357600080fd5b506103666109bd565b3480156103b857600080fd5b506103c16109cc565b60408051918252519081900360200190f35b3480156103df57600080fd5b506103c16109d0565b6103f0610a46565b604080519115158252519081900360200190f35b34801561041057600080fd5b506104376004803603602081101561042757600080fd5b50356001600160a01b0316610b3f565b6040805192835260208301919091528051918290030190f35b34801561045c57600080fd5b506103f06004803603602081101561047357600080fd5b5035610b58565b34801561048657600080fd5b506103f06004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610c72565b6104d6600480360360408110156104c957600080fd5b5080359060200135610dd9565b6040518082600260200280838360005b838110156104fe5781810151838201526020016104e6565b5050505090500191505060405180910390f35b34801561051d57600080fd5b506103f06004803603602081101561053457600080fd5b50356001600160a01b03166114b2565b34801561055057600080fd5b506103666115fd565b34801561056557600080fd5b506103c161160c565b34801561057a57600080fd5b506103c1611651565b34801561058f57600080fd5b506103c1611657565b3480156105a457600080fd5b5061034f61165d565b3480156105b957600080fd5b5061034f600480360360208110156105d057600080fd5b50356001600160a01b0316611700565b3480156105ec57600080fd5b506103f06004803603602081101561060357600080fd5b50356117b8565b34801561061657600080fd5b506103f06004803603606081101561062d57600080fd5b506001600160a01b03813516906020810135906040013561185a565b34801561065557600080fd5b50610366611a1d565b34801561066a57600080fd5b506103c1611a2c565b34801561067f57600080fd5b5061034f6004803603602081101561069657600080fd5b50356001600160a01b0316611a71565b3480156106b257600080fd5b50610366611b31565b3480156106c757600080fd5b506103f0611b40565b3480156106dc57600080fd5b506103c1611b64565b3480156106f157600080fd5b5061034f6004803603602081101561070857600080fd5b50356001600160a01b0316611ba9565b34801561072457600080fd5b50610366611c69565b34801561073957600080fd5b506103f06004803603602081101561075057600080fd5b50356001600160a01b0316611c78565b34801561076c57600080fd5b506103666120ac565b34801561078157600080fd5b506103c16120bb565b34801561079657600080fd5b506103f0600480360360408110156107ad57600080fd5b506001600160a01b038135169060200135612397565b3480156107cf57600080fd5b506103c16124ae565b3480156107e457600080fd5b506103f0600480360360408110156107fb57600080fd5b50803590602001356124f3565b34801561081457600080fd5b50610366612672565b34801561082957600080fd5b50610366612681565b34801561083e57600080fd5b5061034f6004803603602081101561085557600080fd5b50356001600160a01b0316612690565b34801561087157600080fd5b506103f06004803603604081101561088857600080fd5b5080359060200135612748565b3480156108a157600080fd5b5061034f600480360360208110156108b857600080fd5b50356001600160a01b03166128c7565b3480156108d457600080fd5b506103c1600480360360208110156108eb57600080fd5b50356001600160a01b031661292c565b34801561090757600080fd5b506103f06004803603604081101561091e57600080fd5b506001600160a01b03813516906020013561293e565b34801561094057600080fd5b5061034f6004803603602081101561095757600080fd5b50356001600160a01b03166129f0565b34801561097357600080fd5b5061034f6004803603602081101561098a57600080fd5b50356001600160a01b0316612ab0565b335b90565b6001546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b4790565b60095460408051630a7b61df60e11b815290516000926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610a1557600080fd5b505afa158015610a29573d6000803e3d6000fd5b505050506040513d6020811015610a3f57600080fd5b5051905090565b6001546000906001600160a01b0316610a5d61099a565b6001600160a01b031614610aa25760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600a546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5090915050600181151514610b3a5760405162461bcd60e51b815260040180806020018281038252602f815260200180613b1f602f913960400191505060405180910390fd5b905090565b6010602052600090815260409020805460019091015482565b60025460408051633fba0fc560e21b815290516000926001600160a01b03169163fee83f1491600480830192602092919082900301818787803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050506040513d6020811015610bc857600080fd5b5060009050610bd561099a565b6001600160a01b0381166000908152600d602052604090205490915080610c2d5760405162461bcd60e51b815260040180806020018281038252602e815260200180613bac602e913960400191505060405180910390fd5b610c35613a9f565b610c3e83612b68565b805190915080861015610c6657610c6484610c5f838963ffffffff612f8516565b612fce565b505b50600195945050505050565b6001546000906001600160a01b0316610c8961099a565b6001600160a01b031614610cce5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b60095460408051634de7363160e01b81526004810185905290516001600160a01b0390921691634de736319160248082019260009290919082900301818387803b158015610d1b57600080fd5b505af1158015610d2f573d6000803e3d6000fd5b5050600554604080517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301526024820188905291519190921693506340c10f19925060448083019260209291908290030181600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050506040513d6020811015610dcc57600080fd5b5060019150505b92915050565b610de1613a9f565b6001546001600160a01b0316610df561099a565b6001600160a01b031614610e3a5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b610e42613a9f565b600754604080517fb739777600000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b7397776916004808301926020929190829003018186803b158015610ea057600080fd5b505afa158015610eb4573d6000803e3d6000fd5b505050506040513d6020811015610eca57600080fd5b50516007546040805163e1cf19c160e01b815290519293506000926001600160a01b039092169163e1cf19c191600480820192602092909190829003018186803b158015610f1757600080fd5b505afa158015610f2b573d6000803e3d6000fd5b505050506040513d6020811015610f4157600080fd5b50519050801580610f50575081155b15610f68575050838152602081018390529050610dd3565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__630fd95db588846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610fc157600080fd5b505af4158015610fd5573d6000803e3d6000fd5b505050506040513d6020811015610feb57600080fd5b5051604080516308c91d2b60e11b815260048101839052602481018a9052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__916311923a56916044808301926020929190829003018186803b15801561104c57600080fd5b505af4158015611060573d6000803e3d6000fd5b505050506040513d602081101561107657600080fd5b505160408051631e5ebcd560e11b8152600481018a905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa916044808301926020929190829003018186803b1580156110d757600080fd5b505af41580156110eb573d6000803e3d6000fd5b505050506040513d602081101561110157600080fd5b5051604080516308c91d2b60e11b81526004810186905260248101889052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__916311923a56916044808301926020929190829003018186803b15801561116257600080fd5b505af4158015611176573d6000803e3d6000fd5b505050506040513d602081101561118c57600080fd5b5051600e549091506111a4908263ffffffff61333e16565b600e81905560408051918252517f5c256972fe7489f98ce15d224bf8dab74d0e19cc6aa966608916a15f6f60d0f79181900360200190a1600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5684896040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561123457600080fd5b505af4158015611248573d6000803e3d6000fd5b505050506040513d602081101561125e57600080fd5b5051600f54909150611276908263ffffffff61333e16565b600f81905560408051918252517f929e5fb9f1edf861ea5c93ad246b11b366de90467ba54a72bcb6f04e4d7195919181900360200190a16009546040805163e9c8395760e01b81526004810188905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b1580156112fa57600080fd5b505af115801561130e573d6000803e3d6000fd5b50506007546040805163e9c8395760e01b8152600481018a905290516001600160a01b03909216935063e9c83957925060248082019260009290919082900301818387803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050600954600854604080516364a197f360e01b81526001600160a01b0392831660048201526024810189905290519190921693506364a197f3925060448083019260209291908290030181600087803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b505050506040513d60208110156113fa57600080fd5b505060055460085460408051632770a7eb60e21b81526001600160a01b0392831660048201526024810189905290519190921691639dc29fac9160448083019260209291908290030181600087803b15801561145557600080fd5b505af1158015611469573d6000803e3d6000fd5b505050506040513d602081101561147f57600080fd5b5061149290508b8663ffffffff612f8516565b885261149e8a84612f85565b602089015250959998505050505050505050565b60015460009082906001600160a01b03166114cb61099a565b6001600160a01b031614806114f857506114e361099a565b6001600160a01b0316816001600160a01b0316145b6115335760405162461bcd60e51b8152600401808060200182810382526051815260200180613c416051913960600191505060405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663fee83f146040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561158357600080fd5b505af1158015611597573d6000803e3d6000fd5b505050506040513d60208110156115ad57600080fd5b50506001600160a01b0383166000908152600d6020526040902054806115d75760009250506115f7565b6115df613a9f565b6115e885613398565b8051909150610c648682612fce565b50919050565b600b546001600160a01b031681565b6009546040805163e1cf19c160e01b815290516000926001600160a01b03169163e1cf19c1916004808301926020929190829003018186803b158015610a1557600080fd5b600f5481565b600e5481565b611665611b40565b6116b6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611708611b40565b611759576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b03199182168117909255600380549091168217905560408051918252517f8c537274438aa850a330284665d81a85dd38267d09e4050d416bfc94142db2649181900360200190a150565b60025460408051633fba0fc560e21b815290516000926001600160a01b03169163fee83f1491600480830192602092919082900301818787803b1580156117fe57600080fd5b505af1158015611812573d6000803e3d6000fd5b505050506040513d602081101561182857600080fd5b506000905061183561099a565b905061183f613a9f565b61184882612b68565b8051909150848101610c643382612fce565b6001546000906001600160a01b031661187161099a565b6001600160a01b0316146118b65760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b6009546040805163e9c8395760e01b81526004810186905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b15801561190357600080fd5b505af1158015611917573d6000803e3d6000fd5b5050600954604080516364a197f360e01b81526001600160a01b0389811660048301526024820188905291519190921693506364a197f3925060448083019260209291908290030181600087803b15801561197157600080fd5b505af1158015611985573d6000803e3d6000fd5b505050506040513d602081101561199b57600080fd5b505060055460408051632770a7eb60e21b81526001600160a01b0387811660048301526024820187905291519190921691639dc29fac9160448083019260209291908290030181600087803b1580156119f357600080fd5b505af1158015611a07573d6000803e3d6000fd5b505050506040513d6020811015610c6657600080fd5b6009546001600160a01b031681565b6007546040805163e1cf19c160e01b815290516000926001600160a01b03169163e1cf19c1916004808301926020929190829003018186803b158015610a1557600080fd5b611a79611b40565b611aca576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600c80546001600160a01b038084166001600160a01b0319928316811793849055600b80549093169390911692909217905560408051918252517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b9181900360200190a150565b6000546001600160a01b031690565b600080546001600160a01b0316611b5561099a565b6001600160a01b031614905090565b600b546040805163e1cf19c160e01b815290516000926001600160a01b03169163e1cf19c1916004808301926020929190829003018186803b158015610a1557600080fd5b611bb1611b40565b611c02576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600880546001600160a01b038084166001600160a01b0319928316811793849055600780549093169390911692909217905560408051918252517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f9181900360200190a150565b600c546001600160a01b031681565b60025460408051633fba0fc560e21b815290516000926001600160a01b03169163fee83f1491600480830192602092919082900301818787803b158015611cbe57600080fd5b505af1158015611cd2573d6000803e3d6000fd5b505050506040513d6020811015611ce857600080fd5b5060009050611cf561099a565b9050826000611d0382613865565b6001600160a01b0383166000908152600d6020526040902054909150808211611d5d5760405162461bcd60e51b8152600401808060200182810382526029815260200180613b4e6029913960400191505060405180910390fd5b6000611d688461392f565b9050600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5684866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611dc357600080fd5b505af4158015611dd7573d6000803e3d6000fd5b505050506040513d6020811015611ded57600080fd5b505160408051631e5ebcd560e11b81526004810185905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa916044808301926020929190829003018186803b158015611e4e57600080fd5b505af4158015611e62573d6000803e3d6000fd5b505050506040513d6020811015611e7857600080fd5b505190506000611e8e848363ffffffff612f8516565b6001600160a01b0388166000818152600d60208181526040808420848155600e5460108452948290206001810195909555600f54909455918152915481519384529183019190915280519293507fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c992918290030190a17f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f5055600e54600f54604051808381526020018281526020019250505060405180910390a1600754604080516364a197f360e01b81526001600160a01b038b8116600483015260248201859052915191909216916364a197f39160448083019260209291908290030181600087803b158015611f9d57600080fd5b505af1158015611fb1573d6000803e3d6000fd5b505050506040513d6020811015611fc757600080fd5b5050600754604080516364a197f360e01b81526001600160a01b038a8116600483015260248201869052915191909216916364a197f39160448083019260209291908290030181600087803b15801561201f57600080fd5b505af1158015612033573d6000803e3d6000fd5b505050506040513d602081101561204957600080fd5b5050604080516001600160a01b03808b168252602082018490528916818301526060810184905290517f719a419f2a63c458272234c889194ae6dad9bf9b24d69cef17912f087ac8a6a89181900360800190a15060019998505050505050505050565b600a546001600160a01b031681565b600080600960009054906101000a90046001600160a01b03166001600160a01b03166314f6c3be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561210c57600080fd5b505afa158015612120573d6000803e3d6000fd5b505050506040513d602081101561213657600080fd5b50516009546040805163e1cf19c160e01b815290519293506000926001600160a01b039092169163e1cf19c191600480820192602092909190829003018186803b15801561218357600080fd5b505afa158015612197573d6000803e3d6000fd5b505050506040513d60208110156121ad57600080fd5b5051600354604080517f98d5fdca00000000000000000000000000000000000000000000000000000000815290519293506000926001600160a01b03909216916398d5fdca91600480820192602092909190829003018186803b15801561221357600080fd5b505afa158015612227573d6000803e3d6000fd5b505050506040513d602081101561223d57600080fd5b505190508215801561224d575081155b1561225e576001935050505061099c565b821580159061226b575081155b1561227d57600019935050505061099c565b600073__$3c31caed800dd799d299e04f3574ae6bfa$__6311923a5685856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156122d657600080fd5b505af41580156122ea573d6000803e3d6000fd5b505050506040513d602081101561230057600080fd5b505160408051631e5ebcd560e11b81526004810185905260248101839052905191925060009173__$3c31caed800dd799d299e04f3574ae6bfa$__91633cbd79aa916044808301926020929190829003018186803b15801561236157600080fd5b505af4158015612375573d6000803e3d6000fd5b505050506040513d602081101561238b57600080fd5b50519550505050505090565b6001546000906001600160a01b03166123ae61099a565b6001600160a01b0316146123f35760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b6009546040805163e9c8395760e01b81526004810185905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b15801561244057600080fd5b505af1158015612454573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038881166004830152602482018890529151919092169350639dc29fac925060448083019260209291908290030181600087803b158015610da257600080fd5b600b5460408051630a7b61df60e11b815290516000926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610a1557600080fd5b6001546000906001600160a01b031661250a61099a565b6001600160a01b03161461254f5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600b5460408051634de7363160e01b81526004810186905290516001600160a01b0390921691634de736319160248082019260009290919082900301818387803b15801561259c57600080fd5b505af11580156125b0573d6000803e3d6000fd5b50506009546040805163e9c8395760e01b81526004810188905290516001600160a01b03909216935063e9c83957925060248082019260009290919082900301818387803b15801561260157600080fd5b505af1158015612615573d6000803e3d6000fd5b5050600954600c54604080516364a197f360e01b81526001600160a01b0392831660048201526024810188905290519190921693506364a197f3925060448083019260209291908290030181600087803b158015610da257600080fd5b6006546001600160a01b031681565b6004546001600160a01b031681565b612698611b40565b6126e9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b03199182168117909255600280549091168217905560408051918252517f0addbd30df51ac41ccaf56a058c50522fbdc092b4e2ec8b829b29ad6716bd0979181900360200190a150565b6001546000906001600160a01b031661275f61099a565b6001600160a01b0316146127a45760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600b546040805163e9c8395760e01b81526004810186905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b1580156127f157600080fd5b505af1158015612805573d6000803e3d6000fd5b505060095460408051634de7363160e01b81526004810188905290516001600160a01b039092169350634de73631925060248082019260009290919082900301818387803b15801561285657600080fd5b505af115801561286a573d6000803e3d6000fd5b5050600b54600a54604080516364a197f360e01b81526001600160a01b0392831660048201526024810188905290519190921693506364a197f3925060448083019260209291908290030181600087803b158015610da257600080fd5b6128cf611b40565b612920576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61292981613968565b50565b600d6020526000908152604090205481565b6001546000906001600160a01b031661295561099a565b6001600160a01b03161461299a5760405162461bcd60e51b8152600401808060200182810382526029815260200180613c186029913960400191505060405180910390fd5b600954604080516364a197f360e01b81526001600160a01b03868116600483015260248201869052915191909216916364a197f39160448083019260209291908290030181600087803b158015610da257600080fd5b6129f8611b40565b612a49576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a80546001600160a01b038084166001600160a01b0319928316811793849055600980549093169390911692909217905560408051918252517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd8829181900360200190a150565b612ab8611b40565b612b09576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600680546001600160a01b0383166001600160a01b03199182168117909255600580549091168217905560408051918252517f373a23842c9bfba0a655597bb13c6493895da5266bd6617086a73f8dcfe2ae709181900360200190a150565b612b70613a9f565b6001600160a01b0382166000908152600d602052604081205490612b938461392f565b90506000612ba085613865565b9050600083821115612bb457506000612bc7565b612bc4848363ffffffff612f8516565b90505b6001600160a01b0386166000818152600d60208181526040808420848155600e5460108452948290206001810195909555600f54909455918152915481519384529183019190915280517fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c99281900390910190a17f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f5055600e54600f54604051808381526020018281526020019250505060405180910390a16005546008546007546040805163e1cf19c160e01b815290516001600160a01b03948516946320c582be948116938c9373__$3c31caed800dd799d299e04f3574ae6bfa$__93630fd95db5938a93169163e1cf19c1916004808301926020929190829003018186803b158015612cf357600080fd5b505afa158015612d07573d6000803e3d6000fd5b505050506040513d6020811015612d1d57600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152516044808301926020929190829003018186803b158015612d6457600080fd5b505af4158015612d78573d6000803e3d6000fd5b505050506040513d6020811015612d8e57600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015612de657600080fd5b505af1158015612dfa573d6000803e3d6000fd5b505050506040513d6020811015612e1057600080fd5b50506007546040805163e9c8395760e01b81526004810184905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b158015612e5f57600080fd5b505af1158015612e73573d6000803e3d6000fd5b505060075460408051631283abc560e21b81526004810189905290516001600160a01b039092169350634a0eaf14925060248082019260009290919082900301818387803b158015612ec457600080fd5b505af1158015612ed8573d6000803e3d6000fd5b5050600754604080516364a197f360e01b81526001600160a01b038b811660048301526024820189905291519190921693506364a197f3925060448083019260209291908290030181600087803b158015612f3257600080fd5b505af1158015612f46573d6000803e3d6000fd5b505050506040513d6020811015612f5c57600080fd5b50612f679050613a9f565b50604080518082019091529081526020810192909252509392505050565b6000612fc783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613a08565b9392505050565b6001600160a01b0382166000908152600d6020526040812054156130235760405162461bcd60e51b8152600401808060200182810382526035815260200180613b776035913960400191505060405180910390fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529151859392909216916370a0823191602480820192602092909190829003018186803b15801561308c57600080fd5b505afa1580156130a0573d6000803e3d6000fd5b505050506040513d60208110156130b657600080fd5b505110156130f55760405162461bcd60e51b815260040180806020018281038252603e815260200180613bda603e913960400191505060405180910390fd5b600554600854604080517fbb997bac0000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301529283166024820152604481018690529051919092169163bb997bac9160648083019260209291908290030181600087803b15801561316f57600080fd5b505af1158015613183573d6000803e3d6000fd5b505050506040513d602081101561319957600080fd5b505060075460408051634de7363160e01b81526004810185905290516001600160a01b0390921691634de736319160248082019260009290919082900301818387803b1580156131e857600080fd5b505af11580156131fc573d6000803e3d6000fd5b5050600754604080517fde10fb780000000000000000000000000000000000000000000000000000000081526004810187905290516001600160a01b03909216935063de10fb78925060248082019260009290919082900301818387803b15801561326657600080fd5b505af115801561327a573d6000803e3d6000fd5b5050506001600160a01b0384166000908152600d60209081526040808320869055600e805460108452938290206001810194909455600f54938490555481519081529182019290925281517f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f505593509081900390910190a1604080516001600160a01b03851681526020810184905281517fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c9929181900390910190a150600192915050565b600082820183811015612fc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6133a0613a9f565b6001600160a01b0382166000908152600d6020526040902054806133f55760405162461bcd60e51b815260040180806020018281038252602e815260200180613bac602e913960400191505060405180910390fd5b60006134008461392f565b9050600061340d85613865565b905060008382111561342157506000613434565b613431848363ffffffff612f8516565b90505b6001600160a01b0386166000818152600d60208181526040808420848155600e5460108452948290206001810195909555600f54909455918152915481519384529183019190915280517fbce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c99281900390910190a17f3ad3a0af1c72b834ff87f9409d7124fd7d9b306560756548477325e6e09f5055600e54600f54604051808381526020018281526020019250505060405180910390a16005546008546007546040805163e1cf19c160e01b815290516001600160a01b03948516946320c582be948116938c9373__$3c31caed800dd799d299e04f3574ae6bfa$__93630fd95db5938a93169163e1cf19c1916004808301926020929190829003018186803b15801561356057600080fd5b505afa158015613574573d6000803e3d6000fd5b505050506040513d602081101561358a57600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152516044808301926020929190829003018186803b1580156135d157600080fd5b505af41580156135e5573d6000803e3d6000fd5b505050506040513d60208110156135fb57600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561365357600080fd5b505af1158015613667573d6000803e3d6000fd5b505050506040513d602081101561367d57600080fd5b50506007546040805163e9c8395760e01b81526004810184905290516001600160a01b039092169163e9c839579160248082019260009290919082900301818387803b1580156136cc57600080fd5b505af11580156136e0573d6000803e3d6000fd5b505060075460408051631283abc560e21b81526004810189905290516001600160a01b039092169350634a0eaf14925060248082019260009290919082900301818387803b15801561373157600080fd5b505af1158015613745573d6000803e3d6000fd5b5050600754604080516364a197f360e01b81523060048201526024810188905290516001600160a01b0390921693506364a197f392506044808201926020929091908290030181600087803b15801561379d57600080fd5b505af11580156137b1573d6000803e3d6000fd5b505050506040513d60208110156137c757600080fd5b5050600254604080517f68647db10000000000000000000000000000000000000000000000000000000081526001600160a01b03898116600483018190526024830152915191909216916368647db191869160448082019260209290919082900301818588803b15801561383a57600080fd5b505af115801561384e573d6000803e3d6000fd5b50505050506040513d6020811015612f5c57600080fd5b6001600160a01b0381166000908152600d60209081526040808320546010909252822060010154600e5483906138a1908363ffffffff612f8516565b905073__$3c31caed800dd799d299e04f3574ae6bfa$__633cbd79aa84836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156138fa57600080fd5b505af415801561390e573d6000803e3d6000fd5b505050506040513d602081101561392457600080fd5b505195945050505050565b6001600160a01b0381166000908152600d60209081526040808320546010909252822054600f5483906138a1908363ffffffff612f8516565b6001600160a01b0381166139ad5760405162461bcd60e51b8152600401808060200182810382526026815260200180613af96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115613a975760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a5c578181015183820152602001613a44565b50505050905090810190601f168015613a895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6040518060400160405280600290602082028038833950919291505056fe506f6f6c4d616e616765723a2043616c6c6572206973206e6569746865722053746162696c697479506f6f6c206e6f7220416374697665506f6f6c4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373506f6f6c4d616e616765723a207472616e73616374696f6e20746f20616374697665506f6f6c207265766572746564506f6f6c4d616e616765723a206465706f7369746f7220686173206e6f74206f766572737461796564506f6f6c4d616e616765723a207573657220616c72656164792068617320612053746162696c697479506f6f6c206465706f736974506f6f6c4d616e616765723a2055736572206d75737420686176652061206e6f6e2d7a65726f206465706f736974506f6f6c4d616e616765723a20757365722068617320696e73756666696369656e7420434c562062616c616e636520746f206d616b65206465706f736974506f6f6c4d616e616765723a2043616c6c6572206973206e6f7420746865204344504d616e61676572506f6f6c4d616e616765723a2054617267657420434450206d757374206265205f6d736753656e64657228292c206f74686572776973652063616c6c6572206d757374206265204344504d616e61676572a265627a7a72315820b3fdc5af0b589904c0b93bb010824aff8cd1bc394afafb8cea884cd22fcd271064736f6c634300050f0032", + "linkReferences": { + "contracts/DeciMath.sol": { + "DeciMath": [ + { + "length": 20, + "start": 4121 + }, + { + "length": 20, + "start": 4288 + }, + { + "length": 20, + "start": 4427 + }, + { + "length": 20, + "start": 4566 + }, + { + "length": 20, + "start": 4748 + }, + { + "length": 20, + "start": 7707 + }, + { + "length": 20, + "start": 7874 + }, + { + "length": 20, + "start": 9006 + }, + { + "length": 20, + "start": 9173 + }, + { + "length": 20, + "start": 11613 + }, + { + "length": 20, + "start": 13770 + }, + { + "length": 20, + "start": 14674 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/DeciMath.sol": { + "DeciMath": [ + { + "length": 20, + "start": 3948 + }, + { + "length": 20, + "start": 4115 + }, + { + "length": 20, + "start": 4254 + }, + { + "length": 20, + "start": 4393 + }, + { + "length": 20, + "start": 4575 + }, + { + "length": 20, + "start": 7534 + }, + { + "length": 20, + "start": 7701 + }, + { + "length": 20, + "start": 8833 + }, + { + "length": 20, + "start": 9000 + }, + { + "length": 20, + "start": 11440 + }, + { + "length": 20, + "start": 13597 + }, + { + "length": 20, + "start": 14501 + } + ] + } + } +} diff --git a/client/src/contracts/PriceFeed.json b/client/src/contracts/PriceFeed.json new file mode 100644 index 000000000..87aa9cd79 --- /dev/null +++ b/client/src/contracts/PriceFeed.json @@ -0,0 +1,180 @@ +{ + "contractName": "PriceFeed", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "CDPManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newPrice", + "type": "uint256" + } + ], + "name": "PriceUpdated", + "type": "event" + }, + { + "constant": false, + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "price", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_cdpManagerAddress", + "type": "address" + } + ], + "name": "setCDPManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "name": "setPrice", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052680ad78ebc5ac620000060015534801561001d57600080fd5b5060006100316001600160e01b0361008016565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610084565b3390565b610649806100936000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806398d5fdca1161005b57806398d5fdca146100f4578063a035b1fe1461010e578063ef6151a614610116578063f2fde38b1461013c57610088565b8063715018a61461008d5780638da5cb5b146100975780638f32d59b146100bb57806391b7f5ed146100d7575b600080fd5b610095610162565b005b61009f610212565b604080516001600160a01b039092168252519081900360200190f35b6100c3610221565b604080519115158252519081900360200190f35b6100c3600480360360208110156100ed57600080fd5b5035610245565b6100fc610384565b60408051918252519081900360200190f35b6100fc61038a565b6100956004803603602081101561012c57600080fd5b50356001600160a01b0316610390565b6100956004803603602081101561015257600080fd5b50356001600160a01b0316610455565b61016a610221565b6101bb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b03166102366104ba565b6001600160a01b031614905090565b600061024f610221565b6102a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6102b882670de0b6b3a764000063ffffffff6104be16565b600155600354604080517ffee83f1400000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169163fee83f14916004808201926020929091908290030181600087803b15801561031b57600080fd5b505af115801561032f573d6000803e3d6000fd5b505050506040513d602081101561034557600080fd5b505060015460408051918252517f66cbca4f3c64fecf1dcb9ce094abcf7f68c3450a1d4e3a8e917dd621edb4ebe09181900360200190a1506001919050565b60015490565b60015481565b610398610221565b6103e9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff199182168117909255600380549091168217905560408051918252517f0addbd30df51ac41ccaf56a058c50522fbdc092b4e2ec8b829b29ad6716bd0979181900360200190a150565b61045d610221565b6104ae576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6104b781610520565b50565b3390565b6000826104cd5750600061051a565b828202828482816104da57fe5b04146105175760405162461bcd60e51b81526004018080602001828103825260218152602001806105f46021913960400191505060405180910390fd5b90505b92915050565b6001600160a01b0381166105655760405162461bcd60e51b81526004018080602001828103825260268152602001806105ce6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582004d86d5b35c25cd095cf4fa8e7607ff494a109a26cbd500809594ff089684fe164736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806398d5fdca1161005b57806398d5fdca146100f4578063a035b1fe1461010e578063ef6151a614610116578063f2fde38b1461013c57610088565b8063715018a61461008d5780638da5cb5b146100975780638f32d59b146100bb57806391b7f5ed146100d7575b600080fd5b610095610162565b005b61009f610212565b604080516001600160a01b039092168252519081900360200190f35b6100c3610221565b604080519115158252519081900360200190f35b6100c3600480360360208110156100ed57600080fd5b5035610245565b6100fc610384565b60408051918252519081900360200190f35b6100fc61038a565b6100956004803603602081101561012c57600080fd5b50356001600160a01b0316610390565b6100956004803603602081101561015257600080fd5b50356001600160a01b0316610455565b61016a610221565b6101bb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031690565b600080546001600160a01b03166102366104ba565b6001600160a01b031614905090565b600061024f610221565b6102a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6102b882670de0b6b3a764000063ffffffff6104be16565b600155600354604080517ffee83f1400000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169163fee83f14916004808201926020929091908290030181600087803b15801561031b57600080fd5b505af115801561032f573d6000803e3d6000fd5b505050506040513d602081101561034557600080fd5b505060015460408051918252517f66cbca4f3c64fecf1dcb9ce094abcf7f68c3450a1d4e3a8e917dd621edb4ebe09181900360200190a1506001919050565b60015490565b60015481565b610398610221565b6103e9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff199182168117909255600380549091168217905560408051918252517f0addbd30df51ac41ccaf56a058c50522fbdc092b4e2ec8b829b29ad6716bd0979181900360200190a150565b61045d610221565b6104ae576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6104b781610520565b50565b3390565b6000826104cd5750600061051a565b828202828482816104da57fe5b04146105175760405162461bcd60e51b81526004018080602001828103825260218152602001806105f46021913960400191505060405180910390fd5b90505b92915050565b6001600160a01b0381166105655760405162461bcd60e51b81526004018080602001828103825260268152602001806105ce6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582004d86d5b35c25cd095cf4fa8e7607ff494a109a26cbd500809594ff089684fe164736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/SafeMath.json b/client/src/contracts/SafeMath.json new file mode 100644 index 000000000..3f47515fe --- /dev/null +++ b/client/src/contracts/SafeMath.json @@ -0,0 +1,8 @@ +{ + "contractName": "SafeMath", + "abi": [], + "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582078c05ddc344ef16e9421e32915c5855609c141b4c5fdb26279dcc05f86d0e29a64736f6c634300050f0032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582078c05ddc344ef16e9421e32915c5855609c141b4c5fdb26279dcc05f86d0e29a64736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/SortedCDPs.json b/client/src/contracts/SortedCDPs.json new file mode 100644 index 000000000..2912dcef3 --- /dev/null +++ b/client/src/contracts/SortedCDPs.json @@ -0,0 +1,420 @@ +{ + "contractName": "SortedCDPs", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCDPlManagerAddress", + "type": "address" + } + ], + "name": "CDPManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "contains", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "findInsertPosition", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFirst", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLast", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getMaxSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "getNext", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "getPrev", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "insert", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEmpty", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isFull", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_newICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "reInsert", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_id", + "type": "address" + } + ], + "name": "remove", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_CDPManagerAddress", + "type": "address" + } + ], + "name": "setCDPManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_size", + "type": "uint256" + } + ], + "name": "setMaxSize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "_ICR", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_prevId", + "type": "address" + }, + { + "internalType": "address", + "name": "_nextId", + "type": "address" + } + ], + "name": "validInsertPosition", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b6113fc806100796000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063715018a6116100cd578063b72703ac11610081578063c254f69611610066578063c254f696146103b0578063de8fa431146103d6578063f2fde38b146103de5761016c565b8063b72703ac14610382578063babd3d9a146103a85761016c565b8063816e117c116100b2578063816e117c146103555780638da5cb5b146103725780638f32d59b1461037a5761016c565b8063715018a614610327578063765e01591461032f5761016c565b806346f7cf87116101245780635dbe47e8116101095780635dbe47e8146102df57806363e1d57c14610305578063681fe70c1461031f5761016c565b806346f7cf871461029b5780634d622831146102d75761016c565b80632be21260116101555780632be21260146101bd5780633fce12d5146101f9578063416980dc146102415761016c565b80631e2231431461017157806329092d0e14610195575b600080fd5b610179610404565b604080516001600160a01b039092168252519081900360200190f35b6101bb600480360360208110156101ab57600080fd5b50356001600160a01b0316610413565b005b6101bb600480360360808110156101d357600080fd5b506001600160a01b038135811691602081013591604082013581169160600135166105f1565b61022d6004803603606081101561020f57600080fd5b508035906001600160a01b0360208201358116916040013516610624565b604080519115158252519081900360200190f35b6102756004803603606081101561025757600080fd5b508035906001600160a01b03602082013581169160400135166108b0565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b6101bb600480360360808110156102b157600080fd5b506001600160a01b03813581169160208101359160408201358116916060013516610a85565b610179610cce565b61022d600480360360208110156102f557600080fd5b50356001600160a01b0316610cdd565b61030d610cfb565b60408051918252519081900360200190f35b61022d610d01565b6101bb610d08565b6101796004803603602081101561034557600080fd5b50356001600160a01b0316610dab565b6101bb6004803603602081101561036b57600080fd5b5035610dce565b610179610de1565b61022d610df0565b6101796004803603602081101561039857600080fd5b50356001600160a01b0316610e14565b61022d610e35565b6101bb600480360360208110156103c657600080fd5b50356001600160a01b0316610e3f565b61030d610ef7565b6101bb600480360360208110156103f457600080fd5b50356001600160a01b0316610efd565b6003546001600160a01b031690565b61041c81610cdd565b61042557600080fd5b6006546001101561056b576003546001600160a01b0382811691161415610494576001600160a01b03818116600090815260076020526040808220546003805461010090920485166001600160a01b031992831617908190559093168252902060010180549091169055610566565b6004546001600160a01b03828116911614156104fb576001600160a01b0380821660009081526007602052604080822060010154600480546001600160a01b03191691851691909117908190559092168152208054610100600160a81b0319169055610566565b6001600160a01b038082166000908152600760205260408082208054600180830180548716865284862080546101009485900489168502610100600160a81b03199091161790555492549190910485168452919092200180546001600160a01b031916919092161790555b610588565b600380546001600160a01b03199081169091556004805490911690555b6001600160a01b038116600090815260076020526040902080547fffffffffffffffffffffff000000000000000000000000000000000000000000168155600190810180546001600160a01b03191690556006546105eb9163ffffffff610f6216565b60065550565b6105fa84610cdd565b61060357600080fd5b61060c84610413565b821561061e5761061e84848484610a85565b50505050565b60006001600160a01b03831615801561064457506001600160a01b038216155b1561065857610651610d01565b90506108a9565b6001600160a01b038316610701576003546001600160a01b0383811691161480156106515750600154604080516327fb7d8960e01b81526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156106cb57600080fd5b505afa1580156106df573d6000803e3d6000fd5b505050506040513d60208110156106f557600080fd5b505184101590506108a9565b6001600160a01b0382166107aa576004546001600160a01b0384811691161480156106515750600154604080516327fb7d8960e01b81526001600160a01b038681166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561077457600080fd5b505afa158015610788573d6000803e3d6000fd5b505050506040513d602081101561079e57600080fd5b505184111590506108a9565b6001600160a01b03838116600090815260076020526040902054610100900481169083161480156108555750600154604080516327fb7d8960e01b81526001600160a01b0386811660048301529151879392909216916327fb7d8991602480820192602092909190829003018186803b15801561082657600080fd5b505afa15801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b505110155b80156106515750600154604080516327fb7d8960e01b81526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156106cb57600080fd5b9392505050565b60008083836001600160a01b0382161561095a576108cd82610cdd565b15806109505750600154604080516327fb7d8960e01b81526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561092157600080fd5b505afa158015610935573d6000803e3d6000fd5b505050506040513d602081101561094b57600080fd5b505187115b1561095a57600091505b6001600160a01b038116156109fe5761097281610cdd565b15806109f55750600154604080516327fb7d8960e01b81526001600160a01b038481166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b505187105b156109fe575060005b6001600160a01b038216158015610a1c57506001600160a01b038116155b15610a4357600354610a389088906001600160a01b0316610fa4565b935093505050610a7d565b6001600160a01b038216610a5b57610a3887826110dc565b6001600160a01b038116610a7357610a388783610fa4565b610a388783610fa4565b935093915050565b610a8d610e35565b15610a9757600080fd5b610aa084610cdd565b15610aaa57600080fd5b6001600160a01b038416610abd57600080fd5b60008311610aca57600080fd5b8181610ad7858383610624565b610aec57610ae68583836108b0565b90925090505b6001600160a01b038087166000908152600760205260409020805460ff191660011790558216158015610b2657506001600160a01b038116155b15610b5b57600380546001600160a01b0388166001600160a01b03199182168117909255600480549091169091179055610caf565b6001600160a01b038216610bcf57600380546001600160a01b03888116600081815260076020526040808220805495851661010002610100600160a81b0319909616959095179094558454909216825291902060010180546001600160a01b03199081168317909155825416179055610caf565b6001600160a01b038116610c3f57600480546001600160a01b0388811660008181526007602052604080822060010180549585166001600160a01b031996871617905585549093168152919091208054610100600160a81b03191661010083021790558254909116179055610caf565b6001600160a01b038087166000818152600760205260408082208054858716610100818102610100600160a81b031993841617845560019384018054988b166001600160a01b0319998a168117909155865284862080549188029190931617909155835291200180549092161790555b600654610cc390600163ffffffff61120c16565b600655505050505050565b6004546001600160a01b031690565b6001600160a01b031660009081526007602052604090205460ff1690565b60055490565b6006541590565b610d10610df0565b610d61576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b0390811660009081526007602052604090205461010090041690565b6005548111610ddc57600080fd5b600555565b6000546001600160a01b031690565b600080546001600160a01b0316610e05611266565b6001600160a01b031614905090565b6001600160a01b039081166000908152600760205260409020600101541690565b6005546006541490565b610e47610df0565b610e98576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b03199182168117909255600180549091168217905560408051918252517f0addbd30df51ac41ccaf56a058c50522fbdc092b4e2ec8b829b29ad6716bd0979181900360200190a150565b60065490565b610f05610df0565b610f56576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f5f8161126a565b50565b60006108a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061130a565b60035460009081906001600160a01b03848116911614801561103e5750600154604080516327fb7d8960e01b81526001600160a01b038681166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561100e57600080fd5b505afa158015611022573d6000803e3d6000fd5b505050506040513d602081101561103857600080fd5b50518410155b1561104e575060009050816110d5565b6001600160a01b038084166000908152600760205260409020548491610100909104165b6001600160a01b038216158015906110925750611090868383610624565b155b156110cf57506001600160a01b03908116600090815260076020526040808220546101009081900484168084529190922054909291900416611072565b90925090505b9250929050565b60045460009081906001600160a01b0384811691161480156111765750600154604080516327fb7d8960e01b81526001600160a01b038681166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561114657600080fd5b505afa15801561115a573d6000803e3d6000fd5b505050506040513d602081101561117057600080fd5b50518411155b15611186575081905060006110d5565b6001600160a01b038084166000908152600760205260409020600101548491165b6001600160a01b038216158015906111c757506111c5868284610624565b155b1561120257506001600160a01b03908116600090815260076020526040808220600190810154841680845291909220909101549091166111a7565b9590945092505050565b6000828201838110156108a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6001600160a01b0381166112af5760405162461bcd60e51b81526004018080602001828103825260268152602001806113a26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081848411156113995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561135e578181015183820152602001611346565b50505050905090810190601f16801561138b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820fdb08ba2e9a7805ded028d84ee5e6a5cc8122a4e0ff838a1221bc74b1d8fdeb664736f6c634300050f0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063715018a6116100cd578063b72703ac11610081578063c254f69611610066578063c254f696146103b0578063de8fa431146103d6578063f2fde38b146103de5761016c565b8063b72703ac14610382578063babd3d9a146103a85761016c565b8063816e117c116100b2578063816e117c146103555780638da5cb5b146103725780638f32d59b1461037a5761016c565b8063715018a614610327578063765e01591461032f5761016c565b806346f7cf87116101245780635dbe47e8116101095780635dbe47e8146102df57806363e1d57c14610305578063681fe70c1461031f5761016c565b806346f7cf871461029b5780634d622831146102d75761016c565b80632be21260116101555780632be21260146101bd5780633fce12d5146101f9578063416980dc146102415761016c565b80631e2231431461017157806329092d0e14610195575b600080fd5b610179610404565b604080516001600160a01b039092168252519081900360200190f35b6101bb600480360360208110156101ab57600080fd5b50356001600160a01b0316610413565b005b6101bb600480360360808110156101d357600080fd5b506001600160a01b038135811691602081013591604082013581169160600135166105f1565b61022d6004803603606081101561020f57600080fd5b508035906001600160a01b0360208201358116916040013516610624565b604080519115158252519081900360200190f35b6102756004803603606081101561025757600080fd5b508035906001600160a01b03602082013581169160400135166108b0565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b6101bb600480360360808110156102b157600080fd5b506001600160a01b03813581169160208101359160408201358116916060013516610a85565b610179610cce565b61022d600480360360208110156102f557600080fd5b50356001600160a01b0316610cdd565b61030d610cfb565b60408051918252519081900360200190f35b61022d610d01565b6101bb610d08565b6101796004803603602081101561034557600080fd5b50356001600160a01b0316610dab565b6101bb6004803603602081101561036b57600080fd5b5035610dce565b610179610de1565b61022d610df0565b6101796004803603602081101561039857600080fd5b50356001600160a01b0316610e14565b61022d610e35565b6101bb600480360360208110156103c657600080fd5b50356001600160a01b0316610e3f565b61030d610ef7565b6101bb600480360360208110156103f457600080fd5b50356001600160a01b0316610efd565b6003546001600160a01b031690565b61041c81610cdd565b61042557600080fd5b6006546001101561056b576003546001600160a01b0382811691161415610494576001600160a01b03818116600090815260076020526040808220546003805461010090920485166001600160a01b031992831617908190559093168252902060010180549091169055610566565b6004546001600160a01b03828116911614156104fb576001600160a01b0380821660009081526007602052604080822060010154600480546001600160a01b03191691851691909117908190559092168152208054610100600160a81b0319169055610566565b6001600160a01b038082166000908152600760205260408082208054600180830180548716865284862080546101009485900489168502610100600160a81b03199091161790555492549190910485168452919092200180546001600160a01b031916919092161790555b610588565b600380546001600160a01b03199081169091556004805490911690555b6001600160a01b038116600090815260076020526040902080547fffffffffffffffffffffff000000000000000000000000000000000000000000168155600190810180546001600160a01b03191690556006546105eb9163ffffffff610f6216565b60065550565b6105fa84610cdd565b61060357600080fd5b61060c84610413565b821561061e5761061e84848484610a85565b50505050565b60006001600160a01b03831615801561064457506001600160a01b038216155b1561065857610651610d01565b90506108a9565b6001600160a01b038316610701576003546001600160a01b0383811691161480156106515750600154604080516327fb7d8960e01b81526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156106cb57600080fd5b505afa1580156106df573d6000803e3d6000fd5b505050506040513d60208110156106f557600080fd5b505184101590506108a9565b6001600160a01b0382166107aa576004546001600160a01b0384811691161480156106515750600154604080516327fb7d8960e01b81526001600160a01b038681166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561077457600080fd5b505afa158015610788573d6000803e3d6000fd5b505050506040513d602081101561079e57600080fd5b505184111590506108a9565b6001600160a01b03838116600090815260076020526040902054610100900481169083161480156108555750600154604080516327fb7d8960e01b81526001600160a01b0386811660048301529151879392909216916327fb7d8991602480820192602092909190829003018186803b15801561082657600080fd5b505afa15801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b505110155b80156106515750600154604080516327fb7d8960e01b81526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156106cb57600080fd5b9392505050565b60008083836001600160a01b0382161561095a576108cd82610cdd565b15806109505750600154604080516327fb7d8960e01b81526001600160a01b038581166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561092157600080fd5b505afa158015610935573d6000803e3d6000fd5b505050506040513d602081101561094b57600080fd5b505187115b1561095a57600091505b6001600160a01b038116156109fe5761097281610cdd565b15806109f55750600154604080516327fb7d8960e01b81526001600160a01b038481166004830152915191909216916327fb7d89916024808301926020929190829003018186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b505187105b156109fe575060005b6001600160a01b038216158015610a1c57506001600160a01b038116155b15610a4357600354610a389088906001600160a01b0316610fa4565b935093505050610a7d565b6001600160a01b038216610a5b57610a3887826110dc565b6001600160a01b038116610a7357610a388783610fa4565b610a388783610fa4565b935093915050565b610a8d610e35565b15610a9757600080fd5b610aa084610cdd565b15610aaa57600080fd5b6001600160a01b038416610abd57600080fd5b60008311610aca57600080fd5b8181610ad7858383610624565b610aec57610ae68583836108b0565b90925090505b6001600160a01b038087166000908152600760205260409020805460ff191660011790558216158015610b2657506001600160a01b038116155b15610b5b57600380546001600160a01b0388166001600160a01b03199182168117909255600480549091169091179055610caf565b6001600160a01b038216610bcf57600380546001600160a01b03888116600081815260076020526040808220805495851661010002610100600160a81b0319909616959095179094558454909216825291902060010180546001600160a01b03199081168317909155825416179055610caf565b6001600160a01b038116610c3f57600480546001600160a01b0388811660008181526007602052604080822060010180549585166001600160a01b031996871617905585549093168152919091208054610100600160a81b03191661010083021790558254909116179055610caf565b6001600160a01b038087166000818152600760205260408082208054858716610100818102610100600160a81b031993841617845560019384018054988b166001600160a01b0319998a168117909155865284862080549188029190931617909155835291200180549092161790555b600654610cc390600163ffffffff61120c16565b600655505050505050565b6004546001600160a01b031690565b6001600160a01b031660009081526007602052604090205460ff1690565b60055490565b6006541590565b610d10610df0565b610d61576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b0390811660009081526007602052604090205461010090041690565b6005548111610ddc57600080fd5b600555565b6000546001600160a01b031690565b600080546001600160a01b0316610e05611266565b6001600160a01b031614905090565b6001600160a01b039081166000908152600760205260409020600101541690565b6005546006541490565b610e47610df0565b610e98576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b03199182168117909255600180549091168217905560408051918252517f0addbd30df51ac41ccaf56a058c50522fbdc092b4e2ec8b829b29ad6716bd0979181900360200190a150565b60065490565b610f05610df0565b610f56576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f5f8161126a565b50565b60006108a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061130a565b60035460009081906001600160a01b03848116911614801561103e5750600154604080516327fb7d8960e01b81526001600160a01b038681166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561100e57600080fd5b505afa158015611022573d6000803e3d6000fd5b505050506040513d602081101561103857600080fd5b50518410155b1561104e575060009050816110d5565b6001600160a01b038084166000908152600760205260409020548491610100909104165b6001600160a01b038216158015906110925750611090868383610624565b155b156110cf57506001600160a01b03908116600090815260076020526040808220546101009081900484168084529190922054909291900416611072565b90925090505b9250929050565b60045460009081906001600160a01b0384811691161480156111765750600154604080516327fb7d8960e01b81526001600160a01b038681166004830152915191909216916327fb7d89916024808301926020929190829003018186803b15801561114657600080fd5b505afa15801561115a573d6000803e3d6000fd5b505050506040513d602081101561117057600080fd5b50518411155b15611186575081905060006110d5565b6001600160a01b038084166000908152600760205260409020600101548491165b6001600160a01b038216158015906111c757506111c5868284610624565b155b1561120257506001600160a01b03908116600090815260076020526040808220600190810154841680845291909220909101549091166111a7565b9590945092505050565b6000828201838110156108a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6001600160a01b0381166112af5760405162461bcd60e51b81526004018080602001828103825260268152602001806113a26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081848411156113995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561135e578181015183820152602001611346565b50505050905090810190601f16801561138b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820fdb08ba2e9a7805ded028d84ee5e6a5cc8122a4e0ff838a1221bc74b1d8fdeb664736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/StabilityPool.json b/client/src/contracts/StabilityPool.json new file mode 100644 index 000000000..4222289e6 --- /dev/null +++ b/client/src/contracts/StabilityPool.json @@ -0,0 +1,471 @@ +{ + "contractName": "StabilityPool", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "CLVBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "ETHBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "EtherSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newAddress", + "type": "address" + } + ], + "name": "PoolManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newStabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "CLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "activePoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "decreaseTotalCLVDeposits", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "defaultPoolAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCLV", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getRawETHBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTotalCLVDeposits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseCLV", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "increaseTotalCLVDeposits", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolManagerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "sendETH", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + } + ], + "name": "setActivePoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + } + ], + "name": "setDefaultPoolAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_poolManagerAddress", + "type": "address" + } + ], + "name": "setPoolManagerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalCLVDeposits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b0361007316565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610077565b3390565b610f18806100866000396000f3fe6080604052600436106101755760003560e01c8063aac1846f116100cb578063ca8fff971161007f578063e6a13f3011610059578063e6a13f30146104c0578063e9c83957146104d5578063f2fde38b146104ff57610175565b8063ca8fff971461046c578063de10fb7814610481578063e1cf19c1146104ab57610175565b8063b08bc722116100b0578063b08bc7221461040f578063b739777614610424578063c458bffb1461043957610175565b8063aac1846f146103c7578063ab95b1a2146103dc57610175565b8063664162191161012d5780638da5cb5b116101075780638da5cb5b1461034e5780638f32d59b1461037f5780639822339d1461039457610175565b8063664162191461030f578063715018a6146103245780638322fff21461033957610175565b80634a0eaf141161015e5780634a0eaf141461026c5780634de736311461029857806364a197f3146102c257610175565b80630617edb41461023057806314f6c3be14610257575b6001546001600160a01b0316610189610532565b6001600160a01b031614806101b857506003546001600160a01b03166101ad610532565b6001600160a01b0316145b806101dd57506002546001600160a01b03166101d2610532565b6001600160a01b0316145b6102185760405162461bcd60e51b8152600401808060200182810382526038815260200180610e7b6038913960400191505060405180910390fd5b60045461022b903463ffffffff61053616565b600455005b34801561023c57600080fd5b50610245610597565b60408051918252519081900360200190f35b34801561026357600080fd5b5061024561059b565b34801561027857600080fd5b506102966004803603602081101561028f57600080fd5b50356105a1565b005b3480156102a457600080fd5b50610296600480360360208110156102bb57600080fd5b5035610613565b3480156102ce57600080fd5b506102fb600480360360408110156102e557600080fd5b506001600160a01b0381351690602001356106b9565b604080519115158252519081900360200190f35b34801561031b57600080fd5b50610245610841565b34801561033057600080fd5b50610296610847565b34801561034557600080fd5b506102456108ea565b34801561035a57600080fd5b506103636108f0565b604080516001600160a01b039092168252519081900360200190f35b34801561038b57600080fd5b506102fb6108ff565b3480156103a057600080fd5b50610296600480360360208110156103b757600080fd5b50356001600160a01b0316610923565b3480156103d357600080fd5b506103636109d6565b3480156103e857600080fd5b50610296600480360360208110156103ff57600080fd5b50356001600160a01b03166109e5565b34801561041b57600080fd5b50610363610a98565b34801561043057600080fd5b50610245610aa7565b34801561044557600080fd5b506102966004803603602081101561045c57600080fd5b50356001600160a01b0316610aad565b34801561047857600080fd5b50610245610b60565b34801561048d57600080fd5b50610296600480360360208110156104a457600080fd5b5035610b66565b3480156104b757600080fd5b50610245610bd2565b3480156104cc57600080fd5b50610363610bd8565b3480156104e157600080fd5b50610296600480360360208110156104f857600080fd5b5035610be7565b34801561050b57600080fd5b506102966004803603602081101561052257600080fd5b50356001600160a01b0316610c53565b3390565b600082820183811015610590576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b4790565b60045490565b6001546001600160a01b03166105b5610532565b6001600160a01b0316146105fa5760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60065461060d908263ffffffff610cb816565b60065550565b6001546001600160a01b0316610627610532565b6001600160a01b03161461066c5760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60055461067f908263ffffffff61053616565b600581905560408051918252517f2345ee7f5f8837fcb9b95ec4fe3db62d9d05d7830cab26fe632f036008a935d89181900360200190a150565b6001546000906001600160a01b03166106d0610532565b6001600160a01b0316146107155760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b600454610728908363ffffffff610cb816565b6004556040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610776576040519150601f19603f3d011682016040523d82523d6000602084013e61077b565b606091505b50909150506001811515146107c15760405162461bcd60e51b8152600401808060200182810382526023815260200180610e586023913960400191505060405180910390fd5b60045460408051918252517f7ab2bdf6e6d108cd138a8f6436723e8dfd0cb22727fe608e40b5adfb8357f1b99181900360200190a1604080516001600160a01b03861681526020810185905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a19392505050565b60055481565b61084f6108ff565b6108a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b6000546001600160a01b031690565b600080546001600160a01b0316610914610532565b6001600160a01b031614905090565b61092b6108ff565b61097c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b916020908290030190a150565b6002546001600160a01b031681565b6109ed6108ff565b610a3e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f8850916020908290030190a150565b6003546001600160a01b031681565b60065490565b610ab56108ff565b610b06576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd882916020908290030190a150565b60065481565b6001546001600160a01b0316610b7a610532565b6001600160a01b031614610bbf5760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60065461060d908263ffffffff61053616565b60055490565b6001546001600160a01b031681565b6001546001600160a01b0316610bfb610532565b6001600160a01b031614610c405760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60055461067f908263ffffffff610cb816565b610c5b6108ff565b610cac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610cb581610cfa565b50565b600061059083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d9a565b6001600160a01b038116610d3f5760405162461bcd60e51b8152600401808060200182810382526026815260200180610e326026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610e295760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dee578181015183820152602001610dd6565b50505050905090810190601f168015610e1b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737353746162696c697479506f6f6c3a207472616e73616374696f6e20726576657274656453746162696c697479506f6f6c3a206f6e6c792072656365697665204554482066726f6d20506f6f6c206f7220506f6f6c4d616e6167657253746162696c697479506f6f6c3a204f6e6c792074686520706f6f6c4d616e6167657220697320617574686f72697a6564a265627a7a72315820066046536fd85cde35bded970bf0e05a3e45ac163d645bf4bc3da8b66ede11c864736f6c634300050f0032", + "deployedBytecode": "0x6080604052600436106101755760003560e01c8063aac1846f116100cb578063ca8fff971161007f578063e6a13f3011610059578063e6a13f30146104c0578063e9c83957146104d5578063f2fde38b146104ff57610175565b8063ca8fff971461046c578063de10fb7814610481578063e1cf19c1146104ab57610175565b8063b08bc722116100b0578063b08bc7221461040f578063b739777614610424578063c458bffb1461043957610175565b8063aac1846f146103c7578063ab95b1a2146103dc57610175565b8063664162191161012d5780638da5cb5b116101075780638da5cb5b1461034e5780638f32d59b1461037f5780639822339d1461039457610175565b8063664162191461030f578063715018a6146103245780638322fff21461033957610175565b80634a0eaf141161015e5780634a0eaf141461026c5780634de736311461029857806364a197f3146102c257610175565b80630617edb41461023057806314f6c3be14610257575b6001546001600160a01b0316610189610532565b6001600160a01b031614806101b857506003546001600160a01b03166101ad610532565b6001600160a01b0316145b806101dd57506002546001600160a01b03166101d2610532565b6001600160a01b0316145b6102185760405162461bcd60e51b8152600401808060200182810382526038815260200180610e7b6038913960400191505060405180910390fd5b60045461022b903463ffffffff61053616565b600455005b34801561023c57600080fd5b50610245610597565b60408051918252519081900360200190f35b34801561026357600080fd5b5061024561059b565b34801561027857600080fd5b506102966004803603602081101561028f57600080fd5b50356105a1565b005b3480156102a457600080fd5b50610296600480360360208110156102bb57600080fd5b5035610613565b3480156102ce57600080fd5b506102fb600480360360408110156102e557600080fd5b506001600160a01b0381351690602001356106b9565b604080519115158252519081900360200190f35b34801561031b57600080fd5b50610245610841565b34801561033057600080fd5b50610296610847565b34801561034557600080fd5b506102456108ea565b34801561035a57600080fd5b506103636108f0565b604080516001600160a01b039092168252519081900360200190f35b34801561038b57600080fd5b506102fb6108ff565b3480156103a057600080fd5b50610296600480360360208110156103b757600080fd5b50356001600160a01b0316610923565b3480156103d357600080fd5b506103636109d6565b3480156103e857600080fd5b50610296600480360360208110156103ff57600080fd5b50356001600160a01b03166109e5565b34801561041b57600080fd5b50610363610a98565b34801561043057600080fd5b50610245610aa7565b34801561044557600080fd5b506102966004803603602081101561045c57600080fd5b50356001600160a01b0316610aad565b34801561047857600080fd5b50610245610b60565b34801561048d57600080fd5b50610296600480360360208110156104a457600080fd5b5035610b66565b3480156104b757600080fd5b50610245610bd2565b3480156104cc57600080fd5b50610363610bd8565b3480156104e157600080fd5b50610296600480360360208110156104f857600080fd5b5035610be7565b34801561050b57600080fd5b506102966004803603602081101561052257600080fd5b50356001600160a01b0316610c53565b3390565b600082820183811015610590576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b4790565b60045490565b6001546001600160a01b03166105b5610532565b6001600160a01b0316146105fa5760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60065461060d908263ffffffff610cb816565b60065550565b6001546001600160a01b0316610627610532565b6001600160a01b03161461066c5760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60055461067f908263ffffffff61053616565b600581905560408051918252517f2345ee7f5f8837fcb9b95ec4fe3db62d9d05d7830cab26fe632f036008a935d89181900360200190a150565b6001546000906001600160a01b03166106d0610532565b6001600160a01b0316146107155760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b600454610728908363ffffffff610cb816565b6004556040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610776576040519150601f19603f3d011682016040523d82523d6000602084013e61077b565b606091505b50909150506001811515146107c15760405162461bcd60e51b8152600401808060200182810382526023815260200180610e586023913960400191505060405180910390fd5b60045460408051918252517f7ab2bdf6e6d108cd138a8f6436723e8dfd0cb22727fe608e40b5adfb8357f1b99181900360200190a1604080516001600160a01b03861681526020810185905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a19392505050565b60055481565b61084f6108ff565b6108a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b6000546001600160a01b031690565b600080546001600160a01b0316610914610532565b6001600160a01b031614905090565b61092b6108ff565b61097c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b916020908290030190a150565b6002546001600160a01b031681565b6109ed6108ff565b610a3e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4d839b74477afe774fbb734df87db25e56c0427973aac588bb3ce7ce937f8850916020908290030190a150565b6003546001600160a01b031681565b60065490565b610ab56108ff565b610b06576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd882916020908290030190a150565b60065481565b6001546001600160a01b0316610b7a610532565b6001600160a01b031614610bbf5760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60065461060d908263ffffffff61053616565b60055490565b6001546001600160a01b031681565b6001546001600160a01b0316610bfb610532565b6001600160a01b031614610c405760405162461bcd60e51b8152600401808060200182810382526031815260200180610eb36031913960400191505060405180910390fd5b60055461067f908263ffffffff610cb816565b610c5b6108ff565b610cac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610cb581610cfa565b50565b600061059083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d9a565b6001600160a01b038116610d3f5760405162461bcd60e51b8152600401808060200182810382526026815260200180610e326026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610e295760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dee578181015183820152602001610dd6565b50505050905090810190601f168015610e1b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737353746162696c697479506f6f6c3a207472616e73616374696f6e20726576657274656453746162696c697479506f6f6c3a206f6e6c792072656365697665204554482066726f6d20506f6f6c206f7220506f6f6c4d616e6167657253746162696c697479506f6f6c3a204f6e6c792074686520706f6f6c4d616e6167657220697320617574686f72697a6564a265627a7a72315820066046536fd85cde35bded970bf0e05a3e45ac163d645bf4bc3da8b66ede11c864736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/client/src/contracts/console.json b/client/src/contracts/console.json new file mode 100644 index 000000000..e6478ee46 --- /dev/null +++ b/client/src/contracts/console.json @@ -0,0 +1,8 @@ +{ + "contractName": "console", + "abi": [], + "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820493cf1d10b25b00381e283d922c8fa94b79f5dd14da1f9ffbc0a972f746764cc64736f6c634300050f0032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820493cf1d10b25b00381e283d922c8fa94b79f5dd14da1f9ffbc0a972f746764cc64736f6c634300050f0032", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/packages/contracts/model/model_v2.py b/packages/contracts/model/model_v2.py index 237b3cded..ec040da8d 100644 --- a/packages/contracts/model/model_v2.py +++ b/packages/contracts/model/model_v2.py @@ -4,10 +4,10 @@ # model parameters class ModelParams: def __init__(self): - self.D = 0.7 # base fee decay factor - + self.D = 0.5 # base fee decay factor + self.T = 1 # weighting for token price in loan issuance - self.F = 1 # weighting for momentum in loan issuance + self.F = 0.5 # weighting for momentum in loan issuance self.lookback = 5 # Lookback parameter for ETH price momentum @@ -59,10 +59,8 @@ def get_new_redeemed_amount(data, params): if redeemed < 0: return 0 - elif redeemed < max_redeemable: - return redeemed else: - return max_redeemable + return min(redeemed, max_redeemable) # Decay base fee correctly @@ -152,8 +150,14 @@ def linear_increasing_ETH_price(last_price, gradient): def oscillating_ETH_price(min, magnitude, i): return min + magnitude + magnitude*np.sin(i) -def linear_decreasing_ETH_price(last_price, gradient): - return last_price - gradient +def linear_decreasing_ETH_price(start, gradient, i): + val = (start - (gradient*i)) + if val <= 0: + return 0 + return val + +def one_over_i_ETH_price(scale, i): + return scale/i def quadratic_ETH_price(min, scale, i): return min + scale*(i**2) @@ -175,10 +179,11 @@ def sublinear_ETH_price(last_price, steepness, i): # ETH_price = last_ETH_price ETH_price = randomwalk_ETH_price(last_ETH_price) - # ETH_price = oscillating_ETH_price(500, 10, i) + # ETH_price = oscillating_ETH_price(500, 100, i) # ETH_price = quadratic_ETH_price(500, 10, i) - # ETH_price = linear_increasing_ETH_price(last_ETH_price, 10) - # ETH_price = linear_decreasing_ETH_price(last_ETH_price, 1) + # ETH_price = linear_increasing_ETH_price(last_ETH_price, 3) + # ETH_price = linear_decreasing_ETH_price(800, 1, i) + # ETH_price = one_over_i_ETH_price(1000, i) # ETH_price = sublinear_ETH_price(last_ETH_price, 10, i) momentum = get_new_momentum(data, params, ETH_price)