tx · 7CwRLVhR9Q6EFgFrqxKve88pJS6FHDeFeZLvwnTAQ89F
3N2xV35dmGG8EYfhNfdKBPBq2xoSKHkmYxf: -0.01000000 Waves
2022.05.18 10:27 [2056792] smart account 3N2xV35dmGG8EYfhNfdKBPBq2xoSKHkmYxf > SELF 0.00000000 Waves
{
"type": 13,
"id": "7CwRLVhR9Q6EFgFrqxKve88pJS6FHDeFeZLvwnTAQ89F",
"fee": 1000000,
"feeAssetId": null,
"timestamp": 1652858837586,
"version": 2,
"chainId": 84,
"sender": "3N2xV35dmGG8EYfhNfdKBPBq2xoSKHkmYxf",
"senderPublicKey": "9F6gZRAntXCZwkaxqm21ELyF2oCxcX1947Aazo7nMLYG",
"proofs": [
"4Lnz2JDhtmoVpAJd2AT1dFewDvNbHsR2ag4pdM6smWMGVixL1tUH4ATQ1JvcXRwm5iXVFoxhyPf1mvUEVoq9gkgD"
],
"script": "base64:AAIFAAAAAAAAAVAIAhIDCgEIEgASAwoBARIDCgEBGhIKAWESDVBBWU1FTlRfQVNTRVQaEQoBYhIMUkVXQVJEX0FTU0VUGhAKAWMSC1JFV0FSRF9QT09MGg0KAWQSCENPTlRSQUNUGhAKAWUSC2lzUGF5bWVudE9rGgYKAWYSAWkaFgoBZxIRYWNjZXB0YWJsZUFzc2V0SWQaBgoBaBIBcBoMCgFpEgckbWF0Y2gwGgwKAWoSB2Fzc2V0SWQaCQoBaxIEZGF0YRoPCgFsEgpjdXJyZW50S2V5GgsKAW0SBndhbGxldBoNCgFuEghnZXRTaGFyZRoKCgFvEgV0b3RhbBoUCgFwEg9yZXF1ZXN0ZWRBbW91bnQaCwoBcRIGYW1vdW50GhAKAXISC2NsYWltQW1vdW50GhEKAXMSDGNsYWltX2Ftb3VudBoRCgF0EgxQT09MX0JBTEFOQ0UAAAAFAAAAAAFhAQAAACAtNxOB0yQ3XZ/hb3bT0Q+T7yws9N2JrVxKVuh8yQFyGwAAAAABYgEAAAAgrZ1IFoWReWfvw0p6hpnR3VDpBUk85P5AREeM4YPEwvQAAAAAAWMJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTtf2+iq+Vt7fItMVxkZr3o1SR87eS+wIcAAAAAAWQJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTUwplakL7xmM0yfzG3aoDuGNWCXgHV0tQBAAAAAWUAAAABAAAAAWYEAAAAAWcFAAAAAWEDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWYAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAUUGF5bWVudCBub3QgYXR0YWNoZWQEAAAAAWgJAAGRAAAAAggFAAAAAWYAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAAWkIBQAAAAFoAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAAWkCAAAACkJ5dGVWZWN0b3IEAAAAAWoFAAAAAWkDCQAAAAAAAAIFAAAAAWoFAAAAAWcJAAAAAAAAAggFAAAAAWgAAAAGYW1vdW50AAAAAAAAAYagBwkAAAIAAAABAgAAAChXcm9uZyBwYXltZW50IGFzc2V0IG9yIG1pbiBhbW91bnQgMC4wMDAxAAAABAAAAAFmAQAAAApyZXdhcmRQb29sAAAAAQAAAAFrBAAAAAFsCQACWAAAAAEICAUAAAABZgAAAAZjYWxsZXIAAAAFYnl0ZXMDCQAAAAAAAAIFAAAAAWwJAAQlAAAAAQUAAAABZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAtyZXdhcmRfcG9vbAUAAAABawUAAAADbmlsCQAAAgAAAAECAAAAE3lvdSBhcmUgbm90IGFsbG93ZWQAAAABZgEAAAALc3Rha2VQaXhlbHMAAAAABAAAAAFsCQACWAAAAAEICAUAAAABZgAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAABZQAAAAEFAAAAAWYEAAAAAW0JAAEsAAAAAgUAAAABbAIAAAAGX3NoYXJlBAAAAAFuCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAAW0AAAAAAAAAAAAEAAAAAW8JAABkAAAAAgUAAAABbggJAAGRAAAAAggFAAAAAWYAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAFtBQAAAAFvBQAAAANuaWwJAAACAAAAAQIAAAAdV3JvbmcgcGF5bWVudCBhbW91bnQgb3IgYXNzZXQAAAABZgEAAAAOd2l0aGRyYXdQaXhlbHMAAAABAAAAAXAEAAAAAXEJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAAXAAAAAAAAAAAAADCQAAZgAAAAIFAAAAAXEAAAAAAAAAAAAJAAACAAAAAQIAAAABYQkAAAIAAAABAgAAABNub3RoaW5nIHRvIHdpdGhkcmF3AAAAAWYBAAAABWNsYWltAAAAAQAAAAFyBAAAAAFsCQACWAAAAAEICAUAAAABZgAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAAW0JAAEsAAAAAgUAAAABbAIAAAAGX3NoYXJlBAAAAAFzCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAFyAAAAAAAAAAAABAAAAAFuCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAABbQIAAAAQbm90aGluZyB0byBjbGFpbQQAAAABdAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD8AAAAAIFAAAAAWMFAAAAAWICAAAAFXJld2FyZCBwb29sIGlzIGVtcHR5IQMDCQAAZwAAAAIFAAAAAXQFAAAAAXMJAABnAAAAAgUAAAABbgUAAAABcwcJAAACAAAAAQIAAAADc2llCQAAAgAAAAEJAAGkAAAAAQUAAAABdAAAAABM3kEh",
"height": 2056792,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: CCYd258pt2aRF3K4VbwY7crYTms3FQuuBL9NukjtGcmJ
Next: 8NXYWXDLpyYDKsw1hnnU52aR8G4NsH8rYeDxXUoUFb3F
Diff:
Old | New | | Differences |
---|
6 | 6 | | let REWARD_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh' |
---|
7 | 7 | | |
---|
8 | 8 | | let REWARD_POOL = Address(base58'3NBZraoFBG4i6YVuAtcAwTEDwsfEcLh9bSv') |
---|
| 9 | + | |
---|
| 10 | + | let CONTRACT = Address(base58'3N9K49ZpyQLL9gJjVdxQhu37f8YZdAzakR1') |
---|
9 | 11 | | |
---|
10 | 12 | | func isPaymentOk (i) = { |
---|
11 | 13 | | let acceptableAssetId = PAYMENT_ASSET |
---|
|
26 | 28 | | |
---|
27 | 29 | | |
---|
28 | 30 | | @Callable(i) |
---|
| 31 | + | func rewardPool (data) = { |
---|
| 32 | + | let currentKey = toBase58String(i.caller.bytes) |
---|
| 33 | + | if ((currentKey == toString(CONTRACT))) |
---|
| 34 | + | then [StringEntry("reward_pool", data)] |
---|
| 35 | + | else throw("you are not allowed") |
---|
| 36 | + | } |
---|
| 37 | + | |
---|
| 38 | + | |
---|
| 39 | + | |
---|
| 40 | + | @Callable(i) |
---|
29 | 41 | | func stakePixels () = { |
---|
30 | 42 | | let currentKey = toBase58String(i.caller.bytes) |
---|
31 | 43 | | if (isPaymentOk(i)) |
---|
|
41 | 53 | | |
---|
42 | 54 | | |
---|
43 | 55 | | @Callable(i) |
---|
44 | | - | func withdrawPixels (paymentAmount) = throw("withdrawl") |
---|
| 56 | + | func withdrawPixels (requestedAmount) = { |
---|
| 57 | + | let amount = valueOrElse(requestedAmount, 0) |
---|
| 58 | + | if ((amount > 0)) |
---|
| 59 | + | then throw("a") |
---|
| 60 | + | else throw("nothing to withdraw") |
---|
| 61 | + | } |
---|
45 | 62 | | |
---|
46 | 63 | | |
---|
47 | 64 | | |
---|
|
49 | 66 | | func claim (claimAmount) = { |
---|
50 | 67 | | let currentKey = toBase58String(i.caller.bytes) |
---|
51 | 68 | | let wallet = (currentKey + "_share") |
---|
| 69 | + | let claim_amount = valueOrElse(claimAmount, 0) |
---|
52 | 70 | | let getShare = valueOrErrorMessage(getInteger(this, wallet), "nothing to claim") |
---|
53 | 71 | | let POOL_BALANCE = valueOrErrorMessage(assetBalance(REWARD_POOL, REWARD_ASSET), "reward pool is empty!") |
---|
54 | | - | throw(toString(POOL_BALANCE)) |
---|
| 72 | + | if (if ((POOL_BALANCE >= claim_amount)) |
---|
| 73 | + | then (getShare >= claim_amount) |
---|
| 74 | + | else false) |
---|
| 75 | + | then throw("sie") |
---|
| 76 | + | else throw(toString(POOL_BALANCE)) |
---|
55 | 77 | | } |
---|
56 | 78 | | |
---|
57 | 79 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let PAYMENT_ASSET = base58'43W4FcqA1rEpSmUGHoGiXvpSLfhadws9LS5j3SJsKxxS' |
---|
5 | 5 | | |
---|
6 | 6 | | let REWARD_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh' |
---|
7 | 7 | | |
---|
8 | 8 | | let REWARD_POOL = Address(base58'3NBZraoFBG4i6YVuAtcAwTEDwsfEcLh9bSv') |
---|
| 9 | + | |
---|
| 10 | + | let CONTRACT = Address(base58'3N9K49ZpyQLL9gJjVdxQhu37f8YZdAzakR1') |
---|
9 | 11 | | |
---|
10 | 12 | | func isPaymentOk (i) = { |
---|
11 | 13 | | let acceptableAssetId = PAYMENT_ASSET |
---|
12 | 14 | | if ((size(i.payments) == 0)) |
---|
13 | 15 | | then throw("Payment not attached") |
---|
14 | 16 | | else { |
---|
15 | 17 | | let p = i.payments[0] |
---|
16 | 18 | | match p.assetId { |
---|
17 | 19 | | case assetId: ByteVector => |
---|
18 | 20 | | if ((assetId == acceptableAssetId)) |
---|
19 | 21 | | then (p.amount == 100000) |
---|
20 | 22 | | else false |
---|
21 | 23 | | case _ => |
---|
22 | 24 | | throw("Wrong payment asset or min amount 0.0001") |
---|
23 | 25 | | } |
---|
24 | 26 | | } |
---|
25 | 27 | | } |
---|
26 | 28 | | |
---|
27 | 29 | | |
---|
28 | 30 | | @Callable(i) |
---|
| 31 | + | func rewardPool (data) = { |
---|
| 32 | + | let currentKey = toBase58String(i.caller.bytes) |
---|
| 33 | + | if ((currentKey == toString(CONTRACT))) |
---|
| 34 | + | then [StringEntry("reward_pool", data)] |
---|
| 35 | + | else throw("you are not allowed") |
---|
| 36 | + | } |
---|
| 37 | + | |
---|
| 38 | + | |
---|
| 39 | + | |
---|
| 40 | + | @Callable(i) |
---|
29 | 41 | | func stakePixels () = { |
---|
30 | 42 | | let currentKey = toBase58String(i.caller.bytes) |
---|
31 | 43 | | if (isPaymentOk(i)) |
---|
32 | 44 | | then { |
---|
33 | 45 | | let wallet = (currentKey + "_share") |
---|
34 | 46 | | let getShare = valueOrElse(getInteger(this, wallet), 0) |
---|
35 | 47 | | let total = (getShare + i.payments[0].amount) |
---|
36 | 48 | | [IntegerEntry(wallet, total)] |
---|
37 | 49 | | } |
---|
38 | 50 | | else throw("Wrong payment amount or asset") |
---|
39 | 51 | | } |
---|
40 | 52 | | |
---|
41 | 53 | | |
---|
42 | 54 | | |
---|
43 | 55 | | @Callable(i) |
---|
44 | | - | func withdrawPixels (paymentAmount) = throw("withdrawl") |
---|
| 56 | + | func withdrawPixels (requestedAmount) = { |
---|
| 57 | + | let amount = valueOrElse(requestedAmount, 0) |
---|
| 58 | + | if ((amount > 0)) |
---|
| 59 | + | then throw("a") |
---|
| 60 | + | else throw("nothing to withdraw") |
---|
| 61 | + | } |
---|
45 | 62 | | |
---|
46 | 63 | | |
---|
47 | 64 | | |
---|
48 | 65 | | @Callable(i) |
---|
49 | 66 | | func claim (claimAmount) = { |
---|
50 | 67 | | let currentKey = toBase58String(i.caller.bytes) |
---|
51 | 68 | | let wallet = (currentKey + "_share") |
---|
| 69 | + | let claim_amount = valueOrElse(claimAmount, 0) |
---|
52 | 70 | | let getShare = valueOrErrorMessage(getInteger(this, wallet), "nothing to claim") |
---|
53 | 71 | | let POOL_BALANCE = valueOrErrorMessage(assetBalance(REWARD_POOL, REWARD_ASSET), "reward pool is empty!") |
---|
54 | | - | throw(toString(POOL_BALANCE)) |
---|
| 72 | + | if (if ((POOL_BALANCE >= claim_amount)) |
---|
| 73 | + | then (getShare >= claim_amount) |
---|
| 74 | + | else false) |
---|
| 75 | + | then throw("sie") |
---|
| 76 | + | else throw(toString(POOL_BALANCE)) |
---|
55 | 77 | | } |
---|
56 | 78 | | |
---|
57 | 79 | | |
---|