tx · BkPfgYJ6o1jJeuWrSs7ExxHjCCwECXKuMxHw2WH2LquW

3MtoBpCc3s2T4CxasJ5MXrZZsU339D28mvD:  -0.01400000 Waves

2021.05.26 13:22 [1542503] smart account 3MtoBpCc3s2T4CxasJ5MXrZZsU339D28mvD > SELF 0.00000000 Waves

{ "type": 13, "id": "BkPfgYJ6o1jJeuWrSs7ExxHjCCwECXKuMxHw2WH2LquW", "fee": 1400000, "feeAssetId": null, "timestamp": 1622024587538, "version": 2, "chainId": 84, "sender": "3MtoBpCc3s2T4CxasJ5MXrZZsU339D28mvD", "senderPublicKey": "8SRjg8K8B7rhV2pih6qRgku886VQE4phwNCDjWZu1fUe", "proofs": [ "2SeqkgVzpf5Hh8qe4cDBV47TBV1RuGZC1GjAD73CnESiubpJ7DqvNXHCvHyyNfsb8mLW5Rc82BgurRhsnfHyxJxP" ], "script": "base64:AAIEAAAAAAAAACYIAhIDCgEIEgMKAQESAwoBARIECgIIARIHCgUICAEBCBIECgIIAQAAABEBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAABm51bWJlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAAGbnVtYmVyAAAAAAROT05FAgAAAARub25lAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAZzdHJpbmcEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAABnN0cmluZwEAAAAPZ2V0S2V5VXNlckVtYWlsAAAAAQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgIAAAAFdXNlcl8FAAAABHVzZXICAAAABl9lbWFpbAEAAAARZ2V0VmFsdWVVc2VyRW1haWwAAAABAAAABHVzZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9nZXRLZXlVc2VyRW1haWwAAAABBQAAAAR1c2VyAQAAABFnZXRLZXlVc2VyQmFsYW5jZQAAAAEAAAAEdXNlcgkAASwAAAACCQABLAAAAAICAAAABXVzZXJfBQAAAAR1c2VyAgAAAAhfYmFsYW5jZQEAAAATZ2V0VmFsdWVVc2VyQmFsYW5jZQAAAAEAAAAEdXNlcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEWdldEtleVVzZXJCYWxhbmNlAAAAAQUAAAAEdXNlcgEAAAARZ2V0S2V5REFwcEFzc2V0SWQAAAAAAgAAAAxkQXBwX2Fzc2V0SWQBAAAAE2dldFZhbHVlREFwcEFzc2V0SWQAAAAACQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARZ2V0S2V5REFwcEFzc2V0SWQAAAAAAQAAABFnZXRLZXlEQXBwQmFsYW5jZQAAAAACAAAADGRBcHBfYmFsYW5jZQEAAAATZ2V0VmFsdWVEQXBwQmFsYW5jZQAAAAAJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRLZXlEQXBwQmFsYW5jZQAAAAABAAAAEWdldEtleUFzc2V0QW1vdW50AAAAAQAAAAVhc3NldAkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAFYXNzZXQCAAAAB19hbW91bnQBAAAAE2dldFZhbHVlQXNzZXRBbW91bnQAAAABAAAABWFzc2V0CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5QXNzZXRBbW91bnQAAAABBQAAAAVhc3NldAEAAAAQZ2V0S2V5QXNzZXRQcmljZQAAAAEAAAAFYXNzZXQJAAEsAAAAAgkAASwAAAACAgAAAAZhc3NldF8FAAAABWFzc2V0AgAAAAZfcHJpY2UBAAAAEmdldFZhbHVlQXNzZXRQcmljZQAAAAEAAAAFYXNzZXQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABBnZXRLZXlBc3NldFByaWNlAAAAAQUAAAAFYXNzZXQBAAAAD2dldEtleUFzc2V0RGF0YQAAAAEAAAAFYXNzZXQJAAEsAAAAAgkAASwAAAACAgAAAAZhc3NldF8FAAAABWFzc2V0AgAAAAVfZGF0YQEAAAARZ2V0VmFsdWVBc3NldERhdGEAAAABAAAABWFzc2V0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQZ2V0S2V5QXNzZXRQcmljZQAAAAEFAAAABWFzc2V0AAAABgAAAAFpAQAAAAZzaWduVXAAAAABAAAABWVtYWlsBAAAABJjdXJyZW50VXNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAQY3VycmVudFVzZXJFbWFpbAkBAAAAEWdldFZhbHVlVXNlckVtYWlsAAAAAQUAAAASY3VycmVudFVzZXJBZGRyZXNzAwkBAAAAAiE9AAAAAgUAAAAQY3VycmVudFVzZXJFbWFpbAUAAAAETk9ORQkAAAIAAAABAgAAABp1c2VyIGlzIGFscmVhZHkgcmVnaXN0ZXJlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPZ2V0S2V5VXNlckVtYWlsAAAAAQUAAAASY3VycmVudFVzZXJBZGRyZXNzBQAAAAVlbWFpbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldEtleVVzZXJCYWxhbmNlAAAAAQUAAAASY3VycmVudFVzZXJBZGRyZXNzAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAKaXNzdWVUb2tlbgAAAAEAAAAIcXVhbnRpdHkEAAAAC2RBcHBBc3NldElkCQEAAAATZ2V0VmFsdWVEQXBwQXNzZXRJZAAAAAADCQEAAAACIT0AAAACBQAAAAtkQXBwQXNzZXRJZAUAAAAETk9ORQkAAAIAAAABAgAAAB10b2tlbiBoYXMgYWxyZWFkeSBiZWVuIGlzc3VlZAQAAAAFYXNzZXQJAARCAAAABQIAAAAHTllBTi0yNQIAAAANTllBTi0yNSB0b2tlbgUAAAAIcXVhbnRpdHkAAAAAAAAAAAAGBAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0CQAETAAAAAIFAAAABWFzc2V0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFnZXRLZXlEQXBwQXNzZXRJZAAAAAAJAAJYAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldEtleURBcHBCYWxhbmNlAAAAAAUAAAAIcXVhbnRpdHkFAAAAA25pbAAAAAFpAQAAAAxyZWlzc3VlVG9rZW4AAAABAAAACHF1YW50aXR5BAAAAAtkQXBwQXNzZXRJZAkBAAAAE2dldFZhbHVlREFwcEFzc2V0SWQAAAAAAwkAAAAAAAACBQAAAAtkQXBwQXNzZXRJZAUAAAAETk9ORQkAAAIAAAABAgAAABl0b2tlbiBoYXMgbm90IGJlZW4gaXNzdWVkBAAAABJjdXJyZW50REFwcEJhbGFuY2UJAQAAABNnZXRWYWx1ZURBcHBCYWxhbmNlAAAAAAQAAAAKbmV3QmFsYW5jZQkAAGQAAAACBQAAABJjdXJyZW50REFwcEJhbGFuY2UFAAAACHF1YW50aXR5CQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwkAAlkAAAABBQAAAAtkQXBwQXNzZXRJZAUAAAAIcXVhbnRpdHkGCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0S2V5REFwcEJhbGFuY2UAAAAABQAAAApuZXdCYWxhbmNlBQAAAANuaWwAAAABaQEAAAANdHJhbnNmZXJUb2tlbgAAAAIAAAAJcmVjaXBpZW50AAAABmFtb3VudAQAAAASY3VycmVudERBcHBCYWxhbmNlCQEAAAATZ2V0VmFsdWVEQXBwQmFsYW5jZQAAAAAEAAAADm5ld0RBcHBCYWxhbmNlCQAAZQAAAAIFAAAAEmN1cnJlbnREQXBwQmFsYW5jZQUAAAAGYW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAA5uZXdEQXBwQmFsYW5jZQkAAAIAAAABAgAAABJub3QgZW5vdW5nIGJhbGFuY2UEAAAAEmN1cnJlbnRVc2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABJjdXJyZW50VXNlckJhbGFuY2UJAQAAABNnZXRWYWx1ZVVzZXJCYWxhbmNlAAAAAQUAAAASY3VycmVudFVzZXJBZGRyZXNzBAAAAA5uZXdVc2VyQmFsYW5jZQkAAGQAAAACBQAAABJjdXJyZW50VXNlckJhbGFuY2UFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldEtleURBcHBCYWxhbmNlAAAAAAUAAAAObmV3REFwcEJhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRLZXlVc2VyQmFsYW5jZQAAAAEFAAAACXJlY2lwaWVudAUAAAAObmV3VXNlckJhbGFuY2UJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAACXJlY2lwaWVudAUAAAAGYW1vdW50CQACWQAAAAEJAQAAABNnZXRWYWx1ZURBcHBBc3NldElkAAAAAAUAAAADbmlsAAAAAWkBAAAAD2lzc3VlQXNzZXRUb2tlbgAAAAUAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAhxdWFudGl0eQAAAAVwcmljZQAAAARkYXRhBAAAAAVhc3NldAkABEIAAAAFBQAAAARuYW1lBQAAAAtkZXNjcmlwdGlvbgUAAAAIcXVhbnRpdHkAAAAAAAAAAAAGBAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0CQAETAAAAAIFAAAABWFzc2V0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0S2V5QXNzZXRBbW91bnQAAAABCQACWAAAAAEFAAAAB2Fzc2V0SWQFAAAACHF1YW50aXR5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAQZ2V0S2V5QXNzZXRQcmljZQAAAAEJAAJYAAAAAQUAAAAHYXNzZXRJZAUAAAAFcHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2dldEtleUFzc2V0RGF0YQAAAAEJAAJYAAAAAQUAAAAHYXNzZXRJZAUAAAAEZGF0YQUAAAADbmlsAAAAAWkBAAAAEmV4Y2hhbmdlQXNzZXRUb2tlbgAAAAIAAAAHYXNzZXRJZAAAAAZhbW91bnQEAAAAEmN1cnJlbnRVc2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAphc3NldFByaWNlCQEAAAASZ2V0VmFsdWVBc3NldFByaWNlAAAAAQUAAAAHYXNzZXRJZAQAAAAFdG90YWwJAABoAAAAAgUAAAAKYXNzZXRQcmljZQUAAAAGYW1vdW50BAAAAAhwYXltZW50cwgFAAAAAWkAAAAIcGF5bWVudHMEAAAAB3BheW1lbnQJAAGRAAAAAgUAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAAnQxCQEAAAAFdmFsdWUAAAABBQAAAAdwYXltZW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAD3BheW1lbnRfYXNzZXRJZAkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA5wYXltZW50X2Ftb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleao4axE=", "height": 1542503, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Mfx3ETERxpzSbEvjscH9bqkWbPokQfcDG9eAuhAwdbg Next: 4jBJTxo9QoaJYY38vGoFQmCFzo6Zqt74BdAUzg2ajQPV Diff:
OldNewDifferences
140140 @Callable(y)
141141 func exchangeAssetToken (E,I) = {
142142 let A = toBase58String(y.caller.bytes)
143- let K = assetBalance(Address(fromBase58String(A)), fromBase58String(o()))
144143 let Q = v(E)
145144 let R = (Q * I)
146- let L = (K - R)
147- if ((0 > L))
148- then throw("not enoung balance")
149- else [ScriptTransfer(Address(fromBase58String(A)), I, fromBase58String(E)), Burn(fromBase58String(o()), R)]
145+ let S = y.payments
146+ let T = S[0]
147+ let U = value(T)
148+[StringEntry("payment_assetId", toBase58String(value(T.assetId))), IntegerEntry("payment_amount", T.amount)]
150149 }
151150
152151
153-@Verifier(S)
154-func T () = sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey)
152+@Verifier(V)
153+func W () = sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey)
155154
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) = (("user_" + j) + "_email")
3535
3636
3737 func k (j) = g(i(j))
3838
3939
4040 func l (j) = (("user_" + j) + "_balance")
4141
4242
4343 func m (j) = a(l(j))
4444
4545
4646 func n () = "dApp_assetId"
4747
4848
4949 func o () = g(n())
5050
5151
5252 func p () = "dApp_balance"
5353
5454
5555 func q () = a(p())
5656
5757
5858 func r (s) = (("asset_" + s) + "_amount")
5959
6060
6161 func t (s) = a(r(s))
6262
6363
6464 func u (s) = (("asset_" + s) + "_price")
6565
6666
6767 func v (s) = a(u(s))
6868
6969
7070 func w (s) = (("asset_" + s) + "_data")
7171
7272
7373 func x (s) = g(u(s))
7474
7575
7676 @Callable(y)
7777 func signUp (z) = {
7878 let A = toBase58String(y.caller.bytes)
7979 let B = k(A)
8080 if ((B != f))
8181 then throw("user is already registered")
8282 else [StringEntry(i(A), z), IntegerEntry(l(A), 0)]
8383 }
8484
8585
8686
8787 @Callable(y)
8888 func issueToken (C) = {
8989 let D = o()
9090 if ((D != f))
9191 then throw("token has already been issued")
9292 else {
9393 let s = Issue("NYAN-25", "NYAN-25 token", C, 0, true)
9494 let E = calculateAssetId(s)
9595 [s, StringEntry(n(), toBase58String(E)), IntegerEntry(p(), C)]
9696 }
9797 }
9898
9999
100100
101101 @Callable(y)
102102 func reissueToken (C) = {
103103 let D = o()
104104 if ((D == f))
105105 then throw("token has not been issued")
106106 else {
107107 let F = q()
108108 let G = (F + C)
109109 [Reissue(fromBase58String(D), C, true), IntegerEntry(p(), G)]
110110 }
111111 }
112112
113113
114114
115115 @Callable(y)
116116 func transferToken (H,I) = {
117117 let F = q()
118118 let J = (F - I)
119119 if ((0 > J))
120120 then throw("not enoung balance")
121121 else {
122122 let A = toBase58String(y.caller.bytes)
123123 let K = m(A)
124124 let L = (K + I)
125125 [IntegerEntry(p(), J), IntegerEntry(l(H), L), ScriptTransfer(Address(fromBase58String(H)), I, fromBase58String(o()))]
126126 }
127127 }
128128
129129
130130
131131 @Callable(y)
132132 func issueAssetToken (M,N,C,O,P) = {
133133 let s = Issue(M, N, C, 0, true)
134134 let E = calculateAssetId(s)
135135 [s, IntegerEntry(r(toBase58String(E)), C), IntegerEntry(u(toBase58String(E)), O), StringEntry(w(toBase58String(E)), P)]
136136 }
137137
138138
139139
140140 @Callable(y)
141141 func exchangeAssetToken (E,I) = {
142142 let A = toBase58String(y.caller.bytes)
143- let K = assetBalance(Address(fromBase58String(A)), fromBase58String(o()))
144143 let Q = v(E)
145144 let R = (Q * I)
146- let L = (K - R)
147- if ((0 > L))
148- then throw("not enoung balance")
149- else [ScriptTransfer(Address(fromBase58String(A)), I, fromBase58String(E)), Burn(fromBase58String(o()), R)]
145+ let S = y.payments
146+ let T = S[0]
147+ let U = value(T)
148+[StringEntry("payment_assetId", toBase58String(value(T.assetId))), IntegerEntry("payment_amount", T.amount)]
150149 }
151150
152151
153-@Verifier(S)
154-func T () = sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey)
152+@Verifier(V)
153+func W () = sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey)
155154

github/deemru/w8io/c3f4982 
30.07 ms