{
  "_format": "hh-sol-artifact-1",
  "contractName": "LockedSOVMockup",
  "sourceName": "contracts/mockup/LockedSOVMockup.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_SOV",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_admins",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_removedAdmin",
          "type": "address"
        }
      ],
      "name": "AdminRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_userAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_sovAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_basisPoint",
          "type": "uint256"
        }
      ],
      "name": "Deposited",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_vesting",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "TokensStaked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_userAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_sovAmount",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SOV",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_newAdmin",
          "type": "address"
        }
      ],
      "name": "addAdmin",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_userAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_sovAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_basisPoint",
          "type": "uint256"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_userAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_sovAmount",
          "type": "uint256"
        }
      ],
      "name": "depositSOV",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "getLockedBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "getUnlockedBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_adminToRemove",
          "type": "address"
        }
      ],
      "name": "removeAdmin",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_userAddress",
          "type": "address"
        }
      ],
      "name": "withdrawAndStakeTokensFrom",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610cfd380380610cfd8339818101604052604081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825186602082028301116401000000008211171561008c57600080fd5b82525081516020918201928201910280838360005b838110156100b95781810151838201526020016100a1565b5050505091909101604052505050506001600160a01b038216610123576040805162461bcd60e51b815260206004820152601460248201527f496e76616c696420534f5620416464726573732e000000000000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0384161781555b81518110156101945760016003600084848151811061015a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161013f565b505050610b57806101a66000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80632b6df82a1161005b5780632b6df82a146101435780637048027514610169578063c40868931461018f578063f33bf9a1146101b557610088565b806308dcb3601461008d5780630efe6a8b146100b1578063129de5bf146100e55780631785f53c1461011d575b600080fd5b6100956101e1565b604080516001600160a01b039092168252519081900360200190f35b6100e3600480360360608110156100c757600080fd5b506001600160a01b0381351690602081013590604001356101f0565b005b61010b600480360360208110156100fb57600080fd5b50356001600160a01b0316610200565b60408051918252519081900360200190f35b6100e36004803603602081101561013357600080fd5b50356001600160a01b031661021b565b6100e36004803603602081101561015957600080fd5b50356001600160a01b0316610332565b6100e36004803603602081101561017f57600080fd5b50356001600160a01b0316610348565b61010b600480360360208110156101a557600080fd5b50356001600160a01b03166104b0565b6100e3600480360360408110156101cb57600080fd5b506001600160a01b0381351690602001356104cb565b6000546001600160a01b031681565b6101fb8383836104db565b505050565b6001600160a01b031660009081526002602052604090205490565b3360009081526003602052604090205460ff1661027b576040805162461bcd60e51b815260206004820152601960248201527827b7363c9030b236b4b71031b0b71031b0b636103a3434b99760391b604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205460ff166102e8576040805162461bcd60e51b815260206004820152601760248201527f41646472657373206973206e6f7420616e2061646d696e000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600081815260036020526040808220805460ff191690555133917fdb9d5d31320daf5bc7181d565b6da4d12e30f0f4d5aa324a992426c14a1d19ce91a350565b61033c81826106d9565b6103458161080e565b50565b3360009081526003602052604090205460ff166103a8576040805162461bcd60e51b815260206004820152601960248201527827b7363c9030b236b4b71031b0b71031b0b636103a3434b99760391b604482015290519081900360640190fd5b6001600160a01b0381166103f5576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205460ff1615610463576040805162461bcd60e51b815260206004820152601860248201527f4164647265737320697320616c72656164792061646d696e0000000000000000604482015290519081900360640190fd5b6001600160a01b038116600081815260036020526040808220805460ff191660011790555133917fbf3f493c772c8c283fd124432c2d0f539ab343faa04258fe88e52912d36b102b91a350565b6001600160a01b031660009081526001602052604090205490565b6104d7828260006104db565b5050565b612710811061051b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610afd6026913960400191505060405180910390fd5b60008054604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd9160648082019260209290919082900301818787803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b50519050806105df5760405162461bcd60e51b815260040180806020018281038252603a815260200180610ac3603a913960400191505060405180910390fd5b60006106036127106105f7868663ffffffff61086516565b9063ffffffff6108c716565b6001600160a01b03861660009081526002602052604090205490915061062f908263ffffffff61090916565b6001600160a01b03861660009081526002602090815260408083209390935560019052205461067690829061066a908763ffffffff61090916565b9063ffffffff61096316565b6001600160a01b0386166000818152600160209081526040918290209390935580518781529283018690528051919233927ff5681f9d0db1b911ac18ee83d515a1cf1051853a9eae418316a2fdf7dea427c5929181900390910190a35050505050565b806001600160a01b0381166106eb5750815b6001600160a01b0380841660009081526002602090815260408083208054908490558354825163a9059cbb60e01b815287871660048201526024810183905292519195169263a9059cbb926044808201939182900301818787803b15801561075257600080fd5b505af1158015610766573d6000803e3d6000fd5b505050506040513d602081101561077c57600080fd5b50519050806107bc5760405162461bcd60e51b815260040180806020018281038252603a815260200180610ac3603a913960400191505060405180910390fd5b826001600160a01b0316856001600160a01b03167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb846040518082815260200191505060405180910390a35050505050565b6001600160a01b0381166000818152600160209081526040808320805490849055815181815291519094927f70e256e9264f1aa014ac7f20b4a16618647d26695e23c7181ee67a22c37e7521928290030190a35050565b600082610874575060006108c1565b8282028284828161088157fe5b04146108be5760405162461bcd60e51b8152600401808060200182810382526021815260200180610aa26021913960400191505060405180910390fd5b90505b92915050565b60006108be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109a5565b6000828201838110156108be576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006108be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a47565b60008183610a315760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109f65781810151838201526020016109de565b50505050905090810190601f168015610a235780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610a3d57fe5b0495945050505050565b60008184841115610a995760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109f65781810151838201526020016109de565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f6b656e207472616e7366657220776173206e6f74207375636365737366756c2e20436865636b20726563656976657220616464726573732e426173697320506f696e742068617320746f206265206c657373207468616e2031303030302ea265627a7a723158203f48bdc0ad27b6f713aa0fadd002b0556ac9adabee60adf17665b1eb78d5584264736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80632b6df82a1161005b5780632b6df82a146101435780637048027514610169578063c40868931461018f578063f33bf9a1146101b557610088565b806308dcb3601461008d5780630efe6a8b146100b1578063129de5bf146100e55780631785f53c1461011d575b600080fd5b6100956101e1565b604080516001600160a01b039092168252519081900360200190f35b6100e3600480360360608110156100c757600080fd5b506001600160a01b0381351690602081013590604001356101f0565b005b61010b600480360360208110156100fb57600080fd5b50356001600160a01b0316610200565b60408051918252519081900360200190f35b6100e36004803603602081101561013357600080fd5b50356001600160a01b031661021b565b6100e36004803603602081101561015957600080fd5b50356001600160a01b0316610332565b6100e36004803603602081101561017f57600080fd5b50356001600160a01b0316610348565b61010b600480360360208110156101a557600080fd5b50356001600160a01b03166104b0565b6100e3600480360360408110156101cb57600080fd5b506001600160a01b0381351690602001356104cb565b6000546001600160a01b031681565b6101fb8383836104db565b505050565b6001600160a01b031660009081526002602052604090205490565b3360009081526003602052604090205460ff1661027b576040805162461bcd60e51b815260206004820152601960248201527827b7363c9030b236b4b71031b0b71031b0b636103a3434b99760391b604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205460ff166102e8576040805162461bcd60e51b815260206004820152601760248201527f41646472657373206973206e6f7420616e2061646d696e000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600081815260036020526040808220805460ff191690555133917fdb9d5d31320daf5bc7181d565b6da4d12e30f0f4d5aa324a992426c14a1d19ce91a350565b61033c81826106d9565b6103458161080e565b50565b3360009081526003602052604090205460ff166103a8576040805162461bcd60e51b815260206004820152601960248201527827b7363c9030b236b4b71031b0b71031b0b636103a3434b99760391b604482015290519081900360640190fd5b6001600160a01b0381166103f5576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205460ff1615610463576040805162461bcd60e51b815260206004820152601860248201527f4164647265737320697320616c72656164792061646d696e0000000000000000604482015290519081900360640190fd5b6001600160a01b038116600081815260036020526040808220805460ff191660011790555133917fbf3f493c772c8c283fd124432c2d0f539ab343faa04258fe88e52912d36b102b91a350565b6001600160a01b031660009081526001602052604090205490565b6104d7828260006104db565b5050565b612710811061051b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610afd6026913960400191505060405180910390fd5b60008054604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd9160648082019260209290919082900301818787803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b50519050806105df5760405162461bcd60e51b815260040180806020018281038252603a815260200180610ac3603a913960400191505060405180910390fd5b60006106036127106105f7868663ffffffff61086516565b9063ffffffff6108c716565b6001600160a01b03861660009081526002602052604090205490915061062f908263ffffffff61090916565b6001600160a01b03861660009081526002602090815260408083209390935560019052205461067690829061066a908763ffffffff61090916565b9063ffffffff61096316565b6001600160a01b0386166000818152600160209081526040918290209390935580518781529283018690528051919233927ff5681f9d0db1b911ac18ee83d515a1cf1051853a9eae418316a2fdf7dea427c5929181900390910190a35050505050565b806001600160a01b0381166106eb5750815b6001600160a01b0380841660009081526002602090815260408083208054908490558354825163a9059cbb60e01b815287871660048201526024810183905292519195169263a9059cbb926044808201939182900301818787803b15801561075257600080fd5b505af1158015610766573d6000803e3d6000fd5b505050506040513d602081101561077c57600080fd5b50519050806107bc5760405162461bcd60e51b815260040180806020018281038252603a815260200180610ac3603a913960400191505060405180910390fd5b826001600160a01b0316856001600160a01b03167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb846040518082815260200191505060405180910390a35050505050565b6001600160a01b0381166000818152600160209081526040808320805490849055815181815291519094927f70e256e9264f1aa014ac7f20b4a16618647d26695e23c7181ee67a22c37e7521928290030190a35050565b600082610874575060006108c1565b8282028284828161088157fe5b04146108be5760405162461bcd60e51b8152600401808060200182810382526021815260200180610aa26021913960400191505060405180910390fd5b90505b92915050565b60006108be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109a5565b6000828201838110156108be576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006108be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a47565b60008183610a315760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109f65781810151838201526020016109de565b50505050905090810190601f168015610a235780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610a3d57fe5b0495945050505050565b60008184841115610a995760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109f65781810151838201526020016109de565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f6b656e207472616e7366657220776173206e6f74207375636365737366756c2e20436865636b20726563656976657220616464726573732e426173697320506f696e742068617320746f206265206c657373207468616e2031303030302ea265627a7a723158203f48bdc0ad27b6f713aa0fadd002b0556ac9adabee60adf17665b1eb78d5584264736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
