{
  "_format": "hh-sol-artifact-1",
  "contractName": "VestingWallet",
  "sourceName": "contracts/finance/VestingWallet.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "startTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "durationSeconds",
          "type": "uint64"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "SafeTRC20FailedOperation",
      "type": "error"
    },
    {
      "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": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "TRC20Released",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "TRXReleased",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "duration",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "end",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "releasable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "releasable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "released",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "released",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "start",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "vestedAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "vestedAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60c0601f610ada38819003918201601f19168301916001600160401b038311848410176101125780849260609460405283398101031261010e5780516001600160a81b038116810361010e576001600160a01b03169061006d604061006660208401610126565b9201610126565b9082156100fb575f80546001600160a01b031981168517825560405194916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a05261099f908161013b82396080518181816101e8015281816107e50152610819015260a051818181610607015281816107bb015261087f0152f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160401b038216820361010e5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630a17b06b1461062b5780630fb5a6b4146105de5780631916558714610403578063715018a6146103a2578063810ec23b1461035f57806386d1a69f146102d35780638da5cb5b146102a2578063961325211461027b5780639852595c14610239578063a3f8eace1461020c578063be9a6555146101bf578063efbe1c1c1461019b578063f2fde38b1461010c5763fbccedae0361000e573461010857d361010857d2610108575f3660031901126101085760206101006100f7476100f26001600160401b034216916001549061068b565b61080a565b6001549061076b565b604051908152f35b5f80fd5b3461010857d361010857d26101085760203660031901126101085761012f61066c565b6101376108be565b6001600160a01b03168015610188575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461010857d361010857d2610108575f3660031901126101085760206101006107ae565b3461010857d361010857d2610108575f3660031901126101085760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010857d361010857d261010857602036600319011261010857602061010061023461066c565b610778565b3461010857d361010857d2610108576020366003190112610108576001600160a01b0361026461066c565b165f526002602052602060405f2054604051908152f35b3461010857d361010857d2610108575f366003190112610108576020600154604051908152f35b3461010857d361010857d2610108575f366003190112610108575f546040516001600160a01b039091168152602090f35b3461010857d361010857d2610108575f3660031901126101085761001861030b476100f26001600160401b034216916001549061068b565b61032261031b600154809361076b565b809261068b565b6001557ff1e96e85d33bdffcb848433a0e34612dcb6df6e4de4bd3fe83c4d7763d6517846020604051838152a15f546001600160a01b03166108e4565b3461010857d361010857d26101085760403660031901126101085761038261066c565b602435906001600160401b038216820361010857602091610100916106e1565b3461010857d361010857d2610108575f366003190112610108576103c46108be565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010857d361010857d26101085760203660031901126101085761042661066c565b61042f81610778565b9060018060a01b031690815f52600260205260405f2061045082825461068b565b9055817fea953ea81b4d449352210fe796b6873b52d92190fba9e0ad4f872bd620388f8b6020604051848152a25f546040516370a0823160e01b815230600482015291906001600160a01b0316602083602481875afa928315610580575f936105aa575b506040519063a9059cbb60e01b5f52806004528260245260205f60448180895af160015f511481161561058b575b5081604052301415928361050c575b5050506104fa57005b63763ddefd60e01b5f5260045260245ffd5b6370a0823160e01b825230600483015291925090602082602481875afa908115610580575f9161054a575b610541925061076b565b108280806104f1565b90506020823d602011610578575b81610565602093836106ac565b8101031261010857610541915190610537565b3d9150610558565b6040513d5f823e3d90fd5b60018115166105a157853b15153d1516166104e2565b823d5f823e3d90fd5b9092506020813d6020116105d6575b816105c6602093836106ac565b81010312610108575191846104b4565b3d91506105b9565b3461010857d361010857d2610108575f3660031901126101085760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010857d361010857d2610108576020366003190112610108576004356001600160401b0381168103610108576101006020916100f2476001549061068b565b6004356001600160a81b0381168103610108576001600160a01b031690565b9190820180921161069857565b634e487b7160e01b5f52601160045260245ffd5b90601f801991011681019081106001600160401b038211176106cd57604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526001600160a01b03919091169190602081602481865afa908115610580575f91610737575b506100f290610734935f52600260205260405f20549061068b565b90565b90506020813d602011610763575b81610752602093836106ac565b810103126101085751610734610719565b3d9150610745565b9190820391821161069857565b6107349061078f6001600160401b034216826106e1565b6001600160a01b039091165f908152600260205260409020549061076b565b6107346001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166001600160401b037f00000000000000000000000000000000000000000000000000000000000000001661068b565b906001600160401b03908116907f00000000000000000000000000000000000000000000000000000000000000001680821015610848575050505f90565b6108506107ae565b821061085b57505090565b6108649161076b565b90818102918183041490151715610698576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000169081156108aa570490565b634e487b7160e01b5f52601260045260245ffd5b5f546001600160a01b031633036108d157565b63118cdaa760e01b5f523360045260245ffd5b8147106109445760405160208101908082106001600160401b038311176106cd575f9384938480949381946040525260018060a01b03165af11561092457565b3d15610935576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b504763cf47918160e01b5f5260045260245260445ffdfea36474726f6e5822122020e3b3aaf261c19cfdd7ce8043fae61900d3cac84d977848b25d2ae6e808d1276c6578706572696d656e74616cf564736f6c634300081a0041",
  "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630a17b06b1461062b5780630fb5a6b4146105de5780631916558714610403578063715018a6146103a2578063810ec23b1461035f57806386d1a69f146102d35780638da5cb5b146102a2578063961325211461027b5780639852595c14610239578063a3f8eace1461020c578063be9a6555146101bf578063efbe1c1c1461019b578063f2fde38b1461010c5763fbccedae0361000e573461010857d361010857d2610108575f3660031901126101085760206101006100f7476100f26001600160401b034216916001549061068b565b61080a565b6001549061076b565b604051908152f35b5f80fd5b3461010857d361010857d26101085760203660031901126101085761012f61066c565b6101376108be565b6001600160a01b03168015610188575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461010857d361010857d2610108575f3660031901126101085760206101006107ae565b3461010857d361010857d2610108575f3660031901126101085760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010857d361010857d261010857602036600319011261010857602061010061023461066c565b610778565b3461010857d361010857d2610108576020366003190112610108576001600160a01b0361026461066c565b165f526002602052602060405f2054604051908152f35b3461010857d361010857d2610108575f366003190112610108576020600154604051908152f35b3461010857d361010857d2610108575f366003190112610108575f546040516001600160a01b039091168152602090f35b3461010857d361010857d2610108575f3660031901126101085761001861030b476100f26001600160401b034216916001549061068b565b61032261031b600154809361076b565b809261068b565b6001557ff1e96e85d33bdffcb848433a0e34612dcb6df6e4de4bd3fe83c4d7763d6517846020604051838152a15f546001600160a01b03166108e4565b3461010857d361010857d26101085760403660031901126101085761038261066c565b602435906001600160401b038216820361010857602091610100916106e1565b3461010857d361010857d2610108575f366003190112610108576103c46108be565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010857d361010857d26101085760203660031901126101085761042661066c565b61042f81610778565b9060018060a01b031690815f52600260205260405f2061045082825461068b565b9055817fea953ea81b4d449352210fe796b6873b52d92190fba9e0ad4f872bd620388f8b6020604051848152a25f546040516370a0823160e01b815230600482015291906001600160a01b0316602083602481875afa928315610580575f936105aa575b506040519063a9059cbb60e01b5f52806004528260245260205f60448180895af160015f511481161561058b575b5081604052301415928361050c575b5050506104fa57005b63763ddefd60e01b5f5260045260245ffd5b6370a0823160e01b825230600483015291925090602082602481875afa908115610580575f9161054a575b610541925061076b565b108280806104f1565b90506020823d602011610578575b81610565602093836106ac565b8101031261010857610541915190610537565b3d9150610558565b6040513d5f823e3d90fd5b60018115166105a157853b15153d1516166104e2565b823d5f823e3d90fd5b9092506020813d6020116105d6575b816105c6602093836106ac565b81010312610108575191846104b4565b3d91506105b9565b3461010857d361010857d2610108575f3660031901126101085760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010857d361010857d2610108576020366003190112610108576004356001600160401b0381168103610108576101006020916100f2476001549061068b565b6004356001600160a81b0381168103610108576001600160a01b031690565b9190820180921161069857565b634e487b7160e01b5f52601160045260245ffd5b90601f801991011681019081106001600160401b038211176106cd57604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526001600160a01b03919091169190602081602481865afa908115610580575f91610737575b506100f290610734935f52600260205260405f20549061068b565b90565b90506020813d602011610763575b81610752602093836106ac565b810103126101085751610734610719565b3d9150610745565b9190820391821161069857565b6107349061078f6001600160401b034216826106e1565b6001600160a01b039091165f908152600260205260409020549061076b565b6107346001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166001600160401b037f00000000000000000000000000000000000000000000000000000000000000001661068b565b906001600160401b03908116907f00000000000000000000000000000000000000000000000000000000000000001680821015610848575050505f90565b6108506107ae565b821061085b57505090565b6108649161076b565b90818102918183041490151715610698576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000169081156108aa570490565b634e487b7160e01b5f52601260045260245ffd5b5f546001600160a01b031633036108d157565b63118cdaa760e01b5f523360045260245ffd5b8147106109445760405160208101908082106001600160401b038311176106cd575f9384938480949381946040525260018060a01b03165af11561092457565b3d15610935576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b504763cf47918160e01b5f5260045260245260445ffdfea36474726f6e5822122020e3b3aaf261c19cfdd7ce8043fae61900d3cac84d977848b25d2ae6e808d1276c6578706572696d656e74616cf564736f6c634300081a0041",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
