{
  "_format": "hh-sol-artifact-1",
  "contractName": "VotingEscrowPendleSidechain",
  "sourceName": "contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_PendleMsgReceiveEndpointUpg",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "MsgNotFromReceiveEndpoint",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "msgTime",
          "type": "uint256"
        }
      ],
      "name": "VEReceiveOldSupply",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "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": "delegator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "SetNewDelegator",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint128",
              "name": "bias",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "slope",
              "type": "uint128"
            }
          ],
          "indexed": false,
          "internalType": "struct VeBalance",
          "name": "totalSupply",
          "type": "tuple"
        }
      ],
      "name": "SetNewTotalSupply",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint128",
              "name": "amount",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "expiry",
              "type": "uint128"
            }
          ],
          "indexed": false,
          "internalType": "struct LockedPosition",
          "name": "position",
          "type": "tuple"
        }
      ],
      "name": "SetNewUserPosition",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MAX_LOCK_TIME",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MIN_LOCK_TIME",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "WEEK",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "message",
          "type": "bytes"
        }
      ],
      "name": "executeMessage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lastTotalSupplyReceivedAt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendleMsgReceiveEndpoint",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "positionData",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "expiry",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "delegator",
          "type": "address"
        }
      ],
      "name": "setDelegatorFor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "totalSupplyAndBalanceCurrent",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupplyCurrent",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupplyStored",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "direct",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "renounce",
          "type": "bool"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561000f575f5ffd5b50604051610ecc380380610ecc83398101604081905261002e91610200565b6001600160a01b038116608052606754600160a81b900460ff161580801561006357506067546001600160a01b90910460ff16105b806100845750303b1580156100845750606754600160a01b900460ff166001145b6100ec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6067805460ff60a01b1916600160a01b1790558015610119576067805460ff60a81b1916600160a81b1790555b61012233610171565b801561016a576067805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505061022d565b606754600160a81b900460ff166101de5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e3565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b5f60208284031215610210575f5ffd5b81516001600160a01b0381168114610226575f5ffd5b9392505050565b608051610c8061024c5f395f818161017901526104d10152610c805ff3fe608060405234801561000f575f5ffd5b50600436106100ce575f3560e01c8063078dfbe7146100d257806330d981af146100e75780633ff03207146101055780634e71e0c81461010f57806370a0823114610117578063769b1ebc1461012a5780638da5cb5b1461013d578063aafcbe761461015d578063af5a8f7b14610174578063cb6b4f3c1461019b578063e0299bf5146101ee578063e268b3a414610201578063e30c397814610214578063ef1c243a14610227578063f4359ce514610105578063fa78668f1461022f575b5f5ffd5b6100e56100e0366004610861565b61023a565b005b6100ef61033f565b6040516100fc91906108a3565b60405180910390f35b6100ef62093a8081565b6100e561034d565b6100ef6101253660046108b7565b6103f7565b6100e56101383660046108d2565b610431565b606654610150906001600160a01b031681565b6040516100fc9190610909565b61016660985481565b6040519081526020016100fc565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101ce6101a93660046108b7565b60016020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016100fc565b6100e56101fc36600461091d565b6104c6565b6101ce61020f3660046108b7565b610553565b606754610150906001600160a01b031681565b6100ef61056f565b6100ef6303bfc40081565b6066546001600160a01b0316331461026d5760405162461bcd60e51b815260040161026490610989565b60405180910390fd5b811561031d576001600160a01b0383161515806102875750805b6102cb5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610264565b6066546040516001600160a01b038086169216905f516020610c2b5f395f51905f52905f90a3606680546001600160a01b0385166001600160a01b031991821617909155606780549091169055505050565b606780546001600160a01b0385166001600160a01b0319909116179055505050565b5f61034861056f565b905090565b6067546001600160a01b03163381146103a85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610264565b6066546040516001600160a01b038084169216905f516020610c2b5f395f51905f52905f90a3606680546001600160a01b039092166001600160a01b0319928316179055606780549091169055565b6001600160a01b038082165f908152609960205260408120549091168061042857610421836105a1565b9392505050565b610421816105a1565b6066546001600160a01b0316331461045b5760405162461bcd60e51b815260040161026490610989565b6001600160a01b038281165f8181526099602090815260409182902080546001600160a01b031916948616948517905581519384528301919091527f8d268954369e04c7941c3a7876f40c618eb97919add31202c9a235e75e84cf1b91015b60405180910390a15050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105115733604051632b5c157560e11b81526004016102649190610909565b61054f82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506105f992505050565b5050565b5f5f61055d61033f565b610566846103f7565b91509150915091565b604080518082019091525f80546001600160801b038082168452600160801b9091041660208301529061034890610636565b6001600160a01b0381165f9081526001602090815260408083208151808301909252546001600160801b038082168352600160801b90910416918101919091526105f3906105ee90610656565b610636565b92915050565b5f5f5f838060200190518101906106109190610a73565b92509250925061062083836106a7565b8051156106305761063081610727565b50505050565b5f610640826107b7565b1561064c57505f919050565b6105f382426107e6565b604080518082019091525f8082526020820152815161067a906303bfc40090610b50565b6001600160801b0316602080830182905283015161069791610b8a565b6001600160801b03168152919050565b609854826001600160801b031610156106d557816040516367379c8f60e11b815260040161026491906108a3565b6001600160801b03808316609855815160208301518216600160801b029116175f556040517f460b96294ff8de4eea3be3fb4fac9f978cffe83c7cc3140a4bfe0bedba26b92f906104ba908390610bb3565b5f5f8280602001905181019061073d9190610bd7565b6001600160a01b0382165f908152600160209081526040918290208351918401516001600160801b03908116600160801b0292169190911790555191935091507f776960a80ccfa09c52229b183bf0ef49b26a5d15f9ae2c1c0f780a450d3b2a9f906107aa908390610bb3565b60405180910390a1505050565b5f815f01516001600160801b03164283602001516107d59190610b8a565b6001600160801b0316101592915050565b5f825f01516001600160801b03168284602001516108049190610b8a565b6001600160801b0316111561081a57505f6105f3565b81836020015161082a9190610b8a565b83516104219190610c0b565b6001600160a01b038116811461084a575f5ffd5b50565b8035801515811461085c575f5ffd5b919050565b5f5f5f60608486031215610873575f5ffd5b833561087e81610836565b925061088c6020850161084d565b915061089a6040850161084d565b90509250925092565b6001600160801b0391909116815260200190565b5f602082840312156108c7575f5ffd5b813561042181610836565b5f5f604083850312156108e3575f5ffd5b82356108ee81610836565b915060208301356108fe81610836565b809150509250929050565b6001600160a01b0391909116815260200190565b5f5f6020838503121561092e575f5ffd5b82356001600160401b03811115610943575f5ffd5b8301601f81018513610953575f5ffd5b80356001600160401b03811115610968575f5ffd5b856020828401011115610979575f5ffd5b6020919091019590945092505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80516001600160801b038116811461085c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610a1057610a106109d4565b604052919050565b5f60408284031215610a28575f5ffd5b604080519081016001600160401b0381118282101715610a4a57610a4a6109d4565b604052905080610a59836109be565b8152610a67602084016109be565b60208201525092915050565b5f5f5f60808486031215610a85575f5ffd5b610a8e846109be565b9250610a9d8560208601610a18565b60608501519092506001600160401b03811115610ab8575f5ffd5b8401601f81018613610ac8575f5ffd5b80516001600160401b03811115610ae157610ae16109d4565b610af4601f8201601f19166020016109e8565b818152876020838501011115610b08575f5ffd5b5f5b82811015610b2657602081850181015183830182015201610b0a565b505f602083830101528093505050509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160801b03831680610b7457634e487b7160e01b5f52601260045260245ffd5b6001600160801b03929092169190910492915050565b6001600160801b038181168382160290811690818114610bac57610bac610b3c565b5092915050565b604081016105f3828480516001600160801b03908116835260209182015116910152565b5f5f60608385031215610be8575f5ffd5b8251610bf381610836565b9150610c028460208501610a18565b90509250929050565b6001600160801b0382811682821603908111156105f3576105f3610b3c56fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220bb2be5c45a43509ab2610638355c1017599de065e261a2414872c3d1e847b91a64736f6c634300081e0033",
  "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100ce575f3560e01c8063078dfbe7146100d257806330d981af146100e75780633ff03207146101055780634e71e0c81461010f57806370a0823114610117578063769b1ebc1461012a5780638da5cb5b1461013d578063aafcbe761461015d578063af5a8f7b14610174578063cb6b4f3c1461019b578063e0299bf5146101ee578063e268b3a414610201578063e30c397814610214578063ef1c243a14610227578063f4359ce514610105578063fa78668f1461022f575b5f5ffd5b6100e56100e0366004610861565b61023a565b005b6100ef61033f565b6040516100fc91906108a3565b60405180910390f35b6100ef62093a8081565b6100e561034d565b6100ef6101253660046108b7565b6103f7565b6100e56101383660046108d2565b610431565b606654610150906001600160a01b031681565b6040516100fc9190610909565b61016660985481565b6040519081526020016100fc565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101ce6101a93660046108b7565b60016020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016100fc565b6100e56101fc36600461091d565b6104c6565b6101ce61020f3660046108b7565b610553565b606754610150906001600160a01b031681565b6100ef61056f565b6100ef6303bfc40081565b6066546001600160a01b0316331461026d5760405162461bcd60e51b815260040161026490610989565b60405180910390fd5b811561031d576001600160a01b0383161515806102875750805b6102cb5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610264565b6066546040516001600160a01b038086169216905f516020610c2b5f395f51905f52905f90a3606680546001600160a01b0385166001600160a01b031991821617909155606780549091169055505050565b606780546001600160a01b0385166001600160a01b0319909116179055505050565b5f61034861056f565b905090565b6067546001600160a01b03163381146103a85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610264565b6066546040516001600160a01b038084169216905f516020610c2b5f395f51905f52905f90a3606680546001600160a01b039092166001600160a01b0319928316179055606780549091169055565b6001600160a01b038082165f908152609960205260408120549091168061042857610421836105a1565b9392505050565b610421816105a1565b6066546001600160a01b0316331461045b5760405162461bcd60e51b815260040161026490610989565b6001600160a01b038281165f8181526099602090815260409182902080546001600160a01b031916948616948517905581519384528301919091527f8d268954369e04c7941c3a7876f40c618eb97919add31202c9a235e75e84cf1b91015b60405180910390a15050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105115733604051632b5c157560e11b81526004016102649190610909565b61054f82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506105f992505050565b5050565b5f5f61055d61033f565b610566846103f7565b91509150915091565b604080518082019091525f80546001600160801b038082168452600160801b9091041660208301529061034890610636565b6001600160a01b0381165f9081526001602090815260408083208151808301909252546001600160801b038082168352600160801b90910416918101919091526105f3906105ee90610656565b610636565b92915050565b5f5f5f838060200190518101906106109190610a73565b92509250925061062083836106a7565b8051156106305761063081610727565b50505050565b5f610640826107b7565b1561064c57505f919050565b6105f382426107e6565b604080518082019091525f8082526020820152815161067a906303bfc40090610b50565b6001600160801b0316602080830182905283015161069791610b8a565b6001600160801b03168152919050565b609854826001600160801b031610156106d557816040516367379c8f60e11b815260040161026491906108a3565b6001600160801b03808316609855815160208301518216600160801b029116175f556040517f460b96294ff8de4eea3be3fb4fac9f978cffe83c7cc3140a4bfe0bedba26b92f906104ba908390610bb3565b5f5f8280602001905181019061073d9190610bd7565b6001600160a01b0382165f908152600160209081526040918290208351918401516001600160801b03908116600160801b0292169190911790555191935091507f776960a80ccfa09c52229b183bf0ef49b26a5d15f9ae2c1c0f780a450d3b2a9f906107aa908390610bb3565b60405180910390a1505050565b5f815f01516001600160801b03164283602001516107d59190610b8a565b6001600160801b0316101592915050565b5f825f01516001600160801b03168284602001516108049190610b8a565b6001600160801b0316111561081a57505f6105f3565b81836020015161082a9190610b8a565b83516104219190610c0b565b6001600160a01b038116811461084a575f5ffd5b50565b8035801515811461085c575f5ffd5b919050565b5f5f5f60608486031215610873575f5ffd5b833561087e81610836565b925061088c6020850161084d565b915061089a6040850161084d565b90509250925092565b6001600160801b0391909116815260200190565b5f602082840312156108c7575f5ffd5b813561042181610836565b5f5f604083850312156108e3575f5ffd5b82356108ee81610836565b915060208301356108fe81610836565b809150509250929050565b6001600160a01b0391909116815260200190565b5f5f6020838503121561092e575f5ffd5b82356001600160401b03811115610943575f5ffd5b8301601f81018513610953575f5ffd5b80356001600160401b03811115610968575f5ffd5b856020828401011115610979575f5ffd5b6020919091019590945092505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80516001600160801b038116811461085c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610a1057610a106109d4565b604052919050565b5f60408284031215610a28575f5ffd5b604080519081016001600160401b0381118282101715610a4a57610a4a6109d4565b604052905080610a59836109be565b8152610a67602084016109be565b60208201525092915050565b5f5f5f60808486031215610a85575f5ffd5b610a8e846109be565b9250610a9d8560208601610a18565b60608501519092506001600160401b03811115610ab8575f5ffd5b8401601f81018613610ac8575f5ffd5b80516001600160401b03811115610ae157610ae16109d4565b610af4601f8201601f19166020016109e8565b818152876020838501011115610b08575f5ffd5b5f5b82811015610b2657602081850181015183830182015201610b0a565b505f602083830101528093505050509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160801b03831680610b7457634e487b7160e01b5f52601260045260245ffd5b6001600160801b03929092169190910492915050565b6001600160801b038181168382160290811690818114610bac57610bac610b3c565b5092915050565b604081016105f3828480516001600160801b03908116835260209182015116910152565b5f5f60608385031215610be8575f5ffd5b8251610bf381610836565b9150610c028460208501610a18565b90509250929050565b6001600160801b0382811682821603908111156105f3576105f3610b3c56fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220bb2be5c45a43509ab2610638355c1017599de065e261a2414872c3d1e847b91a64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
