tx · JDPkU7bnH6g3E4jk9trGku9WQFsjM61nRKZcNvcpcUp

3PJuspTjxHhEJQjMEmLM5upiGQYCtCi5LyD:  -0.01000000 Waves

2021.02.05 15:58 [2448674] smart account 3PJuspTjxHhEJQjMEmLM5upiGQYCtCi5LyD > SELF 0.00000000 Waves

{ "type": 13, "id": "JDPkU7bnH6g3E4jk9trGku9WQFsjM61nRKZcNvcpcUp", "fee": 1000000, "feeAssetId": null, "timestamp": 1612529956238, "version": 2, "chainId": 87, "sender": "3PJuspTjxHhEJQjMEmLM5upiGQYCtCi5LyD", "senderPublicKey": "H1ctTdphj2qzrEFr8toHCXNreFfjGhYGgjQRydM3SgBt", "proofs": [ "3awek4xS4JJZns7a2eE47VgCr8wDbHTX4Hx5NNPBLb7dsX9dD1Fgi1ben75wvpYFudqBietfRfiGEarjcypKpjhs" ], "script": "base64:AAIEAAAAAAAAAAQIAhIAAAAADQAAAAARa2V5QWN0aXZhdGVIZWlnaHQCAAAAD2FjdGl2YXRlX2hlaWdodAAAAAAPa2V5RmluaXNoSGVpZ2h0AgAAAA1maW5pc2hfaGVpZ2h0AAAAAA5hY3RpdmF0ZUhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAARa2V5QWN0aXZhdGVIZWlnaHQAAAAADGZpbmlzaEhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPa2V5RmluaXNoSGVpZ2h0AAAAAA50b3RhbFNoYXJlU1dPUAAAAFrzEHpAAAAAAAAEU1dPUAEAAAAgy5Y+heb1k1ZPj3mDERR4TyZ+jN5UknzW4a3AXGioruwAAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAIAAAAUX1NXT1BfY2xhaW1lZF9hbW91bnQAAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQCAAAAGV9TV09QX2xhc3RfY2xhaW1lZF9hbW91bnQAAAAADGFkbWluUHViS2V5MQEAAAAgugnXO4lZpNFdoP/xuzPQquE5aQ/L4r2R1jvuT16o4BMAAAAADGFkbWluUHViS2V5MgEAAAAgwpFEmbPSsLQNIqWRWL2IvKE3uwjL/92M5pTvWxYOfkAAAAAADGFkbWluUHViS2V5MwEAAAAgjh4XLnixBzv0SE56Myhgdih3/JnlkjCjIMLPqKvpDlUBAAAADmdldENhbGxlclNoYXJlAAAAAQAAAAZjYWxsZXIEAAAAC2NhbGxlclNoYXJlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAGc2hhcmVfCQAEJQAAAAEFAAAABmNhbGxlcgQAAAARY2FsbGVyU2hhcmVBbW91bnQEAAAAByRtYXRjaDAFAAAAC2NhbGxlclNoYXJlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABXNoYXJlBQAAAAckbWF0Y2gwBQAAAAVzaGFyZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFc2hhcmUFAAAAByRtYXRjaDAJAAACAAAAAQIAAAA1T25seSBlYXJseSBsaXF1aWRpdHkgcHJvdmlkZXJzIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAAEWNhbGxlclNoYXJlQW1vdW50AQAAABBnZXRDbGFpbWVkQW1vdW50AAAAAQAAAAZjYWxsZXIEAAAAD2NhbGxlcldpdGhkcmF3bgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQEAAAAFWNhbGxlcldpdGhkcmF3bkFtb3VudAQAAAAHJG1hdGNoMAUAAAAPY2FsbGVyV2l0aGRyYXduAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABXNoYXJlBQAAAAckbWF0Y2gwBQAAAAVzaGFyZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFc2hhcmUFAAAAByRtYXRjaDAAAAAAAAAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAAFWNhbGxlcldpdGhkcmF3bkFtb3VudAAAAAEAAAABaQEAAAAJY2xhaW1TV09QAAAAAAQAAAANYmxvY2tEdXJhdGlvbgkAAGUAAAACBQAAAAxmaW5pc2hIZWlnaHQFAAAADmFjdGl2YXRlSGVpZ2h0BAAAAA9jdXJyZW50RHVyYXRpb24DCQAAZgAAAAIFAAAADGZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0BQAAAAZoZWlnaHQFAAAADGZpbmlzaEhlaWdodAQAAAAJdXNlclNoYXJlCQEAAAAOZ2V0Q2FsbGVyU2hhcmUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAQZ2V0Q2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALY2xhaW1BbW91bnQJAABlAAAAAgkAAGsAAAADCQAAZQAAAAIFAAAAD2N1cnJlbnREdXJhdGlvbgUAAAAOYWN0aXZhdGVIZWlnaHQFAAAACXVzZXJTaGFyZQUAAAANYmxvY2tEdXJhdGlvbgUAAAARdXNlckNsYWltZWRBbW91bnQEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BQAAAARTV09QCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgEAAAAEmFkbWluUHViS2V5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxhZG1pblB1YktleTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAxhZG1pblB1YktleTMAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAEmFkbWluUHViS2V5MVNpZ25lZAUAAAASYWRtaW5QdWJLZXkyU2lnbmVkBQAAABJhZG1pblB1YktleTNTaWduZWQAAAAAAAAAAALg+Itw", "height": 2448674, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let keyActivateHeight = "activate_height"
5+
6+let keyFinishHeight = "finish_height"
7+
8+let activateHeight = getIntegerValue(this, keyActivateHeight)
9+
10+let finishHeight = getIntegerValue(this, keyFinishHeight)
11+
12+let totalShareSWOP = 100000000000000
13+
14+let SWOP = base58'Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT'
15+
16+let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
17+
18+let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
19+
20+let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
21+
22+let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
23+
24+let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
25+
26+func getCallerShare (caller) = {
27+ let callerShare = getInteger(this, ("share_" + toString(caller)))
28+ let callerShareAmount = match callerShare {
29+ case share: Int =>
30+ share
31+ case share: Unit =>
32+ throw("Only early liquidity providers can call this function")
33+ case _ =>
34+ throw("Match error")
35+ }
36+ callerShareAmount
37+ }
38+
39+
40+func getClaimedAmount (caller) = {
41+ let callerWithdrawn = getInteger(this, (toString(caller) + keyUserSWOPClaimedAmount))
42+ let callerWithdrawnAmount = match callerWithdrawn {
43+ case share: Int =>
44+ share
45+ case share: Unit =>
46+ 0
47+ case _ =>
48+ throw("Match error")
49+ }
50+ callerWithdrawnAmount
51+ }
52+
53+
54+@Callable(i)
55+func claimSWOP () = {
56+ let blockDuration = (finishHeight - activateHeight)
57+ let currentDuration = if ((finishHeight > height))
58+ then height
59+ else finishHeight
60+ let userShare = getCallerShare(i.caller)
61+ let userClaimedAmount = getClaimedAmount(i.caller)
62+ let claimAmount = (fraction((currentDuration - activateHeight), userShare, blockDuration) - userClaimedAmount)
63+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
64+[ScriptTransfer(i.caller, claimAmount, SWOP), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
65+ }
66+
67+
68+@Verifier(tx)
69+func verify () = match tx {
70+ case _ =>
71+ let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
72+ then 1
73+ else 0
74+ let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
75+ then 1
76+ else 0
77+ let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
78+ then 1
79+ else 0
80+ (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
81+}
82+

github/deemru/w8io/6500d08 
25.12 ms