tx · 8WWe7GKw65YkkjbWjNc713Gzpz7sAW9XqcVRA9deNNFQ

3P65HWsxZtnrBW3D4jVtuiv67aDwmUkcZMQ:  -0.00200000 Waves

2022.11.03 12:06 [3366086] smart account 3P65HWsxZtnrBW3D4jVtuiv67aDwmUkcZMQ > SELF 0.00000000 Waves

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

github/deemru/w8io/3ef1775 
28.94 ms