tx · CyHvLYoPxhHyxWrbNuhqSq12PW5Zhf6gd1xD3A6DeXkS 3PPR5G5x2HBG6hqQg2mvK9fRTsGJQi8UAD1: -0.01000000 Waves 2021.12.29 16:27 [2920658] smart account 3PPR5G5x2HBG6hqQg2mvK9fRTsGJQi8UAD1 > SELF 0.00000000 Waves
{ "type": 13, "id": "CyHvLYoPxhHyxWrbNuhqSq12PW5Zhf6gd1xD3A6DeXkS", "fee": 1000000, "feeAssetId": null, "timestamp": 1640784544368, "version": 2, "chainId": 87, "sender": "3PPR5G5x2HBG6hqQg2mvK9fRTsGJQi8UAD1", "senderPublicKey": "EejcMPEyGdwcrp48aVtXVQ5Jn1qwc5u5SaMUMTpXAwS6", "proofs": [ "cGEhy84Qqwdi9RkoetFZzFWLeUboF7nnoGH9EHhUxusGna4CQsA2RHnCWXeBfgXzTqPQCQN9dLH81WWRWzCBjXw" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAABQAAAAAJc3RhcnRUaW1lAAAAAX3jksMQAAAAAAh5ZWFySW5NcwAAAAAHV7EsAAAAAAAFdXNlcjEJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVf8QQF4+R7wzWIYFQdQ0GBqvJvqkzxPuZoAAAAABXVzZXIyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXjBf4RHndTKDDzzBlYAD2t4N7I2GltJY6AAAAAANzdW0AAAAACno1ggAAAAABAAAAAWkBAAAABWNsYWltAAAAAQAAAAdhc3NldElkAwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAFdXNlcjEJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAFdXNlcjIHCQAAAgAAAAECAAAADk5vdCBhdXRob3JpemVkBAAAAAp0aW1lUGFzc2VkCQAAZQAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAlzdGFydFRpbWUEAAAACnJld2FyZFBhcnQJAABrAAAAAwUAAAAKdGltZVBhc3NlZAUAAAADc3VtBQAAAAh5ZWFySW5NcwQAAAANcmV3YXJkQ2xhaW1lZAQAAAAHJG1hdGNoMAkABB8AAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjbGFpbWVkXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8FAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABdAUAAAAHJG1hdGNoMAUAAAABdAAAAAAAAAAAAAQAAAAFdG9QYXkJAABlAAAAAgUAAAAKcmV3YXJkUGFydAUAAAANcmV3YXJkQ2xhaW1lZAMJAABnAAAAAgAAAAAAAAAAAAUAAAAFdG9QYXkJAAACAAAAAQIAAAAQTm90aGluZyB0byBjbGFpbQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY2xhaW1lZF8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfBQAAAAdhc3NldElkCQAAZAAAAAIFAAAADXJld2FyZENsYWltZWQFAAAABXRvUGF5CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAFdG9QYXkJAAJZAAAAAQUAAAAHYXNzZXRJZAUAAAADbmlsAAAAAOCifgw=", "height": 2920658, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let startTime = 1640200586000 | |
5 | + | ||
6 | + | let yearInMs = 31536000000 | |
7 | + | ||
8 | + | let user1 = Address(base58'3PQvgtGQTrm3LsVbFPSjpFLPiBS65TPTjiy') | |
9 | + | ||
10 | + | let user2 = Address(base58'3PEhe3Z2uV5WG6mRu3dVz3EH76eNc4gPC8R') | |
11 | + | ||
12 | + | let sum = 45000000000 | |
13 | + | ||
14 | + | @Callable(i) | |
15 | + | func claim (assetId) = if (if ((i.caller != user1)) | |
16 | + | then (i.caller != user2) | |
17 | + | else false) | |
18 | + | then throw("Not authorized") | |
19 | + | else { | |
20 | + | let timePassed = (lastBlock.timestamp - startTime) | |
21 | + | let rewardPart = fraction(timePassed, sum, yearInMs) | |
22 | + | let rewardClaimed = match getInteger(((("claimed_" + toString(i.caller)) + "_") + assetId)) { | |
23 | + | case t: Int => | |
24 | + | t | |
25 | + | case _ => | |
26 | + | 0 | |
27 | + | } | |
28 | + | let toPay = (rewardPart - rewardClaimed) | |
29 | + | if ((0 >= toPay)) | |
30 | + | then throw("Nothing to claim") | |
31 | + | else [IntegerEntry(((("claimed_" + toString(i.caller)) + "_") + assetId), (rewardClaimed + toPay)), ScriptTransfer(i.caller, toPay, fromBase58String(assetId))] | |
32 | + | } | |
33 | + | ||
34 | + |
github/deemru/w8io/3ef1775 24.93 ms ◑