/* The below does not represent a functional lock/unlock script. * It is intended to test KDE's Syntax Highlighting framework. */ // Pragma comment. pragma cashscript ^0.9.2; // Locking Script/Function. contract TestContract( address addressExampple, int intExample, bool boolExample, string stringExample, pubkey pubkeyExample, sig sigExample, datasig datasigExample ) { // Unlocking Script/Function. function testUnlock( byte singleByte, bytes bytesUnspecifiedLength, bytes1 bytes1Length, bytes99 bytes99Length ) { // General. require(singleByte == bytes1Length); // Arithmetic. int resultAbs = abs(intExample); int resultMin = min(intExample, 100); int resultMax = max(intExample, 100); int resultWithin = within(intExample, 0, 100); // Hashing. bool resultHash160 = hash160(bytesUnspecifiedLength); bool resultHash256 = hash256(bytesUnspecifiedLength); bool resultRipeMd160 = ripemd160(bytesUnspecifiedLength); bool resultSha1 = sha1(bytesUnspecifiedLength); bool resultSha256 = sha256(bytesUnspecifiedLength); // Signature checking. bool resultChecksig = checkSig(sigExample, pubkeyExample); bool resultCheckMultiSig = checkMultiSig([sigExample], [pubkeyExample]); bool resultCheckDataSig = checkDataSig(datasigExample, bytesUnspecifiedLength, pubkeyExample); // Locking Bytecode. bytes p2pkh = new LockingBytecodeP2PKH(bytesUnspecifiedLength); bytes p2sh20 = new LockingBytecodeP2SH20(bytesUnspecifiedLength); bytes p2sh32 = new LockingBytecodeP2SH32(bytesUnspecifiedLength); bytes nullData = new LockingBytecodeNullData(bytesUnspecifiedLength); // Keywods. bool exampleTrue = true; bool exampleFalse = false; // Control structures. if (exampleTrue) { require(singleByte == bytes1Length); } else if (exampleFalse) { require(singleByte == bytes1Length); } else { require(singleByte == bytes1Length); } // Units. int exampleSatoshis = 1 satoshis; int exampleSats = 1 sats; int exampleFinney = 1 finney; int exampleBits = 1 bits; int exampleBitcoin = 1 bitcoin; int exampleSeconds = 1 seconds; int exampleMinutes = 1 minutes; int exampleHours = 1 hours; int exampleDays = 1 days; int exampleWeeks = 1 weeks; // Misc. string exampleString = "This is an example string"; bytes exampleHex = 0xaabbccddeeff; } }