tx · DJxPtPwZ2YtX5yPCedsi4tcQCctmbyM6xTmxQcJojYNa

3NCTUyjM4SX4hK2kaFTkYv4J2fzcQHtvSjv:  -0.01000000 Waves

2020.06.05 09:53 [1029617] smart account 3NCTUyjM4SX4hK2kaFTkYv4J2fzcQHtvSjv > SELF 0.00000000 Waves

{ "type": 13, "id": "DJxPtPwZ2YtX5yPCedsi4tcQCctmbyM6xTmxQcJojYNa", "fee": 1000000, "feeAssetId": null, "timestamp": 1591339974432, "version": 1, "sender": "3NCTUyjM4SX4hK2kaFTkYv4J2fzcQHtvSjv", "senderPublicKey": "CCEAkP4AnTM1HmKyRheQLmgNxPKACsL5hcH72JUeCiDJ", "proofs": [ "4tE1C9J9t61phbKkitU4FsE8nRTzi3YshxTHBoCQBKCUTSmkB6sLbWWEhSyMVnsf2KP18SRocLteokiCMGiFBxLj" ], "script": "base64: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", "chainId": 84, "height": 1029617, "spentComplexity": 0 } View: original | compacted Prev: none Next: AKMY7v97crvGGitH7T6g3HesqhWg9s3jaXi68xVu6MMw Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let ownerPublicKey = base58'CCEAkP4AnTM1HmKyRheQLmgNxPKACsL5hcH72JUeCiDJ'
5+
6+func randomizer (inv) = {
7+ let rand = ((((inv.transactionId + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
8+ toUtf8String(sha256(rand))
9+ }
10+
11+
12+func offerErrorHandler (token,amount,price,type,inv) = {
13+ let payment = extract(inv.payment)
14+ if (if (if (if (!(isDefined(token)))
15+ then true
16+ else !(isDefined(amount)))
17+ then true
18+ else !(isDefined(price)))
19+ then true
20+ else !(isDefined(type)))
21+ then throw("Invalid Transaction")
22+ else if (if ((type == "buy"))
23+ then !(isDefined(payment))
24+ else false)
25+ then throw("No payment attached")
26+ else if (if (if ((type == "buy"))
27+ then isDefined(payment.amount)
28+ else false)
29+ then (payment.amount != amount)
30+ else false)
31+ then throw("Payment amount insufficient")
32+ else true
33+ }
34+
35+
36+@Callable(i)
37+func postOffer (tokenIn,amountIn,priceIn,typeIn) = if (offerErrorHandler(tokenIn, amountIn, priceIn, typeIn, i))
38+ then {
39+ let offerId = randomizer(i)
40+ let offerDetails = {
41+ let token = tokenIn
42+ let amount = amountIn
43+ let price = priceIn
44+ let type = typeIn
45+ "Script Version 1"
46+ }
47+ WriteSet([DataEntry((offerId + "_status"), "open"), DataEntry((offerId + "_data"), offerDetails)])
48+ }
49+ else throw("Conditions not met")
50+
51+
52+@Verifier(tx)
53+func verify () = match tx {
54+ case s: SetScriptTransaction =>
55+ sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
56+ case i: InvokeScriptTransaction =>
57+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
58+ case _ =>
59+ false
60+}
61+

github/deemru/w8io/c3f4982 
29.06 ms