tx · 6FJVunEN7AkX18bcboCgJtGXE6ZtJo9fXf8bR35BYvE8

3PC63UyjuKYohBwBA2gaUEu4LXr6HB8acrm:  -0.03700000 Waves

2023.06.06 10:00 [3676024] smart account 3PC63UyjuKYohBwBA2gaUEu4LXr6HB8acrm > SELF 0.00000000 Waves

{ "type": 13, "id": "6FJVunEN7AkX18bcboCgJtGXE6ZtJo9fXf8bR35BYvE8", "fee": 3700000, "feeAssetId": null, "timestamp": 1686034871554, "version": 2, "chainId": 87, "sender": "3PC63UyjuKYohBwBA2gaUEu4LXr6HB8acrm", "senderPublicKey": "3h1iv2Yfaw1ryKh5jRMeTicLYmFqYU6Au1uJxRrSUC9L", "proofs": [ "iNGSZnm6un5Y8v1ei1efQAqQWx2mjdshHKdCBh5nu44sGeo2fkkQm3166nfwmNzQKmqwB3i46RuFiZjfNDUSegY" ], "script": "base64:BgIQCAISAwoBCBIHCgUEBAQICA0ADWtfaW5pdGlhbGl6ZWQCDWtfaW5pdGlhbGl6ZWQAFGtfY29vcmRpbmF0b3JBZGRyZXNzAhRrX2Nvb3JkaW5hdG9yQWRkcmVzcwARa19zdGFraW5nX2FkZHJlc3MCEWtfc3Rha2luZ19hZGRyZXNzABFrX2Zhcm1pbmdfYWRkcmVzcwIRa19mYXJtaW5nX2FkZHJlc3MAD2tfdmF1bHRfYWRkcmVzcwIPa192YXVsdF9hZGRyZXNzAA9rX2FkbWluX2FkZHJlc3MCD2tfYWRtaW5fYWRkcmVzcwEJc3RyVG9MaXN0AQRfc3RyAwkAAAIFBF9zdHICAAUDbmlsCQC1CQIFBF9zdHICASwBC2Nvb3JkaW5hdG9yAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwIWQ29vcmRpbmF0b3Igbm90IHNldCBIQwIbQ29vcmRpbmF0b3IgYWRkcmVzcyBpbnZhbGlkAQxhZG1pbkFkZHJlc3MACQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABQ9rX2FkbWluX2FkZHJlc3MCFUFkbWluIGFkZHJlc3Mgbm90IHNldAEOc3Rha2luZ0FkZHJlc3MACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFEWtfc3Rha2luZ19hZGRyZXNzAhdTdGFraW5nIGFkZHJlc3Mgbm90IHNldAIXU3Rha2luZyBhZGRyZXNzIGludmFsaWQBDmZhcm1pbmdBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABRFrX2Zhcm1pbmdfYWRkcmVzcwIXRmFybWluZyBhZGRyZXNzIG5vdCBzZXQCF0Zhcm1pbmcgYWRkcmVzcyBpbnZhbGlkAQx2YXVsdEFkZHJlc3MACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFD2tfdmF1bHRfYWRkcmVzcwIVVmF1bHQgYWRkcmVzcyBub3Qgc2V0AhVWYXVsdCBhZGRyZXNzIGludmFsaWQBC2luaXRpYWxpemVkAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ1rX2luaXRpYWxpemVkBwIBaQEKaW5pdGlhbGl6ZQEMX2Nvb3JkaW5hdG9yAwMJAQtpbml0aWFsaXplZAAGCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhRVbmFibGUgdG8gaW5pdGlhbGl6ZQkAzAgCCQELU3RyaW5nRW50cnkCBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwkApQgBCQERQGV4dHJOYXRpdmUoMTA2MikBBQxfY29vcmRpbmF0b3IJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDWtfaW5pdGlhbGl6ZWQGBQNuaWwBaQETcGVyZm9ybUhvdXNla2VlcGluZwUGX3ZhdWx0CF9mYXJtaW5nCF9zdGFraW5nC19wYXlGdW5kaW5nC19zcG90VmF1bHRzBBNkb0Fja1Jld2FyZHNTdGFraW5nAwUIX3N0YWtpbmcJAPwHBAkBDnN0YWtpbmdBZGRyZXNzAAIKYWNrUmV3YXJkcwUDbmlsBQNuaWwFA25pbAMJAAACBRNkb0Fja1Jld2FyZHNTdGFraW5nBRNkb0Fja1Jld2FyZHNTdGFraW5nBBNkb0Fja1Jld2FyZHNGYXJtaW5nAwUIX2Zhcm1pbmcJAPwHBAkBDmZhcm1pbmdBZGRyZXNzAAIKYWNrUmV3YXJkcwUDbmlsBQNuaWwFA25pbAMJAAACBRNkb0Fja1Jld2FyZHNGYXJtaW5nBRNkb0Fja1Jld2FyZHNGYXJtaW5nBBFkb0Fja1Jld2FyZHNWYXVsdAMFBl92YXVsdAkA/AcECQEMdmF1bHRBZGRyZXNzAAIKYWNrUmV3YXJkcwUDbmlsBQNuaWwFA25pbAMJAAACBRFkb0Fja1Jld2FyZHNWYXVsdAURZG9BY2tSZXdhcmRzVmF1bHQEBGFtbXMJAQlzdHJUb0xpc3QBBQtfcGF5RnVuZGluZwoBB2NvbXB1dGUCBF9hY2MIX2FtbURhdGEEBXBhcnRzCQC1CQIFCF9hbW1EYXRhAgFABANhbW0JAJEDAgUFcGFydHMAAAQLcHJpY2VVcGRhdGUDCQBmAgkAkAMBBQVwYXJ0cwABCQCRAwIFBXBhcnRzAAECAAQMZG9QYXlGdW5kaW5nCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFA2FtbQIKcGF5RnVuZGluZwkAzAgCBQtwcmljZVVwZGF0ZQUDbmlsBQNuaWwDCQAAAgUMZG9QYXlGdW5kaW5nBQxkb1BheUZ1bmRpbmcFBF9hY2MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ECmRvQ2FsbEFtbXMKAAIkbAUEYW1tcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHY29tcHV0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUDCQAAAgUKZG9DYWxsQW1tcwUKZG9DYWxsQW1tcwQGdmF1bHRzCQEJc3RyVG9MaXN0AQULX3Nwb3RWYXVsdHMKAQhjb21wdXRlMgIEX2FjYwZfdmF1bHQEDGRvUGF5RnVuZGluZwkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQZfdmF1bHQCCmFja1Jld2FyZHMFA25pbAUDbmlsAwkAAAIFDGRvUGF5RnVuZGluZwUMZG9QYXlGdW5kaW5nBQRfYWNjCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAxkb0NhbGxWYXVsdHMKAAIkbAUGdmF1bHRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhjb21wdXRlMgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUDCQAAAgUMZG9DYWxsVmF1bHRzBQxkb0NhbGxWYXVsdHMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEDmNvb3JkaW5hdG9yU3RyCQCdCAIFBHRoaXMFFGtfY29vcmRpbmF0b3JBZGRyZXNzAwkBCWlzRGVmaW5lZAEFDmNvb3JkaW5hdG9yU3RyBAVhZG1pbgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBBQ5jb29yZGluYXRvclN0cgUPa19hZG1pbl9hZGRyZXNzAwkBCWlzRGVmaW5lZAEFBWFkbWluCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFBWFkbWluCQCsAgIJAKwCAgkArAICAgdzdGF0dXNfCQClCAEFBHRoaXMCAV8JANgEAQgFAnR4AmlkBwkAAgECLnVuYWJsZSB0byB2ZXJpZnk6IGFkbWluIG5vdCBzZXQgaW4gY29vcmRpbmF0b3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXlawy1Y", "height": 3676024, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6epKiFwK9qXniy85LopZ3e481PZjHSN324uaZp7TaEcs Next: 3Tp3Vm5dHnciPSgmmzbpDdPGtyFBoGAgVgvdyKGBG5cS Diff:
OldNewDifferences
4646
4747
4848 @Callable(i)
49-func performHousekeeping (_vault,_farming,_staking,_payFunding) = {
49+func performHousekeeping (_vault,_farming,_staking,_payFunding,_spotVaults) = {
5050 let doAckRewardsStaking = if (_staking)
5151 then invoke(stakingAddress(), "ackRewards", nil, nil)
5252 else nil
7575 else throw("Strict value is not equal to itself.")
7676 }
7777
78- let $l = amms
79- let $s = size($l)
80- let $acc0 = nil
81- func $f0_1 ($a,$i) = if (($i >= $s))
82- then $a
83- else compute($a, $l[$i])
78+ let doCallAmms = {
79+ let $l = amms
80+ let $s = size($l)
81+ let $acc0 = nil
82+ func $f0_1 ($a,$i) = if (($i >= $s))
83+ then $a
84+ else compute($a, $l[$i])
8485
85- func $f0_2 ($a,$i) = if (($i >= $s))
86- then $a
87- else throw("List size exceeds 20")
86+ func $f0_2 ($a,$i) = if (($i >= $s))
87+ then $a
88+ else throw("List size exceeds 5")
8889
89- $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)
90+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
91+ }
92+ if ((doCallAmms == doCallAmms))
93+ then {
94+ let vaults = strToList(_spotVaults)
95+ func compute2 (_acc,_vault) = {
96+ let doPayFunding = invoke(addressFromStringValue(_vault), "ackRewards", nil, nil)
97+ if ((doPayFunding == doPayFunding))
98+ then _acc
99+ else throw("Strict value is not equal to itself.")
100+ }
101+
102+ let doCallVaults = {
103+ let $l = vaults
104+ let $s = size($l)
105+ let $acc0 = nil
106+ func $f1_1 ($a,$i) = if (($i >= $s))
107+ then $a
108+ else compute2($a, $l[$i])
109+
110+ func $f1_2 ($a,$i) = if (($i >= $s))
111+ then $a
112+ else throw("List size exceeds 5")
113+
114+ $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5)
115+ }
116+ if ((doCallVaults == doCallVaults))
117+ then nil
118+ else throw("Strict value is not equal to itself.")
119+ }
120+ else throw("Strict value is not equal to itself.")
90121 }
91122 else throw("Strict value is not equal to itself.")
92123 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let k_initialized = "k_initialized"
55
66 let k_coordinatorAddress = "k_coordinatorAddress"
77
88 let k_staking_address = "k_staking_address"
99
1010 let k_farming_address = "k_farming_address"
1111
1212 let k_vault_address = "k_vault_address"
1313
1414 let k_admin_address = "k_admin_address"
1515
1616 func strToList (_str) = if ((_str == ""))
1717 then nil
1818 else split(_str, ",")
1919
2020
2121 func coordinator () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, k_coordinatorAddress), "Coordinator not set HC")), "Coordinator address invalid")
2222
2323
2424 func adminAddress () = addressFromString(valueOrErrorMessage(getString(coordinator(), k_admin_address), "Admin address not set"))
2525
2626
2727 func stakingAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(coordinator(), k_staking_address), "Staking address not set")), "Staking address invalid")
2828
2929
3030 func farmingAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(coordinator(), k_farming_address), "Farming address not set")), "Farming address invalid")
3131
3232
3333 func vaultAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(coordinator(), k_vault_address), "Vault address not set")), "Vault address invalid")
3434
3535
3636 func initialized () = valueOrElse(getBoolean(this, k_initialized), false)
3737
3838
3939 @Callable(i)
4040 func initialize (_coordinator) = if (if (initialized())
4141 then true
4242 else (i.caller != this))
4343 then throw("Unable to initialize")
4444 else [StringEntry(k_coordinatorAddress, toString(addressFromStringValue(_coordinator))), BooleanEntry(k_initialized, true)]
4545
4646
4747
4848 @Callable(i)
49-func performHousekeeping (_vault,_farming,_staking,_payFunding) = {
49+func performHousekeeping (_vault,_farming,_staking,_payFunding,_spotVaults) = {
5050 let doAckRewardsStaking = if (_staking)
5151 then invoke(stakingAddress(), "ackRewards", nil, nil)
5252 else nil
5353 if ((doAckRewardsStaking == doAckRewardsStaking))
5454 then {
5555 let doAckRewardsFarming = if (_farming)
5656 then invoke(farmingAddress(), "ackRewards", nil, nil)
5757 else nil
5858 if ((doAckRewardsFarming == doAckRewardsFarming))
5959 then {
6060 let doAckRewardsVault = if (_vault)
6161 then invoke(vaultAddress(), "ackRewards", nil, nil)
6262 else nil
6363 if ((doAckRewardsVault == doAckRewardsVault))
6464 then {
6565 let amms = strToList(_payFunding)
6666 func compute (_acc,_ammData) = {
6767 let parts = split(_ammData, "@")
6868 let amm = parts[0]
6969 let priceUpdate = if ((size(parts) > 1))
7070 then parts[1]
7171 else ""
7272 let doPayFunding = invoke(addressFromStringValue(amm), "payFunding", [priceUpdate], nil)
7373 if ((doPayFunding == doPayFunding))
7474 then _acc
7575 else throw("Strict value is not equal to itself.")
7676 }
7777
78- let $l = amms
79- let $s = size($l)
80- let $acc0 = nil
81- func $f0_1 ($a,$i) = if (($i >= $s))
82- then $a
83- else compute($a, $l[$i])
78+ let doCallAmms = {
79+ let $l = amms
80+ let $s = size($l)
81+ let $acc0 = nil
82+ func $f0_1 ($a,$i) = if (($i >= $s))
83+ then $a
84+ else compute($a, $l[$i])
8485
85- func $f0_2 ($a,$i) = if (($i >= $s))
86- then $a
87- else throw("List size exceeds 20")
86+ func $f0_2 ($a,$i) = if (($i >= $s))
87+ then $a
88+ else throw("List size exceeds 5")
8889
89- $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)
90+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
91+ }
92+ if ((doCallAmms == doCallAmms))
93+ then {
94+ let vaults = strToList(_spotVaults)
95+ func compute2 (_acc,_vault) = {
96+ let doPayFunding = invoke(addressFromStringValue(_vault), "ackRewards", nil, nil)
97+ if ((doPayFunding == doPayFunding))
98+ then _acc
99+ else throw("Strict value is not equal to itself.")
100+ }
101+
102+ let doCallVaults = {
103+ let $l = vaults
104+ let $s = size($l)
105+ let $acc0 = nil
106+ func $f1_1 ($a,$i) = if (($i >= $s))
107+ then $a
108+ else compute2($a, $l[$i])
109+
110+ func $f1_2 ($a,$i) = if (($i >= $s))
111+ then $a
112+ else throw("List size exceeds 5")
113+
114+ $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5)
115+ }
116+ if ((doCallVaults == doCallVaults))
117+ then nil
118+ else throw("Strict value is not equal to itself.")
119+ }
120+ else throw("Strict value is not equal to itself.")
90121 }
91122 else throw("Strict value is not equal to itself.")
92123 }
93124 else throw("Strict value is not equal to itself.")
94125 }
95126 else throw("Strict value is not equal to itself.")
96127 }
97128
98129
99130 @Verifier(tx)
100131 func verify () = {
101132 let coordinatorStr = getString(this, k_coordinatorAddress)
102133 if (isDefined(coordinatorStr))
103134 then {
104135 let admin = getString(addressFromStringValue(value(coordinatorStr)), k_admin_address)
105136 if (isDefined(admin))
106137 then valueOrElse(getBoolean(addressFromStringValue(value(admin)), ((("status_" + toString(this)) + "_") + toBase58String(tx.id))), false)
107138 else throw("unable to verify: admin not set in coordinator")
108139 }
109140 else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
110141 }
111142

github/deemru/w8io/3ef1775 
47.04 ms