123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- {
- "contracts": [
- {
- "contractName": "TimeToCashout",
- "constructorInputs": [
- {
- "name": "owner",
- "type": "pubkey",
- "visible": false,
- "unused": false
- },
- {
- "name": "recoveryPkh",
- "type": "bytes20",
- "visible": true,
- "unused": false
- },
- {
- "name": "gratitude",
- "type": "int",
- "visible": true,
- "unused": false
- },
- {
- "name": "timeout",
- "type": "int",
- "visible": true,
- "unused": false
- }
- ],
- "abi": [
- {
- "name": "transfer",
- "inputs": [
- {
- "name": "signature",
- "type": "sig"
- }
- ]
- },
- {
- "name": "cashout",
- "inputs": []
- }
- ],
- "dependencies": [],
- "bytecode": "OP_FROMALTSTACK OP_FROMALTSTACK OP_FROMALTSTACK OP_FROMALTSTACK OP_4 OP_PICK OP_0 OP_NUMEQUAL OP_IF OP_5 OP_ROLL OP_SWAP OP_CHECKSIGVERIFY OP_2DROP OP_2DROP OP_ELSE OP_4 OP_ROLL OP_1 OP_NUMEQUALVERIFY OP_3 OP_ROLL OP_CHECKSEQUENCEVERIFY OP_DROP 005114 OP_ROT OP_CAT OP_0 OP_OUTPUTBYTECODE OP_EQUALVERIFY OP_0 OP_OUTPUTVALUE OP_5 OP_PUSH_TX_STATE OP_3 OP_ROLL OP_SUB OP_GREATERTHANOREQUAL OP_VERIFY OP_DROP OP_ENDIF",
- "contracts": []
- }
- ],
- "source": "pragma nexscript >= 0.2.0;\n\ncontract TimeToCashout(\n pubkey owner,\n bytes20 visible recoveryPkh,\n int visible gratitude,\n int visible timeout,\n) {\n function transfer(sig signature) {\n require(checkSig(signature, owner));\n }\n\n function cashout() {\n require(tx.age >= timeout);\n\n bytes23 recoveryBytecode = new LockingBytecodeP2PKT(recoveryPkh);\n\n require(tx.outputs[0].lockingBytecode == recoveryBytecode);\n require(tx.outputs[0].value >= tx.amountIn - gratitude);\n }\n}\n",
- "compiler": {
- "name": "nexc",
- "version": "0.10.0"
- },
- "updatedAt": "2024-09-11T09:15:53.813Z"
- }
|