tx · DXGAEJgMAHjAuGBpJtACR2mqbx8agr1ui3r1f6NyvJdh

3MpSTx1FM9aFVAjjZL48Xn8BhQsFq2dqa1a:  -0.01400000 Waves

2021.07.21 19:06 [1623594] smart account 3MpSTx1FM9aFVAjjZL48Xn8BhQsFq2dqa1a > SELF 0.00000000 Waves

{ "type": 13, "id": "DXGAEJgMAHjAuGBpJtACR2mqbx8agr1ui3r1f6NyvJdh", "fee": 1400000, "feeAssetId": null, "timestamp": 1626883550344, "version": 2, "chainId": 84, "sender": "3MpSTx1FM9aFVAjjZL48Xn8BhQsFq2dqa1a", "senderPublicKey": "4L5wicmAjiPH6pnWtdZQfrXQ9H45uCbVMTJcq7rU4vRf", "proofs": [ "NaYo6yYhbEEHnafkfgiRKwaMZojiSjPEXpxtJPbXCTew9MAoCodETMyTz76HYdrNEdgJq4azWg1qZiGSR2Uv4mE", "5f8cHAq7Z1RRrrqRaBWKTCTytMorjHkTaBN249FBwvBhfJupGaYuPc9iwiXaw37mbYHQo87JriSswSSSeBZJdyoD" ], "script": "base64:AAIEAAAAAAAAAAQIAhIAAAAADQAAAAARa2V5QWN0aXZhdGVIZWlnaHQCAAAAD2FjdGl2YXRlX2hlaWdodAAAAAAPa2V5RmluaXNoSGVpZ2h0AgAAAA1maW5pc2hfaGVpZ2h0AAAAAA5hY3RpdmF0ZUhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAARa2V5QWN0aXZhdGVIZWlnaHQAAAAADGZpbmlzaEhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPa2V5RmluaXNoSGVpZ2h0AAAAAA50b3RhbFNoYXJlU1dPUAAAAFrzEHpAAAAAAAAEU1dPUAEAAAAgEv+BIJFIbrNA9tN9ExhCV/1vofsy06rszWo/nWl9O/gAAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAIAAAAUX1NXT1BfY2xhaW1lZF9hbW91bnQAAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQCAAAAGV9TV09QX2xhc3RfY2xhaW1lZF9hbW91bnQAAAAADGFkbWluUHViS2V5MQEAAAAg4qeMQDuGzRfmtEuH2+Whg6yuKqHsNy5eZQUT8rXs7wQAAAAADGFkbWluUHViS2V5MgEAAAAg6jisuQG1iDxyo54oPYHUGiJlERON346DjXz9V/GbEVkAAAAADGFkbWluUHViS2V5MwEAAAAgpzSWgrCjycddMmIBfztFJ08z6r82xAHPELd0cKonzG4BAAAADmdldENhbGxlclNoYXJlAAAAAQAAAAZjYWxsZXIEAAAAC2NhbGxlclNoYXJlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAGc2hhcmVfCQAEJQAAAAEFAAAABmNhbGxlcgQAAAARY2FsbGVyU2hhcmVBbW91bnQEAAAAByRtYXRjaDAFAAAAC2NhbGxlclNoYXJlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABXNoYXJlBQAAAAckbWF0Y2gwBQAAAAVzaGFyZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFc2hhcmUFAAAAByRtYXRjaDAJAAACAAAAAQIAAAA1T25seSBlYXJseSBsaXF1aWRpdHkgcHJvdmlkZXJzIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAAEWNhbGxlclNoYXJlQW1vdW50AQAAABBnZXRDbGFpbWVkQW1vdW50AAAAAQAAAAZjYWxsZXIEAAAAD2NhbGxlcldpdGhkcmF3bgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQEAAAAFWNhbGxlcldpdGhkcmF3bkFtb3VudAQAAAAHJG1hdGNoMAUAAAAPY2FsbGVyV2l0aGRyYXduAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABXNoYXJlBQAAAAckbWF0Y2gwBQAAAAVzaGFyZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFc2hhcmUFAAAAByRtYXRjaDAAAAAAAAAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAAFWNhbGxlcldpdGhkcmF3bkFtb3VudAAAAAEAAAABaQEAAAAJY2xhaW1TV09QAAAAAAQAAAANYmxvY2tEdXJhdGlvbgkAAGUAAAACBQAAAAxmaW5pc2hIZWlnaHQFAAAADmFjdGl2YXRlSGVpZ2h0BAAAAA9jdXJyZW50RHVyYXRpb24DCQAAZgAAAAIFAAAADGZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0BQAAAAZoZWlnaHQFAAAADGZpbmlzaEhlaWdodAQAAAAJdXNlclNoYXJlCQEAAAAOZ2V0Q2FsbGVyU2hhcmUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAQZ2V0Q2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALY2xhaW1BbW91bnQJAABlAAAAAgkAAGsAAAADCQAAZQAAAAIFAAAAD2N1cnJlbnREdXJhdGlvbgUAAAAOYWN0aXZhdGVIZWlnaHQFAAAACXVzZXJTaGFyZQUAAAANYmxvY2tEdXJhdGlvbgUAAAARdXNlckNsYWltZWRBbW91bnQEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BQAAAARTV09QCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgEAAAAEmFkbWluUHViS2V5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxhZG1pblB1YktleTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAxhZG1pblB1YktleTMAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAEmFkbWluUHViS2V5MVNpZ25lZAUAAAASYWRtaW5QdWJLZXkyU2lnbmVkBQAAABJhZG1pblB1YktleTNTaWduZWQAAAAAAAAAAAKEHs6s", "height": 1623594, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C3gNPZB1y8YFxzDYZDq4WmNEjVzdJ5L4BGeKdjyjdpbx Next: 24ioWEy6Tsmgvw8gtN7tZkmJYAfVWW5fQKHBuX8GYPXt Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyActivateHeight = "activate_height"
1717
1818 let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
1919
20-let oracle = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
20+let adminPubKey1 = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
2121
22-let keyAdminPubKey1 = "admin_pub_1"
22+let adminPubKey2 = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
2323
24-let keyAdminPubKey2 = "admin_pub_2"
25-
26-let keyAdminPubKey3 = "admin_pub_3"
27-
28-func getAdminPub (keyAdminPub) = match getString(oracle, keyAdminPub) {
29- case string: String =>
30- fromBase58String(string)
31- case nothing =>
32- throw("Admin public key is empty")
33-}
34-
35-
36-let adminPubKey1 = getAdminPub(keyAdminPubKey1)
37-
38-let adminPubKey2 = getAdminPub(keyAdminPubKey2)
39-
40-let adminPubKey3 = getAdminPub(keyAdminPubKey3)
24+let adminPubKey3 = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
4125
4226 func getCallerShare (caller) = {
4327 let callerShare = getInteger(this, ("share_" + toString(caller)))
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyActivateHeight = "activate_height"
55
66 let keyFinishHeight = "finish_height"
77
88 let activateHeight = getIntegerValue(this, keyActivateHeight)
99
1010 let finishHeight = getIntegerValue(this, keyFinishHeight)
1111
1212 let totalShareSWOP = 100000000000000
1313
1414 let SWOP = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
1515
1616 let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
1717
1818 let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
1919
20-let oracle = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
20+let adminPubKey1 = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
2121
22-let keyAdminPubKey1 = "admin_pub_1"
22+let adminPubKey2 = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
2323
24-let keyAdminPubKey2 = "admin_pub_2"
25-
26-let keyAdminPubKey3 = "admin_pub_3"
27-
28-func getAdminPub (keyAdminPub) = match getString(oracle, keyAdminPub) {
29- case string: String =>
30- fromBase58String(string)
31- case nothing =>
32- throw("Admin public key is empty")
33-}
34-
35-
36-let adminPubKey1 = getAdminPub(keyAdminPubKey1)
37-
38-let adminPubKey2 = getAdminPub(keyAdminPubKey2)
39-
40-let adminPubKey3 = getAdminPub(keyAdminPubKey3)
24+let adminPubKey3 = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
4125
4226 func getCallerShare (caller) = {
4327 let callerShare = getInteger(this, ("share_" + toString(caller)))
4428 let callerShareAmount = match callerShare {
4529 case share: Int =>
4630 share
4731 case share: Unit =>
4832 throw("Only early liquidity providers can call this function")
4933 case _ =>
5034 throw("Match error")
5135 }
5236 callerShareAmount
5337 }
5438
5539
5640 func getClaimedAmount (caller) = {
5741 let callerWithdrawn = getInteger(this, (toString(caller) + keyUserSWOPClaimedAmount))
5842 let callerWithdrawnAmount = match callerWithdrawn {
5943 case share: Int =>
6044 share
6145 case share: Unit =>
6246 0
6347 case _ =>
6448 throw("Match error")
6549 }
6650 callerWithdrawnAmount
6751 }
6852
6953
7054 @Callable(i)
7155 func claimSWOP () = {
7256 let blockDuration = (finishHeight - activateHeight)
7357 let currentDuration = if ((finishHeight > height))
7458 then height
7559 else finishHeight
7660 let userShare = getCallerShare(i.caller)
7761 let userClaimedAmount = getClaimedAmount(i.caller)
7862 let claimAmount = (fraction((currentDuration - activateHeight), userShare, blockDuration) - userClaimedAmount)
7963 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
8064 [ScriptTransfer(i.caller, claimAmount, SWOP), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
8165 }
8266
8367
8468 @Verifier(tx)
8569 func verify () = match tx {
8670 case _ =>
8771 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
8872 then 1
8973 else 0
9074 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
9175 then 1
9276 else 0
9377 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
9478 then 1
9579 else 0
9680 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
9781 }
9882

github/deemru/w8io/3ef1775 
38.98 ms