tx · 3LD11DoMg96dNXDsUWqS3aDi9NHsgsHJcivsFnFYggHE

3P6r1tQ9fZ72nN2c85JQd86HmFXsFoycSSB:  -0.01000000 Waves

2022.12.21 20:05 [3435797] smart account 3P6r1tQ9fZ72nN2c85JQd86HmFXsFoycSSB > SELF 0.00000000 Waves

{ "type": 13, "id": "3LD11DoMg96dNXDsUWqS3aDi9NHsgsHJcivsFnFYggHE", "fee": 1000000, "feeAssetId": null, "timestamp": 1671642344965, "version": 2, "chainId": 87, "sender": "3P6r1tQ9fZ72nN2c85JQd86HmFXsFoycSSB", "senderPublicKey": "6vtsN7XVBpkCG3nevPHgREhun9roGTEWjXnimqGZm6sb", "proofs": [ "3ghHz9pmTVhVmMeLWSpYYbrzi26FsdzVdZcQBnWbjdn2bQQD18prpUVhe4rUgf4HT4S3HZZ1fsSAfNpmXxJmDWZy" ], "script": "base64:BgIRCAISAwoBCBIDCgEIEgMKAQgNAQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwBQZzdHJpbmcJAAIBAiFTQVM6IHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQ10cnlHZXRCb29sZWFuAQNrZXkEByRtYXRjaDAJAKAIAQUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQx0cnlHZXRTdHJpbmcBA2tleQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgUEdGhpcwUDa2V5AQ10cnlHZXRJbnRlZ2VyAQNrZXkJARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCBQR0aGlzBQNrZXkBCWdldE9yYWNsZQAJAQdBZGRyZXNzAQkA2QQBCQEMdHJ5R2V0U3RyaW5nAQIUc3RhdGljX29yYWNsZUFkZHJlc3MBEWdldEZhcm1pbmdBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAhVzdGF0aWNfZmFybWluZ0FkZHJlc3MBD2dldEl0ZW1zQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAITc3RhdGljX2l0ZW1zQWRkcmVzcwETbGFzdENoZWNrSGVpZ2h0RHVjawEGZHVja0lkCQCsAgIFBmR1Y2tJZAINX2NoZWNrX2hlaWdodAEPbGFzdENoZWNrVHhEdWNrAQZkdWNrSWQJAKwCAgUGZHVja0lkAglfY2hlY2tfdHgBCmlzU2lja0R1Y2sBBmR1Y2tJZAkArAICBQZkdWNrSWQCBV9zaWNrAQ9nZXRSYW5kb21OdW1iZXIECHZhcmlhbnRzBHR4SWQQbGFzdENoZWNrRGlzZWFzZQZvZmZzZXQED3JhbmRvbVNlZWRCbG9jawkBBXZhbHVlAQkA7QcBCQBlAgUQbGFzdENoZWNrRGlzZWFzZQABBApyYW5kb21IYXNoCQDUFgEJAMsBAgUEdHhJZAkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYJAGoCCQCyCQIFCnJhbmRvbUhhc2gFBm9mZnNldAUIdmFyaWFudHMDAWkBD2NvbmZpZ3VyZU9yYWNsZQEGb3JhY2xlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIPSUNVOiBhZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQICFHN0YXRpY19vcmFjbGVBZGRyZXNzBQZvcmFjbGUFA25pbAFpARJjaGVja0lmRHVja0dldFNpY2sBBmR1Y2tJZAMJAQIhPQIIBQFpBmNhbGxlcgkBEWdldEZhcm1pbmdBZGRyZXNzAAkAAgECLVNDSUZHUzogT25seSBmYXJtaW5nIGNhbiBtYWtlIHRoZSBkdWNrIHNpY2shIAQJbGFzdENoZWNrCQEMdHJ5R2V0U3RyaW5nAQkBD2xhc3RDaGVja1R4RHVjawEFBmR1Y2tJZAQFYnl0ZXMDCQAAAgUJbGFzdENoZWNrAgAIBQFpDXRyYW5zYWN0aW9uSWQJAJsDAQUJbGFzdENoZWNrBA9sYXN0Q2hlY2tIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkBE2xhc3RDaGVja0hlaWdodER1Y2sBBQZkdWNrSWQEBm51bWJlcgMJAAACBQ9sYXN0Q2hlY2tIZWlnaHQAAAUGaGVpZ2h0BQ9sYXN0Q2hlY2tIZWlnaHQECXJhbmRvbU51bQkBD2dldFJhbmRvbU51bWJlcgQAFAUFYnl0ZXMFBm51bWJlcgACBAtnZW5lcmljRGF0YQkAzAgCCQELU3RyaW5nRW50cnkCCQEPbGFzdENoZWNrVHhEdWNrAQUGZHVja0lkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARNsYXN0Q2hlY2tIZWlnaHREdWNrAQUGZHVja0lkBQZoZWlnaHQFA25pbAMDCQAAAgUJcmFuZG9tTnVtAAEGCQENdHJ5R2V0Qm9vbGVhbgEJAQppc1NpY2tEdWNrAQUGZHVja0lkCQCUCgIJAM4IAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmlzU2lja0R1Y2sBBQZkdWNrSWQGBQNuaWwFC2dlbmVyaWNEYXRhBgkAlAoCBQtnZW5lcmljRGF0YQcBaQEIaGVhbER1Y2sBBmR1Y2tJZAQHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAxhcnRlZmFjdE5hbWUJAQhhc1N0cmluZwEJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACFGNoZWNrQXJ0ZWZhY3REZXRhaWxzCQDMCAIJANgEAQUHYXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUMYXJ0ZWZhY3ROYW1lBQxhcnRlZmFjdE5hbWUDCQECIT0CBQxhcnRlZmFjdE5hbWUCD0FSVC1IRUFMX1BPVElPTgkAAgECKFlvdSBjYW4ndCBoZWFsIGEgZHVjayB3aXRoIHRoaXMgYXJ0ZWZhY3QJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmlzU2lja0R1Y2sBBQZkdWNrSWQHBQNuaWwHCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuALLzxks=", "height": 3435797, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DSWPhB3LSTPWt2GTbWwZMdzkjiXBLPDmP4qWMdVFuvaK Next: BsfiyUjBS14PiLQ7pAss7GyUPAPVPP59Ur56hGQ7shsu Diff:
OldNewDifferences
8484 then height
8585 else lastCheckHeight
8686 let randomNum = getRandomNumber(20, bytes, number, 2)
87- let genericData = [StringEntry(lastCheckTxDuck(duckId), toUtf8String(i.transactionId)), IntegerEntry(lastCheckHeightDuck(duckId), height)]
87+ let genericData = [StringEntry(lastCheckTxDuck(duckId), toBase58String(i.transactionId)), IntegerEntry(lastCheckHeightDuck(duckId), height)]
8888 if (if ((randomNum == 1))
8989 then true
9090 else tryGetBoolean(isSickDuck(duckId)))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asString (value) = match value {
55 case string: String =>
66 string
77 case _ =>
88 throw("SAS: wrong type, expected: String")
99 }
1010
1111
1212 func tryGetIntegerExternal (address,key) = match getInteger(address, key) {
1313 case a: Int =>
1414 a
1515 case _ =>
1616 0
1717 }
1818
1919
2020 func tryGetStringExternal (address,key) = match getString(address, key) {
2121 case a: String =>
2222 a
2323 case _ =>
2424 ""
2525 }
2626
2727
2828 func tryGetBoolean (key) = match getBoolean(key) {
2929 case b: Boolean =>
3030 b
3131 case _ =>
3232 false
3333 }
3434
3535
3636 func tryGetString (key) = tryGetStringExternal(this, key)
3737
3838
3939 func tryGetInteger (key) = tryGetIntegerExternal(this, key)
4040
4141
4242 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
4343
4444
4545 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
4646
4747
4848 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_itemsAddress")))
4949
5050
5151 func lastCheckHeightDuck (duckId) = (duckId + "_check_height")
5252
5353
5454 func lastCheckTxDuck (duckId) = (duckId + "_check_tx")
5555
5656
5757 func isSickDuck (duckId) = (duckId + "_sick")
5858
5959
6060 func getRandomNumber (variants,txId,lastCheckDisease,offset) = {
6161 let randomSeedBlock = value(blockInfoByHeight((lastCheckDisease - 1)))
6262 let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf)))
6363 (toInt(randomHash, offset) % variants)
6464 }
6565
6666
6767 @Callable(i)
6868 func configureOracle (oracle) = if ((i.caller != this))
6969 then throw("ICU: admin only")
7070 else [StringEntry("static_oracleAddress", oracle)]
7171
7272
7373
7474 @Callable(i)
7575 func checkIfDuckGetSick (duckId) = if ((i.caller != getFarmingAddress()))
7676 then throw("SCIFGS: Only farming can make the duck sick! ")
7777 else {
7878 let lastCheck = tryGetString(lastCheckTxDuck(duckId))
7979 let bytes = if ((lastCheck == ""))
8080 then i.transactionId
8181 else toBytes(lastCheck)
8282 let lastCheckHeight = tryGetInteger(lastCheckHeightDuck(duckId))
8383 let number = if ((lastCheckHeight == 0))
8484 then height
8585 else lastCheckHeight
8686 let randomNum = getRandomNumber(20, bytes, number, 2)
87- let genericData = [StringEntry(lastCheckTxDuck(duckId), toUtf8String(i.transactionId)), IntegerEntry(lastCheckHeightDuck(duckId), height)]
87+ let genericData = [StringEntry(lastCheckTxDuck(duckId), toBase58String(i.transactionId)), IntegerEntry(lastCheckHeightDuck(duckId), height)]
8888 if (if ((randomNum == 1))
8989 then true
9090 else tryGetBoolean(isSickDuck(duckId)))
9191 then $Tuple2(([BooleanEntry(isSickDuck(duckId), true)] ++ genericData), true)
9292 else $Tuple2(genericData, false)
9393 }
9494
9595
9696
9797 @Callable(i)
9898 func healDuck (duckId) = {
9999 let assetId = value(i.payments[0].assetId)
100100 let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
101101 if ((artefactName == artefactName))
102102 then if ((artefactName != "ART-HEAL_POTION"))
103103 then throw("You can't heal a duck with this artefact")
104104 else $Tuple2([BooleanEntry(isSickDuck(duckId), false)], false)
105105 else throw("Strict value is not equal to itself.")
106106 }
107107
108108

github/deemru/w8io/6500d08 
33.75 ms