tx · 46ZNAannJ5komj1niywm8hXxbWcdQC6PWmmJZL1LygsZ

3MwVJ45rDzbi4WBxEVGkkCZ5pAVXAck3szX:  -0.05000000 Waves

2023.05.15 20:53 [2579409] smart account 3MwVJ45rDzbi4WBxEVGkkCZ5pAVXAck3szX > SELF 0.00000000 Waves

{ "type": 13, "id": "46ZNAannJ5komj1niywm8hXxbWcdQC6PWmmJZL1LygsZ", "fee": 5000000, "feeAssetId": null, "timestamp": 1684173312457, "version": 2, "chainId": 84, "sender": "3MwVJ45rDzbi4WBxEVGkkCZ5pAVXAck3szX", "senderPublicKey": "AZNUatJ2VUi87L2WHzQcNFRupFKakggGyqqBceGWazUH", "proofs": [ "4mLvG7eZZnoAFPpJxB7ZmNpabKdqVHeKfuiJiXUzVv4o27uVitCDCzGzTKLDTX6ttkxCutPSjjYPxWzkqAvwY4cP" ], "script": "base64:BgLCBAgCEgMKAQgSAwoBARIDCgEIEgMKAQgiA1NFUCIEam9pbiICYXIiDmtleUluaXRpYWxpemVkIhVrZXlDb29yZGluYXRvckFkZHJlc3MiEmtleVZlcmlmaWVyQWRkcmVzcyIJa2V5U2lnbmVkIghfYWRkcmVzcyIFX3R4SWQiEWtleVByb3RvY29sQWN0aXZlIg1pc0luaXRpYWxpemVkIg9tdXN0SW5pdGlhbGl6ZWQiEm11c3ROb3RJbml0aWFsaXplZCIIbXVzdFNlbGYiAWkiC2Nvb3JkaW5hdG9yIgh2ZXJpZmllciIHJG1hdGNoMCIBcyIIaXNBY3RpdmUiCm11c3RBY3RpdmUiDGNoZWNrQWRkcmVzcyIHYWRkcmVzcyIKQVNTRVRfTkFNRSILREVTQ1JJUFRJT04iEWtleUFsbG93ZWRBZGRyZXNzIhBpc0FkZHJlc3NFbmFibGVkIhJtdXN0QWxsb3dlZEFkZHJlc3MiEGNhbGxlckFkZHJlc3NTdHIiCWlzRW5hYmxlZCITY2hlY2tBZGRyZXNzRW5hYmxlZCIUY2hlY2tBZGRyZXNzRGlzYWJsZWQiDWtleU5vcnRoQXNzZXQiEGdldE5vcnRoQXNzZXRTdHIiDWdldE5vcnRoQXNzZXQiE19jb29yZGluYXRvckFkZHJlc3MiBmNoZWNrcyIFbm9ydGgiDG5vcnRoQXNzZXRJZCIMX25vcnRoQW1vdW50Igpub3J0aEFzc2V0IgJ0eCIGdmVyaWZ5GgABYQICX18BAWIBAWMJALkJAgUBYwUBYQEBZAAJAQFiAQkAzAgCAgIlcwkAzAgCAgtpbml0aWFsaXplZAUDbmlsAQFlAAkBAWIBCQDMCAICAiVzCQDMCAICEmNvb3JkaW5hdG9yQWRkcmVzcwUDbmlsAQFmAAkBAWIBCQDMCAICAiVzCQDMCAICD3ZlcmlmaWVyQWRkcmVzcwUDbmlsAQFnAgFoAWkJAQFiAQkAzAgCAgYlcyVzJXMJAMwIAgIGc2lnbmVkCQDMCAIFAWgJAMwIAgUBaQUDbmlsAQFqAAkBAWIBCQDMCAICAiVzCQDMCAICDnByb3RvY29sQWN0aXZlBQNuaWwBAWsACQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMJAQFkAAcBAWwAAwkBASEBCQEBawAJAAIBAg9Ob3QgaW5pdGlhbGl6ZWQFBHVuaXQBAW0AAwkBAWsACQACAQITQWxyZWFkeSBpbml0aWFsaXplZAUEdW5pdAEBbgEBbwMJAQIhPQIIBQFvBmNhbGxlcgUEdGhpcwkAAgECHU9ubHkgc2VsZiBpbnZvY2F0aW9uIGFsbG93ZWQuBQR1bml0AQFwAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQFlAAIWQ29vcmRpbmF0b3IgaXMgbm90IHNldAEBcQAEAXIJAKIIAQkBAWUAAwkAAQIFAXICBlN0cmluZwQBcwUBcgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzCQEBZgADCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQF0AAkBC3ZhbHVlT3JFbHNlAgkAmwgCCQEBcAAJAQFqAAcBAXUAAwMJAQEhAQkBAXQABgkBASEBCQEBawAJAAIBAi1Qcm90b2NvbCBpcyBkaXNhYmxlZC4gUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydC4FBHVuaXQBAXYBAWgEAXIJAKYIAQUBaAMJAAECBQFyAgdBZGRyZXNzBAF3BQFyBgMJAAECBQFyAgRVbml0CQACAQIPSW52YWxpZCBhZGRyZXNzCQACAQILTWF0Y2ggZXJyb3IAAXgCBk9SSUVOVAABeQJOT1JJRU5UIGlzIGFuIGFkZGl0aW9uYWwgaW5jZW50aXZlIGZvciBFQVNUIGFjdGl2ZSB1c2VycyBhbmQgZ292ZXJuYW5jZSB0b2tlbnMuAQF6AQFoCQEBYgEJAMwIAgIEJXMlcwkAzAgCAg5hbGxvd2VkQWRkcmVzcwkAzAgCBQFoBQNuaWwBAUEBAWgJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkBAXoBBQFoBwEBQgEBbwQBQwkA2AQBCAgFAW8GY2FsbGVyBWJ5dGVzBAFECQEBQQEFAUMDBQFEBQR1bml0CQACAQkArAICCQCsAgIJAKwCAgIYVW5rbm93biBjYWxsZXIgYWRkcmVzcy4gCQClCAEIBQFvBmNhbGxlcgIBIAkA2AQBCAgFAW8GY2FsbGVyBWJ5dGVzAQFFAQFoAwkBAUEBBQFoBQR1bml0CQACAQIYQWRkcmVzcyBhbHJlYWR5IGRpc2FibGVkAQFGAQFoAwkBAUEBBQFoCQACAQIXQWRkcmVzcyBhbHJlYWR5IGVuYWJsZWQFBHVuaXQBAUcACQEBYgEJAMwIAgICJXMJAMwIAgIKbm9ydGhBc3NldAUDbmlsAQFIAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMJAQFHAAIWTm9ydGggYXNzZXQgaXMgbm90IHNldAEBSQAJANkEAQkBAUgABAFvAQppbml0aWFsaXplAQFKBAFLCQDMCAIJAQFtAAkAzAgCCQEBdgEFAUoFA25pbAMJAAACBQFLBQFLBAFMCQDDCAcFAXgFAXkAAAAIBgUEdW5pdAAABAFNCQC4CAEFAUwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAWUABQFKCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFHAAkA2AQBBQFNCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBZAAGCQDMCAIFAUwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFvAQVpc3N1ZQEBTgQBSwkAzAgCCQEBdQAJAMwIAgkBAUIBBQFvBQNuaWwDCQAAAgUBSwUBSwQBTwkBAUkACQDMCAIJAQdSZWlzc3VlAwUBTwUBTgYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAW8GY2FsbGVyBQFOBQFPBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BbwEKYWRkQWRkcmVzcwEBaAQBSwkAzAgCCQEBbAAJAMwIAgkBAW4BBQFvCQDMCAIJAQF2AQUBaAkAzAgCCQEBRgEFAWgFA25pbAMJAAACBQFLBQFLCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBegEFAWgGBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BbwENcmVtb3ZlQWRkcmVzcwEBaAQBSwkAzAgCCQEBbAAJAMwIAgkBAW4BBQFvCQDMCAIJAQF2AQUBaAkAzAgCCQEBRQEFAWgFA25pbAMJAAACBQFLBQFLCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBegEFAWgHBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAVABAVEABAFyCQEBcQADCQABAgUBcgIGU3RyaW5nBAF3BQFyCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAXcJAQFnAgkApQgBBQR0aGlzCQDYBAEIBQFQAmlkBwkA9AMDCAUBUAlib2R5Qnl0ZXMJAJEDAggFAVAGcHJvb2ZzAAAIBQFQD3NlbmRlclB1YmxpY0tleUVQlRE=", "height": 2579409, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "__"
5+
6+func b (c) = makeString(c, a)
7+
8+
9+func d () = b(["%s", "initialized"])
10+
11+
12+func e () = b(["%s", "coordinatorAddress"])
13+
14+
15+func f () = b(["%s", "verifierAddress"])
16+
17+
18+func g (h,i) = b(["%s%s%s", "signed", h, i])
19+
20+
21+func j () = b(["%s", "protocolActive"])
22+
23+
24+func k () = valueOrElse(getBoolean(this, d()), false)
25+
26+
27+func l () = if (!(k()))
28+ then throw("Not initialized")
29+ else unit
30+
31+
32+func m () = if (k())
33+ then throw("Already initialized")
34+ else unit
35+
36+
37+func n (o) = if ((o.caller != this))
38+ then throw("Only self invocation allowed.")
39+ else unit
40+
41+
42+func p () = addressFromStringValue(valueOrErrorMessage(getString(e()), "Coordinator is not set"))
43+
44+
45+func q () = {
46+ let r = getString(e())
47+ if ($isInstanceOf(r, "String"))
48+ then {
49+ let s = r
50+ getString(addressFromStringValue(s), f())
51+ }
52+ else if ($isInstanceOf(r, "Unit"))
53+ then unit
54+ else throw("Match error")
55+ }
56+
57+
58+func t () = valueOrElse(getBoolean(p(), j()), false)
59+
60+
61+func u () = if (if (!(t()))
62+ then true
63+ else !(k()))
64+ then throw("Protocol is disabled. Please contact support.")
65+ else unit
66+
67+
68+func v (h) = {
69+ let r = addressFromString(h)
70+ if ($isInstanceOf(r, "Address"))
71+ then {
72+ let w = r
73+ true
74+ }
75+ else if ($isInstanceOf(r, "Unit"))
76+ then throw("Invalid address")
77+ else throw("Match error")
78+ }
79+
80+
81+let x = "ORIENT"
82+
83+let y = "ORIENT is an additional incentive for EAST active users and governance tokens."
84+
85+func z (h) = b(["%s%s", "allowedAddress", h])
86+
87+
88+func A (h) = valueOrElse(getBoolean(this, z(h)), false)
89+
90+
91+func B (o) = {
92+ let C = toBase58String(o.caller.bytes)
93+ let D = A(C)
94+ if (D)
95+ then unit
96+ else throw(((("Unknown caller address. " + toString(o.caller)) + " ") + toBase58String(o.caller.bytes)))
97+ }
98+
99+
100+func E (h) = if (A(h))
101+ then unit
102+ else throw("Address already disabled")
103+
104+
105+func F (h) = if (A(h))
106+ then throw("Address already enabled")
107+ else unit
108+
109+
110+func G () = b(["%s", "northAsset"])
111+
112+
113+func H () = valueOrErrorMessage(getString(this, G()), "North asset is not set")
114+
115+
116+func I () = fromBase58String(H())
117+
118+
119+@Callable(o)
120+func initialize (J) = {
121+ let K = [m(), v(J)]
122+ if ((K == K))
123+ then {
124+ let L = Issue(x, y, 0, 8, true, unit, 0)
125+ let M = calculateAssetId(L)
126+[StringEntry(e(), J), StringEntry(G(), toBase58String(M)), BooleanEntry(d(), true), L]
127+ }
128+ else throw("Strict value is not equal to itself.")
129+ }
130+
131+
132+
133+@Callable(o)
134+func issue (N) = {
135+ let K = [u(), B(o)]
136+ if ((K == K))
137+ then {
138+ let O = I()
139+[Reissue(O, N, true), ScriptTransfer(o.caller, N, O)]
140+ }
141+ else throw("Strict value is not equal to itself.")
142+ }
143+
144+
145+
146+@Callable(o)
147+func addAddress (h) = {
148+ let K = [l(), n(o), v(h), F(h)]
149+ if ((K == K))
150+ then [BooleanEntry(z(h), true)]
151+ else throw("Strict value is not equal to itself.")
152+ }
153+
154+
155+
156+@Callable(o)
157+func removeAddress (h) = {
158+ let K = [l(), n(o), v(h), E(h)]
159+ if ((K == K))
160+ then [BooleanEntry(z(h), false)]
161+ else throw("Strict value is not equal to itself.")
162+ }
163+
164+
165+@Verifier(P)
166+func Q () = {
167+ let r = q()
168+ if ($isInstanceOf(r, "String"))
169+ then {
170+ let w = r
171+ valueOrElse(getBoolean(addressFromStringValue(w), g(toString(this), toBase58String(P.id))), false)
172+ }
173+ else sigVerify(P.bodyBytes, P.proofs[0], P.senderPublicKey)
174+ }
175+

github/deemru/w8io/169f3d6 
82.35 ms