tx · BmxS2ifXi9azN8fkgBb9iKp1DRPzguJ1JjkfchWy49pe

3P6KDB3W6ZhxSzKSPrFbDsp4NY6uN3oM81M:  -0.00300000 Waves

2023.04.21 14:11 [3609808] smart account 3P6KDB3W6ZhxSzKSPrFbDsp4NY6uN3oM81M > SELF 0.00000000 Waves

{ "type": 13, "id": "BmxS2ifXi9azN8fkgBb9iKp1DRPzguJ1JjkfchWy49pe", "fee": 300000, "feeAssetId": null, "timestamp": 1682075542375, "version": 1, "sender": "3P6KDB3W6ZhxSzKSPrFbDsp4NY6uN3oM81M", "senderPublicKey": "4Y1Um7JiuWo9EwowyQiVU8SwStjkEPHUZPaiEYaa3h74", "proofs": [ "5KPdsGUGkNGANb67j1JfokAoNzzWiPMddT6WWYbuKk84kkomTtQ67DAZafDeEsgqam8DPEGdyUMiSB3VUvwLRkef" ], "script": "base64:BgICCAIEAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAhl3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50AQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBBmFkdmlzZQEEbWFpbgQBbQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFBG1haW4CCGJhZCBtYWluBAZjb25maWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQFtAgZjb25maWcCEW5vIGNvbmZpZyBpbiBtYWluBAt2aXJlc01pbnRlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZjb25maWcCDHZpcmVzX21pbnRlcgIObm8gdmlyZXNNaW50ZXICE2ludmFsaWQgdmlyZXNNaW50ZXIEDHZpcmVzQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFC3ZpcmVzTWludGVyAgdhc3NldElkAg9ubyB2aXJlc0Fzc2V0SWQEC2Rpc3RyaWJ1dG9yCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBmNvbmZpZwIRdmlyZXNfZGlzdHJpYnV0b3ICGG5vIGRpc3RyaWJ1dG9yIGluIGNvbmZpZwIPYmFkIGRpc3RyaWJ1dG9yBAZvcmFjbGUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUGY29uZmlnAg5vcmFjbGVfYWRkcmVzcwITbm8gb3JhY2xlIGluIGNvbmZpZwIKYmFkIG9yYWNsZQQKdmlyZXNQcmljZQkBBWFzSW50AQkA/AcEBQZvcmFjbGUCBXByaWNlCQDMCAIFDHZpcmVzQXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUKdmlyZXNQcmljZQUKdmlyZXNQcmljZQQHZ2VuZXJhbAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCGhlaWdodDogCQCkAwEFBmhlaWdodAIQLCB2aXJlc0Fzc2V0SWQ6IAUMdmlyZXNBc3NldElkAg4sIHZpcmVzUHJpY2U6IAkApAMBBQp2aXJlc1ByaWNlAwkAAAIFB2dlbmVyYWwFB2dlbmVyYWwECHJlc2VydmVzCQEIYXNTdHJpbmcBCQD8BwQFC2Rpc3RyaWJ1dG9yAgZhZHZpc2UFA25pbAUDbmlsAwkAAAIFCHJlc2VydmVzBQhyZXNlcnZlcwkArAICCQCsAgIFB2dlbmVyYWwCAiwgBQhyZXNlcnZlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEKYWR2aXNlVXNlcgIEbWFpbgR1c2VyBAFtCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUEbWFpbgIIYmFkIG1haW4EBmNvbmZpZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAW0CBmNvbmZpZwIRbm8gY29uZmlnIGluIG1haW4ECHJlc2VydmVzCQC8CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZjb25maWcCEHByaW1hcnlfcmVzZXJ2ZXMCC25vIHJlc2VydmVzAgF8BAtkaXN0cmlidXRvcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZjb25maWcCEXZpcmVzX2Rpc3RyaWJ1dG9yAhhubyBkaXN0cmlidXRvciBpbiBjb25maWcCD2JhZCBkaXN0cmlidXRvcgQLbWF5YmVMb2NrZXIEByRtYXRjaDAJAJ0IAgUGY29uZmlnAglscF9sb2NrZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAlsb2NrZXJBZHIFByRtYXRjaDAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQlsb2NrZXJBZHICH2JhZCBscF9sb2NrZXIgYWRkcmVzcyBpbiBjb25maWcFBHVuaXQKAQ1nZXRMb2NrZXJJbmZvAQRhVElkBAckbWF0Y2gwBQttYXliZUxvY2tlcgMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAZsb2NrZXIFByRtYXRjaDAJAKwCAgIBLAkBCGFzU3RyaW5nAQkA/AcEBQZsb2NrZXICCmFkdmlzZVVzZXIJAMwIAgUEdXNlcgkAzAgCBQRhVElkBQNuaWwFA25pbAIABAxyZXNlcnZlc0RhdGEKAQRmb2xkAgZ0b3RhbHMHcmVzZXJ2ZQQIYVRva2VuSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQdyZXNlcnZlAghhVG9rZW5JZAIWbm8gYVRva2VuSWQgaW4gcmVzZXJ2ZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQZ0b3RhbHMCBCwgWyACEHJlc2VydmVBZGRyZXNzOiAFB3Jlc2VydmUCASwJAQhhc1N0cmluZwEJAPwHBAULZGlzdHJpYnV0b3ICCmFkdmlzZVVzZXIJAMwIAgUHcmVzZXJ2ZQkAzAgCBQR1c2VyBQNuaWwFA25pbAkBDWdldExvY2tlckluZm8BBQhhVG9rZW5JZAICIF0KAAIkbAUIcmVzZXJ2ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAgAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGZvbGQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAUMcmVzZXJ2ZXNEYXRhAADku6YV", "chainId": 87, "height": 3609808, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BkNzP8BEgQNUTjnBJccnU4cco5CqsPtmBgUpbiKiUp8u Next: none Diff:
OldNewDifferences
2020 func advise (main) = {
2121 let m = valueOrErrorMessage(addressFromString(main), "bad main")
2222 let config = addressFromStringValue(valueOrErrorMessage(getString(m, "config"), "no config in main"))
23- let staker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_staker"), "no staker in config")), "bad staker")
2423 let viresMinter = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_minter"), "no viresMinter")), "invalid viresMinter")
2524 let viresAssetId = valueOrErrorMessage(getString(viresMinter, "assetId"), "no viresAssetId")
2625 let distributor = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_distributor"), "no distributor in config")), "bad distributor")
2827 let viresPrice = asInt(invoke(oracle, "price", [viresAssetId], nil))
2928 if ((viresPrice == viresPrice))
3029 then {
31- let stakerInfo = asString(invoke(staker, "advise", nil, nil))
32- if ((stakerInfo == stakerInfo))
30+ let general = ((((("height: " + toString(height)) + ", viresAssetId: ") + viresAssetId) + ", viresPrice: ") + toString(viresPrice))
31+ if ((general == general))
3332 then {
34- let general = ((((("height: " + toString(height)) + ", viresAssetId: ") + viresAssetId) + ", viresPrice: ") + toString(viresPrice))
35- if ((general == general))
36- then {
37- let reserves = asString(invoke(distributor, "advise", nil, nil))
38- if ((reserves == reserves))
39- then (((general + ", ") + stakerInfo) + reserves)
40- else throw("Strict value is not equal to itself.")
41- }
33+ let reserves = asString(invoke(distributor, "advise", nil, nil))
34+ if ((reserves == reserves))
35+ then ((general + ", ") + reserves)
4236 else throw("Strict value is not equal to itself.")
4337 }
4438 else throw("Strict value is not equal to itself.")
5145 let m = valueOrErrorMessage(addressFromString(main), "bad main")
5246 let config = addressFromStringValue(valueOrErrorMessage(getString(m, "config"), "no config in main"))
5347 let reserves = split_4C(valueOrErrorMessage(getString(config, "primary_reserves"), "no reserves"), "|")
54- let ebRewards = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "eb_rewards"), "no eb_rewards in config")), "bad eb_rewards")
55- let staker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_staker"), "no staker in config")), "bad staker")
5648 let distributor = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_distributor"), "no distributor in config")), "bad distributor")
5749 let maybeLocker = match getString(config, "lp_locker") {
5850 case lockerAdr: String =>
6759 ""
6860 }
6961
70- let ebUser = asString(invoke(ebRewards, "adviseUser", [user], nil))
71- let stkUser = asString(invoke(staker, "adviseUser", [user], nil))
7262 let reservesData = {
7363 func fold (totals,reserve) = {
7464 let aTokenId = valueOrErrorMessage(getString(addressFromStringValue(reserve), "aTokenId"), "no aTokenId in reserve")
8878
8979 $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)
9080 }
91- (((ebUser + ", ") + stkUser) + reservesData)
81+ reservesData
9282 }
9383
9484
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asInt (value) = match value {
55 case int: Int =>
66 int
77 case _ =>
88 throw("wrong type, expected: Int")
99 }
1010
1111
1212 func asString (value) = match value {
1313 case s: String =>
1414 s
1515 case _ =>
1616 throw("wrong type, expected: String")
1717 }
1818
1919
2020 func advise (main) = {
2121 let m = valueOrErrorMessage(addressFromString(main), "bad main")
2222 let config = addressFromStringValue(valueOrErrorMessage(getString(m, "config"), "no config in main"))
23- let staker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_staker"), "no staker in config")), "bad staker")
2423 let viresMinter = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_minter"), "no viresMinter")), "invalid viresMinter")
2524 let viresAssetId = valueOrErrorMessage(getString(viresMinter, "assetId"), "no viresAssetId")
2625 let distributor = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_distributor"), "no distributor in config")), "bad distributor")
2726 let oracle = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "oracle_address"), "no oracle in config")), "bad oracle")
2827 let viresPrice = asInt(invoke(oracle, "price", [viresAssetId], nil))
2928 if ((viresPrice == viresPrice))
3029 then {
31- let stakerInfo = asString(invoke(staker, "advise", nil, nil))
32- if ((stakerInfo == stakerInfo))
30+ let general = ((((("height: " + toString(height)) + ", viresAssetId: ") + viresAssetId) + ", viresPrice: ") + toString(viresPrice))
31+ if ((general == general))
3332 then {
34- let general = ((((("height: " + toString(height)) + ", viresAssetId: ") + viresAssetId) + ", viresPrice: ") + toString(viresPrice))
35- if ((general == general))
36- then {
37- let reserves = asString(invoke(distributor, "advise", nil, nil))
38- if ((reserves == reserves))
39- then (((general + ", ") + stakerInfo) + reserves)
40- else throw("Strict value is not equal to itself.")
41- }
33+ let reserves = asString(invoke(distributor, "advise", nil, nil))
34+ if ((reserves == reserves))
35+ then ((general + ", ") + reserves)
4236 else throw("Strict value is not equal to itself.")
4337 }
4438 else throw("Strict value is not equal to itself.")
4539 }
4640 else throw("Strict value is not equal to itself.")
4741 }
4842
4943
5044 func adviseUser (main,user) = {
5145 let m = valueOrErrorMessage(addressFromString(main), "bad main")
5246 let config = addressFromStringValue(valueOrErrorMessage(getString(m, "config"), "no config in main"))
5347 let reserves = split_4C(valueOrErrorMessage(getString(config, "primary_reserves"), "no reserves"), "|")
54- let ebRewards = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "eb_rewards"), "no eb_rewards in config")), "bad eb_rewards")
55- let staker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_staker"), "no staker in config")), "bad staker")
5648 let distributor = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_distributor"), "no distributor in config")), "bad distributor")
5749 let maybeLocker = match getString(config, "lp_locker") {
5850 case lockerAdr: String =>
5951 valueOrErrorMessage(addressFromString(lockerAdr), "bad lp_locker address in config")
6052 case _ =>
6153 unit
6254 }
6355 func getLockerInfo (aTId) = match maybeLocker {
6456 case locker: Address =>
6557 ("," + asString(invoke(locker, "adviseUser", [user, aTId], nil)))
6658 case _ =>
6759 ""
6860 }
6961
70- let ebUser = asString(invoke(ebRewards, "adviseUser", [user], nil))
71- let stkUser = asString(invoke(staker, "adviseUser", [user], nil))
7262 let reservesData = {
7363 func fold (totals,reserve) = {
7464 let aTokenId = valueOrErrorMessage(getString(addressFromStringValue(reserve), "aTokenId"), "no aTokenId in reserve")
7565 (((((((totals + ", [ ") + "reserveAddress: ") + reserve) + ",") + asString(invoke(distributor, "adviseUser", [reserve, user], nil))) + getLockerInfo(aTokenId)) + " ]")
7666 }
7767
7868 let $l = reserves
7969 let $s = size($l)
8070 let $acc0 = ""
8171 func $f0_1 ($a,$i) = if (($i >= $s))
8272 then $a
8373 else fold($a, $l[$i])
8474
8575 func $f0_2 ($a,$i) = if (($i >= $s))
8676 then $a
8777 else throw("List size exceeds 20")
8878
8979 $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)
9080 }
91- (((ebUser + ", ") + stkUser) + reservesData)
81+ reservesData
9282 }
9383
9484
9585

github/deemru/w8io/6500d08 
42.48 ms