tx · 9bZcZVVfKBo6cmyveBfVFu7iDNdMvDwd6QMSe4SRtRrt

3MwMNZ5PmZeVN8sDprmFuYbjJVeJVxMa46f:  -0.00900000 Waves

2022.06.24 01:52 [2109677] smart account 3MwMNZ5PmZeVN8sDprmFuYbjJVeJVxMa46f > SELF 0.00000000 Waves

{ "type": 13, "id": "9bZcZVVfKBo6cmyveBfVFu7iDNdMvDwd6QMSe4SRtRrt", "fee": 900000, "feeAssetId": null, "timestamp": 1656024754983, "version": 2, "chainId": 84, "sender": "3MwMNZ5PmZeVN8sDprmFuYbjJVeJVxMa46f", "senderPublicKey": "CpLxySPGoDGRVBSTXHBZr9PxDduQz4JU6GK9jSAdpXse", "proofs": [ "5cTL1go2x4b9A1r2U8K6agxWERZrktdXBqnxB9zz3nQFxPoy8s8NboX5DdYCKsBv1mwg7y9bjcmLdbPVzEsgUS76" ], "script": "base64:AAIFAAAAAAAAABQIAhIDCgEBEgQKAgEEEgMKAQQSAAAAAA4AAAAABG5hbWUCAAAACVpldGEgVEVBTQAAAAALc3Rha2VkUG93ZXIAAAAAAAAAAAEAAAAAB2RlY2ltYWwAAAAAAAX14QABAAAABmdldFN0cgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAABAAAABWNoZWNrAAAAAQAAAANwYmsEAAAABnBia19zdAkAAlgAAAABBQAAAANwYmsEAAAABnBvaW50cwkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQIAAAAGcG9pbnRzCQEAAAAIY29udGFpbnMAAAACBQAAAAZwb2ludHMFAAAABnBia19zdAAAAAAMc2hhcmVUb2tlbklkCQEAAAAGZ2V0U3RyAAAAAQIAAAAOU0hBUkVfQVNTRVRfSUQBAAAAD2dldFNoYXJlQXNzZXRJZAAAAAAJAAJZAAAAAQUAAAAMc2hhcmVUb2tlbklkAAAAAAhidWxsQmFuawEAAAAaAVSXsBX9bJDwiVFbKADxdptL+2W9cM7tGtsBAAAACGdldEVnZ0lkAAAAAAEAAAAgyCt7L16SGrt6l9NcZj9jbQBeAqbitMxcUEJpfpq5mScBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAEAAAAPa2V5U3Rha2VkQW1vdW50AAAAAQAAAAdhZGRyZXNzCQABLAAAAAIJAAQlAAAAAQUAAAAHYWRkcmVzcwIAAAAMX2Zhcm1fc3Rha2VkAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAEAAAAHYWRkcmVzcwkAASwAAAACCQAEJQAAAAEFAAAAB2FkZHJlc3MCAAAAE19sYXN0Q2hlY2tfaW50ZXJlc3QBAAAADWtleUVnZ0NsYWltZWQAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgkABCUAAAABBQAAAAdhZGRyZXNzAgAAAAhfY2xhaW1lZAEAAAASY2xhaW1TdGFraW5nUmVzdWx0AAAAAQAAAAdhZGRyZXNzBAAAAA9jdXJyZW50SW50ZXJlc3QFAAAABmhlaWdodAQAAAARbGFzdENoZWNrSW50ZXJlc3QJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAFGtleUxhc3RDaGVja0ludGVyZXN0AAAAAQUAAAAHYWRkcmVzcwQAAAAMc3Rha2VkQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA9rZXlTdGFrZWRBbW91bnQAAAABBQAAAAdhZGRyZXNzBAAAAAZyZXdhcmQDCQAAZgAAAAIFAAAAEWxhc3RDaGVja0ludGVyZXN0AAAAAAAAAAAACQAAaAAAAAIJAABrAAAAAwkAAGUAAAACBQAAAA9jdXJyZW50SW50ZXJlc3QFAAAAEWxhc3RDaGVja0ludGVyZXN0BQAAAAxzdGFrZWRBbW91bnQFAAAAB2RlY2ltYWwFAAAAC3N0YWtlZFBvd2VyAAAAAAAAAAAABAAAAAh0cmFuc2ZlcgMJAABmAAAAAgUAAAAGcmV3YXJkAAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAB2FkZHJlc3MFAAAABnJld2FyZAkBAAAACGdldEVnZ0lkAAAAAAUAAAADbmlsBQAAAANuaWwJAAROAAAAAgUAAAAIdHJhbnNmZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAEFAAAAB2FkZHJlc3MFAAAAD2N1cnJlbnRJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUVnZ0NsYWltZWQAAAABBQAAAAdhZGRyZXNzCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAADWtleUVnZ0NsYWltZWQAAAABBQAAAAdhZGRyZXNzBQAAAAZyZXdhcmQFAAAAA25pbAAAAAQAAAABaQEAAAAKaXNzdWVUb2tlbgAAAAEAAAAGYW1vdW50AwkBAAAABWNoZWNrAAAAAQgFAAAAAWkAAAAPY2Fs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", "height": 2109677, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AcK5HJWswsTpWYHMq5d46Cig46RDbqmbFnH4UBdGB4UH Next: none Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let name = "Zeta TEAM"
55
6-let stakedPower = 10
6+let stakedPower = 1
7+
8+let decimal = 100000000
79
810 func getStr (key) = match getString(this, key) {
911 case b: String =>
5254 let lastCheckInterest = tryGetInteger(keyLastCheckInterest(address))
5355 let stakedAmount = tryGetInteger(keyStakedAmount(address))
5456 let reward = if ((lastCheckInterest > 0))
55- then (((currentInterest - lastCheckInterest) * stakedAmount) * stakedPower)
57+ then (fraction((currentInterest - lastCheckInterest), stakedAmount, decimal) * stakedPower)
5658 else 0
5759 let transfer = if ((reward > 0))
5860 then [ScriptTransfer(address, reward, getEggId())]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let name = "Zeta TEAM"
55
6-let stakedPower = 10
6+let stakedPower = 1
7+
8+let decimal = 100000000
79
810 func getStr (key) = match getString(this, key) {
911 case b: String =>
1012 b
1113 case _ =>
1214 ""
1315 }
1416
1517
1618 func check (pbk) = {
1719 let pbk_st = toBase58String(pbk)
1820 let points = getStringValue("points")
1921 contains(points, pbk_st)
2022 }
2123
2224
2325 let shareTokenId = getStr("SHARE_ASSET_ID")
2426
2527 func getShareAssetId () = fromBase58String(shareTokenId)
2628
2729
2830 let bullBank = base58'3N3k8kYqD1uZA9G5LxEPirYd2Ftpswpn9mC'
2931
3032 func getEggId () = base58'EUNzgdPinhbvxEwRDxakAU7EB9QHupsUXYB8TTXdjnSS'
3133
3234
3335 func tryGetInteger (key) = match getInteger(this, key) {
3436 case b: Int =>
3537 b
3638 case _ =>
3739 0
3840 }
3941
4042
4143 func keyStakedAmount (address) = (toString(address) + "_farm_staked")
4244
4345
4446 func keyLastCheckInterest (address) = (toString(address) + "_lastCheck_interest")
4547
4648
4749 func keyEggClaimed (address) = (toString(address) + "_claimed")
4850
4951
5052 func claimStakingResult (address) = {
5153 let currentInterest = height
5254 let lastCheckInterest = tryGetInteger(keyLastCheckInterest(address))
5355 let stakedAmount = tryGetInteger(keyStakedAmount(address))
5456 let reward = if ((lastCheckInterest > 0))
55- then (((currentInterest - lastCheckInterest) * stakedAmount) * stakedPower)
57+ then (fraction((currentInterest - lastCheckInterest), stakedAmount, decimal) * stakedPower)
5658 else 0
5759 let transfer = if ((reward > 0))
5860 then [ScriptTransfer(address, reward, getEggId())]
5961 else nil
6062 (transfer ++ [IntegerEntry(keyLastCheckInterest(address), currentInterest), IntegerEntry(keyEggClaimed(address), (tryGetInteger(keyEggClaimed(address)) + reward))])
6163 }
6264
6365
6466 @Callable(i)
6567 func issueToken (amount) = if (check(i.callerPublicKey))
6668 then if ((shareTokenId != ""))
6769 then [Reissue(fromBase58String(shareTokenId), amount, true), ScriptTransfer(i.caller, amount, getShareAssetId())]
6870 else {
6971 let shareToken = Issue(name, (("Team token for the " + name) + " collective farm"), amount, 8, true)
7072 [shareToken, StringEntry("SHARE_ASSET_ID", toBase58String(calculateAssetId(shareToken)))]
7173 }
7274 else throw("Private Farm. Access prohibited!")
7375
7476
7577
7678 @Callable(i)
7779 func withdrawFarmTokens (amount,compound) = if ((size(i.payments) > 0))
7880 then throw("Please don't add payments")
7981 else if (compound)
8082 then throw("No compound, please!")
8183 else {
8284 let addressStr = toString(i.caller)
8385 let stakedAmount = tryGetInteger(keyStakedAmount(i.caller))
8486 let wdAmount = if ((amount == -1))
8587 then stakedAmount
8688 else amount
8789 if ((wdAmount > stakedAmount))
8890 then throw("you don't have tokens available")
8991 else (claimStakingResult(i.caller) ++ [IntegerEntry(keyStakedAmount(i.caller), (stakedAmount - wdAmount)), ScriptTransfer(i.caller, wdAmount, getShareAssetId())])
9092 }
9193
9294
9395
9496 @Callable(i)
9597 func stakeFarmTokens (compound) = {
9698 let shareTokenIdBytes = getShareAssetId()
9799 if ((size(i.payments) > 1))
98100 then throw("To many payments added")
99101 else if ((i.payments[0].assetId != shareTokenIdBytes))
100102 then throw("Wrong assetId")
101103 else if (compound)
102104 then throw("No compound, please!")
103105 else {
104106 let amount = i.payments[0].amount
105107 let addressStr = toString(i.caller)
106108 if ((i.payments[0].assetId != shareTokenIdBytes))
107109 then throw("wrong asset attached")
108110 else (claimStakingResult(i.caller) ++ [IntegerEntry(keyStakedAmount(i.caller), (tryGetInteger(keyStakedAmount(i.caller)) + amount))])
109111 }
110112 }
111113
112114
113115
114116 @Callable(i)
115117 func claimReward () = if ((size(i.payments) > 0))
116118 then throw("Please don't add payments")
117119 else claimStakingResult(i.caller)
118120
119121
120122 @Verifier(tx)
121123 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
122124

github/deemru/w8io/873ac7e 
28.05 ms