tx · 2Qi7NDdAheotZecA1iqo3dX6DbXGRZXMu3SPAjUTmzNK

3N3iL6znDFhJNWj7NKfRKoYVG1hdboZ8iC7:  -0.01400000 Waves

2019.10.20 12:15 [728196] smart account 3N3iL6znDFhJNWj7NKfRKoYVG1hdboZ8iC7 > SELF 0.00000000 Waves

{ "type": 13, "id": "2Qi7NDdAheotZecA1iqo3dX6DbXGRZXMu3SPAjUTmzNK", "fee": 1400000, "feeAssetId": null, "timestamp": 1571562985813, "version": 1, "sender": "3N3iL6znDFhJNWj7NKfRKoYVG1hdboZ8iC7", "senderPublicKey": "E7ctE5XJHaksUWy2PHrQGj5FRLQk6FezFZrhnphjpgUt", "proofs": [ "5CBPmcTHufnGfLBHDJRmJyqcRtUkEwv3mkQwampyD34J5NB7kpkywo767A57mmRCHUJcarJBEF313jjUwfHJyyHu" ], "script": "base64:AAIDAAAAAAAAABEIARIGCgQBAQgBEgMKAQgSAAAAAAkAAAAAB1JVTk5JTkcCAAAAB1JVTk5JTkcAAAAABkNMT1NFRAIAAAAGQ0xPU0VEAAAAAAhDQU5DRUxFRAIAAAAIQ0FOQ0VMRUQAAAAACURBUFBPV05FUgIAAAAjM04zaUw2em5ERmhKTldqN05LZlJLb1lWRzFoZGJvWjhpQzcAAAAAC1ZPVEVBU1NFVElEAQAAACBdzVgyIDG1TTrr2IC+hZgKEiTPyt49R9i8wN0ZNQ6rqgAAAAAETk9ORQIAAAAETk9ORQAAAAAKVk9USU5HQ09TVAAAAAAAAAGGoAEAAAALZ2V0U3RyVmFsdWUAAAABAAAAA2tleQQAAAAGdmFsT3B0CQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAZ2YWxPcHQJAQAAAAdleHRyYWN0AAAAAQUAAAAGdmFsT3B0CQAAAgAAAAEJAAEsAAAAAgUAAAADa2V5AgAAAC8gd2FzIG5vdCBpbml0aWFsaXplZCBiZWZvcmUgY29udHJhY3QgZGVwbG95bWVudAEAAAALZ2V0SW50VmFsdWUAAAABAAAAA2tleQQAAAAGdmFsT3B0CQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAZ2YWxPcHQJAQAAAAdleHRyYWN0AAAAAQUAAAAGdmFsT3B0CQAAAgAAAAEJAAEsAAAAAgUAAAADa2V5AgAAAC8gd2FzIG5vdCBpbml0aWFsaXplZCBiZWZvcmUgY29udHJhY3QgZGVwbG95bWVudAAAAAMAAAABaQEAAAAKaW5pdGlhbGl6ZQAAAAQAAAAOc3RhcnRpbmdIZWlnaHQAAAAIZHVyYXRpb24AAAANdm90aW5nQXNzZXRJZAAAAAp2b3RpbmdDb3N0BAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAEnZvdGF0aW9uQ3Vyck51bWJlcgkBAAAAC2dldEludFZhbHVlAAAAAQIAAAAWdm90YXRpb25fY3VycmVudG51bWJlcgQAAAASdm90YXRpb25DdXJyU3RhdHVzCQEAAAALZ2V0U3RyVmFsdWUAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIdm90YXRpb24JAAGkAAAAAQUAAAASdm90YXRpb25DdXJyTnVtYmVyAgAAAAdfc3RhdHVzAwkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAAJREFQUE9XTkVSCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAN09ubHkgZEFQUCBPd25lciBjYW5jb25maWd1cmUgdm90YXRpb24uIENhbGxlciBhY2NvdW50OiAFAAAAB2FjY291bnQCAAAADSBkYXBwIG93bmVyOiAFAAAACURBUFBPV05FUgMJAAAAAAAAAgUAAAASdm90YXRpb25DdXJyU3RhdHVzBQAAAAdSVU5OSU5HCQAAAgAAAAEJAAEsAAAAAgIAAAA9WW91IGNhbm5vdCBjb25maWd1cmUgYSBuZXcgVm90YXRpb24gd2hpbGUgY3VycmVudCBzdGF0dXMgaXM6IAUAAAASdm90YXRpb25DdXJyU3RhdHVzAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAADnN0YXJ0aW5nSGVpZ2h0CQAAAgAAAAECAAAAP1N0YXJ0aW5nIEhlaWdodCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBjdXJyZW50IGJsb2NrY2hhaW4gaGVpZ2h0LgQAAAARdm90YXRpb25OZXdOdW1iZXIJAABkAAAAAgUAAAASdm90YXRpb25DdXJyTnVtYmVyAAAAAAAAAAABCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABZ2b3RhdGlvbl9jdXJyZW50bnVtYmVyBQAAABF2b3RhdGlvbk5ld051bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAUdm90YXRpb25fdm90aW5nYXNzZXQFAAAADXZvdGluZ0Fzc2V0SWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAE3ZvdGF0aW9uX3ZvdGluZ2Nvc3QFAAAACnZvdGluZ0Nvc3QJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAl2b3RhdGlvbl8JAAGkAAAAAQUAAAARdm90YXRpb25OZXdOdW1iZXICAAAADF9zdGFydGhlaWdodAUAAAAOc3RhcnRpbmdIZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAl2b3RhdGlvbl8JAAGkAAAAAQUAAAARdm90YXRpb25OZXdOdW1iZXICAAAADV9maW5pc2hoZWlnaHQJAABkAAAAAgUAAAAOc3RhcnRpbmdIZWlnaHQFAAAACGR1cmF0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJdm90YXRpb25fCQABpAAAAAEFAAAAEXZvdGF0aW9uTmV3TnVtYmVyAgAAAAdfc3RhdHVzBQAAAAdSVU5OSU5HBQAAAANuaWwAAAABaQEAAAAEdm90ZQAAAAEAAAAGb3B0aW9uBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAABJ2b3RhdGlvbkN1cnJOdW1iZXIJAQAAAAtnZXRJbnRWYWx1ZQAAAAECAAAAFnZvdGF0aW9uX2N1cnJlbnRudW1iZXIEAAAAE3ZvdGF0aW9uVm90aW5nQXNzZXQJAAJZAAAAAQkBAAAAC2dldFN0clZhbHVlAAAAAQIAAAAUdm90YXRpb25fdm90aW5nYXNzZXQEAAAAEnZvdGF0aW9uVm90aW5nQ29zdAkBAAAAC2dldEludFZhbHVlAAAAAQIAAAATdm90YXRpb25fdm90aW5nY29zdAQAAAAXdm90YXRpb25DdXJyT3B0aW9uVmFsdWUJAQAAAAtnZXRJbnRWYWx1ZQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACXZvdGF0aW9uXwkAAaQAAAABBQAAABJ2b3RhdGlvbkN1cnJOdW1iZXICAAAAAV8FAAAABm9wdGlvbgQAAAATdm90YXRpb25TdGFydEhlaWdodAkBAAAAC2dldEludFZhbHVlAAAAAQkAASwAAAACCQABLAAAAAICAAAACXZvdGF0aW9uXwkAAaQAAAABBQAAABJ2b3RhdGlvbkN1cnJOdW1iZXICAAAADF9zdGFydGhlaWdodAQAAAAUdm90YXRpb25GaW5p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", "chainId": 84, "height": 728196, "spentComplexity": 0 } View: original | compacted Prev: A8HRouvpTtbTRiRzCLJVXHVdCzypx8NAsi12uN9XADsv Next: 5q15HYjPcLqNDdaWt8F8URTUqyqnmHLqehaJ8YDCwDH9 Diff:
OldNewDifferences
6161 let z = k((("votation_" + toString(r)) + "_startheight"))
6262 let A = k((("votation_" + toString(r)) + "_finishheight"))
6363 let s = h((("votation_" + toString(r)) + "_status"))
64- let B = h((("votation_" + toString(r)) + "_status"))
6564 if ((height > A))
6665 then throw("You cannot vote anymore at this height.")
6766 else if ((s != a))
7473 }
7574
7675
77-@Verifier(C)
78-func D () = {
79- let E = C
80- if (if ($isInstanceOf(E, "SetScriptTransaction"))
76+
77+@Callable(l)
78+func close () = {
79+ let q = toBase58String(l.caller.bytes)
80+ let v = extract(l.payment)
81+ let r = k("votation_currentnumber")
82+ let s = h((("votation_" + toString(r)) + "_status"))
83+ if ((s != b))
84+ then throw("Invalid status: you cannot close a CLOSED vote.")
85+ else WriteSet([DataEntry((("votation_" + toString(r)) + "_status"), b)])
86+ }
87+
88+
89+@Verifier(B)
90+func C () = {
91+ let D = B
92+ if (if ($isInstanceOf(D, "SetScriptTransaction"))
8193 then true
82- else $isInstanceOf(E, "DataTransaction"))
83- then sigVerify(C.bodyBytes, C.proofs[0], C.senderPublicKey)
84- else if ($isInstanceOf(E, "InvokeScriptTransaction"))
94+ else $isInstanceOf(D, "DataTransaction"))
95+ then sigVerify(B.bodyBytes, B.proofs[0], B.senderPublicKey)
96+ else if ($isInstanceOf(D, "InvokeScriptTransaction"))
8597 then true
8698 else true
8799 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "RUNNING"
55
66 let b = "CLOSED"
77
88 let c = "CANCELED"
99
1010 let d = "3N3iL6znDFhJNWj7NKfRKoYVG1hdboZ8iC7"
1111
1212 let e = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
1313
1414 let f = "NONE"
1515
1616 let g = 100000
1717
1818 func h (i) = {
1919 let j = getString(this, i)
2020 if (isDefined(j))
2121 then extract(j)
2222 else throw((i + " was not initialized before contract deployment"))
2323 }
2424
2525
2626 func k (i) = {
2727 let j = getInteger(this, i)
2828 if (isDefined(j))
2929 then extract(j)
3030 else throw((i + " was not initialized before contract deployment"))
3131 }
3232
3333
3434 @Callable(l)
3535 func initialize (m,n,o,p) = {
3636 let q = toBase58String(l.caller.bytes)
3737 let r = k("votation_currentnumber")
3838 let s = h((("votation" + toString(r)) + "_status"))
3939 if ((q != d))
4040 then throw(((("Only dAPP Owner canconfigure votation. Caller account: " + q) + " dapp owner: ") + d))
4141 else if ((s == a))
4242 then throw(("You cannot configure a new Votation while current status is: " + s))
4343 else if ((height > m))
4444 then throw("Starting Height must be greater than current blockchain height.")
4545 else {
4646 let t = (r + 1)
4747 WriteSet([DataEntry("votation_currentnumber", t), DataEntry("votation_votingasset", o), DataEntry("votation_votingcost", p), DataEntry((("votation_" + toString(t)) + "_startheight"), m), DataEntry((("votation_" + toString(t)) + "_finishheight"), (m + n)), DataEntry((("votation_" + toString(t)) + "_status"), a)])
4848 }
4949 }
5050
5151
5252
5353 @Callable(l)
5454 func vote (u) = {
5555 let q = toBase58String(l.caller.bytes)
5656 let v = extract(l.payment)
5757 let r = k("votation_currentnumber")
5858 let w = fromBase58String(h("votation_votingasset"))
5959 let x = k("votation_votingcost")
6060 let y = k(((("votation_" + toString(r)) + "_") + u))
6161 let z = k((("votation_" + toString(r)) + "_startheight"))
6262 let A = k((("votation_" + toString(r)) + "_finishheight"))
6363 let s = h((("votation_" + toString(r)) + "_status"))
64- let B = h((("votation_" + toString(r)) + "_status"))
6564 if ((height > A))
6665 then throw("You cannot vote anymore at this height.")
6766 else if ((s != a))
6867 then throw(("Invalid status: you cannot vote now, votation status is: " + s))
6968 else if (if ((v.assetId != w))
7069 then true
7170 else (v.amount != x))
7271 then throw(((("You must pay at least: " + toString(g)) + " WLT to vote. You paid: ") + toString(v.amount)))
7372 else WriteSet([DataEntry(((((("votation_" + toString(r)) + "_") + u) + "_") + q), v.amount), DataEntry((((("votation_" + toString(r)) + "_") + q) + "_bets"), (y + v.amount))])
7473 }
7574
7675
77-@Verifier(C)
78-func D () = {
79- let E = C
80- if (if ($isInstanceOf(E, "SetScriptTransaction"))
76+
77+@Callable(l)
78+func close () = {
79+ let q = toBase58String(l.caller.bytes)
80+ let v = extract(l.payment)
81+ let r = k("votation_currentnumber")
82+ let s = h((("votation_" + toString(r)) + "_status"))
83+ if ((s != b))
84+ then throw("Invalid status: you cannot close a CLOSED vote.")
85+ else WriteSet([DataEntry((("votation_" + toString(r)) + "_status"), b)])
86+ }
87+
88+
89+@Verifier(B)
90+func C () = {
91+ let D = B
92+ if (if ($isInstanceOf(D, "SetScriptTransaction"))
8193 then true
82- else $isInstanceOf(E, "DataTransaction"))
83- then sigVerify(C.bodyBytes, C.proofs[0], C.senderPublicKey)
84- else if ($isInstanceOf(E, "InvokeScriptTransaction"))
94+ else $isInstanceOf(D, "DataTransaction"))
95+ then sigVerify(B.bodyBytes, B.proofs[0], B.senderPublicKey)
96+ else if ($isInstanceOf(D, "InvokeScriptTransaction"))
8597 then true
8698 else true
8799 }
88100

github/deemru/w8io/6500d08 
45.94 ms