2021.06.14 16:30 [2634815] smart account 3P4uD6v496SpXfAWHb5sgGf9g82mauwsyNp > SELF 0.00000000 Waves

{ "type": 13, "id": "2barPYeK4vSDK2ZEa4Aonqy1FcYur9CGTChaz3hQ6dZ3", "fee": 1400000, "feeAssetId": null, "timestamp": 1623677432655, "version": 2, "chainId": 87, "sender": "3P4uD6v496SpXfAWHb5sgGf9g82mauwsyNp", "senderPublicKey": "CMdUD9Q6ZXB7MYocQx11ptq5g8RWDPJ7YDiB3HvgYubJ", "proofs": [ "5PPgZNdxXgtmCnamDMxPAbJj5FVht9MXQx5xYXzbTqKARiMZNP84FnvusbzKVVmMgoFSDkX5HpQJawSfE5f6WRCB" ], "script": "base64:AAIEAAAAAAAAAAQIAhIAAAAABwAAAAAFc2NhbGUAAAAAAAAAJxABAAAAEWdldFJld2FyZFBlckJsb2NrAAAAAAAAAAAAAAAABwEAAAANdHJ5R2V0SW50ZWdlcgAAAAEAAAADa2V5BAAAAAN2YWwEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAAFAAAAA3ZhbAEAAAAUZ2V0QXNzZXRGYXJtaW5nUG93ZXIAAAABAAAAB2Fzc2V0SWQAAAAAAAAAAGQBAAAADGNhbGNJbnRlcmVzdAAAAAMAAAAQcHJldmlvdXNJbnRlcmVzdAAAABZwcmV2aW91c0ludGVyZXN0SGVpZ2h0AAAAEXRvdGFsRmFybWluZ1Bvd2VyCQAAZAAAAAIFAAAAEHByZXZpb3VzSW50ZXJlc3QJAABpAAAAAgkAAGgAAAACCQAAaAAAAAIFAAAABXNjYWxlCQEAAAARZ2V0UmV3YXJkUGVyQmxvY2sAAAAACQAAZQAAAAIFAAAABmhlaWdodAUAAAAWcHJldmlvdXNJbnRlcmVzdEhlaWdodAUAAAARdG90YWxGYXJtaW5nUG93ZXIBAAAAEmdldEN1cnJlbnRJbnRlcmVzdAAAAAADCQAAZgAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAASdG90YWxfZmFybWluZ1Bvd2VyAAAAAAAAAAAABAAAABBwcmV2aW91c0ludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAF3RvdGFsX2xhc3RDaGVja0ludGVyZXN0BAAAABZwcmV2aW91c0ludGVyZXN0SGVpZ2h0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAHXRvdGFsX2xhc3RDaGVja0ludGVyZXN0SGVpZ2h0BAAAABF0b3RhbEZhcm1pbmdQb3dlcgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIJAQAAAAxjYWxjSW50ZXJlc3QAAAADBQAAABBwcmV2aW91c0ludGVyZXN0BQAAABZwcmV2aW91c0ludGVyZXN0SGVpZ2h0BQAAABF0b3RhbEZhcm1pbmdQb3dlcgAAAAAAAAAAAAEAAAATY2FsY1VzZXJSZXdhcmREZWx0YQAAAAEAAAAHYWRkcmVzcwQAAAAVbGFzdENoZWNrVXNlckludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAASX2xhc3RDaGVja0ludGVyZXN0BAAAABB1c2VyRmFybWluZ1Bvd2VyCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAANX2Zhcm1pbmdQb3dlcgQAAAAPY3VycmVudEludGVyZXN0CQEAAAASZ2V0Q3VycmVudEludGVyZXN0AAAAAAkAAGgAAAACBQAAABB1c2VyRmFybWluZ1Bvd2VyCQAAZQAAAAIFAAAAD2N1cnJlbnRJbnRlcmVzdAUAAAAVbGFzdENoZWNrVXNlckludGVyZXN0AAAAAQAAAAFpAQAAAAhzdGFrZU5GVAAAAAAEAAAAB2Fzc2V0SWQJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAAB2FkZHJlc3MJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABFhc3NldEZhcm1pbmdQb3dlcgkBAAAAFGdldEFzc2V0RmFybWluZ1Bvd2VyAAAAAQUAAAAHYXNzZXRJZAQAAAAPdXNlclJld2FyZERlbHRhCQEAAAATY2FsY1VzZXJSZXdhcmREZWx0YQAAAAEFAAAAB2FkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEnRvdGFsX2Zhcm1pbmdQb3dlcgkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEnRvdGFsX2Zhcm1pbmdQb3dlcgUAAAARYXNzZXRGYXJtaW5nUG93ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF3RvdGFsX2xhc3RDaGVja0ludGVyZXN0CQEAAAASZ2V0Q3VycmVudEludGVyZXN0AAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAddG90YWxfbGFzdENoZWNrSW50ZXJlc3RIZWlnaHQFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAAA1fZmFybWluZ1Bvd2VyCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAAA1fZmFybWluZ1Bvd2VyBQAAABFhc3NldEZhcm1pbmdQb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAABJfbGFzdENoZWNrSW50ZXJlc3QJAQAAABJnZXRDdXJyZW50SW50ZXJlc3QAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAFl9sYXN0Q2hlY2tGYXJtZWRBbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAFl9sYXN0Q2hlY2tGYXJtZWRBbW91bnQFAAAAD3VzZXJSZXdhcmREZWx0YQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmx/Ht/", "height": 2634815, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7KQLjKodB4QNqPSxc5tXiReA5R8SSPwzUKTkw4cCJmFU Next: BpNADSCaEiBjhL96g6mrbvc9DE4BpJzjBfMKfNziHE66 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let scale = 10000
5+
46 func getRewardPerBlock () = 7
57
68
1820 func getAssetFarmingPower (assetId) = 100
1921
2022
21-func calcInterest (previousInterest,previousInterestHeight,totalFarmingPower) = (previousInterest + ((getRewardPerBlock() * (height - previousInterestHeight)) / totalFarmingPower))
23+func calcInterest (previousInterest,previousInterestHeight,totalFarmingPower) = (previousInterest + (((scale * getRewardPerBlock()) * (height - previousInterestHeight)) / totalFarmingPower))
2224
2325
2426 func getCurrentInterest () = if ((tryGetInteger("total_farmingPower") > 0))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let scale = 10000
5+
46 func getRewardPerBlock () = 7
57
68
79 func tryGetInteger (key) = {
810 let val = match getInteger(this, key) {
911 case b: Int =>
1012 b
1113 case _ =>
1214 0
1315 }
1416 val
1517 }
1618
1719
1820 func getAssetFarmingPower (assetId) = 100
1921
2022
21-func calcInterest (previousInterest,previousInterestHeight,totalFarmingPower) = (previousInterest + ((getRewardPerBlock() * (height - previousInterestHeight)) / totalFarmingPower))
23+func calcInterest (previousInterest,previousInterestHeight,totalFarmingPower) = (previousInterest + (((scale * getRewardPerBlock()) * (height - previousInterestHeight)) / totalFarmingPower))
2224
2325
2426 func getCurrentInterest () = if ((tryGetInteger("total_farmingPower") > 0))
2527 then {
2628 let previousInterest = tryGetInteger("total_lastCheckInterest")
2729 let previousInterestHeight = tryGetInteger("total_lastCheckInterestHeight")
2830 let totalFarmingPower = tryGetInteger("total_farmingPower")
2931 calcInterest(previousInterest, previousInterestHeight, totalFarmingPower)
3032 }
3133 else 0
3234
3335
3436 func calcUserRewardDelta (address) = {
3537 let lastCheckUserInterest = tryGetInteger((("address_" + address) + "_lastCheckInterest"))
3638 let userFarmingPower = tryGetInteger((("address_" + address) + "_farmingPower"))
3739 let currentInterest = getCurrentInterest()
3840 (userFarmingPower * (currentInterest - lastCheckUserInterest))
3941 }
4042
4143
4244 @Callable(i)
4345 func stakeNFT () = {
4446 let assetId = value(value(i.payments[0]).assetId)
4547 let address = toString(i.caller)
4648 let assetFarmingPower = getAssetFarmingPower(assetId)
4749 let userRewardDelta = calcUserRewardDelta(address)
4850 [IntegerEntry("total_farmingPower", (tryGetInteger("total_farmingPower") + assetFarmingPower)), IntegerEntry("total_lastCheckInterest", getCurrentInterest()), IntegerEntry("total_lastCheckInterestHeight", height), IntegerEntry((("address_" + address) + "_farmingPower"), (tryGetInteger((("address_" + address) + "_farmingPower")) + assetFarmingPower)), IntegerEntry((("address_" + address) + "_lastCheckInterest"), getCurrentInterest()), IntegerEntry((("address_" + address) + "_lastCheckFarmedAmount"), (tryGetInteger((("address_" + address) + "_lastCheckFarmedAmount")) + userRewardDelta))]
4951 }
5052
5153
5254 @Verifier(tx)
5355 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5456

github/deemru/w8io/786bc32 
35.28 ms