tx · G7fx5vZKsdBZN2gNbnD84kxTrkkCdrvSgXu18E6wkjao

3N1rzvSD6e3e8EAAe58DSPPmAmgHzU8keGW:  -0.01000000 Waves

2022.11.02 10:39 [2299192] smart account 3N1rzvSD6e3e8EAAe58DSPPmAmgHzU8keGW > SELF 0.00000000 Waves

{ "type": 13, "id": "G7fx5vZKsdBZN2gNbnD84kxTrkkCdrvSgXu18E6wkjao", "fee": 1000000, "feeAssetId": null, "timestamp": 1667374814509, "version": 2, "chainId": 84, "sender": "3N1rzvSD6e3e8EAAe58DSPPmAmgHzU8keGW", "senderPublicKey": "DfabAmKWXpe5iKMWYEYbph4E3w2pTX8Znzgh2MgxqKuc", "proofs": [ "fc27kqgngUfoUEvArCq47CVCPktkyHmfQqSCpQopmHUE6k1W5TqsBt1X3rb3PTc1VJpTj7mizUxhGBP25vrkzCc" ], "script": "base64:BgIYCAISBAoCCBgSABIAEgUKAwQBCBIDCgEBJgAHa0FjdGl2ZQIGYWN0aXZlAAZrQ2F1c2UCDnNodXRkb3duX2NhdXNlAAxrVVNETkFkZHJlc3MCGHN0YWtpbmdfdXNkbm5zYnRfYWRkcmVzcwAMa0VVUk5BZGRyZXNzAhRzdGFraW5nX2V1cm5fYWRkcmVzcwAMa0xlYXNpbmdQb29sAg9sZWFzaW5nX2FkZHJlc3MADmtMZWFzaW5nQW1vdW50Ag5sZWFzaW5nX2Ftb3VudAAKa0xlYXNpbmdJZAIKbGVhc2luZ19pZAANa0FkbWluUHViS2V5MQILYWRtaW5fcHViXzEADWtBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA1rQWRtaW5QdWJLZXkzAgthZG1pbl9wdWJfMwASa0FkbWluSW52b2tlUHViS2V5AhBhZG1pbl9pbnZva2VfcHViAA1rQ3BtbUNvbnRyYWN0Ag1jcG1tX2NvbnRyYWN0AAxrVVNETkFzc2V0SWQCDXVzZG5fYXNzZXRfaWQADGtFVVJOQXNzZXRJZAINZXVybl9hc3NldF9pZAAOa1N0YWtpbmdBc3NldHMCDnN0YWtpbmdfYXNzZXRzAA1rU2hhcmVBc3NldElkAg5zaGFyZV9hc3NldF9pZAAGb3JhY2xlCQEHQWRkcmVzcwEBGgFUSBOXDMDTM8wlMoC2KfenZGiAq+PMe0uZARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzABFhZG1pblB1YktleUludm9rZQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRJrQWRtaW5JbnZva2VQdWJLZXkAEnN0YWtpbmdVU0ROQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtVU0ROQWRkcmVzcwASc3Rha2luZ0VVUk5BZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0VVUk5BZGRyZXNzAAxjcG1tQ29udHJhY3QJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQ3BtbUNvbnRyYWN0AARVU0ROCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtVU0ROQXNzZXRJZAAERVVSTgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrRVVSTkFzc2V0SWQADXN0YWtpbmdBc3NldHMJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBm9yYWNsZQUOa1N0YWtpbmdBc3NldHMABmFjdGl2ZQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQdrQWN0aXZlBgEIaXNBY3RpdmUAAwUGYWN0aXZlBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAEOaXNHbG9iYWxDYWxsZXIBBmNhbGxlcgMJAAACBQZjYWxsZXIFDGNwbW1Db250cmFjdAUEdW5pdAkAAgECLU9ubHkgZ2xvYmFsIENvbnRyYWN0IGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELaXNBZG1pbkNhbGwBDGNhbGxlclB1YktleQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwFDGNhbGxlclB1YktleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEHc3VzcGVuZAEFY2F1c2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUHCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmtDYXVzZQUFY2F1c2UFA25pbAEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgVzdGFrZQdhc3NldElkAwUFc3Rha2UDCQAAAgUHYXNzZXRJZAUEVVNETgkAlAoCAgxsb2NrTmV1dHJpbm8FEnN0YWtpbmdVU0ROQWRkcmVzcwkAlAoCAgxzdGFydFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwMJAAACBQdhc3NldElkBQRVU0ROCQCUCgICDnVubG9ja05ldXRyaW5vBRJzdGFraW5nVVNETkFkZHJlc3MJAJQKAgILc3RvcFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwERY2FsY1N0YWtpbmdQYXJhbXMDBXN0YWtlBmFtb3VudAdhc3NldElkAwUFc3Rha2UECyR0MDI0NzMyNTM5CQEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgUFc3Rha2UFB2Fzc2V0SWQEBGNhbGwIBQskdDAyNDczMjUzOQJfMQQLc3Rha2luZ0FkZHIIBQskdDAyNDczMjUzOQJfMgkAlgoEBQRjYWxsBQtzdGFraW5nQWRkcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQZhbW91bnQFA25pbAQLJHQwMjYyNTI2OTEJARhjYWxjU3Rha2luZ0Z1bmNBbmRBZGRyZXMCBQVzdGFrZQUHYXNzZXRJZAQEY2FsbAgFCyR0MDI2MjUyNjkxAl8xBAtzdGFraW5nQWRkcggFCyR0MDI2MjUyNjkxAl8yCQCWCgQFBGNhbGwFC3N0YWtpbmdBZGRyCQDMCAIFBmFtb3VudAkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAQ9jb2xsZWN0UGF5bWVudHMCA2FjYwdwYXltZW50BAskdDAyODUzMjg5NgUDYWNjBA5wYXltZW50QW1vdW50cwgFCyR0MDI4NTMyODk2Al8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAyODUzMjg5NgJfMgkAlAoCCQDNCAIFDnBheW1lbnRBbW91bnRzCAUHcGF5bWVudAZhbW91bnQJAM0IAgUPcGF5bWVudEFzc2V0SWRzAwkAAAIIBQdwYXltZW50B2Fzc2V0SWQFBHVuaXQBAAgFB3BheW1lbnQHYXNzZXRJZAEMY29sbGVjdFN0YXRlAgZyZXN1bHQGc291cmNlBAckbWF0Y2gwBQZzb3VyY2UDAwkAAQIFByRtYXRjaDACBUlzc3VlBgMJAAECBQckbWF0Y2gw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AgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwkAlAoCBQ1tYXBwZWRBY3Rpb25zBQptYXBwZWREYXRhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHNodXRkb3duAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBASEBBQZhY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUGa0NhdXNlAhp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDBQZhY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELRGVsZXRlRW50cnkBBQZrQ2F1c2UFA25pbAFpAQxzdGFrZVVuc3Rha2UDBXN0YWtlBmFtb3VudA1hc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQECIT0CCAUBaQZjYWxsZXIFDGNwbW1Db250cmFjdAkAAgECLU9ubHkgZ2xvYmFsIENvbnRyYWN0IGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwQEcG9vbAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBm9yYWNsZQUMa0xlYXNpbmdQb29sAhlObyBsZWFzaW5nIHBvb2wgaW4gb3JhY2xlBAlsZWFzaW5nSWQJAJwIAgUEdGhpcwUKa0xlYXNpbmdJZAQNbGVhc2luZ0Ftb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ5rTGVhc2luZ0Ftb3VudAAABA5uZXdMZWFzZUFtb3VudAMFBXN0YWtlCQBkAgUNbGVhc2luZ0Ftb3VudAUGYW1vdW50CQBlAgUNbGVhc2luZ0Ftb3VudAUGYW1vdW50BAhuZXdMZWFzZQkAxAgCBQRwb29sBQ5uZXdMZWFzZUFtb3VudAQKbmV3TGVhc2VJZAkAuQgBBQhuZXdMZWFzZQQIYmFzZUV0cnkJAMwIAgUIbmV3TGVhc2UJAMwIAgkBC0JpbmFyeUVudHJ5AgUKa0xlYXNpbmdJZAUKbmV3TGVhc2VJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa0xlYXNpbmdBbW91bnQFDm5ld0xlYXNlQW1vdW50BQNuaWwEByRtYXRjaDAFCWxlYXNpbmdJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBANsSWQFByRtYXRjaDAJAM4IAgkAzAgCCQELTGVhc2VDYW5jZWwBBQNsSWQFA25pbAUIYmFzZUV0cnkFCGJhc2VFdHJ5BAskdDA1OTc3NjA4MAkBEWNhbGNTdGFraW5nUGFyYW1zAwUFc3Rha2UFBmFtb3VudAkA2QQBBQ1hc3NldElkU3RyaW5nBARjYWxsCAULJHQwNTk3NzYwODACXzEEBGFkZHIIBQskdDA1OTc3NjA4MAJfMgQGcGFyYW1zCAULJHQwNTk3NzYwODACXzMECHBheW1lbnRzCAULJHQwNTk3NzYwODACXzQEA2ludgkA/AcEBQRhZGRyBQRjYWxsBQZwYXJhbXMFCHBheW1lbnRzAwkAAAIFA2ludgUDaW52BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERcmVpc3N1ZVNoYXJlVG9rZW4BBmFtb3VudAkBC3ZhbHVlT3JFbHNlAgkBDmlzR2xvYmFsQ2FsbGVyAQgFAWkGY2FsbGVyCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAxzaGFyZUFzc2V0SWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUNa1NoYXJlQXNzZXRJZAkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUGYW1vdW50BgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUMc2hhcmVBc3NldElkBQNuaWwBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIFE211bHRpU2lnbmVkQnlBZG1pbnNoVo6P", "height": 2299192, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 6x5vRTZqZcXoeH4miDhJWU9qEGeSRHjv2aAFBnueiDBe Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "active"
5+
6+let b = "shutdown_cause"
7+
8+let c = "staking_usdnnsbt_address"
9+
10+let d = "staking_eurn_address"
11+
12+let e = "leasing_address"
13+
14+let f = "leasing_amount"
15+
16+let g = "leasing_id"
17+
18+let h = "admin_pub_1"
19+
20+let i = "admin_pub_2"
21+
22+let j = "admin_pub_3"
23+
24+let k = "admin_invoke_pub"
25+
26+let l = "cpmm_contract"
27+
28+let m = "usdn_asset_id"
29+
30+let n = "eurn_asset_id"
31+
32+let o = "staking_assets"
33+
34+let p = "share_asset_id"
35+
36+let q = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
37+
38+func r (s) = {
39+ let t = getString(q, s)
40+ if ($isInstanceOf(t, "String"))
41+ then {
42+ let u = t
43+ fromBase58String(u)
44+ }
45+ else {
46+ let v = t
47+ throw((s + "is empty"))
48+ }
49+ }
50+
51+
52+let w = r(h)
53+
54+let x = r(i)
55+
56+let y = r(j)
57+
58+let z = r(k)
59+
60+let A = Address(r(c))
61+
62+let B = Address(r(d))
63+
64+let C = Address(r(l))
65+
66+let D = r(m)
67+
68+let E = r(n)
69+
70+let F = getStringValue(q, o)
71+
72+let G = valueOrElse(getBoolean(this, a), true)
73+
74+func H () = if (G)
75+ then unit
76+ else throw("DApp is inactive at this moment")
77+
78+
79+func I (J) = if ((J == C))
80+ then unit
81+ else throw("Only global Contract can invoke this function")
82+
83+
84+func K (L) = if (containsElement([w, x, y], L))
85+ then unit
86+ else throw("Only admin can call this function")
87+
88+
89+func M (N) = [BooleanEntry(a, false), StringEntry(b, N)]
90+
91+
92+func O (P,Q) = if (P)
93+ then if ((Q == D))
94+ then $Tuple2("lockNeutrino", A)
95+ else $Tuple2("startStaking", B)
96+ else if ((Q == D))
97+ then $Tuple2("unlockNeutrino", A)
98+ else $Tuple2("stopStaking", B)
99+
100+
101+func R (P,S,Q) = if (P)
102+ then {
103+ let T = O(P, Q)
104+ let U = T._1
105+ let V = T._2
106+ $Tuple4(U, V, nil, [AttachedPayment(Q, S)])
107+ }
108+ else {
109+ let W = O(P, Q)
110+ let U = W._1
111+ let V = W._2
112+ $Tuple4(U, V, [S, toBase58String(Q)], nil)
113+ }
114+
115+
116+func X (Y,Z) = {
117+ let aa = Y
118+ let ab = aa._1
119+ let ac = aa._2
120+ $Tuple2((ab :+ Z.amount), (ac :+ (if ((Z.assetId == unit))
121+ then base58''
122+ else Z.assetId)))
123+ }
124+
125+
126+func ad (ae,af) = {
127+ let t = af
128+ if (if ($isInstanceOf(t, "Issue"))
129+ then true
130+ else if ($isInstanceOf(t, "Burn"))
131+ then true
132+ else if ($isInstanceOf(t, "Reissue"))
133+ then true
134+ else if ($isInstanceOf(t, "ScriptTransfer"))
135+ then true
136+ else if ($isInstanceOf(t, "BinaryEntry"))
137+ then true
138+ else if ($isInstanceOf(t, "BooleanEntry"))
139+ then true
140+ else if ($isInstanceOf(t, "StringEntry"))
141+ then true
142+ else $isInstanceOf(t, "IntegerEntry"))
143+ then {
144+ let ag = t
145+ (ae :+ ag)
146+ }
147+ else ae
148+ }
149+
150+
151+func ah (ae,af) = {
152+ let t = af
153+ if ($isInstanceOf(t, "String"))
154+ then {
155+ let ai = t
156+ (ae :+ ai)
157+ }
158+ else if ($isInstanceOf(t, "Int"))
159+ then {
160+ let ai = t
161+ (ae :+ ai)
162+ }
163+ else if ($isInstanceOf(t, "Boolean"))
164+ then {
165+ let ai = t
166+ (ae :+ ai)
167+ }
168+ else if ($isInstanceOf(t, "ByteVector"))
169+ then {
170+ let ai = t
171+ (ae :+ ai)
172+ }
173+ else throw()
174+ }
175+
176+
177+@Callable(aj)
178+func callFunction (ak,al) = valueOrElse(H(), {
179+ let am = {
180+ let an = aj.payments
181+ let ao = size(an)
182+ let ap = $Tuple2(nil, nil)
183+ func aq (ar,as) = if ((as >= ao))
184+ then ar
185+ else X(ar, an[as])
186+
187+ func at (ar,as) = if ((as >= ao))
188+ then ar
189+ else throw("List size exceeds 10")
190+
191+ at(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
192+ }
193+ let ab = am._1
194+ let ac = am._2
195+ let au = {
196+ let av = reentrantInvoke(C, ak, [aj.caller.bytes, al, ab, ac], nil)
197+ if ($isInstanceOf(av, "(List[Any], List[Any])"))
198+ then av
199+ else throw(($getType(av) + " couldn't be cast to (List[Any], List[Any])"))
200+ }
201+ if ((au == au))
202+ then {
203+ let aw = au._2
204+ let ax = au._1
205+ let ay = {
206+ let an = aw
207+ let ao = size(an)
208+ let ap = nil
209+ func az (ar,as) = if ((as >= ao))
210+ then ar
211+ else ah(ar, an[as])
212+
213+ func aA (ar,as) = if ((as >= ao))
214+ then ar
215+ else throw("List size exceeds 10")
216+
217+ aA(az(az(az(az(az(az(az(az(az(az(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
218+ }
219+ let aB = {
220+ let an = ax
221+ let ao = size(an)
222+ let ap = nil
223+ func aC (ar,as) = if ((as >= ao))
224+ then ar
225+ else ad(ar, an[as])
226+
227+ func aD (ar,as) = if ((as >= ao))
228+ then ar
229+ else throw("List size exceeds 15")
230+
231+ aD(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
232+ }
233+ $Tuple2(aB, ay)
234+ }
235+ else throw("Strict value is not equal to itself.")
236+ })
237+
238+
239+
240+@Callable(aj)
241+func shutdown () = valueOrElse(K(aj.callerPublicKey), if (!(G))
242+ then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
243+ else M("Paused by admin"))
244+
245+
246+
247+@Callable(aj)
248+func activate () = valueOrElse(K(aj.callerPublicKey), if (G)
249+ then throw("DApp is already active")
250+ else [BooleanEntry(a, true), DeleteEntry(b)])
251+
252+
253+
254+@Callable(aj)
255+func stakeUnstake (P,S,aE) = valueOrElse(I(aj.caller), valueOrElse(H(), if ((aj.caller != C))
256+ then throw("Only global Contract can invoke this function")
257+ else if ((aE == "WAVES"))
258+ then {
259+ let aF = addressFromStringValue(valueOrErrorMessage(getString(q, e), "No leasing pool in oracle"))
260+ let aG = getBinary(this, g)
261+ let aH = valueOrElse(getInteger(this, f), 0)
262+ let aI = if (P)
263+ then (aH + S)
264+ else (aH - S)
265+ let aJ = Lease(aF, aI)
266+ let aK = calculateLeaseId(aJ)
267+ let aL = [aJ, BinaryEntry(g, aK), IntegerEntry(f, aI)]
268+ let t = aG
269+ if ($isInstanceOf(t, "ByteVector"))
270+ then {
271+ let aM = t
272+ ([LeaseCancel(aM)] ++ aL)
273+ }
274+ else aL
275+ }
276+ else {
277+ let aN = R(P, S, fromBase58String(aE))
278+ let U = aN._1
279+ let aO = aN._2
280+ let aP = aN._3
281+ let aQ = aN._4
282+ let aR = invoke(aO, U, aP, aQ)
283+ if ((aR == aR))
284+ then nil
285+ else throw("Strict value is not equal to itself.")
286+ }))
287+
288+
289+
290+@Callable(aj)
291+func reissueShareToken (S) = valueOrElse(I(aj.caller), valueOrElse(H(), {
292+ let aS = fromBase58String(getStringValue(this, p))
293+[Reissue(aS, S, true), ScriptTransfer(aj.caller, S, aS)]
294+ }))
295+
296+
297+@Verifier(aT)
298+func aU () = {
299+ let aV = {
300+ let aW = if (sigVerify(aT.bodyBytes, aT.proofs[0], w))
301+ then 1
302+ else 0
303+ let aX = if (sigVerify(aT.bodyBytes, aT.proofs[1], x))
304+ then 1
305+ else 0
306+ let aY = if (sigVerify(aT.bodyBytes, aT.proofs[2], y))
307+ then 1
308+ else 0
309+ (((aW + aX) + aY) >= 2)
310+ }
311+ aV
312+ }
313+

github/deemru/w8io/873ac7e 
28.42 ms