tx · CKGWU1Vh7tKM16R7TttdWLdZ8VvQTpTVsuMxoyD9F2Wt

3Mq52xokHu7f1rFPoqNi2DV9f9MYE65sWUg:  -0.00900000 Waves

2022.06.24 11:19 [2110247] smart account 3Mq52xokHu7f1rFPoqNi2DV9f9MYE65sWUg > SELF 0.00000000 Waves

{ "type": 13, "id": "CKGWU1Vh7tKM16R7TttdWLdZ8VvQTpTVsuMxoyD9F2Wt", "fee": 900000, "feeAssetId": null, "timestamp": 1656058784735, "version": 2, "chainId": 84, "sender": "3Mq52xokHu7f1rFPoqNi2DV9f9MYE65sWUg", "senderPublicKey": "Eijao3E296kNprNyPkgrJ1WQ6VGQNSeWypcFsd3NMSDs", "proofs": [ "2NbEgqY7jExedJDkBUhreHGzmCDiVQm8M98jefNVWjiMGG3HvH2TFo2WfVo9cUMvSyFcP9pb3caqpyMtCHzoQgkt" ], "script": "base64:AAIFAAAAAAAAABQIAhIDCgEBEgQKAgEEEgMKAQQSAAAAAA4AAAAABG5hbWUCAAAACUJldGEgVEVBTQAAAAALc3Rha2VkUG93ZXIAAAAAAAAAAAEAAAAAB2RlY2ltYWwAAAAAAAX14QABAAAABmdldFN0cgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAABAAAABWNoZWNrAAAAAQAAAANwYmsEAAAABnBia19zdAkAAlgAAAABBQAAAANwYmsEAAAABnBvaW50cwkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQIAAAAGcG9pbnRzCQEAAAAIY29udGFpbnMAAAACBQAAAAZwb2ludHMFAAAABnBia19zdAAAAAAMc2hhcmVUb2tlbklkCQEAAAAGZ2V0U3RyAAAAAQIAAAAOU0hBUkVfQVNTRVRfSUQBAAAAD2dldFNoYXJlQXNzZXRJZAAAAAAJAAJZAAAAAQUAAAAMc2hhcmVUb2tlbklkAAAAAAhidWxsQmFuawEAAAAaAVSXsBX9bJDwiVFbKADxdptL+2W9cM7tGtsBAAAACGdldEVnZ0lkAAAAAAEAAAAgyCt7L16SGrt6l9NcZj9jbQBeAqbitMxcUEJpfpq5mScBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAEAAAAPa2V5U3Rha2VkQW1vdW50AAAAAQAAAAdhZGRyZXNzCQABLAAAAAIJAAQlAAAAAQUAAAAHYWRkcmVzcwIAAAAMX2Zhcm1fc3Rha2VkAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAEAAAAHYWRkcmVzcwkAASwAAAACCQAEJQAAAAEFAAAAB2FkZHJlc3MCAAAAE19sYXN0Q2hlY2tfaW50ZXJlc3QBAAAADWtleUVnZ0NsYWltZWQAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgkABCUAAAABBQAAAAdhZGRyZXNzAgAAAAhfY2xhaW1lZAEAAAASY2xhaW1TdGFraW5nUmVzdWx0AAAAAQAAAAdhZGRyZXNzBAAAAA9jdXJyZW50SW50ZXJlc3QFAAAABmhlaWdodAQAAAARbGFzdENoZWNrSW50ZXJlc3QJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAFGtleUxhc3RDaGVja0ludGVyZXN0AAAAAQUAAAAHYWRkcmVzcwQAAAAMc3Rha2VkQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA9rZXlTdGFrZWRBbW91bnQAAAABBQAAAAdhZGRyZXNzBAAAAAZyZXdhcmQDCQAAZgAAAAIFAAAAEWxhc3RDaGVja0ludGVyZXN0AAAAAAAAAAAACQAAaAAAAAIJAABrAAAAAwkAAGUAAAACBQAAAA9jdXJyZW50SW50ZXJlc3QFAAAAEWxhc3RDaGVja0ludGVyZXN0BQAAAAxzdGFrZWRBbW91bnQFAAAAB2RlY2ltYWwFAAAAC3N0YWtlZFBvd2VyAAAAAAAAAAAABAAAAAh0cmFuc2ZlcgMJAABmAAAAAgUAAAAGcmV3YXJkAAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAB2FkZHJlc3MFAAAABnJld2FyZAkBAAAACGdldEVnZ0lkAAAAAAUAAAADbmlsBQAAAANuaWwJAAROAAAAAgUAAAAIdHJhbnNmZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAEFAAAAB2FkZHJlc3MFAAAAD2N1cnJlbnRJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUVnZ0NsYWltZWQAAAABBQAAAAdhZGRyZXNzCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAADWtleUVnZ0NsYWltZWQAAAABBQAAAAdhZGRyZXNzBQAAAAZyZXdhcmQFAAAAA25pbAAAAAQAAAABaQEAAAAKaXNzdWVUb2tlbgAAAAEAAAAGYW1vdW50AwkBAAAABWNoZWNrAAAAAQgFAAAAAWkAAAAPY2Fs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", "height": 2110247, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2hRYbSewHsCDQmDpBzki8CKMTnVExnGDQPn5YJDRQdfn Next: none Diff:
OldNewDifferences
55
66 let stakedPower = 1
77
8-let decimal = 100000000000
8+let decimal = 100000000
99
1010 func getStr (key) = match getString(this, key) {
1111 case b: String =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let name = "Beta TEAM"
55
66 let stakedPower = 1
77
8-let decimal = 100000000000
8+let decimal = 100000000
99
1010 func getStr (key) = match getString(this, key) {
1111 case b: String =>
1212 b
1313 case _ =>
1414 ""
1515 }
1616
1717
1818 func check (pbk) = {
1919 let pbk_st = toBase58String(pbk)
2020 let points = getStringValue("points")
2121 contains(points, pbk_st)
2222 }
2323
2424
2525 let shareTokenId = getStr("SHARE_ASSET_ID")
2626
2727 func getShareAssetId () = fromBase58String(shareTokenId)
2828
2929
3030 let bullBank = base58'3N3k8kYqD1uZA9G5LxEPirYd2Ftpswpn9mC'
3131
3232 func getEggId () = base58'EUNzgdPinhbvxEwRDxakAU7EB9QHupsUXYB8TTXdjnSS'
3333
3434
3535 func tryGetInteger (key) = match getInteger(this, key) {
3636 case b: Int =>
3737 b
3838 case _ =>
3939 0
4040 }
4141
4242
4343 func keyStakedAmount (address) = (toString(address) + "_farm_staked")
4444
4545
4646 func keyLastCheckInterest (address) = (toString(address) + "_lastCheck_interest")
4747
4848
4949 func keyEggClaimed (address) = (toString(address) + "_claimed")
5050
5151
5252 func claimStakingResult (address) = {
5353 let currentInterest = height
5454 let lastCheckInterest = tryGetInteger(keyLastCheckInterest(address))
5555 let stakedAmount = tryGetInteger(keyStakedAmount(address))
5656 let reward = if ((lastCheckInterest > 0))
5757 then (fraction((currentInterest - lastCheckInterest), stakedAmount, decimal) * stakedPower)
5858 else 0
5959 let transfer = if ((reward > 0))
6060 then [ScriptTransfer(address, reward, getEggId())]
6161 else nil
6262 (transfer ++ [IntegerEntry(keyLastCheckInterest(address), currentInterest), IntegerEntry(keyEggClaimed(address), (tryGetInteger(keyEggClaimed(address)) + reward))])
6363 }
6464
6565
6666 @Callable(i)
6767 func issueToken (amount) = if (check(i.callerPublicKey))
6868 then if ((shareTokenId != ""))
6969 then [Reissue(fromBase58String(shareTokenId), amount, true), ScriptTransfer(i.caller, amount, getShareAssetId())]
7070 else {
7171 let shareToken = Issue(name, (("Team token for the " + name) + " collective farm"), amount, 8, true)
7272 [shareToken, StringEntry("SHARE_ASSET_ID", toBase58String(calculateAssetId(shareToken)))]
7373 }
7474 else throw("Private Farm. Access prohibited!")
7575
7676
7777
7878 @Callable(i)
7979 func withdrawFarmTokens (amount,compound) = if ((size(i.payments) > 0))
8080 then throw("Please don't add payments")
8181 else if (compound)
8282 then throw("No compound, please!")
8383 else {
8484 let addressStr = toString(i.caller)
8585 let stakedAmount = tryGetInteger(keyStakedAmount(i.caller))
8686 let wdAmount = if ((amount == -1))
8787 then stakedAmount
8888 else amount
8989 if ((wdAmount > stakedAmount))
9090 then throw("you don't have tokens available")
9191 else (claimStakingResult(i.caller) ++ [IntegerEntry(keyStakedAmount(i.caller), (stakedAmount - wdAmount)), ScriptTransfer(i.caller, wdAmount, getShareAssetId())])
9292 }
9393
9494
9595
9696 @Callable(i)
9797 func stakeFarmTokens (compound) = {
9898 let shareTokenIdBytes = getShareAssetId()
9999 if ((size(i.payments) > 1))
100100 then throw("To many payments added")
101101 else if ((i.payments[0].assetId != shareTokenIdBytes))
102102 then throw("Wrong assetId")
103103 else if (compound)
104104 then throw("No compound, please!")
105105 else {
106106 let amount = i.payments[0].amount
107107 let addressStr = toString(i.caller)
108108 if ((i.payments[0].assetId != shareTokenIdBytes))
109109 then throw("wrong asset attached")
110110 else (claimStakingResult(i.caller) ++ [IntegerEntry(keyStakedAmount(i.caller), (tryGetInteger(keyStakedAmount(i.caller)) + amount))])
111111 }
112112 }
113113
114114
115115
116116 @Callable(i)
117117 func claimReward () = if ((size(i.payments) > 0))
118118 then throw("Please don't add payments")
119119 else claimStakingResult(i.caller)
120120
121121
122122 @Verifier(tx)
123123 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
124124

github/deemru/w8io/169f3d6 
36.67 ms