tx · HoLPC1oMyoHnWHD6vXB4GRYoNyXzC5QUMPiRhw5zyg9E

3MCv5SJH3US2huDTyJRMaBXNJ3HHngzz7EP:  -0.05500000 Waves

2025.09.24 22:25 [327778] smart account 3MCv5SJH3US2huDTyJRMaBXNJ3HHngzz7EP > SELF 0.00000000 Waves

{ "type": 13, "id": "HoLPC1oMyoHnWHD6vXB4GRYoNyXzC5QUMPiRhw5zyg9E", "fee": 5500000, "feeAssetId": null, "timestamp": 1758741905395, "version": 2, "chainId": 82, "sender": "3MCv5SJH3US2huDTyJRMaBXNJ3HHngzz7EP", "senderPublicKey": "BHiTV17KEMgrNwPspg5sLdaGRVnHXgn1WrLmtJU2hD4d", "proofs": [ "3ncX317VCnd22mfr7kNNKwH94mpGzbQcGDDWyBgWccwsJNhhnf17jB26cAyEJv6gzsS1tuWYZ8hxJrV9bVbwT7cB" ], "script": "base64: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AQt2YWx1ZU9yRWxzZQIJAJ8IAQIVZ2xvYmFsX2xhc3RQb29sc0JhdGNoAAIECmN1cnJlbnRLZXkJAKwCAgINZ2xvYmFsX3Bvb2xzXwkApAMBBQViYXRjaAQKY3VycmVudFZhbAkBC3ZhbHVlT3JFbHNlAgkAoggBBQpjdXJyZW50S2V5AgADCQBmAgDAJQkAsQIBBQpjdXJyZW50VmFsBQViYXRjaAkAZAIFBWJhdGNoAAEHAWkBEHVzZUVtcHR5Q29udHJhY3QBBHR5cGUECGVudHJ5S2V5CQELZ2V0RW50cnlLZXkBBQR0eXBlBAtjb250cmFjdHNMaQkBBXZhbHVlAQkAvAkCCQELdmFsdWVPckVsc2UCCQCiCAEFCGVudHJ5S2V5AgACASwEDWVtcHR5Q29udHJhY3QJAQt2YWx1ZU9yRWxzZQIJAJEDAgULY29udHJhY3RzTGkAAAIABA1uZXdDb250YWN0c0xpAwkAAAIFDWVtcHR5Q29udHJhY3QCAAULY29udHJhY3RzTGkJAQZyZW1vdmUCBQtjb250cmFjdHNMaQUNZW1wdHlDb250cmFjdAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFCGVudHJ5S2V5CQC5CQIFDW5ld0NvbnRhY3RzTGkCASwFA25pbAUNZW1wdHlDb250cmFjdAFpAQdhZGRQb29sAQdhZGRyZXNzBAViYXRjaAkBFGdldEN1cnJlbnRQb29sc0JhdGNoAAMJAAACCAUBaQZjYWxsZXIFBHRoaXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAg1nbG9iYWxfcG9vbHNfCQCkAwEFBWJhdGNoCQCsAgIJAKwCAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQCsAgICDWdsb2JhbF9wb29sc18JAKQDAQUFYmF0Y2gCAAUHYWRkcmVzcwIBLAkAzAgCCQEMSW50ZWdlckVudHJ5AgIVZ2xvYmFsX2xhc3RQb29sc0JhdGNoBQViYXRjaAUDbmlsCQACAQIJbm8gYWNjZXNzAWkBC2FkZFNlbGZQb29sAAQJc2NyaXB0U3RyCQDYBAEJAQV2YWx1ZQEJAPEHAQgFAWkGY2FsbGVyAwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQCsAgICD2FwcHJvdmVkU2NyaXB0XwUJc2NyaXB0U3RyBwQDaW52CQD8BwQFBHRoaXMCB2FkZFBvb2wJAMwIAgkApQgBCAUBaQZjYWxsZXIFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhxhY2NvdW50IHNjcmlwdCBpcyBub3QgbGlzdGVkAWkBD3doaXRlbGlzdFNjcmlwdAIJc2NyaXB0U3RyA3ZhbAMJARFpc1ZhbGlkU2h1dGRvd25lcgEIBQFpBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICAg9hcHByb3ZlZFNjcmlwdF8FCXNjcmlwdFN0cgUDdmFsBQNuaWwJAAIBAglubyBhY2Nlc3MBaQEQYWRkRW1wdHlDb250cmFjdAIHYWRkcmVzcwR0eXBlBAhlbnRyeUtleQkBC2dldEVudHJ5S2V5AQUEdHlwZQMJAAACCAUBaQZjYWxsZXIFBHRoaXMJAMwIAgkBC1N0cmluZ0VudHJ5AgUIZW50cnlLZXkJAKwCAgkArAICCQELdmFsdWVPckVsc2UCCQCiCAEFCGVudHJ5S2V5AgAFB2FkZHJlc3MCASwFA25pbAkAAgECCW5vIGFjY2VzcwFpAQ9zaHV0ZG93bkFzc2V0SW4CCGFzc2V0U3RyA3ZhbAMJARFpc1ZhbGlkU2h1dGRvd25lcgEIBQFpBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICAhJnbG9iYWxfc2h1dGRvd25Jbl8FCGFzc2V0U3RyBQN2YWwFA25pbAkAAgECCW5vIGFjY2VzcwFpARBzaHV0ZG93bkFzc2V0T3V0Aghhc3NldFN0cgN2YWwDCQERaXNWYWxpZFNodXRkb3duZXIBCAUBaQZjYWxsZXIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgITZ2xvYmFsX3NodXRkb3duT3V0XwUIYXNzZXRTdHIFA3ZhbAUDbmlsCQACAQIJbm8gYWNjZXNzAPZbonQ=", "height": 327778, "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 VERSION = "RANGEHUB-2.4.0"
5+
6+let shutdownAddresses = ["3M98MubrwhouBzFVfMsNEGXGssa7irqzgCG", "3MJDCbxHyJQ1kMLWo13vqjYTRZadeXNfkQz"]
7+
8+func isValidShutdowner (adr) = true
9+
10+
11+func remove (li,val) = {
12+ func handler (accum,next) = if ((next == val))
13+ then accum
14+ else (accum ++ [next])
15+
16+ let $l = li
17+ let $s = size($l)
18+ let $acc0 = nil
19+ func $f0_1 ($a,$i) = if (($i >= $s))
20+ then $a
21+ else handler($a, $l[$i])
22+
23+ func $f0_2 ($a,$i) = if (($i >= $s))
24+ then $a
25+ else throw("List size exceeds 100")
26+
27+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
28+ }
29+
30+
31+func getEntryKey (type) = if ((type == "range"))
32+ then "global_emptyPools"
33+ else if ((type == "staker_AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ"))
34+ then "global_emptyStakers_AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ"
35+ else "global_emptyUnknown"
36+
37+
38+func getCurrentPoolsBatch () = {
39+ let batch = valueOrElse(getInteger("global_lastPoolsBatch"), 2)
40+ let currentKey = ("global_pools_" + toString(batch))
41+ let currentVal = valueOrElse(getString(currentKey), "")
42+ if ((4800 > size(currentVal)))
43+ then batch
44+ else (batch + 1)
45+ }
46+
47+
48+@Callable(i)
49+func useEmptyContract (type) = {
50+ let entryKey = getEntryKey(type)
51+ let contractsLi = value(split_4C(valueOrElse(getString(entryKey), ""), ","))
52+ let emptyContract = valueOrElse(contractsLi[0], "")
53+ let newContactsLi = if ((emptyContract == ""))
54+ then contractsLi
55+ else remove(contractsLi, emptyContract)
56+ $Tuple2([StringEntry(entryKey, makeString(newContactsLi, ","))], emptyContract)
57+ }
58+
59+
60+
61+@Callable(i)
62+func addPool (address) = {
63+ let batch = getCurrentPoolsBatch()
64+ if ((i.caller == this))
65+ then [StringEntry(("global_pools_" + toString(batch)), ((valueOrElse(getString(("global_pools_" + toString(batch))), "") + address) + ",")), IntegerEntry("global_lastPoolsBatch", batch)]
66+ else throw("no access")
67+ }
68+
69+
70+
71+@Callable(i)
72+func addSelfPool () = {
73+ let scriptStr = toBase58String(value(scriptHash(i.caller)))
74+ if (valueOrElse(getBoolean(("approvedScript_" + scriptStr)), false))
75+ then {
76+ let inv = invoke(this, "addPool", [toString(i.caller)], nil)
77+ if ((inv == inv))
78+ then nil
79+ else throw("Strict value is not equal to itself.")
80+ }
81+ else throw("account script is not listed")
82+ }
83+
84+
85+
86+@Callable(i)
87+func whitelistScript (scriptStr,val) = if (isValidShutdowner(i.caller))
88+ then [BooleanEntry(("approvedScript_" + scriptStr), val)]
89+ else throw("no access")
90+
91+
92+
93+@Callable(i)
94+func addEmptyContract (address,type) = {
95+ let entryKey = getEntryKey(type)
96+ if ((i.caller == this))
97+ then [StringEntry(entryKey, ((valueOrElse(getString(entryKey), "") + address) + ","))]
98+ else throw("no access")
99+ }
100+
101+
102+
103+@Callable(i)
104+func shutdownAssetIn (assetStr,val) = if (isValidShutdowner(i.caller))
105+ then [BooleanEntry(("global_shutdownIn_" + assetStr), val)]
106+ else throw("no access")
107+
108+
109+
110+@Callable(i)
111+func shutdownAssetOut (assetStr,val) = if (isValidShutdowner(i.caller))
112+ then [BooleanEntry(("global_shutdownOut_" + assetStr), val)]
113+ else throw("no access")
114+
115+

github/deemru/w8io
36.40 ms