{
    "_format": "hh-sol-artifact-1",
    "contractName": "LockedNORILibTestHarness",
    "sourceName": "contracts/test/LockedNORILibTestHarness.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "id",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "CliffAdded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "id",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "startTime",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "endTime",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "totalAmount",
                    "type": "uint256"
                }
            ],
            "name": "ScheduleCreated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "id",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "balance",
                    "type": "uint256"
                }
            ],
            "name": "ScheduleTruncated",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "scheduleId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "addCliff",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "scheduleId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "atTime",
                    "type": "uint256"
                }
            ],
            "name": "availableAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "startTime",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "endTime",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "totalAmount",
                    "type": "uint256"
                }
            ],
            "name": "create",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "scheduleId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "atTime",
                    "type": "uint256"
                }
            ],
            "name": "truncateScheduleAmount",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b50610ba6806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633f353fcf146100515780635174b5621461006d5780635899ea1314610089578063c97fe94b146100b9575b600080fd5b61006b60048036038101906100669190610634565b6100d5565b005b61008760048036038101906100829190610674565b61013b565b005b6100a3600480360381019061009e9190610634565b6101c2565b6040516100b091906106d6565b60405180910390f35b6100d360048036038101906100ce9190610674565b6101f0565b005b60006100e183836101c2565b905080600080858152602001908152602001600020600201819055507f6114e26f4333414f417da57f7a415474fd2df0730648f4748b8eb9a2d14495aa838260405161012e9291906106f1565b60405180910390a1505050565b610161828260008087815260200190815260200160002061028c9092919063ffffffff16565b7fe3b8293c4ee6cdc59f5c1690803c6c1440038f43705dc0b37d382be2ae3d2cdb6001600080868152602001908152602001600020600401546101a49190610749565b83836040516101b59392919061077d565b60405180910390a1505050565b60006101e88260008086815260200190815260200160002061045b90919063ffffffff16565b905092915050565b600080600060015481526020019081526020016000209050600180600082825461021a91906107b4565b925050819055508381600001819055508281600101819055508181600201819055507fbd7880573155705535dce3194981f4b25e22063a5619ea279e73b43b348316706001805461026b9190610749565b85858560405161027e94939291906107e8565b60405180910390a150505050565b60008360040154905060008460040154036102ed5783600001548310156102e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102df906108b0565b60405180910390fd5b610355565b8360030160006001836103009190610749565b815260200190815260200160002060000154831015610354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034b90610942565b60405180910390fd5b5b836001015483111561039c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610393906109d4565b60405180910390fd5b83600201548285600501546103b191906107b4565b11156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990610a66565b60405180910390fd5b60008460030160008381526020019081526020016000209050838160000181905550828160010181905550600185600401600082825461043291906107b4565b925050819055508285600501600082825461044d91906107b4565b925050819055505050505050565b60006104678383610483565b6104718484610553565b61047b91906107b4565b905092915050565b60008083600501548460020154106104ac57836005015484600201546104a99190610749565b90505b836001015483106104c0578091505061054d565b60008460000154905060008560040154111561050257846003016000600187600401546104ed9190610749565b81526020019081526020016000206000015490505b60008186600101546105149190610749565b90508185106105445780828661052a9190610749565b846105359190610a86565b61053f9190610af7565b610547565b60005b93505050505b92915050565b6000806000905060008460040154905060005b818110156105c7578560030160008281526020019081526020016000206000015485106105b45785600301600082815260200190815260200160002060010154836105b191906107b4565b92505b80806105bf90610b28565b915050610566565b506105d68560020154836105e0565b9250505092915050565b60008183106105ef57816105f1565b825b905092915050565b600080fd5b6000819050919050565b610611816105fe565b811461061c57600080fd5b50565b60008135905061062e81610608565b92915050565b6000806040838503121561064b5761064a6105f9565b5b60006106598582860161061f565b925050602061066a8582860161061f565b9150509250929050565b60008060006060848603121561068d5761068c6105f9565b5b600061069b8682870161061f565b93505060206106ac8682870161061f565b92505060406106bd8682870161061f565b9150509250925092565b6106d0816105fe565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b600060408201905061070660008301856106c7565b61071360208301846106c7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610754826105fe565b915061075f836105fe565b92508282039050818111156107775761077661071a565b5b92915050565b600060608201905061079260008301866106c7565b61079f60208301856106c7565b6107ac60408301846106c7565b949350505050565b60006107bf826105fe565b91506107ca836105fe565b92508282019050808211156107e2576107e161071a565b5b92915050565b60006080820190506107fd60008301876106c7565b61080a60208301866106c7565b61081760408301856106c7565b61082460608301846106c7565b95945050505050565b600082825260208201905092915050565b7f4c6f636b65644e4f52494c69623a20436c696666206265666f7265207363686560008201527f64756c6520737461727400000000000000000000000000000000000000000000602082015250565b600061089a602a8361082d565b91506108a58261083e565b604082019050919050565b600060208201905081810360008301526108c98161088d565b9050919050565b7f4c6f636b65644e4f52494c69623a20436c69666673206e6f74206368726f6e6f60008201527f6c6f676963616c00000000000000000000000000000000000000000000000000602082015250565b600061092c60278361082d565b9150610937826108d0565b604082019050919050565b6000602082019050818103600083015261095b8161091f565b9050919050565b7f4c6f636b65644e4f52494c69623a20436c696666732063616e6e6f7420656e6460008201527f206166746572207363686564756c650000000000000000000000000000000000602082015250565b60006109be602f8361082d565b91506109c982610962565b604082019050919050565b600060208201905081810360008301526109ed816109b1565b9050919050565b7f4c6f636b65644e4f52494c69623a20436c69666620616d6f756e74732065786360008201527f65656420746f74616c0000000000000000000000000000000000000000000000602082015250565b6000610a5060298361082d565b9150610a5b826109f4565b604082019050919050565b60006020820190508181036000830152610a7f81610a43565b9050919050565b6000610a91826105fe565b9150610a9c836105fe565b9250828202610aaa816105fe565b91508282048414831517610ac157610ac061071a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b02826105fe565b9150610b0d836105fe565b925082610b1d57610b1c610ac8565b5b828204905092915050565b6000610b33826105fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b6557610b6461071a565b5b60018201905091905056fea264697066735822122093378db244c00cb180e990265f4124e0668f02dd822dcf8240142b954926740b64736f6c63430008110033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80633f353fcf146100515780635174b5621461006d5780635899ea1314610089578063c97fe94b146100b9575b600080fd5b61006b60048036038101906100669190610634565b6100d5565b005b61008760048036038101906100829190610674565b61013b565b005b6100a3600480360381019061009e9190610634565b6101c2565b6040516100b091906106d6565b60405180910390f35b6100d360048036038101906100ce9190610674565b6101f0565b005b60006100e183836101c2565b905080600080858152602001908152602001600020600201819055507f6114e26f4333414f417da57f7a415474fd2df0730648f4748b8eb9a2d14495aa838260405161012e9291906106f1565b60405180910390a1505050565b610161828260008087815260200190815260200160002061028c9092919063ffffffff16565b7fe3b8293c4ee6cdc59f5c1690803c6c1440038f43705dc0b37d382be2ae3d2cdb6001600080868152602001908152602001600020600401546101a49190610749565b83836040516101b59392919061077d565b60405180910390a1505050565b60006101e88260008086815260200190815260200160002061045b90919063ffffffff16565b905092915050565b600080600060015481526020019081526020016000209050600180600082825461021a91906107b4565b925050819055508381600001819055508281600101819055508181600201819055507fbd7880573155705535dce3194981f4b25e22063a5619ea279e73b43b348316706001805461026b9190610749565b85858560405161027e94939291906107e8565b60405180910390a150505050565b60008360040154905060008460040154036102ed5783600001548310156102e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102df906108b0565b60405180910390fd5b610355565b8360030160006001836103009190610749565b815260200190815260200160002060000154831015610354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034b90610942565b60405180910390fd5b5b836001015483111561039c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610393906109d4565b60405180910390fd5b83600201548285600501546103b191906107b4565b11156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990610a66565b60405180910390fd5b60008460030160008381526020019081526020016000209050838160000181905550828160010181905550600185600401600082825461043291906107b4565b925050819055508285600501600082825461044d91906107b4565b925050819055505050505050565b60006104678383610483565b6104718484610553565b61047b91906107b4565b905092915050565b60008083600501548460020154106104ac57836005015484600201546104a99190610749565b90505b836001015483106104c0578091505061054d565b60008460000154905060008560040154111561050257846003016000600187600401546104ed9190610749565b81526020019081526020016000206000015490505b60008186600101546105149190610749565b90508185106105445780828661052a9190610749565b846105359190610a86565b61053f9190610af7565b610547565b60005b93505050505b92915050565b6000806000905060008460040154905060005b818110156105c7578560030160008281526020019081526020016000206000015485106105b45785600301600082815260200190815260200160002060010154836105b191906107b4565b92505b80806105bf90610b28565b915050610566565b506105d68560020154836105e0565b9250505092915050565b60008183106105ef57816105f1565b825b905092915050565b600080fd5b6000819050919050565b610611816105fe565b811461061c57600080fd5b50565b60008135905061062e81610608565b92915050565b6000806040838503121561064b5761064a6105f9565b5b60006106598582860161061f565b925050602061066a8582860161061f565b9150509250929050565b60008060006060848603121561068d5761068c6105f9565b5b600061069b8682870161061f565b93505060206106ac8682870161061f565b92505060406106bd8682870161061f565b9150509250925092565b6106d0816105fe565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b600060408201905061070660008301856106c7565b61071360208301846106c7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610754826105fe565b915061075f836105fe565b92508282039050818111156107775761077661071a565b5b92915050565b600060608201905061079260008301866106c7565b61079f60208301856106c7565b6107ac60408301846106c7565b949350505050565b60006107bf826105fe565b91506107ca836105fe565b92508282019050808211156107e2576107e161071a565b5b92915050565b60006080820190506107fd60008301876106c7565b61080a60208301866106c7565b61081760408301856106c7565b61082460608301846106c7565b95945050505050565b600082825260208201905092915050565b7f4c6f636b65644e4f52494c69623a20436c696666206265666f7265207363686560008201527f64756c6520737461727400000000000000000000000000000000000000000000602082015250565b600061089a602a8361082d565b91506108a58261083e565b604082019050919050565b600060208201905081810360008301526108c98161088d565b9050919050565b7f4c6f636b65644e4f52494c69623a20436c69666673206e6f74206368726f6e6f60008201527f6c6f676963616c00000000000000000000000000000000000000000000000000602082015250565b600061092c60278361082d565b9150610937826108d0565b604082019050919050565b6000602082019050818103600083015261095b8161091f565b9050919050565b7f4c6f636b65644e4f52494c69623a20436c696666732063616e6e6f7420656e6460008201527f206166746572207363686564756c650000000000000000000000000000000000602082015250565b60006109be602f8361082d565b91506109c982610962565b604082019050919050565b600060208201905081810360008301526109ed816109b1565b9050919050565b7f4c6f636b65644e4f52494c69623a20436c69666620616d6f756e74732065786360008201527f65656420746f74616c0000000000000000000000000000000000000000000000602082015250565b6000610a5060298361082d565b9150610a5b826109f4565b604082019050919050565b60006020820190508181036000830152610a7f81610a43565b9050919050565b6000610a91826105fe565b9150610a9c836105fe565b9250828202610aaa816105fe565b91508282048414831517610ac157610ac061071a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b02826105fe565b9150610b0d836105fe565b925082610b1d57610b1c610ac8565b5b828204905092915050565b6000610b33826105fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b6557610b6461071a565b5b60018201905091905056fea264697066735822122093378db244c00cb180e990265f4124e0668f02dd822dcf8240142b954926740b64736f6c63430008110033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
