tx · Bcb9y8WGuhSLGMFFop95b9XnoYFA3Jgh4kD84JHhYpVR

3N1iXCNZY1tjDef39ScB9LPBmooxdXoBJkD:  -0.01000000 Waves

2023.06.20 04:55 [2630317] smart account 3N1iXCNZY1tjDef39ScB9LPBmooxdXoBJkD > SELF 0.00000000 Waves

{ "type": 13, "id": "Bcb9y8WGuhSLGMFFop95b9XnoYFA3Jgh4kD84JHhYpVR", "fee": 1000000, "feeAssetId": null, "timestamp": 1687226209967, "version": 2, "chainId": 84, "sender": "3N1iXCNZY1tjDef39ScB9LPBmooxdXoBJkD", "senderPublicKey": "9qMg5u3dj3rp3orXEZZNTWN7PUWnoijorcYJQDkwmRVX", "proofs": [ "2PMWujrWYTt6aDrPkn5YcGDFbqZMZ9PMo1ogvu3f9zGkCTzd71SKPGjoj7QL4CWi6J42FfmmxafhcF1oTZqhtRrK" ], "script": "base64:BgINCAISABIDCgEBEgASAAcABkFPNzdJZAEgw6r4SvB42n5NP7kr1SoV2hXFLDHIkyEMqOZzQLoU6KoACUFPNzdJZFN0cgIsRUFvaTNpWHdSYXZkaUw3SGRueDZRN1pCY0V6SGNrOW96ZmdRVnlpQXR6ZVYABVNjYWxlAICglKWNHQENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARBjbGFpbUFsaWFzUmVzdWx0AgdhZGRyZXNzCmFzc2V0SWRTdHIECmFkZHJlc3NTdHIJAKUIAQUHYWRkcmVzcwQPY3VycmVudEludGVyZXN0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAhFnbG9iYWxfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BBFsYXN0Q2hlY2tJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgkArAICBQphZGRyZXNzU3RyAgtfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BAxzdGFrZWRBbW91bnQDCQAAAgUKYXNzZXRJZFN0cgUJQU83N0lkU3RyCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgUKYWRkcmVzc1N0cgIHX3N0YWtlZAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgkArAICBQphZGRyZXNzU3RyAgFfBQphc3NldElkU3RyAgdfc3Rha2VkBAZyZXdhcmQDCQBmAgURbGFzdENoZWNrSW50ZXJlc3QAAAkAawMJAGUCBQ9jdXJyZW50SW50ZXJlc3QFEWxhc3RDaGVja0ludGVyZXN0BQxzdGFrZWRBbW91bnQFBVNjYWxlAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFCmFkZHJlc3NTdHICC19sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfaW50ZXJlc3QFD2N1cnJlbnRJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUKYWRkcmVzc1N0cgIBXwUKYXNzZXRJZFN0cgIIX2NsYWltZWQJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICCQCsAgIFCmFkZHJlc3NTdHICAV8FCmFzc2V0SWRTdHICCF9jbGFpbWVkBQZyZXdhcmQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFCmFkZHJlc3NTdHICAV8FCmFzc2V0SWRTdHICCl9sYXN0Q2xhaW0IBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFB2FkZHJlc3MFBnJld2FyZAkA2QQBBQphc3NldElkU3RyBQNuaWwBC2NsYWltUmVzdWx0AQdhZGRyZXNzCQEQY2xhaW1BbGlhc1Jlc3VsdAIFB2FkZHJlc3MFCUFPNzdJZFN0cgQBaQEFc3Rha2UABAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAphZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQKYXNzZXRJZFN0cgkA2AQBBQZBTzc3SWQED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIRZ2xvYmFsX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9pbnRlcmVzdAQRdG90YWxTdGFrZWRBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQINZ2xvYmFsX3N0YWtlZAMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUGQU83N0lkCQACAQIUd3JvbmcgYXNzZXQgYXR0YWNoZWQJAM4IAgkBC2NsYWltUmVzdWx0AQgFAWkGY2FsbGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1nbG9iYWxfc3Rha2VkCQBkAgURdG90YWxTdGFrZWRBbW91bnQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphZGRyZXNzU3RyAgdfc3Rha2VkCQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICB19zdGFrZWQFBmFtb3VudAUDbmlsAWkBB3VuU3Rha2UBBmFtb3VudAQKYWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICB19zdGFrZWQDCQBmAgUGYW1vdW50BQxzdGFrZWRBbW91bnQJAAIBAh95b3UgZG9uJ3QgaGF2ZSB0b2tlbnMgYXZhaWxhYmxlCQDOCAIJAQtjbGFpbVJlc3VsdAEIBQFpBmNhbGxlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphZGRyZXNzU3RyAgdfc3Rha2VkCQBlAgUMc3Rha2VkQW1vdW50BQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICDWdsb2JhbF9zdGFrZWQJAGUCCQENdHJ5R2V0SW50ZWdlcgECDWdsb2JhbF9zdGFrZWQFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUGQU83N0lkBQNuaWwBaQELY2xhaW1SZXdhcmQACQELY2xhaW1SZXN1bHQBCAUBaQZjYWxsZXIBaQELdG9wVXBSZXdhcmQABAZhbW91bnQJAGsDCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAJAAoEC3VsdHJhQW1vdW50CQBlAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFBmFtb3VudAQKYXNzZXRJZFN0cgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIRZ2xvYmFsX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9pbnRlcmVzdAQRdG90YWxTdGFrZWRBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQINZ2xvYmFsX3N0YWtlZAQNaW50ZXJlc3REZWx0YQMJAGYCBRF0b3RhbFN0YWtlZEFtb3VudAAACQBrAwUGYW1vdW50BQVTY2FsZQURdG90YWxTdGFrZWRBbW91bnQAAAQUY3VycmVudFVsdHJhSW50ZXJlc3QJAQ10cnlHZXRJbnRlZ2VyAQIfZ2xvYmFsX2xhc3RDaGVja191bHRyYV9pbnRlcmVzdAQWdG90YWxVbHRyYVN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBAhNnbG9iYWxfdWx0cmFfc3Rha2VkBBJ1bHRyYUludGVyZXN0RGVsdGEDCQBmAgURdG90YWxTdGFrZWRBbW91bnQAAAkAawMFBmFtb3VudAUFU2NhbGUFEXRvdGFsU3Rha2VkQW1vdW50AAADCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBkFPNzdJZAkAAgECFHdyb25nIGFzc2V0IGF0dGFjaGVkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfBQphc3NldElkU3RyAglfZWFybmluZ3MJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfBQphc3NldElkU3RyAglfZWFybmluZ3MFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICEWdsb2JhbF9sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfaW50ZXJlc3QJAGQCBQ9jdXJyZW50SW50ZXJlc3QFDWludGVyZXN0RGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQICFWdsb2JhbF91bHRyYV9lYXJuaW5ncwkAZAIJAQ10cnlHZXRJbnRlZ2VyAQIVZ2xvYmFsX3VsdHJhX2Vhcm5pbmdzBQt1bHRyYUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIfZ2xvYmFsX2xhc3RDaGVja191bHRyYV9pbnRlcmVzdAkAZAIFFGN1cnJlbnRVbHRyYUludGVyZXN0BRJ1bHRyYUludGVyZXN0RGVsdGEFA25pbAUGYW1vdW50AQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleTqGVek=", "height": 2630317, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5AkrqBaM8YaRxQvKaaKNw5uqxVKHB6mXpE8Pw2iD7BqU Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let AO77Id = base58'EwZmy6R9UgH26MnAYyCqfgrYiKXzXUbNvi1TH5uF5ZjK'
4+let AO77Id = base58'EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV'
55
6-let AO77IdStr = "EwZmy6R9UgH26MnAYyCqfgrYiKXzXUbNvi1TH5uF5ZjK"
6+let AO77IdStr = "EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV"
77
88 let Scale = 1000000000000
99
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let AO77Id = base58'EwZmy6R9UgH26MnAYyCqfgrYiKXzXUbNvi1TH5uF5ZjK'
4+let AO77Id = base58'EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV'
55
6-let AO77IdStr = "EwZmy6R9UgH26MnAYyCqfgrYiKXzXUbNvi1TH5uF5ZjK"
6+let AO77IdStr = "EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV"
77
88 let Scale = 1000000000000
99
1010 func tryGetInteger (key) = match getInteger(this, key) {
1111 case b: Int =>
1212 b
1313 case _ =>
1414 0
1515 }
1616
1717
1818 func tryGetString (key) = match getString(this, key) {
1919 case a: String =>
2020 a
2121 case _ =>
2222 ""
2323 }
2424
2525
2626 func claimAliasResult (address,assetIdStr) = {
2727 let addressStr = toString(address)
2828 let currentInterest = tryGetInteger((("global_lastCheck_" + assetIdStr) + "_interest"))
2929 let lastCheckInterest = tryGetInteger((((addressStr + "_lastCheck_") + assetIdStr) + "_interest"))
3030 let stakedAmount = if ((assetIdStr == AO77IdStr))
3131 then tryGetInteger((addressStr + "_staked"))
3232 else tryGetInteger((((addressStr + "_") + assetIdStr) + "_staked"))
3333 let reward = if ((lastCheckInterest > 0))
3434 then fraction((currentInterest - lastCheckInterest), stakedAmount, Scale)
3535 else 0
3636 [IntegerEntry((((addressStr + "_lastCheck_") + assetIdStr) + "_interest"), currentInterest), IntegerEntry((((addressStr + "_") + assetIdStr) + "_claimed"), (tryGetInteger((((addressStr + "_") + assetIdStr) + "_claimed")) + reward)), IntegerEntry((((addressStr + "_") + assetIdStr) + "_lastClaim"), lastBlock.timestamp), ScriptTransfer(address, reward, fromBase58String(assetIdStr))]
3737 }
3838
3939
4040 func claimResult (address) = claimAliasResult(address, AO77IdStr)
4141
4242
4343 @Callable(i)
4444 func stake () = {
4545 let amount = i.payments[0].amount
4646 let addressStr = toString(i.caller)
4747 let assetIdStr = toBase58String(AO77Id)
4848 let currentInterest = tryGetInteger((("global_lastCheck_" + assetIdStr) + "_interest"))
4949 let totalStakedAmount = tryGetInteger("global_staked")
5050 if ((i.payments[0].assetId != AO77Id))
5151 then throw("wrong asset attached")
5252 else (claimResult(i.caller) ++ [IntegerEntry("global_staked", (totalStakedAmount + amount)), IntegerEntry((addressStr + "_staked"), (tryGetInteger((addressStr + "_staked")) + amount))])
5353 }
5454
5555
5656
5757 @Callable(i)
5858 func unStake (amount) = {
5959 let addressStr = toString(i.caller)
6060 let stakedAmount = tryGetInteger((addressStr + "_staked"))
6161 if ((amount > stakedAmount))
6262 then throw("you don't have tokens available")
6363 else (claimResult(i.caller) ++ [IntegerEntry((addressStr + "_staked"), (stakedAmount - amount)), IntegerEntry("global_staked", (tryGetInteger("global_staked") - amount)), ScriptTransfer(i.caller, amount, AO77Id)])
6464 }
6565
6666
6767
6868 @Callable(i)
6969 func claimReward () = claimResult(i.caller)
7070
7171
7272
7373 @Callable(i)
7474 func topUpReward () = {
7575 let amount = fraction(i.payments[0].amount, 9, 10)
7676 let ultraAmount = (i.payments[0].amount - amount)
7777 let assetIdStr = toBase58String(value(i.payments[0].assetId))
7878 let currentInterest = tryGetInteger((("global_lastCheck_" + assetIdStr) + "_interest"))
7979 let totalStakedAmount = tryGetInteger("global_staked")
8080 let interestDelta = if ((totalStakedAmount > 0))
8181 then fraction(amount, Scale, totalStakedAmount)
8282 else 0
8383 let currentUltraInterest = tryGetInteger("global_lastCheck_ultra_interest")
8484 let totalUltraStakedAmount = tryGetInteger("global_ultra_staked")
8585 let ultraInterestDelta = if ((totalStakedAmount > 0))
8686 then fraction(amount, Scale, totalStakedAmount)
8787 else 0
8888 if ((i.payments[0].assetId != AO77Id))
8989 then throw("wrong asset attached")
9090 else $Tuple2([IntegerEntry((("global_" + assetIdStr) + "_earnings"), (tryGetInteger((("global_" + assetIdStr) + "_earnings")) + amount)), IntegerEntry((("global_lastCheck_" + assetIdStr) + "_interest"), (currentInterest + interestDelta)), IntegerEntry("global_ultra_earnings", (tryGetInteger("global_ultra_earnings") + ultraAmount)), IntegerEntry("global_lastCheck_ultra_interest", (currentUltraInterest + ultraInterestDelta))], amount)
9191 }
9292
9393
9494 @Verifier(tx)
9595 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
9696

github/deemru/w8io/026f985 
42.28 ms