tx · CxLpMAERYaCkSZZ7Qv5Adw8cev6ynSSas5MEJUsTvMDK

3MFW6kp96moMspgVJ5HBb3CR1E7MnPEux8o:  -0.03000000 Waves

2025.12.03 08:03 [783817] smart account 3MFW6kp96moMspgVJ5HBb3CR1E7MnPEux8o > SELF 0.00000000 Waves

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

github/deemru/w8io
18.00 ms