tx · 5sNCBXJU9rUQHDwGkEq79Yn3co4K2DJPTs5esntNvEvo 3P65HWsxZtnrBW3D4jVtuiv67aDwmUkcZMQ: -0.00200000 Waves 2022.11.09 11:33 [3374739] smart account 3P65HWsxZtnrBW3D4jVtuiv67aDwmUkcZMQ > SELF 0.00000000 Waves
{ "type": 13, "id": "5sNCBXJU9rUQHDwGkEq79Yn3co4K2DJPTs5esntNvEvo", "fee": 200000, "feeAssetId": null, "timestamp": 1667982806531, "version": 1, "sender": "3P65HWsxZtnrBW3D4jVtuiv67aDwmUkcZMQ", "senderPublicKey": "5d4wPNJknDnzUufWViFo1hGEoFPqtZw9XEjbuAvCjM8t", "proofs": [ "2QWP8L4ecGeBUtYRKHr8P9dKaQhX2AgefehBBVyEWTjkLxantGD1Amqe7FZLdQweNjQ5oT4AaaeLejF26VLSRSNE" ], "script": "base64:BgIJCAISAwoBCBIAFwEGYXNJbnQ0AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIUKEludCwgSW50LCBJbnQsIEludCkEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAhBzaG91bGQgYmUgNCBpbnRzARB3cml0ZUNvbnN0U3RyaW5nAgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFA2tleQkBC1N0cmluZ0VudHJ5AgUDa2V5BQV2YWx1ZQkAAgEJAKwCAgIVYWxyZWFkeSBpbml0aWFsaXplZDogBQNrZXkAC3BlcmlvZEhvdXJzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCC3BlcmlvZEhvdXJzCQBoAgAYAAMAD3JlZ3VsYXJNb2RlTmFtZQIHcmVndWxhcgAPcmVndWxhckF2Z1ByaWNlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCD3JlZ3VsYXJBdmdQcmljZQCg6DsAD3JlZ1Zlc3RpbmdUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAg9yZWdWZXN0aW5nVG90YWwJAGgCCQBoAgkAaAIAZADoBwDoBwDoBwANcmVnVmVzdGluZ01pbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAg1yZWdWZXN0aW5nTWluCQBoAgkAaAIAZADoBwDoBwARcmVnVmVzdGluZ01heERheXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwIRcmVnVmVzdGluZ01heERheXMA9AMACHJlZ1RvdGFsCQCWCgQFDXJlZ1Zlc3RpbmdNaW4FD3JlZ1Zlc3RpbmdUb3RhbAURcmVnVmVzdGluZ01heERheXMFD3JlZ3VsYXJNb2RlTmFtZQAMc2xvd01vZGVOYW1lAgRzbG93AAxzbG93TWluUHJpY2UJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwIMc2xvd01pblByaWNlAPD9OQAQc2xvd1Zlc3RpbmdUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAhBzbG93VmVzdGluZ1RvdGFsCQBoAgkAaAIJAGgCAAoA6AcA6AcA6AcADnNsb3dWZXN0aW5nTWluCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCDnNsb3dWZXN0aW5nTWluCQBoAgkAaAIACgDoBwDoBwASc2xvd1Zlc3RpbmdNYXhEYXlzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCEnNsb3dWZXN0aW5nTWF4RGF5cwCIJwAJc2xvd1RvdGFsCQCWCgQFDnNsb3dWZXN0aW5nTWluBRBzbG93VmVzdGluZ1RvdGFsBRJzbG93VmVzdGluZ01heERheXMFDHNsb3dNb2RlTmFtZQAPc3RvcmVkTW9kZVN0b3JlAgpzdG9yZWRNb2RlAApzdG9yZWRNb2RlCQELdmFsdWVPckVsc2UCCQCiCAEFD3N0b3JlZE1vZGVTdG9yZQUPcmVndWxhck1vZGVOYW1lAAp1c2RuT3JhY2xlCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwIKdXNkbk9yYWNsZQIUbm8gb3JhY2xlIGNvbmZpZ3VyZWQACyR0MDE2MzYxNzM2CQEGYXNJbnQ0AQkA/AcEBQp1c2RuT3JhY2xlAgVwcmljZQkAzAgCBQtwZXJpb2RIb3VycwUDbmlsBQNuaWwACXNwb3RQcmljZQgFCyR0MDE2MzYxNzM2Al8xAAhhdmdQcmljZQgFCyR0MDE2MzYxNzM2Al8yAAhtaW5QcmljZQgFCyR0MDE2MzYxNzM2Al8zAAhtYXhQcmljZQgFCyR0MDE2MzYxNzM2Al80AgFpAQRpbml0AQd1T3JhY2xlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQISb25seSBzZWxmIGNhbiBpbml0CQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIKdXNkbk9yYWNsZQUHdU9yYWNsZQUDbmlsAWkBBmxpbWl0cwAEC3N0b3JlZFRvdGFsAwkAAAIFCnN0b3JlZE1vZGUFD3JlZ3VsYXJNb2RlTmFtZQUIcmVnVG90YWwFCXNsb3dUb3RhbAQMY3VycmVudFRvdGFsAwkAZwIFDHNsb3dNaW5QcmljZQUIbWluUHJpY2UFCXNsb3dUb3RhbAMJAGcCBQhhdmdQcmljZQUPcmVndWxhckF2Z1ByaWNlBQhyZWdUb3RhbAULc3RvcmVkVG90YWwJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQ9zdG9yZWRNb2RlU3RvcmUIBQxjdXJyZW50VG90YWwCXzQFA25pbAUMY3VycmVudFRvdGFsAMAbjAs=", "chainId": 87, "height": 3374739, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F7c7ouTZ59uKK9KWPWav2fXEgxXz8JvuEk4BNHGcwZo3 Next: 7CJibZq6dwYSGrNjoFc729sUs9uPjUuAVBjFjb55NYoo Diff:
Old | New | Differences | |
---|---|---|---|
32 | 32 | ||
33 | 33 | let slowMinPrice = valueOrElse(getInteger(this, "slowMinPrice"), 950000) | |
34 | 34 | ||
35 | - | let slowVestingTotal = valueOrElse(getInteger(this, " | |
35 | + | let slowVestingTotal = valueOrElse(getInteger(this, "slowVestingTotal"), (((10 * 1000) * 1000) * 1000)) | |
36 | 36 | ||
37 | - | let slowVestingMin = valueOrElse(getInteger(this, " | |
37 | + | let slowVestingMin = valueOrElse(getInteger(this, "slowVestingMin"), ((10 * 1000) * 1000)) | |
38 | 38 | ||
39 | - | let slowVestingMaxDays = valueOrElse(getInteger(this, " | |
39 | + | let slowVestingMaxDays = valueOrElse(getInteger(this, "slowVestingMaxDays"), 5000) | |
40 | 40 | ||
41 | 41 | let slowTotal = $Tuple4(slowVestingMin, slowVestingTotal, slowVestingMaxDays, slowModeName) | |
42 | 42 | ||
46 | 46 | ||
47 | 47 | let usdnOracle = addressFromStringValue(valueOrErrorMessage(getString(this, "usdnOracle"), "no oracle configured")) | |
48 | 48 | ||
49 | - | let $ | |
49 | + | let $t016361736 = asInt4(invoke(usdnOracle, "price", [periodHours], nil)) | |
50 | 50 | ||
51 | - | let spotPrice = $ | |
51 | + | let spotPrice = $t016361736._1 | |
52 | 52 | ||
53 | - | let avgPrice = $ | |
53 | + | let avgPrice = $t016361736._2 | |
54 | 54 | ||
55 | - | let minPrice = $ | |
55 | + | let minPrice = $t016361736._3 | |
56 | 56 | ||
57 | - | let maxPrice = $ | |
57 | + | let maxPrice = $t016361736._4 | |
58 | 58 | ||
59 | 59 | @Callable(i) | |
60 | 60 | func init (uOracle) = if ((i.caller != this)) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func asInt4 (value) = match value { | |
5 | 5 | case x: (Int, Int, Int, Int) => | |
6 | 6 | x | |
7 | 7 | case t => | |
8 | 8 | throw("should be 4 ints") | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func writeConstString (key,value) = if (!(isDefined(getString(this, key)))) | |
13 | 13 | then StringEntry(key, value) | |
14 | 14 | else throw(("already initialized: " + key)) | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | let periodHours = valueOrElse(getInteger(this, "periodHours"), (24 * 3)) | |
18 | 18 | ||
19 | 19 | let regularModeName = "regular" | |
20 | 20 | ||
21 | 21 | let regularAvgPrice = valueOrElse(getInteger(this, "regularAvgPrice"), 980000) | |
22 | 22 | ||
23 | 23 | let regVestingTotal = valueOrElse(getInteger(this, "regVestingTotal"), (((100 * 1000) * 1000) * 1000)) | |
24 | 24 | ||
25 | 25 | let regVestingMin = valueOrElse(getInteger(this, "regVestingMin"), ((100 * 1000) * 1000)) | |
26 | 26 | ||
27 | 27 | let regVestingMaxDays = valueOrElse(getInteger(this, "regVestingMaxDays"), 500) | |
28 | 28 | ||
29 | 29 | let regTotal = $Tuple4(regVestingMin, regVestingTotal, regVestingMaxDays, regularModeName) | |
30 | 30 | ||
31 | 31 | let slowModeName = "slow" | |
32 | 32 | ||
33 | 33 | let slowMinPrice = valueOrElse(getInteger(this, "slowMinPrice"), 950000) | |
34 | 34 | ||
35 | - | let slowVestingTotal = valueOrElse(getInteger(this, " | |
35 | + | let slowVestingTotal = valueOrElse(getInteger(this, "slowVestingTotal"), (((10 * 1000) * 1000) * 1000)) | |
36 | 36 | ||
37 | - | let slowVestingMin = valueOrElse(getInteger(this, " | |
37 | + | let slowVestingMin = valueOrElse(getInteger(this, "slowVestingMin"), ((10 * 1000) * 1000)) | |
38 | 38 | ||
39 | - | let slowVestingMaxDays = valueOrElse(getInteger(this, " | |
39 | + | let slowVestingMaxDays = valueOrElse(getInteger(this, "slowVestingMaxDays"), 5000) | |
40 | 40 | ||
41 | 41 | let slowTotal = $Tuple4(slowVestingMin, slowVestingTotal, slowVestingMaxDays, slowModeName) | |
42 | 42 | ||
43 | 43 | let storedModeStore = "storedMode" | |
44 | 44 | ||
45 | 45 | let storedMode = valueOrElse(getString(storedModeStore), regularModeName) | |
46 | 46 | ||
47 | 47 | let usdnOracle = addressFromStringValue(valueOrErrorMessage(getString(this, "usdnOracle"), "no oracle configured")) | |
48 | 48 | ||
49 | - | let $ | |
49 | + | let $t016361736 = asInt4(invoke(usdnOracle, "price", [periodHours], nil)) | |
50 | 50 | ||
51 | - | let spotPrice = $ | |
51 | + | let spotPrice = $t016361736._1 | |
52 | 52 | ||
53 | - | let avgPrice = $ | |
53 | + | let avgPrice = $t016361736._2 | |
54 | 54 | ||
55 | - | let minPrice = $ | |
55 | + | let minPrice = $t016361736._3 | |
56 | 56 | ||
57 | - | let maxPrice = $ | |
57 | + | let maxPrice = $t016361736._4 | |
58 | 58 | ||
59 | 59 | @Callable(i) | |
60 | 60 | func init (uOracle) = if ((i.caller != this)) | |
61 | 61 | then throw("only self can init") | |
62 | 62 | else [writeConstString("usdnOracle", uOracle)] | |
63 | 63 | ||
64 | 64 | ||
65 | 65 | ||
66 | 66 | @Callable(i) | |
67 | 67 | func limits () = { | |
68 | 68 | let storedTotal = if ((storedMode == regularModeName)) | |
69 | 69 | then regTotal | |
70 | 70 | else slowTotal | |
71 | 71 | let currentTotal = if ((slowMinPrice >= minPrice)) | |
72 | 72 | then slowTotal | |
73 | 73 | else if ((avgPrice >= regularAvgPrice)) | |
74 | 74 | then regTotal | |
75 | 75 | else storedTotal | |
76 | 76 | $Tuple2([StringEntry(storedModeStore, currentTotal._4)], currentTotal) | |
77 | 77 | } | |
78 | 78 | ||
79 | 79 |
github/deemru/w8io/3ef1775 36.94 ms ◑![]()