tx · 8ubdGLD6vFVDPUQL7ZmfcMiexTLeuEALfM6agDECVKDE

3Mr5qPbeVKxVRjGMAumaEkSK7dMo3FbtFYE:  -0.01400000 Waves

2021.06.21 23:53 [1580645] smart account 3Mr5qPbeVKxVRjGMAumaEkSK7dMo3FbtFYE > SELF 0.00000000 Waves

{ "type": 13, "id": "8ubdGLD6vFVDPUQL7ZmfcMiexTLeuEALfM6agDECVKDE", "fee": 1400000, "feeAssetId": null, "timestamp": 1624308802555, "version": 2, "chainId": 84, "sender": "3Mr5qPbeVKxVRjGMAumaEkSK7dMo3FbtFYE", "senderPublicKey": "EsW1U1EWPD2yLGRwTq3i9ftXRvWVpLbNz9R8U9xAF4e8", "proofs": [ "4fd6DP5Us1SD1eSS71fTsRa9jeicmNno6RXhJmSxHfRi4fPMwi6mGGiX66iZ37UVmHj4RZpgWiRWGVRJYMFGCyff" ], "script": "base64:AAIEAAAAAAAAACwIAhIDCgEIEgMKAQESAwoBARIECgIIARIHCgUICAEBCBIECgIIARIECgIIAQAAABABAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAABm51bWJlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAAGbnVtYmVyAAAAAAROT05FAgAAAARub25lAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAZzdHJpbmcEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAABnN0cmluZwEAAAAPYWRkcmVzc1RvU3RyaW5nAAAAAQAAAAdhZGRyZXNzCQACWAAAAAEIBQAAAAdhZGRyZXNzAAAABWJ5dGVzAQAAAA9zdHJpbmdUb0FkZHJlc3MAAAABAAAABnN0cmluZwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABnN0cmluZwEAAAASYnl0ZVZlY3RvclRvU3RyaW5nAAAAAQAAAApieXRlVmVjdG9yCQACWAAAAAEFAAAACmJ5dGVWZWN0b3IBAAAAEnN0cmluZ1RvQnl0ZVZlY3RvcgAAAAEAAAAGc3RyaW5nCQACWQAAAAEFAAAABnN0cmluZwEAAAAHaXNBZG1pbgAAAAEAAAAGY2FsbGVyCQAAAAAAAAIFAAAABHRoaXMFAAAABmNhbGxlcgEAAAAPZ2V0VXNlckVtYWlsS2V5AAAAAQAAAAl1c2VyRW1haWwJAAEsAAAAAgkAASwAAAACAgAAAAV1c2VyXwUAAAAJdXNlckVtYWlsAgAAAAZfZW1haWwBAAAAEWdldFVzZXJFbWFpbFZhbHVlAAAAAQAAAAl1c2VyRW1haWwJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9nZXRVc2VyRW1haWxLZXkAAAABBQAAAAl1c2VyRW1haWwBAAAAD2dldE55YW5Ub2tlbktleQAAAAEAAAALZEFwcEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAAVkQXBwXwkBAAAAD2FkZHJlc3NUb1N0cmluZwAAAAEFAAAAC2RBcHBBZGRyZXNzAgAAAAhfdG9rZW5JZAEAAAARZ2V0TnlhblRva2VuVmFsdWUAAAABAAAAC2RBcHBBZGRyZXNzCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPZ2V0TnlhblRva2VuS2V5AAAAAQUAAAALZEFwcEFkZHJlc3MBAAAAEGdldEFzc2V0UHJpY2VLZXkAAAABAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACAgAAAAZhc3NldF8FAAAAB2Fzc2V0SWQCAAAABl9wcmljZQEAAAASZ2V0QXNzZXRQcmljZVZhbHVlAAAAAQAAAAdhc3NldElkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0QXNzZXRQcmljZUtleQAAAAEFAAAAB2Fzc2V0SWQBAAAAD2dldEFzc2V0RGF0YUtleQAAAAEAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAHYXNzZXRJZAIAAAAFX2RhdGEBAAAAEWdldEFzc2V0RGF0YVZhbHVlAAAAAQAAAAdhc3NldElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQZ2V0QXNzZXRQcmljZUtleQAAAAEFAAAAB2Fzc2V0SWQAAAAHAAAAAWkBAAAABnNpZ25VcAAAAAEAAAAFZW1haWwEAAAAC3VzZXJBZGRyZXNzCQEAAAAPYWRkcmVzc1RvU3RyaW5nAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAl1c2VyRW1haWwJAQAAABFnZXRVc2VyRW1haWxWYWx1ZQAAAAEFAAAAC3VzZXJBZGRyZXNzAwkBAAAAAiE9AAAAAgUAAAAJdXNlckVtYWlsBQAAAAROT05FCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAVVc2VyIAUAAAAJdXNlckVtYWlsAgAAABYgaXMgYWxyZWFkeSByZWdpc3RlcmVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9nZXRVc2VyRW1haWxLZXkAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAFZW1haWwFAAAAA25pbAAAAAFpAQAAAA5pc3N1ZU55YW5Ub2tlbgAAAAEAAAAIcXVhbnRpdHkEAAAACW55YW5Ub2tlbgkBAAAAEWdldE55YW5Ub2tlblZhbHVlAAAAAQUAAAAEdGhpcwMJAQAAAAIhPQAAAAIFAAAACW55YW5Ub2tlbgUAAAAETk9ORQkAAAIAAAABAgAAABxOWUFOIFRva2VuIGlzIGFscmVhZHkgaXNzdWVkBAAAAA5ueWFuVG9rZW5Jc3N1ZQkABEIAAAAFAgAAAApOWUFOIFRva2VuAgAAAEhOWUFOIFRva2VuIGlzIGEgY3J5cHRvY3VycmVuY3kgdG9rZW4gdGhhdCBvcGVyYXRlcyBvbiB0aGUgV2F2ZXMgcGxhdGZvcm0FAAAACHF1YW50aXR5AAAAAAAAAAAABgQAAAAQbnlhblRva2VuQXNzZXRJZAkABDgAAAABBQAAAA5ueWFuVG9rZW5Jc3N1ZQkABEwAAAACBQAAAA5ueWFuVG9rZW5Jc3N1ZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPZ2V0TnlhblRva2VuS2V5AAAAAQUAAAAEdGhpcwkBAAAAEmJ5dGVWZWN0b3JUb1N0cmluZwAAAAEFAAAAEG55YW5Ub2tlbkFzc2V0SWQFAAAAA25pbAAAAAFpAQAAABByZWlzc3VlTnlhblRva2VuAAAAAQAAAAhxdWFudGl0eQQAAAAJbnlhblRva2VuCQEAAAARZ2V0TnlhblRva2VuVmFsdWUAAAABBQAAAAR0aGlzAwkBAAAAASEAAAABCQEAAAAHaXNBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAABpub3QgYWRtaW4sIC8vIFRPRE8gbWVzc2FnZQMJAAAAAAAAAgUAAAAJbnlhblRva2VuBQAAAAROT05FCQAAAgAAAAECAAAAGU5ZQU4gVG9rZW4gd2FzIG5vdCBpc3N1ZWQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADCQEAAAASc3RyaW5nVG9CeXRlVmVjdG9yAAAAAQUAAAAJbnlhblRva2VuBQAAAAhxdWFudGl0eQYFAAAAA25pbAAAAAFpAQAAABF0cmFuc2Zlck55YW5Ub2tlbgAAAAIAAAAJcmVjaXBpZW50AAAABmFtb3VudAQAAAAJdXNlckVtYWlsCQEAAAARZ2V0VXNlckVtYWlsVmFsdWUAAAABBQAAAAlyZWNpcGllbnQEAAAAEG55YW5Ub2tlbkFzc2V0SWQJAQAAABJzdHJpbmdUb0J5dGVWZWN0b3IAAAABCQEAAAARZ2V0TnlhblRva2VuVmFsdWUAAAABBQAAAAR0aGlzBAAAABJjdXJyZW50REFwcEJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAQbnlhblRva2VuQXNzZXRJZAQAAAAObmV3REFwcEJhbGFuY2UJAABlAAAAAgUAAAASY3VycmVudERBcHBCYWxhbmNlBQAAAAZhbW91bnQDCQAAAAAAAAIFAAAACXVzZXJFbWFpbAUAAAAETk9ORQkAAAIAAAABAgAAADdZb3UgY2Fubm90IHRyYW5zZmVyIE5ZQU4gVG9rZW5zIHRvIGFuIHVucmVnaXN0ZXJlZCB1c2VyAwkAAGYAAAACAAAAAAAAAAAABQAAAAZhbW91bnQJAAACAAAAAQIAAAAlWW91IGNhbm5vdCB0cmFuc2ZlciBhIG5lZ2F0aXZlIGFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAObmV3REFwcEJhbGFuY2UJAAACAAAAAQIAAAAiTm90IGVub3VnaCBOWUFOIFRva2VucyB0byB0cmFuc2ZlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAPc3RyaW5nVG9BZGRyZXNzAAAAAQUAAAAJcmVjaXBpZW50BQAAAAZhbW91bnQFAAAAEG55YW5Ub2tlbkFzc2V0SWQFAAAAA25pbAAAAAFpAQAAAA9pc3N1ZUFzc2V0VG9rZW4AAAAFAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAIcXVhbnRpdHkAAAAFcHJpY2UAAAAEZGF0YQQAAAAPYXNzZXRUb2tlbklzc3VlCQAEQgAAAAUFAAAABG5hbWUFAAAAC2Rlc2NyaXB0aW9uBQAAAAhxdWFudGl0eQAAAAAAAAAAAAYEAAAAEWFzc2V0VG9rZW5Bc3NldElkCQAEOAAAAAEFAAAAD2Fzc2V0VG9rZW5Jc3N1ZQQAAAAKYXNzZXRUb2tlbgkBAAAAEmJ5dGVWZWN0b3JUb1N0cmluZwAAAAEFAAAAEWFzc2V0VG9rZW5Bc3NldElkAwkAAAAAAAACBQAAAAhxdWFudGl0eQAAAAAAAAAAAAkABEwAAAACBQAAAA9hc3NldFRva2VuSXNzdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABBnZXRBc3NldFByaWNlS2V5AAAAAQUAAAAKYXNzZXRUb2tlbgUAAAAFcHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2dldEFzc2V0RGF0YUtleQAAAAEFAAAACmFzc2V0VG9rZW4FAAAABGRhdGEFAAAAA25pbAQAAAAQbnlhblRva2VuQXNzZXRJZAkBAAAAEnN0cmluZ1RvQnl0ZVZlY3RvcgAAAAEJAQAAABFnZXROeWFuVG9rZW5WYWx1ZQAAAAEFAAAABHRoaXMEAAAAEmN1cnJlbnREQXBwQmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzBQAAABBueWFuVG9rZW5Bc3NldElkBAAAAAZhbW91bnQJAABoAAAAAgUAAAAIcXVhbnRpdHkFAAAABXByaWNlBAAAAA5uZXdEQXBwQmFsYW5jZQkAAGUAAAACBQAAABJjdXJyZW50REFwcEJhbGFuY2UFAAAABmFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAObmV3REFwcEJhbGFuY2UJAAACAAAAAQIAAAAoTm90IGVub3VnaCBOWUFOIFRva2VucyB0byBpc3N1ZSBhbiBhc3NldAkABEwAAAACBQAAAA9hc3NldFRva2VuSXNzdWUJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAABBueWFuVG9rZW5Bc3NldElkBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABBnZXRBc3NldFByaWNlS2V5AAAAAQUAAAAKYXNzZXRUb2tlbgUAAAAFcHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2dldEFzc2V0RGF0YUtleQAAAAEFAAAACmFzc2V0VG9rZW4FAAAABGRhdGEFAAAAA25pbAAAAAFpAQAAABFyZWlzc3VlQXNzZXRUb2tlbgAAAAIAAAAHYXNzZXRJZAAAAAhxdWFudGl0eQQAAAAQbnlhblRva2VuQXNzZXRJZAkBAAAAEnN0cmluZ1RvQnl0ZVZlY3RvcgAAAAEJAQAAABFnZXROeWFuVG9rZW5WYWx1ZQAAAAEFAAAABHRoaXMEAAAAEmN1cnJlbnREQXBwQmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzBQAAABBueWFuVG9rZW5Bc3NldElkBAAAAAVwcmljZQkBAAAAEmdldEFzc2V0UHJpY2VWYWx1ZQAAAAEFAAAAB2Fzc2V0SWQEAAAABmFtb3VudAkAAGgAAAACBQAAAAhxdWFudGl0eQUAAAAFcHJpY2UEAAAADm5ld0RBcHBCYWxhbmNlCQAAZQAAAAIFAAAAEmN1cnJlbnREQXBwQmFsYW5jZQUAAAAGYW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAA5uZXdEQXBwQmFsYW5jZQkAAAIAAAABAgAAACpOb3QgZW5vdWdoIE5ZQU4gVG9rZW5zIHRvIHJlaXNzdWUgYW4gYXNzZXQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADCQEAAAASc3RyaW5nVG9CeXRlVmVjdG9yAAAAAQUAAAAHYXNzZXRJZAUAAAAIcXVhbnRpdHkGCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAAQbnlhblRva2VuQXNzZXRJZAUAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAASZXhjaGFuZ2VBc3NldFRva2VuAAAAAgAAAAdhc3NldElkAAAABmFtb3VudAQAAAAIcGF5bWVudHMIBQAAAAFpAAAACHBheW1lbnRzAwkAAAAAAAACCQABkAAAAAEFAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAHllvdSBuZWVkIHRvIGF0dGFjaCB0aGUgcGF5bWVudAQAAAANcGF5bWVudEFtb3VudAgJAAGRAAAAAgUAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BAAAAA5wYXltZW50QXNzZXRJZAkBAAAABXZhbHVlAAAAAQgJAAGRAAAAAgUAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAKYXNzZXRQcmljZQkBAAAAEmdldEFzc2V0UHJpY2VWYWx1ZQAAAAEFAAAAB2Fzc2V0SWQEAAAAC2Fzc2V0QW1vdW50CQAAaAAAAAIFAAAABmFtb3VudAUAAAAKYXNzZXRQcmljZQQAAAALdXNlckFkZHJlc3MIBQAAAAFpAAAABmNhbGxlcgQAAAARYXNzZXRUb2tlbkFzc2V0SWQJAQAAABJzdHJpbmdUb0J5dGVWZWN0b3IAAAABBQAAAAdhc3NldElkAwkAAGYAAAACBQAAAAthc3NldEFtb3VudAUAAAANcGF5bWVudEFtb3VudAkAAAIAAAABAgAAACtOb3QgZW5vdWdoIE5ZQU4gVG9rZW5zIHRvIGV4Y2hhbmdlIGFuIGFzc2V0AwkAAAAAAAACBQAAAA1wYXltZW50QW1vdW50BQAAAAthc3NldEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAt1c2VyQWRkcmVzcwUAAAAGYW1vdW50BQAAABFhc3NldFRva2VuQXNzZXRJZAkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADnBheW1lbnRBc3NldElkBQAAAA1wYXltZW50QW1vdW50BQAAAANuaWwEAAAAE3BheW1lbnRBbW91bnRDaGFuZ2UJAABlAAAAAgUAAAANcGF5bWVudEFtb3VudAUAAAALYXNzZXRBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAABmFtb3VudAUAAAARYXNzZXRUb2tlbkFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAE3BheW1lbnRBbW91bnRDaGFuZ2UFAAAADnBheW1lbnRBc3NldElkCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAAOcGF5bWVudEFzc2V0SWQFAAAAC2Fzc2V0QW1vdW50BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleVPVewQ=", "height": 1580645, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 89eJNseCvbRvACYZEpvNitiigR8rVEL3gk2cDJZr29pY Next: 6ucu4qNnuJuPPVKgLT16wo45R679uFRPCAVactTai51r Diff:
OldNewDifferences
4343 func n (h) = fromBase58String(h)
4444
4545
46-func o (p) = (("user_" + p) + "_email")
46+func o (p) = (this == p)
4747
4848
49-func q (p) = g(o(p))
49+func q (r) = (("user_" + r) + "_email")
5050
5151
52-func r (s) = (("dApp_" + i(s)) + "_tokenId")
52+func s (r) = g(q(r))
5353
5454
55-func t (s) = g(r(s))
55+func t (u) = (("dApp_" + i(u)) + "_tokenId")
5656
5757
58-func u (v) = (("asset_" + v) + "_price")
58+func v (u) = g(t(u))
5959
6060
61-func w (v) = a(u(v))
61+func w (x) = (("asset_" + x) + "_price")
6262
6363
64-func x (v) = (("asset_" + v) + "_data")
64+func y (x) = a(w(x))
6565
6666
67-func y (v) = g(u(v))
67+func z (x) = (("asset_" + x) + "_data")
6868
6969
70-@Callable(z)
71-func signUp (A) = {
72- let B = i(z.caller)
73- let p = q(B)
74- if ((p != f))
75- then throw((("User " + p) + " is already registered"))
76- else [StringEntry(o(B), A)]
70+func A (x) = g(w(x))
71+
72+
73+@Callable(B)
74+func signUp (C) = {
75+ let D = i(B.caller)
76+ let r = s(D)
77+ if ((r != f))
78+ then throw((("User " + r) + " is already registered"))
79+ else [StringEntry(q(D), C)]
7780 }
7881
7982
8083
81-@Callable(z)
82-func issueNyanToken (C) = {
83- let D = t(this)
84- if ((D != f))
84+@Callable(B)
85+func issueNyanToken (E) = {
86+ let F = v(this)
87+ if ((F != f))
8588 then throw("NYAN Token is already issued")
8689 else {
87- let E = Issue("NYAN Token", "NYAN Token is a cryptocurrency token that operates on the Waves platform", C, 0, true)
88- let F = calculateAssetId(E)
89-[E, StringEntry(r(this), l(F))]
90+ let G = Issue("NYAN Token", "NYAN Token is a cryptocurrency token that operates on the Waves platform", E, 0, true)
91+ let H = calculateAssetId(G)
92+[G, StringEntry(t(this), l(H))]
9093 }
9194 }
9295
9396
9497
95-@Callable(z)
96-func reissueNyanToken (C) = {
97- let D = t(this)
98- if ((D == f))
99- then throw("NYAN Token was not issued")
100- else [Reissue(n(D), C, true)]
98+@Callable(B)
99+func reissueNyanToken (E) = {
100+ let F = v(this)
101+ if (!(o(B.caller)))
102+ then throw("not admin, // TODO message")
103+ else if ((F == f))
104+ then throw("NYAN Token was not issued")
105+ else [Reissue(n(F), E, true)]
101106 }
102107
103108
104109
105-@Callable(z)
106-func transferNyanToken (G,H) = {
107- let p = q(G)
108- let F = n(t(this))
109- let I = assetBalance(this, F)
110- let J = (I - H)
111- if ((p == f))
110+@Callable(B)
111+func transferNyanToken (I,J) = {
112+ let r = s(I)
113+ let H = n(v(this))
114+ let K = assetBalance(this, H)
115+ let L = (K - J)
116+ if ((r == f))
112117 then throw("You cannot transfer NYAN Tokens to an unregistered user")
113- else if ((0 > H))
118+ else if ((0 > J))
114119 then throw("You cannot transfer a negative amount")
115- else if ((0 > J))
120+ else if ((0 > L))
116121 then throw("Not enough NYAN Tokens to transfer")
117- else [ScriptTransfer(k(G), H, F)]
122+ else [ScriptTransfer(k(I), J, H)]
118123 }
119124
120125
121126
122-@Callable(z)
123-func issueAssetToken (K,L,C,M,N) = {
124- let O = Issue(K, L, C, 0, true)
125- let P = calculateAssetId(O)
126- let Q = l(P)
127- if ((C == 0))
128- then [O, IntegerEntry(u(Q), M), StringEntry(x(Q), N)]
127+@Callable(B)
128+func issueAssetToken (M,N,E,O,P) = {
129+ let Q = Issue(M, N, E, 0, true)
130+ let R = calculateAssetId(Q)
131+ let S = l(R)
132+ if ((E == 0))
133+ then [Q, IntegerEntry(w(S), O), StringEntry(z(S), P)]
129134 else {
130- let F = n(t(this))
131- let I = assetBalance(this, F)
132- let H = (C * M)
133- let J = (I - H)
134- if ((0 > J))
135+ let H = n(v(this))
136+ let K = assetBalance(this, H)
137+ let J = (E * O)
138+ let L = (K - J)
139+ if ((0 > L))
135140 then throw("Not enough NYAN Tokens to issue an asset")
136- else [O, Burn(F, H), IntegerEntry(u(Q), M), StringEntry(x(Q), N)]
141+ else [Q, Burn(H, J), IntegerEntry(w(S), O), StringEntry(z(S), P)]
137142 }
138143 }
139144
140145
141146
142-@Callable(z)
143-func reissueAssetToken (v,C) = {
144- let F = n(t(this))
145- let I = assetBalance(this, F)
146- let M = w(v)
147- let H = (C * M)
148- let J = (I - H)
149- if ((0 > J))
147+@Callable(B)
148+func reissueAssetToken (x,E) = {
149+ let H = n(v(this))
150+ let K = assetBalance(this, H)
151+ let O = y(x)
152+ let J = (E * O)
153+ let L = (K - J)
154+ if ((0 > L))
150155 then throw("Not enough NYAN Tokens to reissue an asset")
151- else [Reissue(n(v), C, true), Burn(F, H)]
156+ else [Reissue(n(x), E, true), Burn(H, J)]
152157 }
153158
154159
155160
156-@Callable(z)
157-func exchangeAssetToken (v,H) = {
158- let R = z.payments
159- if ((size(R) == 0))
161+@Callable(B)
162+func exchangeAssetToken (x,J) = {
163+ let T = B.payments
164+ if ((size(T) == 0))
160165 then throw("You need to attach the payment")
161166 else {
162- let S = R[0].amount
163- let T = value(R[0].assetId)
164- let U = w(v)
165- let V = (H * U)
166- let B = z.caller
167- let P = n(v)
168- if ((V > S))
167+ let U = T[0].amount
168+ let V = value(T[0].assetId)
169+ let W = y(x)
170+ let X = (J * W)
171+ let D = B.caller
172+ let R = n(x)
173+ if ((X > U))
169174 then throw("Not enough NYAN Tokens to exchange an asset")
170- else if ((S == V))
171- then [ScriptTransfer(B, H, P), Burn(T, S)]
175+ else if ((U == X))
176+ then [ScriptTransfer(D, J, R), Burn(V, U)]
172177 else {
173- let W = (S - V)
174-[ScriptTransfer(B, H, P), ScriptTransfer(B, W, T), Burn(T, V)]
178+ let Y = (U - X)
179+[ScriptTransfer(D, J, R), ScriptTransfer(D, Y, V), Burn(V, X)]
175180 }
176181 }
177182 }
178183
179184
180-@Verifier(X)
181-func Y () = sigVerify(X.bodyBytes, X.proofs[0], X.senderPublicKey)
185+@Verifier(Z)
186+func aa () = sigVerify(Z.bodyBytes, Z.proofs[0], Z.senderPublicKey)
182187
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = {
66 let d = getInteger(this, b)
77 if ($isInstanceOf(d, "Int"))
88 then {
99 let e = d
1010 e
1111 }
1212 else 0
1313 }
1414 c
1515 }
1616
1717
1818 let f = "none"
1919
2020 func g (b) = {
2121 let h = {
2222 let d = getString(this, b)
2323 if ($isInstanceOf(d, "String"))
2424 then {
2525 let e = d
2626 e
2727 }
2828 else f
2929 }
3030 h
3131 }
3232
3333
3434 func i (j) = toBase58String(j.bytes)
3535
3636
3737 func k (h) = Address(fromBase58String(h))
3838
3939
4040 func l (m) = toBase58String(m)
4141
4242
4343 func n (h) = fromBase58String(h)
4444
4545
46-func o (p) = (("user_" + p) + "_email")
46+func o (p) = (this == p)
4747
4848
49-func q (p) = g(o(p))
49+func q (r) = (("user_" + r) + "_email")
5050
5151
52-func r (s) = (("dApp_" + i(s)) + "_tokenId")
52+func s (r) = g(q(r))
5353
5454
55-func t (s) = g(r(s))
55+func t (u) = (("dApp_" + i(u)) + "_tokenId")
5656
5757
58-func u (v) = (("asset_" + v) + "_price")
58+func v (u) = g(t(u))
5959
6060
61-func w (v) = a(u(v))
61+func w (x) = (("asset_" + x) + "_price")
6262
6363
64-func x (v) = (("asset_" + v) + "_data")
64+func y (x) = a(w(x))
6565
6666
67-func y (v) = g(u(v))
67+func z (x) = (("asset_" + x) + "_data")
6868
6969
70-@Callable(z)
71-func signUp (A) = {
72- let B = i(z.caller)
73- let p = q(B)
74- if ((p != f))
75- then throw((("User " + p) + " is already registered"))
76- else [StringEntry(o(B), A)]
70+func A (x) = g(w(x))
71+
72+
73+@Callable(B)
74+func signUp (C) = {
75+ let D = i(B.caller)
76+ let r = s(D)
77+ if ((r != f))
78+ then throw((("User " + r) + " is already registered"))
79+ else [StringEntry(q(D), C)]
7780 }
7881
7982
8083
81-@Callable(z)
82-func issueNyanToken (C) = {
83- let D = t(this)
84- if ((D != f))
84+@Callable(B)
85+func issueNyanToken (E) = {
86+ let F = v(this)
87+ if ((F != f))
8588 then throw("NYAN Token is already issued")
8689 else {
87- let E = Issue("NYAN Token", "NYAN Token is a cryptocurrency token that operates on the Waves platform", C, 0, true)
88- let F = calculateAssetId(E)
89-[E, StringEntry(r(this), l(F))]
90+ let G = Issue("NYAN Token", "NYAN Token is a cryptocurrency token that operates on the Waves platform", E, 0, true)
91+ let H = calculateAssetId(G)
92+[G, StringEntry(t(this), l(H))]
9093 }
9194 }
9295
9396
9497
95-@Callable(z)
96-func reissueNyanToken (C) = {
97- let D = t(this)
98- if ((D == f))
99- then throw("NYAN Token was not issued")
100- else [Reissue(n(D), C, true)]
98+@Callable(B)
99+func reissueNyanToken (E) = {
100+ let F = v(this)
101+ if (!(o(B.caller)))
102+ then throw("not admin, // TODO message")
103+ else if ((F == f))
104+ then throw("NYAN Token was not issued")
105+ else [Reissue(n(F), E, true)]
101106 }
102107
103108
104109
105-@Callable(z)
106-func transferNyanToken (G,H) = {
107- let p = q(G)
108- let F = n(t(this))
109- let I = assetBalance(this, F)
110- let J = (I - H)
111- if ((p == f))
110+@Callable(B)
111+func transferNyanToken (I,J) = {
112+ let r = s(I)
113+ let H = n(v(this))
114+ let K = assetBalance(this, H)
115+ let L = (K - J)
116+ if ((r == f))
112117 then throw("You cannot transfer NYAN Tokens to an unregistered user")
113- else if ((0 > H))
118+ else if ((0 > J))
114119 then throw("You cannot transfer a negative amount")
115- else if ((0 > J))
120+ else if ((0 > L))
116121 then throw("Not enough NYAN Tokens to transfer")
117- else [ScriptTransfer(k(G), H, F)]
122+ else [ScriptTransfer(k(I), J, H)]
118123 }
119124
120125
121126
122-@Callable(z)
123-func issueAssetToken (K,L,C,M,N) = {
124- let O = Issue(K, L, C, 0, true)
125- let P = calculateAssetId(O)
126- let Q = l(P)
127- if ((C == 0))
128- then [O, IntegerEntry(u(Q), M), StringEntry(x(Q), N)]
127+@Callable(B)
128+func issueAssetToken (M,N,E,O,P) = {
129+ let Q = Issue(M, N, E, 0, true)
130+ let R = calculateAssetId(Q)
131+ let S = l(R)
132+ if ((E == 0))
133+ then [Q, IntegerEntry(w(S), O), StringEntry(z(S), P)]
129134 else {
130- let F = n(t(this))
131- let I = assetBalance(this, F)
132- let H = (C * M)
133- let J = (I - H)
134- if ((0 > J))
135+ let H = n(v(this))
136+ let K = assetBalance(this, H)
137+ let J = (E * O)
138+ let L = (K - J)
139+ if ((0 > L))
135140 then throw("Not enough NYAN Tokens to issue an asset")
136- else [O, Burn(F, H), IntegerEntry(u(Q), M), StringEntry(x(Q), N)]
141+ else [Q, Burn(H, J), IntegerEntry(w(S), O), StringEntry(z(S), P)]
137142 }
138143 }
139144
140145
141146
142-@Callable(z)
143-func reissueAssetToken (v,C) = {
144- let F = n(t(this))
145- let I = assetBalance(this, F)
146- let M = w(v)
147- let H = (C * M)
148- let J = (I - H)
149- if ((0 > J))
147+@Callable(B)
148+func reissueAssetToken (x,E) = {
149+ let H = n(v(this))
150+ let K = assetBalance(this, H)
151+ let O = y(x)
152+ let J = (E * O)
153+ let L = (K - J)
154+ if ((0 > L))
150155 then throw("Not enough NYAN Tokens to reissue an asset")
151- else [Reissue(n(v), C, true), Burn(F, H)]
156+ else [Reissue(n(x), E, true), Burn(H, J)]
152157 }
153158
154159
155160
156-@Callable(z)
157-func exchangeAssetToken (v,H) = {
158- let R = z.payments
159- if ((size(R) == 0))
161+@Callable(B)
162+func exchangeAssetToken (x,J) = {
163+ let T = B.payments
164+ if ((size(T) == 0))
160165 then throw("You need to attach the payment")
161166 else {
162- let S = R[0].amount
163- let T = value(R[0].assetId)
164- let U = w(v)
165- let V = (H * U)
166- let B = z.caller
167- let P = n(v)
168- if ((V > S))
167+ let U = T[0].amount
168+ let V = value(T[0].assetId)
169+ let W = y(x)
170+ let X = (J * W)
171+ let D = B.caller
172+ let R = n(x)
173+ if ((X > U))
169174 then throw("Not enough NYAN Tokens to exchange an asset")
170- else if ((S == V))
171- then [ScriptTransfer(B, H, P), Burn(T, S)]
175+ else if ((U == X))
176+ then [ScriptTransfer(D, J, R), Burn(V, U)]
172177 else {
173- let W = (S - V)
174-[ScriptTransfer(B, H, P), ScriptTransfer(B, W, T), Burn(T, V)]
178+ let Y = (U - X)
179+[ScriptTransfer(D, J, R), ScriptTransfer(D, Y, V), Burn(V, X)]
175180 }
176181 }
177182 }
178183
179184
180-@Verifier(X)
181-func Y () = sigVerify(X.bodyBytes, X.proofs[0], X.senderPublicKey)
185+@Verifier(Z)
186+func aa () = sigVerify(Z.bodyBytes, Z.proofs[0], Z.senderPublicKey)
182187

github/deemru/w8io/169f3d6 
52.33 ms