tx · AKcDLnMyqvppYrVAEeETTxjH4utiFgDKo1q2FtDtKGbc

3NB2jbJZo5pokBTW3c4aiat3w9LbSLCbGU3:  -0.05000000 Waves

2019.11.12 19:56 [762107] smart account 3NB2jbJZo5pokBTW3c4aiat3w9LbSLCbGU3 > SELF 0.00000000 Waves

{ "type": 13, "id": "AKcDLnMyqvppYrVAEeETTxjH4utiFgDKo1q2FtDtKGbc", "fee": 5000000, "feeAssetId": null, "timestamp": 1573576646557, "version": 1, "sender": "3NB2jbJZo5pokBTW3c4aiat3w9LbSLCbGU3", "senderPublicKey": "D55uA65TM8azYFSfAKgf5mzRE1Do6r7bNchUFMUw4QFp", "proofs": [ "3tspD7PsK3wcSKDxKDh3xQSWSBpCoZcuB6rS72zyrTGJHWHpjM49htpmkGTcwkLh2Mn9MZdQ3LdHNo15foQj3gDA" ], "script": "base64:AAIDAAAAAAAAAA4IARIDCgEIEgUKAwgIAQAAABEAAAAABFlFQVIAAAAAB1jw38AAAAAABU1PTlRICQAAaQAAAAIFAAAABFlFQVIAAAAAAAAAAAwAAAAABUFETUlOAgAAACMzTkJEZ1I4aFU2Vzg2U3N0bjNFR2lkOGs5dXhrcWlKanhUNgAAAAAFVE9LRU4BAAAAIDikKD8KXBpuYwAPl+WO5qR/m+LZDjsA9NWjqNCpSyDFAAAAAAR3RVVSAQAAACDsFmEEX3uRIUEGOzfz59fU+PPTxg6qgJfzkL/Q+hW6mQAAAAADV1ZTAAAAAAAF9eEAAAAAAAtQUklDRXhCQVNJQwAAAAAAAAAAPAAAAAAOUFJJQ0V4QURWQU5DRUQAAAAAAAAAADIAAAAABUJBU0lDAgAAAAViYXNpYwAAAAAIQURWQU5DRUQCAAAACGFkdmFuY2VkAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFuBQAAAAckbWF0Y2gwBQAAAAFuAAAAAAAAAAAAAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzBQAAAAROT05FAQAAABVnZXRLZXlTdWJzY3JpcHRpb25FbmQAAAACAAAABGFkZHIAAAAEcGxhbgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAANc3Vic2NyaXB0aW9uXwUAAAAEYWRkcgIAAAABXwUAAAAEcGxhbgEAAAAOZ2V0VHJhbnNmZXJTZXQAAAABAAAAC3VzZXJBZGRyZXNzCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAALdXNlckFkZHJlc3MAAAAAAAAAAAEFAAAABVRPS0VOBQAAAANuaWwBAAAAC2dldFdyaXRlU2V0AAAAAwAAAAt1c2VyQWRkcmVzcwAAAA9zdWJzY3JpcHRpb25FbmQAAAAEcGxhbgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleVN1YnNjcmlwdGlvbkVuZAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARwbGFuBQAAAA9zdWJzY3JpcHRpb25FbmQFAAAAA25pbAEAAAAJZ2V0UmVzdWx0AAAABAAAAAt1c2VyQWRkcmVzcwAAAAZwZXJpb2QAAAAEcGxhbgAAAA9zdWJzY3JpcHRpb25FbmQDCQAAZgAAAAIFAAAAD3N1YnNjcmlwdGlvbkVuZAAAAAAAAAAAAAkBAAAAC2dldFdyaXRlU2V0AAAAAwUAAAALdXNlckFkZHJlc3MJAABkAAAAAgUAAAAPc3Vic2NyaXB0aW9uRW5kBQAAAAZwZXJpb2QFAAAABHBsYW4JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAALZ2V0V3JpdGVTZXQAAAADBQAAAAt1c2VyQWRkcmVzcwkAAGQAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAGcGVyaW9kBQAAAARwbGFuCQEAAAAOZ2V0VHJhbnNmZXJTZXQAAAABBQAAAAt1c2VyQWRkcmVzcwAAAAIAAAABaQEAAAAJc3Vic2NyaWJlAAAAAQAAAARwbGFuBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAACIT0AAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAR3RVVSCQAAAgAAAAECAAAAJ2FjY2VwdGluZyBvbmx5IHdFVVIgdG9rZW4gYXQgdGhlIG1vbWVudAQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA9zdWJzY3JpcHRpb25FbmQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlTdWJzY3JpcHRpb25FbmQAAAACBQAAAAdhY2NvdW50BQAAAARwbGFuAwkAAAAAAAACBQAAAARwbGFuBQAAAAVCQVNJQwMJAABmAAAAAgUAAAALUFJJQ0V4QkFTSUMIBQAAAAdwYXltZW50AAAABmFtb3VudAkAAAIAAAABAgAAACp1bnN1ZmZpY2llbnQgcGF5bWVudCBhbW91bnQgZm9yIGJhc2ljIHBsYW4JAQAAAAlnZXRSZXN1bHQAAAAEBQAAAAdhY2NvdW50BQAAAARZRUFSBQAAAARwbGFuBQAAAA9zdWJzY3JpcHRpb25FbmQDCQAAAAAAAAIFAAAABHBsYW4FAAAACEFEVkFOQ0VEAwkAAGYAAAACBQAAAA5QUklDRXhBRFZBTkNFRAgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAAAgAAAAECAAAALXVuc3VmZmljaWVudCBwYXltZW50IGFtb3VudCBmb3IgYWR2YW5jZWQgcGxhbgkBAAAACWdldFJlc3VsdAAAAAQFAAAAB2FjY291bnQFAAAABU1PTlRIBQAAAARwbGFuBQAAAA9zdWJzY3JpcHRpb25FbmQJAAACAAAAAQkAASwAAAACAgAAACFzdWJzY3JpcHRpb24gdG8gYW4gdW5rbm93biBwbGFuOiAFAAAABHBsYW4AAAABaQEAAAANc3Vic2NyaWJlVXNlcgAAAAMAAAALdXNlckFkZHJlc3MAAAAEcGxhbgAAABRwZXJpb2RJbk1pbGxpc2Vjb25kcwQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAtkQXBwQWNjb3VudAkAAlgAAAABCAUAAAAEdGhpcwAAAAVieXRlcwMDCQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAVBRE1JTgkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAALZEFwcEFjY291bnQHCQAAAgAAAAECAAAAF29ubHkgYWRtaW5zIGNhbiBkbyB0aGF0AwkAAGcAAAACAAAAAAAAAAAABQAAABRwZXJpb2RJbk1pbGxpc2Vjb25kcwkAAAIAAAABAgAAABRwZXJpb2QgaGFzIHRvIGJlID4gMAQAAAAPc3Vic2NyaXB0aW9uRW5kCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5U3Vic2NyaXB0aW9uRW5kAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABHBsYW4JAQAAAAlnZXRSZXN1bHQAAAAEBQAAAAt1c2VyQWRkcmVzcwUAAAAUcGVyaW9kSW5NaWxsaXNlY29uZHMFAAAABHBsYW4FAAAAD3N1YnNjcmlwdGlvbkVuZAAAAADVrRI3", "chainId": 84, "height": 762107, "spentComplexity": 0 } View: original | compacted Prev: 8xZ4F1vQCn8JrbBNiwLjHqnHeEbFaa3g4o9czPvehJsr Next: none Diff:
OldNewDifferences
4545 }
4646
4747
48-func r (s) = (("member_" + s) + "_subscription_end")
48+func r (s,t) = ((("subscription_" + s) + "_") + t)
4949
5050
51-func t (s) = (("member_" + s) + "_plan")
51+func u (v) = TransferSet([ScriptTransfer(addressFromStringValue(v), 1, d)])
5252
5353
54-func u (v) = TransferSet([ScriptTransfer(v, 1, d)])
54+func w (v,x,t) = WriteSet([DataEntry(r(v, t), x)])
5555
5656
57-func w (v,x,y) = WriteSet([DataEntry(r(v), (lastBlock.timestamp + x)), DataEntry(t(v), y)])
57+func y (v,z,t,x) = if ((x > 0))
58+ then w(v, (x + z), t)
59+ else ScriptResult(w(v, (lastBlock.timestamp + z), t), u(v))
5860
5961
60-func z (A,x,y,B) = {
61- let v = toBase58String(A.bytes)
62- if (B)
63- then w(v, x, y)
64- else ScriptResult(w(v, x, y), u(A))
65- }
66-
67-
68-@Callable(C)
69-func subscribe (y) = {
70- let D = extract(C.payment)
71- if ((D.assetId != e))
72- then throw("can use only wEUR token at the moment")
62+@Callable(A)
63+func subscribe (t) = {
64+ let B = extract(A.payment)
65+ if ((B.assetId != e))
66+ then throw("accepting only wEUR token at the moment")
7367 else {
74- let v = toBase58String(C.caller.bytes)
75- let E = l(r(v))
76- let B = (E != 0)
77- if ((y == i))
78- then if ((g > D.amount))
68+ let C = toBase58String(A.caller.bytes)
69+ let x = l(r(C, t))
70+ if ((t == i))
71+ then if ((g > B.amount))
7972 then throw("unsufficient payment amount for basic plan")
80- else z(C.caller, a, y, B)
81- else if ((y == j))
82- then if ((h > D.amount))
73+ else y(C, a, t, x)
74+ else if ((t == j))
75+ then if ((h > B.amount))
8376 then throw("unsufficient payment amount for advanced plan")
84- else z(C.caller, b, y, B)
85- else throw(("subscription to an unknown plan: " + y))
77+ else y(C, b, t, x)
78+ else throw(("subscription to an unknown plan: " + t))
8679 }
8780 }
8881
8982
9083
91-@Callable(C)
92-func subscribeUser (F,y) = {
93- let v = toBase58String(C.caller.bytes)
94- let G = toBase58String(this.bytes)
95- if (if ((v != c))
96- then (v != G)
84+@Callable(A)
85+func subscribeUser (v,t,D) = {
86+ let C = toBase58String(A.caller.bytes)
87+ let E = toBase58String(this.bytes)
88+ if (if ((C != c))
89+ then (C != E)
9790 else false)
9891 then throw("only admins can do that")
99- else {
100- let E = l(r(F))
101- let B = (E != 0)
102- let x = if ((y == i))
103- then a
104- else if ((y == j))
105- then b
106- else throw(("subscription to an unknown plan: " + y))
107- z(addressFromStringValue(F), x, y, B)
108- }
92+ else if ((0 >= D))
93+ then throw("period has to be > 0")
94+ else {
95+ let x = l(r(v, t))
96+ y(v, D, t, x)
97+ }
10998 }
11099
111100
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 31556952000
55
66 let b = (a / 12)
77
88 let c = "3NBDgR8hU6W86Sstn3EGid8k9uxkqiJjxT6"
99
1010 let d = base58'4p71jCgmDVcv2J9HLrtEXRSE9UPNFfVwGg7nRh2f6r5r'
1111
1212 let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1313
1414 let f = 100000000
1515
1616 let g = 60
1717
1818 let h = 50
1919
2020 let i = "basic"
2121
2222 let j = "advanced"
2323
2424 let k = "none"
2525
2626 func l (m) = {
2727 let n = getInteger(this, m)
2828 if ($isInstanceOf(n, "Int"))
2929 then {
3030 let o = n
3131 o
3232 }
3333 else 0
3434 }
3535
3636
3737 func p (m) = {
3838 let n = getString(this, m)
3939 if ($isInstanceOf(n, "String"))
4040 then {
4141 let q = n
4242 q
4343 }
4444 else k
4545 }
4646
4747
48-func r (s) = (("member_" + s) + "_subscription_end")
48+func r (s,t) = ((("subscription_" + s) + "_") + t)
4949
5050
51-func t (s) = (("member_" + s) + "_plan")
51+func u (v) = TransferSet([ScriptTransfer(addressFromStringValue(v), 1, d)])
5252
5353
54-func u (v) = TransferSet([ScriptTransfer(v, 1, d)])
54+func w (v,x,t) = WriteSet([DataEntry(r(v, t), x)])
5555
5656
57-func w (v,x,y) = WriteSet([DataEntry(r(v), (lastBlock.timestamp + x)), DataEntry(t(v), y)])
57+func y (v,z,t,x) = if ((x > 0))
58+ then w(v, (x + z), t)
59+ else ScriptResult(w(v, (lastBlock.timestamp + z), t), u(v))
5860
5961
60-func z (A,x,y,B) = {
61- let v = toBase58String(A.bytes)
62- if (B)
63- then w(v, x, y)
64- else ScriptResult(w(v, x, y), u(A))
65- }
66-
67-
68-@Callable(C)
69-func subscribe (y) = {
70- let D = extract(C.payment)
71- if ((D.assetId != e))
72- then throw("can use only wEUR token at the moment")
62+@Callable(A)
63+func subscribe (t) = {
64+ let B = extract(A.payment)
65+ if ((B.assetId != e))
66+ then throw("accepting only wEUR token at the moment")
7367 else {
74- let v = toBase58String(C.caller.bytes)
75- let E = l(r(v))
76- let B = (E != 0)
77- if ((y == i))
78- then if ((g > D.amount))
68+ let C = toBase58String(A.caller.bytes)
69+ let x = l(r(C, t))
70+ if ((t == i))
71+ then if ((g > B.amount))
7972 then throw("unsufficient payment amount for basic plan")
80- else z(C.caller, a, y, B)
81- else if ((y == j))
82- then if ((h > D.amount))
73+ else y(C, a, t, x)
74+ else if ((t == j))
75+ then if ((h > B.amount))
8376 then throw("unsufficient payment amount for advanced plan")
84- else z(C.caller, b, y, B)
85- else throw(("subscription to an unknown plan: " + y))
77+ else y(C, b, t, x)
78+ else throw(("subscription to an unknown plan: " + t))
8679 }
8780 }
8881
8982
9083
91-@Callable(C)
92-func subscribeUser (F,y) = {
93- let v = toBase58String(C.caller.bytes)
94- let G = toBase58String(this.bytes)
95- if (if ((v != c))
96- then (v != G)
84+@Callable(A)
85+func subscribeUser (v,t,D) = {
86+ let C = toBase58String(A.caller.bytes)
87+ let E = toBase58String(this.bytes)
88+ if (if ((C != c))
89+ then (C != E)
9790 else false)
9891 then throw("only admins can do that")
99- else {
100- let E = l(r(F))
101- let B = (E != 0)
102- let x = if ((y == i))
103- then a
104- else if ((y == j))
105- then b
106- else throw(("subscription to an unknown plan: " + y))
107- z(addressFromStringValue(F), x, y, B)
108- }
92+ else if ((0 >= D))
93+ then throw("period has to be > 0")
94+ else {
95+ let x = l(r(v, t))
96+ y(v, D, t, x)
97+ }
10998 }
11099
111100

github/deemru/w8io/c3f4982 
32.20 ms