tx · 8h68gbiKs75AsjWNaM6ULBAYYkpjMMrtzxHN6x9Qoq9K

3P3PAz5M7h95hBidSuUttfN82uiivCSctPa:  -0.03400000 Waves

2023.04.18 19:52 [3605818] smart account 3P3PAz5M7h95hBidSuUttfN82uiivCSctPa > SELF 0.00000000 Waves

{ "type": 13, "id": "8h68gbiKs75AsjWNaM6ULBAYYkpjMMrtzxHN6x9Qoq9K", "fee": 3400000, "feeAssetId": null, "timestamp": 1681836826929, "version": 2, "chainId": 87, "sender": "3P3PAz5M7h95hBidSuUttfN82uiivCSctPa", "senderPublicKey": "AfkBamy8kamyDoJFV3QUuCAkDHM3X1NJGhVNPunRufFM", "proofs": [ "5A3HWnbfJuK7CpE5BkTW8rZWKZvXdV3CRFZJj7B14cjrDButX5Yiqa4aaC4rBvHpSB4icWv9nqfbyBNfbfvB4Tzy" ], "script": "base64:BgIPCAISAwoBCBIGCgQEBAQIDQANa19pbml0aWFsaXplZAINa19pbml0aWFsaXplZAAUa19jb29yZGluYXRvckFkZHJlc3MCFGtfY29vcmRpbmF0b3JBZGRyZXNzABFrX3N0YWtpbmdfYWRkcmVzcwIRa19zdGFraW5nX2FkZHJlc3MAEWtfZmFybWluZ19hZGRyZXNzAhFrX2Zhcm1pbmdfYWRkcmVzcwAPa192YXVsdF9hZGRyZXNzAg9rX3ZhdWx0X2FkZHJlc3MAD2tfYWRtaW5fYWRkcmVzcwIPa19hZG1pbl9hZGRyZXNzAQlzdHJUb0xpc3QBBF9zdHIDCQAAAgUEX3N0cgIABQNuaWwJALUJAgUEX3N0cgIBLAELY29vcmRpbmF0b3IACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFFGtfY29vcmRpbmF0b3JBZGRyZXNzAhZDb29yZGluYXRvciBub3Qgc2V0IEhDAhtDb29yZGluYXRvciBhZGRyZXNzIGludmFsaWQBDGFkbWluQWRkcmVzcwAJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFD2tfYWRtaW5fYWRkcmVzcwIVQWRtaW4gYWRkcmVzcyBub3Qgc2V0AQ5zdGFraW5nQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAURa19zdGFraW5nX2FkZHJlc3MCF1N0YWtpbmcgYWRkcmVzcyBub3Qgc2V0AhdTdGFraW5nIGFkZHJlc3MgaW52YWxpZAEOZmFybWluZ0FkZHJlc3MACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFEWtfZmFybWluZ19hZGRyZXNzAhdGYXJtaW5nIGFkZHJlc3Mgbm90IHNldAIXRmFybWluZyBhZGRyZXNzIGludmFsaWQBDHZhdWx0QWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAUPa192YXVsdF9hZGRyZXNzAhVWYXVsdCBhZGRyZXNzIG5vdCBzZXQCFVZhdWx0IGFkZHJlc3MgaW52YWxpZAELaW5pdGlhbGl6ZWQACQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDWtfaW5pdGlhbGl6ZWQHAgFpAQppbml0aWFsaXplAQxfY29vcmRpbmF0b3IDAwkBC2luaXRpYWxpemVkAAYJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECFFVuYWJsZSB0byBpbml0aWFsaXplCQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtfY29vcmRpbmF0b3JBZGRyZXNzCQClCAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDF9jb29yZGluYXRvcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUNa19pbml0aWFsaXplZAYFA25pbAFpARNwZXJmb3JtSG91c2VrZWVwaW5nBAZfdmF1bHQIX2Zhcm1pbmcIX3N0YWtpbmcLX3BheUZ1bmRpbmcEE2RvQWNrUmV3YXJkc1N0YWtpbmcDBQhfc3Rha2luZwkA/AcECQEOc3Rha2luZ0FkZHJlc3MAAgphY2tSZXdhcmRzBQNuaWwFA25pbAUDbmlsAwkAAAIFE2RvQWNrUmV3YXJkc1N0YWtpbmcFE2RvQWNrUmV3YXJkc1N0YWtpbmcEE2RvQWNrUmV3YXJkc0Zhcm1pbmcDBQhfZmFybWluZwkA/AcECQEOZmFybWluZ0FkZHJlc3MAAgphY2tSZXdhcmRzBQNuaWwFA25pbAUDbmlsAwkAAAIFE2RvQWNrUmV3YXJkc0Zhcm1pbmcFE2RvQWNrUmV3YXJkc0Zhcm1pbmcEEWRvQWNrUmV3YXJkc1ZhdWx0AwUGX3ZhdWx0CQD8BwQJAQx2YXVsdEFkZHJlc3MAAgphY2tSZXdhcmRzBQNuaWwFA25pbAUDbmlsAwkAAAIFEWRvQWNrUmV3YXJkc1ZhdWx0BRFkb0Fja1Jld2FyZHNWYXVsdAQEYW1tcwkBCXN0clRvTGlzdAEFC19wYXlGdW5kaW5nCgEHY29tcHV0ZQIEX2FjYwRfYW1tBAxkb1BheUZ1bmRpbmcJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUEX2FtbQIKcGF5RnVuZGluZwUDbmlsBQNuaWwDCQAAAgUMZG9QYXlGdW5kaW5nBQxkb1BheUZ1bmRpbmcFBF9hY2MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4KAAIkbAUEYW1tcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHY29tcHV0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQOY29vcmRpbmF0b3JTdHIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MDCQEJaXNEZWZpbmVkAQUOY29vcmRpbmF0b3JTdHIEBWFkbWluCQCdCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFDmNvb3JkaW5hdG9yU3RyBQ9rX2FkbWluX2FkZHJlc3MDCQEJaXNEZWZpbmVkAQUFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUFYWRtaW4JAKwCAgkArAICCQCsAgICB3N0YXR1c18JAKUIAQUEdGhpcwIBXwkA2AQBCAUCdHgCaWQHCQACAQIudW5hYmxlIHRvIHZlcmlmeTogYWRtaW4gbm90IHNldCBpbiBjb29yZGluYXRvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlea2sWp8=", "height": 3605818, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Hw71itSASe1RQtfUgsLfechkkueiKBstHaDVESHajdLV Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let k_initialized = "k_initialized"
5+
6+let k_coordinatorAddress = "k_coordinatorAddress"
7+
8+let k_staking_address = "k_staking_address"
9+
10+let k_farming_address = "k_farming_address"
11+
12+let k_vault_address = "k_vault_address"
13+
14+let k_admin_address = "k_admin_address"
15+
16+func strToList (_str) = if ((_str == ""))
17+ then nil
18+ else split(_str, ",")
19+
20+
21+func coordinator () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, k_coordinatorAddress), "Coordinator not set HC")), "Coordinator address invalid")
22+
23+
24+func adminAddress () = addressFromString(valueOrErrorMessage(getString(coordinator(), k_admin_address), "Admin address not set"))
25+
26+
27+func stakingAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(coordinator(), k_staking_address), "Staking address not set")), "Staking address invalid")
28+
29+
30+func farmingAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(coordinator(), k_farming_address), "Farming address not set")), "Farming address invalid")
31+
32+
33+func vaultAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(coordinator(), k_vault_address), "Vault address not set")), "Vault address invalid")
34+
35+
36+func initialized () = valueOrElse(getBoolean(this, k_initialized), false)
37+
38+
39+@Callable(i)
40+func initialize (_coordinator) = if (if (initialized())
41+ then true
42+ else (i.caller != this))
43+ then throw("Unable to initialize")
44+ else [StringEntry(k_coordinatorAddress, toString(addressFromStringValue(_coordinator))), BooleanEntry(k_initialized, true)]
45+
46+
47+
48+@Callable(i)
49+func performHousekeeping (_vault,_farming,_staking,_payFunding) = {
50+ let doAckRewardsStaking = if (_staking)
51+ then invoke(stakingAddress(), "ackRewards", nil, nil)
52+ else nil
53+ if ((doAckRewardsStaking == doAckRewardsStaking))
54+ then {
55+ let doAckRewardsFarming = if (_farming)
56+ then invoke(farmingAddress(), "ackRewards", nil, nil)
57+ else nil
58+ if ((doAckRewardsFarming == doAckRewardsFarming))
59+ then {
60+ let doAckRewardsVault = if (_vault)
61+ then invoke(vaultAddress(), "ackRewards", nil, nil)
62+ else nil
63+ if ((doAckRewardsVault == doAckRewardsVault))
64+ then {
65+ let amms = strToList(_payFunding)
66+ func compute (_acc,_amm) = {
67+ let doPayFunding = invoke(addressFromStringValue(_amm), "payFunding", nil, nil)
68+ if ((doPayFunding == doPayFunding))
69+ then _acc
70+ else throw("Strict value is not equal to itself.")
71+ }
72+
73+ let $l = amms
74+ let $s = size($l)
75+ let $acc0 = nil
76+ func $f0_1 ($a,$i) = if (($i >= $s))
77+ then $a
78+ else compute($a, $l[$i])
79+
80+ func $f0_2 ($a,$i) = if (($i >= $s))
81+ then $a
82+ else throw("List size exceeds 20")
83+
84+ $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($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
85+ }
86+ else throw("Strict value is not equal to itself.")
87+ }
88+ else throw("Strict value is not equal to itself.")
89+ }
90+ else throw("Strict value is not equal to itself.")
91+ }
92+
93+
94+@Verifier(tx)
95+func verify () = {
96+ let coordinatorStr = getString(this, k_coordinatorAddress)
97+ if (isDefined(coordinatorStr))
98+ then {
99+ let admin = getString(addressFromStringValue(value(coordinatorStr)), k_admin_address)
100+ if (isDefined(admin))
101+ then valueOrElse(getBoolean(addressFromStringValue(value(admin)), ((("status_" + toString(this)) + "_") + toBase58String(tx.id))), false)
102+ else throw("unable to verify: admin not set in coordinator")
103+ }
104+ else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
105+ }
106+

github/deemru/w8io/873ac7e 
26.26 ms