tx · DSWPhB3LSTPWt2GTbWwZMdzkjiXBLPDmP4qWMdVFuvaK

3P6r1tQ9fZ72nN2c85JQd86HmFXsFoycSSB:  -0.01000000 Waves

2022.12.20 15:46 [3434099] smart account 3P6r1tQ9fZ72nN2c85JQd86HmFXsFoycSSB > SELF 0.00000000 Waves

{ "type": 13, "id": "DSWPhB3LSTPWt2GTbWwZMdzkjiXBLPDmP4qWMdVFuvaK", "fee": 1000000, "feeAssetId": null, "timestamp": 1671540438319, "version": 2, "chainId": 87, "sender": "3P6r1tQ9fZ72nN2c85JQd86HmFXsFoycSSB", "senderPublicKey": "6vtsN7XVBpkCG3nevPHgREhun9roGTEWjXnimqGZm6sb", "proofs": [ "3kFnWxqrRVXQXB2KrsDdzcSX5ootKPEZTnUFeHxRESCvaJQnUHAuGyTXwGGmoMydUj9MNYLS9HA3WmHZ4JueEqvp" ], "script": "base64:BgIRCAISAwoBCBIDCgEIEgMKAQgNAQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwBQZzdHJpbmcJAAIBAiFTQVM6IHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQ10cnlHZXRCb29sZWFuAQNrZXkEByRtYXRjaDAJAKAIAQUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQx0cnlHZXRTdHJpbmcBA2tleQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgUEdGhpcwUDa2V5AQ10cnlHZXRJbnRlZ2VyAQNrZXkJARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCBQR0aGlzBQNrZXkBCWdldE9yYWNsZQAJAQdBZGRyZXNzAQkA2QQBCQEMdHJ5R2V0U3RyaW5nAQIUc3RhdGljX29yYWNsZUFkZHJlc3MBEWdldEZhcm1pbmdBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAhVzdGF0aWNfZmFybWluZ0FkZHJlc3MBD2dldEl0ZW1zQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAITc3RhdGljX2l0ZW1zQWRkcmVzcwETbGFzdENoZWNrSGVpZ2h0RHVjawEGZHVja0lkCQCsAgIFBmR1Y2tJZAINX2NoZWNrX2hlaWdodAEPbGFzdENoZWNrVHhEdWNrAQZkdWNrSWQJAKwCAgUGZHVja0lkAglfY2hlY2tfdHgBCmlzU2lja0R1Y2sBBmR1Y2tJZAkArAICBQZkdWNrSWQCBV9zaWNrAQ9nZXRSYW5kb21OdW1iZXIECHZhcmlhbnRzBHR4SWQQbGFzdENoZWNrRGlzZWFzZQZvZmZzZXQED3JhbmRvbVNlZWRCbG9jawkBBXZhbHVlAQkA7QcBCQBlAgUQbGFzdENoZWNrRGlzZWFzZQABBApyYW5kb21IYXNoCQDUFgEJAMsBAgUEdHhJZAkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYJAGoCCQCyCQIFCnJhbmRvbUhhc2gFBm9mZnNldAUIdmFyaWFudHMDAWkBD2NvbmZpZ3VyZU9yYWNsZQEGb3JhY2xlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIPSUNVOiBhZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQICFHN0YXRpY19vcmFjbGVBZGRyZXNzBQZvcmFjbGUFA25pbAFpARJjaGVja0lmRHVja0dldFNpY2sBBmR1Y2tJZAMJAQIhPQIIBQFpBmNhbGxlcgkBEWdldEZhcm1pbmdBZGRyZXNzAAkAAgECLVNDSUZHUzogT25seSBmYXJtaW5nIGNhbiBtYWtlIHRoZSBkdWNrIHNpY2shIAQJbGFzdENoZWNrCQEMdHJ5R2V0U3RyaW5nAQkBD2xhc3RDaGVja1R4RHVjawEFBmR1Y2tJZAQFYnl0ZXMDCQAAAgUJbGFzdENoZWNrAgAIBQFpDXRyYW5zYWN0aW9uSWQJAJsDAQUJbGFzdENoZWNrBA9sYXN0Q2hlY2tIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkBE2xhc3RDaGVja0hlaWdodER1Y2sBBQZkdWNrSWQEBm51bWJlcgMJAAACBQ9sYXN0Q2hlY2tIZWlnaHQAAAUGaGVpZ2h0BQ9sYXN0Q2hlY2tIZWlnaHQECXJhbmRvbU51bQkBD2dldFJhbmRvbU51bWJlcgQAFAUFYnl0ZXMFBm51bWJlcgACBAtnZW5lcmljRGF0YQkAzAgCCQELU3RyaW5nRW50cnkCCQEPbGFzdENoZWNrVHhEdWNrAQUGZHVja0lkCQCwCQEIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARNsYXN0Q2hlY2tIZWlnaHREdWNrAQUGZHVja0lkBQZoZWlnaHQFA25pbAMDCQAAAgUJcmFuZG9tTnVtAAEGCQENdHJ5R2V0Qm9vbGVhbgEJAQppc1NpY2tEdWNrAQUGZHVja0lkCQCUCgIJAM4IAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmlzU2lja0R1Y2sBBQZkdWNrSWQGBQNuaWwFC2dlbmVyaWNEYXRhBgkAlAoCBQtnZW5lcmljRGF0YQcBaQEIaGVhbER1Y2sBBmR1Y2tJZAQHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAxhcnRlZmFjdE5hbWUJAQhhc1N0cmluZwEJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACFGNoZWNrQXJ0ZWZhY3REZXRhaWxzCQDMCAIJANgEAQUHYXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUMYXJ0ZWZhY3ROYW1lBQxhcnRlZmFjdE5hbWUDCQECIT0CBQxhcnRlZmFjdE5hbWUCD0FSVC1IRUFMX1BPVElPTgkAAgECKFlvdSBjYW4ndCBoZWFsIGEgZHVjayB3aXRoIHRoaXMgYXJ0ZWZhY3QJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmlzU2lja0R1Y2sBBQZkdWNrSWQHBQNuaWwHCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAMMgIkg=", "height": 3434099, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 3LD11DoMg96dNXDsUWqS3aDi9NHsgsHJcivsFnFYggHE Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func asString (value) = match value {
5+ case string: String =>
6+ string
7+ case _ =>
8+ throw("SAS: wrong type, expected: String")
9+}
10+
11+
12+func tryGetIntegerExternal (address,key) = match getInteger(address, key) {
13+ case a: Int =>
14+ a
15+ case _ =>
16+ 0
17+}
18+
19+
20+func tryGetStringExternal (address,key) = match getString(address, key) {
21+ case a: String =>
22+ a
23+ case _ =>
24+ ""
25+}
26+
27+
28+func tryGetBoolean (key) = match getBoolean(key) {
29+ case b: Boolean =>
30+ b
31+ case _ =>
32+ false
33+}
34+
35+
36+func tryGetString (key) = tryGetStringExternal(this, key)
37+
38+
39+func tryGetInteger (key) = tryGetIntegerExternal(this, key)
40+
41+
42+func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
43+
44+
45+func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
46+
47+
48+func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_itemsAddress")))
49+
50+
51+func lastCheckHeightDuck (duckId) = (duckId + "_check_height")
52+
53+
54+func lastCheckTxDuck (duckId) = (duckId + "_check_tx")
55+
56+
57+func isSickDuck (duckId) = (duckId + "_sick")
58+
59+
60+func getRandomNumber (variants,txId,lastCheckDisease,offset) = {
61+ let randomSeedBlock = value(blockInfoByHeight((lastCheckDisease - 1)))
62+ let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf)))
63+ (toInt(randomHash, offset) % variants)
64+ }
65+
66+
67+@Callable(i)
68+func configureOracle (oracle) = if ((i.caller != this))
69+ then throw("ICU: admin only")
70+ else [StringEntry("static_oracleAddress", oracle)]
71+
72+
73+
74+@Callable(i)
75+func checkIfDuckGetSick (duckId) = if ((i.caller != getFarmingAddress()))
76+ then throw("SCIFGS: Only farming can make the duck sick! ")
77+ else {
78+ let lastCheck = tryGetString(lastCheckTxDuck(duckId))
79+ let bytes = if ((lastCheck == ""))
80+ then i.transactionId
81+ else toBytes(lastCheck)
82+ let lastCheckHeight = tryGetInteger(lastCheckHeightDuck(duckId))
83+ let number = if ((lastCheckHeight == 0))
84+ then height
85+ else lastCheckHeight
86+ let randomNum = getRandomNumber(20, bytes, number, 2)
87+ let genericData = [StringEntry(lastCheckTxDuck(duckId), toUtf8String(i.transactionId)), IntegerEntry(lastCheckHeightDuck(duckId), height)]
88+ if (if ((randomNum == 1))
89+ then true
90+ else tryGetBoolean(isSickDuck(duckId)))
91+ then $Tuple2(([BooleanEntry(isSickDuck(duckId), true)] ++ genericData), true)
92+ else $Tuple2(genericData, false)
93+ }
94+
95+
96+
97+@Callable(i)
98+func healDuck (duckId) = {
99+ let assetId = value(i.payments[0].assetId)
100+ let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
101+ if ((artefactName == artefactName))
102+ then if ((artefactName != "ART-HEAL_POTION"))
103+ then throw("You can't heal a duck with this artefact")
104+ else $Tuple2([BooleanEntry(isSickDuck(duckId), false)], false)
105+ else throw("Strict value is not equal to itself.")
106+ }
107+
108+

github/deemru/w8io/6500d08 
103.26 ms