{
  "contractName": "ReputationFromToken",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Redeem",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DELEGATION_HASH_EIP712",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "curve",
      "outputs": [
        {
          "internalType": "contract CurveInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_tokenContract",
          "type": "address"
        },
        {
          "internalType": "contract CurveInterface",
          "name": "_curve",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "redeem",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_signatureType",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "redeemWithSignature",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "redeems",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenContract",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610cbf806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80635aef7de6116100665780635aef7de61461012b5780637165485d1461013357806395a2251f1461013b578063c0c53b8b14610161578063e9d481251461019b5761009e565b806330ca0a53146100a35780633edf7ca1146100bd5780634ea2c7ec146100e1578063511ffbff146100e957806355a373d614610123575b600080fd5b6100ab610220565b60408051918252519081900360200190f35b6100c561026a565b604080516001600160a01b039092168252519081900360200190f35b6100ab610279565b61010f600480360360208110156100ff57600080fd5b50356001600160a01b031661027f565b604080519115158252519081900360200190f35b6100c5610294565b6100c56102a3565b6100c56102b2565b6100ab6004803603602081101561015157600080fd5b50356001600160a01b03166102c1565b6101996004803603606081101561017757600080fd5b506001600160a01b0381358116916020810135821691604090910135166102d3565b005b6100ab600480360360608110156101b157600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156101e157600080fd5b8201836020820111156101f357600080fd5b8035906020019184600183028401116401000000008311171561021557600080fd5b50909250905061030b565b604051602001806022610c3a82396022018072616464726573732042656e656669636961727960681b81525060130190506040516020818303038152906040528051906020012081565b6034546001600160a01b031681565b60355481565b60386020526000908152604090205460ff1681565b6036546001600160a01b031681565b6033546001600160a01b031681565b6037546001600160a01b031681565b60006102cd82336104e4565b92915050565b6102dc8361086a565b603680546001600160a01b039384166001600160a01b0319918216179091556037805492909316911617905550565b60008084600214156103c457604051602001806022610c3a823972616464726573732042656e656669636961727960681b6022820152604080518083036015018152603583018252805160209182012030606090811b60558601528b901b6bffffffffffffffffffffffff191660698501528251808503605d018152607d85018452805190830120609d85019190915260bd808501919091528251808503909101815260dd909301909152815191012091506104289050565b610425308760405160200180836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b81526014019250505060405160208183030381529060405280519060200120610983565b90505b600061047285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505063ffffffff6109d4169050565b90506001600160a01b0381166104cf576040805162461bcd60e51b815260206004820152601c60248201527f72656465656d657220616464726573732063616e6e6f74206265203000000000604482015290519081900360640190fd5b6104d987826104e4565b979650505050505050565b6033546000906001600160a01b0316610544576040805162461bcd60e51b815260206004820152601760248201527f73686f756c6420696e697469616c697a65206669727374000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526038602052604090205460ff161561059c5760405162461bcd60e51b8152600401808060200182810382526034815260200180610bc26034913960400191505060405180910390fd5b6001600160a01b038083166000818152603860209081526040808320805460ff1916600117905560365481516370a0823160e01b815260048101959095529051929416926370a082319260248083019392829003018186803b15801561060157600080fd5b505afa158015610615573d6000803e3d6000fd5b505050506040513d602081101561062b57600080fd5b50516037549091506001600160a01b0316156106bc5760375460408051631c64813d60e11b81526004810184905290516001600160a01b03909216916338c9027a91602480820192602092909190829003018186803b15801561068d57600080fd5b505afa1580156106a1573d6000803e3d6000fd5b505050506040513d60208110156106b757600080fd5b505190505b6001600160a01b0384166106ce578293505b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d602081101561074657600080fd5b50516040805163dea9e24d60e01b8152600481018490526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561079b57600080fd5b505af11580156107af573d6000803e3d6000fd5b505050506040513d60208110156107c557600080fd5b5051610818576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167fd12200efa34901b99367694174c3b0d32c99585fdf37c7c26892136ddd0836d9836040518082815260200191505060405180910390a39392505050565b600054610100900460ff16806108835750610883610bbb565b80610891575060005460ff16155b6108cc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610c5c602e913960400191505060405180910390fd5b600054610100900460ff161580156108f7576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216610952576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801561097f576000805461ff00191690555b5050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114610a2c576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610a9d5760405162461bcd60e51b8152600401808060200182810382526022815260200180610bf66022913960400191505060405180910390fd5b8060ff16601b14158015610ab557508060ff16601c14155b15610af15760405162461bcd60e51b8152600401808060200182810382526022815260200180610c186022913960400191505060405180910390fd5b60408051600080825260208083018085528a905260ff85168385015260608301879052608083018690529251909260019260a080820193601f1981019281900390910190855afa158015610b49573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bb1576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9695505050505050565b303b159056fe72656465656d696e672074776963652066726f6d207468652073616d65206163636f756e74206973206e6f7420616c6c6f77656445434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565616464726573732052657075746174696f6e46726f6d546f6b656e41646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122032e24c26006a8d7f7f33a20f2ce4131d9aa49c0f0e3d5d46248d3bbd65baefe964736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80635aef7de6116100665780635aef7de61461012b5780637165485d1461013357806395a2251f1461013b578063c0c53b8b14610161578063e9d481251461019b5761009e565b806330ca0a53146100a35780633edf7ca1146100bd5780634ea2c7ec146100e1578063511ffbff146100e957806355a373d614610123575b600080fd5b6100ab610220565b60408051918252519081900360200190f35b6100c561026a565b604080516001600160a01b039092168252519081900360200190f35b6100ab610279565b61010f600480360360208110156100ff57600080fd5b50356001600160a01b031661027f565b604080519115158252519081900360200190f35b6100c5610294565b6100c56102a3565b6100c56102b2565b6100ab6004803603602081101561015157600080fd5b50356001600160a01b03166102c1565b6101996004803603606081101561017757600080fd5b506001600160a01b0381358116916020810135821691604090910135166102d3565b005b6100ab600480360360608110156101b157600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156101e157600080fd5b8201836020820111156101f357600080fd5b8035906020019184600183028401116401000000008311171561021557600080fd5b50909250905061030b565b604051602001806022610c3a82396022018072616464726573732042656e656669636961727960681b81525060130190506040516020818303038152906040528051906020012081565b6034546001600160a01b031681565b60355481565b60386020526000908152604090205460ff1681565b6036546001600160a01b031681565b6033546001600160a01b031681565b6037546001600160a01b031681565b60006102cd82336104e4565b92915050565b6102dc8361086a565b603680546001600160a01b039384166001600160a01b0319918216179091556037805492909316911617905550565b60008084600214156103c457604051602001806022610c3a823972616464726573732042656e656669636961727960681b6022820152604080518083036015018152603583018252805160209182012030606090811b60558601528b901b6bffffffffffffffffffffffff191660698501528251808503605d018152607d85018452805190830120609d85019190915260bd808501919091528251808503909101815260dd909301909152815191012091506104289050565b610425308760405160200180836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b81526014019250505060405160208183030381529060405280519060200120610983565b90505b600061047285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505063ffffffff6109d4169050565b90506001600160a01b0381166104cf576040805162461bcd60e51b815260206004820152601c60248201527f72656465656d657220616464726573732063616e6e6f74206265203000000000604482015290519081900360640190fd5b6104d987826104e4565b979650505050505050565b6033546000906001600160a01b0316610544576040805162461bcd60e51b815260206004820152601760248201527f73686f756c6420696e697469616c697a65206669727374000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526038602052604090205460ff161561059c5760405162461bcd60e51b8152600401808060200182810382526034815260200180610bc26034913960400191505060405180910390fd5b6001600160a01b038083166000818152603860209081526040808320805460ff1916600117905560365481516370a0823160e01b815260048101959095529051929416926370a082319260248083019392829003018186803b15801561060157600080fd5b505afa158015610615573d6000803e3d6000fd5b505050506040513d602081101561062b57600080fd5b50516037549091506001600160a01b0316156106bc5760375460408051631c64813d60e11b81526004810184905290516001600160a01b03909216916338c9027a91602480820192602092909190829003018186803b15801561068d57600080fd5b505afa1580156106a1573d6000803e3d6000fd5b505050506040513d60208110156106b757600080fd5b505190505b6001600160a01b0384166106ce578293505b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d602081101561074657600080fd5b50516040805163dea9e24d60e01b8152600481018490526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561079b57600080fd5b505af11580156107af573d6000803e3d6000fd5b505050506040513d60208110156107c557600080fd5b5051610818576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167fd12200efa34901b99367694174c3b0d32c99585fdf37c7c26892136ddd0836d9836040518082815260200191505060405180910390a39392505050565b600054610100900460ff16806108835750610883610bbb565b80610891575060005460ff16155b6108cc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610c5c602e913960400191505060405180910390fd5b600054610100900460ff161580156108f7576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216610952576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801561097f576000805461ff00191690555b5050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114610a2c576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610a9d5760405162461bcd60e51b8152600401808060200182810382526022815260200180610bf66022913960400191505060405180910390fd5b8060ff16601b14158015610ab557508060ff16601c14155b15610af15760405162461bcd60e51b8152600401808060200182810382526022815260200180610c186022913960400191505060405180910390fd5b60408051600080825260208083018085528a905260ff85168385015260608301879052608083018690529251909260019260a080820193601f1981019281900390910190855afa158015610b49573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bb1576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9695505050505050565b303b159056fe72656465656d696e672074776963652066726f6d207468652073616d65206163636f756e74206973206e6f7420616c6c6f77656445434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565616464726573732052657075746174696f6e46726f6d546f6b656e41646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122032e24c26006a8d7f7f33a20f2ce4131d9aa49c0f0e3d5d46248d3bbd65baefe964736f6c634300060a0033"
}