tx · F7DASibMaqREShmHN5RRKvJA9KxLtHHhas9U5AtHWq3q
3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk: -0.01000000 Waves
2022.08.03 02:45 [2167554] smart account 3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk > SELF 0.00000000 Waves
{
"type": 13,
"id": "F7DASibMaqREShmHN5RRKvJA9KxLtHHhas9U5AtHWq3q",
"fee": 1000000,
"feeAssetId": null,
"timestamp": 1659483990709,
"version": 2,
"chainId": 84,
"sender": "3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk",
"senderPublicKey": "AR4BeE6hYADMvKxgRQs4ADN3krEqb2j8WE3WfJxzL3zE",
"proofs": [
"3KLWtGoF1k4ebfKuqjiNFtW8mDQtvUW5uP38nhEbwQyqk4wrZv1NVhw9ymnAdWCc8frig6rwiwaiUzL3J6rK3P5r"
],
"script": "base64:BgIjCAISAwoBCBIAEgUKAwgIARIECgIIARIAEgUKAwgICBIAEgARAAV3YXZlcwCAwtcvAA50aWNrZXRQcmljZUludADAhD0AC3RpY2tldFByaWNlBQ50aWNrZXRQcmljZUludAAGaW52RmVlAKDCHgASd2l0aGRyYXdGZWVQZXJjZW50AAUAFmZlZUNvbGxlY3RvckFkZHJlc3NLZXkCE2ZlZUNvbGxlY3RvckFkZHJlc3MADmRlcG9zaXRBc3NldElkAiw1dWUxZml1VjZqNlVCcjZYZjI4UW1zNnk1RnF6S3RxdmF4eGh3dTdoVFE1OAENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAESZ2V0VGlja2V0c0NvdW50S2V5AQ1hZGRyZXNzU3RyaW5nCQCsAgIFDWFkZHJlc3NTdHJpbmcCDV90aWNrZXRzQ291bnQBDWdhbWVXaW5uZXJLZXkBBmdhbWVJZAkArAICBQZnYW1lSWQCB193aW5uZXIBGGFkZHJlc3NBdmFpbGFibGVGdW5kc0tleQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAg9fYXZhaWxhYmxlRnVuZHMBGmFkZHJlc3NUb3RhbExvY2tlZEZ1bmRzS2V5AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEV90b3RhbExvY2tlZEZ1bmRzASFhZGRyZXNzTG9ja2VkRnVuZHNUb3RhbEhpc3RvcnlLZXkBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIYX2xvY2tlZEZ1bmRzVG90YWxIaXN0b3J5ARxhZGRyZXNzTG9ja2VkRnVuZHNGb3JHYW1lS2V5AgdhZGRyZXNzBmdhbWVJZAkArAICCQCsAgIFB2FkZHJlc3MCDV9sb2NrZWRGdW5kc18FBmdhbWVJZAEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIRX2F2YWlsYWJsZVJld2FyZHMBD2dldFRpY2tldHNDb3VudAENYWRkcmVzc1N0cmluZwkBDXRyeUdldEludGVnZXIBCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNYWRkcmVzc1N0cmluZwENY29uc3VtZVRpY2tldAEKcGxheWVyQWRkcgQSY3VycmVudFRpY2tldENvdW50CQEPZ2V0VGlja2V0c0NvdW50AQUKcGxheWVyQWRkcgQVbmV3Q3VycmVudFRpY2tldENvdW50CQBlAgUSY3VycmVudFRpY2tldENvdW50AAEDCQBmAgAABRVuZXdDdXJyZW50VGlja2V0Q291bnQAAAUVbmV3Q3VycmVudFRpY2tldENvdW50CAFpARZzZXRGZWVDb2xsZWN0b3JBZGRyZXNzAQ1jb2xsZWN0b3JBZGRyAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIKQWRtaW4gT25seQkAzAgCCQELU3RyaW5nRW50cnkCBRZmZWVDb2xsZWN0b3JBZGRyZXNzS2V5BQ1jb2xsZWN0b3JBZGRyBQNuaWwBaQEMZGVwb3NpdEZ1bmRzAAQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIhUGxlYXNlIGF0dGFjaCBleGFjdGx5IG9uZSBwYXltZW50AwkBAiE9AggFA3BtdAdhc3NldElkCQDZBAEFDmRlcG9zaXRBc3NldElkCQACAQIZWW91IGNhbiBvbmx5IGRlcG9zaXQgVVNETgQNY2FsbGVyQWRkclN0cgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBVjdXJyZW50QXZhaWxhYmxlRnVuZHMJAQ10cnlHZXRJbnRlZ2VyAQkBGGFkZHJlc3NBdmFpbGFibGVGdW5kc0tleQEFDWNhbGxlckFkZHJTdHIJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGFkZHJlc3NBdmFpbGFibGVGdW5kc0tleQEFDWNhbGxlckFkZHJTdHIJAGQCBRVjdXJyZW50QXZhaWxhYmxlRnVuZHMIBQNwbXQGYW1vdW50BQNuaWwAAQFpAQ5wbGF5ZXJFeGl0R2FtZQMGZ2FtZUlkCnBsYXllckFkZHIPZXhpdFN0YWNrQW1vdW50AwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIKQWRtaW4gT25seQQXY3VycmVudFRvdGFsTG9ja2VkRnVuZHMJAQ10cnlHZXRJbnRlZ2VyAQkBGmFkZHJlc3NUb3RhbExvY2tlZEZ1bmRzS2V5AQUKcGxheWVyQWRkcgQVY3VycmVudEF2YWlsYWJsZUZ1bmRzCQENdHJ5R2V0SW50ZWdlcgEJARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBBQpwbGF5ZXJBZGRyBCBjdXJyZW50R2FtZUxvY2tlZEFtb3VudEZvclBsYXllcgkBDXRyeUdldEludGVnZXIBCQEcYWRkcmVzc0xvY2tlZEZ1bmRzRm9yR2FtZUtleQIFCnBsYXllckFkZHIFBmdhbWVJZAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYYWRkcmVzc0F2YWlsYWJsZUZ1bmRzS2V5AQUKcGxheWVyQWRkcgkAZAIFFWN1cnJlbnRBdmFpbGFibGVGdW5kcwUPZXhpdFN0YWNrQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaYWRkcmVzc1RvdGFsTG9ja2VkRnVuZHNLZXkBBQpwbGF5ZXJBZGRyCQBlAgUXY3VycmVudFRvdGFsTG9ja2VkRnVuZHMFIGN1cnJlbnRHYW1lTG9ja2VkQW1vdW50Rm9yUGxheWVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEcYWRkcmVzc0xvY2tlZEZ1bmRzRm9yR2FtZUtleQIFCnBsYXllckFkZHIFBmdhbWVJZAAABQNuaWwAAQFpARBsb2NrRnVuZHNGb3JHYW1lAgZnYW1lSWQMYW1vdW50VG9Mb2NrBA1jYWxsZXJBZGRyU3RyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEFWN1cnJlbnRBdmFpbGFibGVGdW5kcwkBDXRyeUdldEludGVnZXIBCQEYYWRkcmVzc0F2YWlsYWJsZUZ1bmRzS2V5AQUNY2FsbGVyQWRkclN0cgQXY3VycmVudFRvdGFsTG9ja2VkRnVuZHMJAQ10cnlHZXRJbnRlZ2VyAQkBGmFkZHJlc3NUb3RhbExvY2tlZEZ1bmRzS2V5AQUNY2FsbGVyQWRkclN0cgQeY3VycmVudExvY2tlZEZ1bmRzVG90YWxIaXN0b3J5CQENdHJ5R2V0SW50ZWdlcgEJASFhZGRyZXNzTG9ja2VkRnVuZHNUb3RhbEhpc3RvcnlLZXkBBQ1jYWxsZXJBZGRyU3RyAwkAZgIFDGFtb3VudFRvTG9jawUVY3VycmVudEF2YWlsYWJsZUZ1bmRzCQACAQIiTm90IGVub3VnaCBhdmFpbGFibGUgZnVuZHMgdG8gbG9jawkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYYWRkcmVzc0F2YWlsYWJsZUZ1bmRzS2V5AQUNY2FsbGVyQWRkclN0cgkAZQIFFWN1cnJlbnRBdmFpbGFibGVGdW5kcwUMYW1vdW50VG9Mb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaYWRkcmVzc1RvdGFsTG9ja2VkRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyCQBkAgUXY3VycmVudFRvdGFsTG9ja2VkRnVuZHMFDGFtb3VudFRvTG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBIWFkZHJlc3NMb2NrZWRGdW5kc1RvdGFsSGlzdG9yeUtleQEFDWNhbGxlckFkZHJTdHIJAGQCBR5jdXJyZW50TG9ja2VkRnVuZHNUb3RhbEhpc3RvcnkFDGFtb3VudFRvTG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBHGFkZHJlc3NMb2NrZWRGdW5kc0ZvckdhbWVLZXkCBQ1jYWxsZXJBZGRyU3RyBQZnYW1lSWQFDGFtb3VudFRvTG9jawUDbmlsAAEBaQENd2l0aGRyYXdGdW5kcwAEDWNhbGxlckFkZHJTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQQZmVlQ29sbGVjdG9yQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUWZmVlQ29sbGVjdG9yQWRkcmVzc0tleQQVY3VycmVudEF2YWlsYWJsZUZ1bmRzCQENdHJ5R2V0SW50ZWdlcgEJARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyBAt3aXRoZHJhd0ZlZQkAawMFFWN1cnJlbnRBdmFpbGFibGVGdW5kcwUSd2l0aGRyYXdGZWVQZXJjZW50AGQEFGFjdHVhbEF2YWlsYWJsZUZ1bmRzCQBlAgUVY3VycmVudEF2YWlsYWJsZUZ1bmRzBQt3aXRoZHJhd0ZlZQMJAGcCAAAFFGFjdHVhbEF2YWlsYWJsZUZ1bmRzCQACAQIeTm8gYXZhaWxhYmxlIGZ1bmRzIHRvIHdpdGhkcmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYYWRkcmVzc0F2YWlsYWJsZUZ1bmRzS2V5AQUNY2FsbGVyQWRkclN0cgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUUYWN0dWFsQXZhaWxhYmxlRnVuZHMJANkEAQUOZGVwb3NpdEFzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQZmVlQ29sbGVjdG9yQWRkcgULd2l0aGRyYXdGZWUJANkEAQUOZGVwb3NpdEFzc2V0SWQFA25pbAFpARBzZXRXaW5uZXJIZWFkc1VwAwZnYW1lSWQNd2lubmVyQWRkclN0cg9vdGhlclBsYXllckFkZHIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgpBZG1pbiBPbmx5BBNhdmFpbGFibGVSZXdhcmRzS2V5CQEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBBQ13aW5uZXJBZGRyU3RyBBdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwkBDXRyeUdldEludGVnZXIBBRNhdmFpbGFibGVSZXdhcmRzS2V5BBRuZXdUaWNrZXRDb3VudFdpbm5lcgkBDWNvbnN1bWVUaWNrZXQBBQ13aW5uZXJBZGRyU3RyBBluZXdUaWNrZXRDb3VudE90aGVyUGxheWVyCQENY29uc3VtZVRpY2tldAEFD290aGVyUGxheWVyQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQENZ2FtZVdpbm5lcktleQEFBmdhbWVJZAUNd2lubmVyQWRkclN0cgkAzAgCCQEMSW50ZWdlckVudHJ5AgUTYXZhaWxhYmxlUmV3YXJkc0tleQkAZAIFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzCQBoAgULdGlja2V0UHJpY2UAAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFRpY2tldHNDb3VudEtleQEFDXdpbm5lckFkZHJTdHIFFG5ld1RpY2tldENvdW50V2lubmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VGlja2V0c0NvdW50S2V5AQUPb3RoZXJQbGF5ZXJBZGRyBRluZXdUaWNrZXRDb3VudE90aGVyUGxheWVyBQNuaWwBaQEPd2l0aGRyYXdSZXdhcmRzAAQNY2FsbGVyQWRkclN0cgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBBmZWVDb2xsZWN0b3JBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBBRZmZWVDb2xsZWN0b3JBZGRyZXNzS2V5BBdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwkBDXRyeUdldEludGVnZXIBCQEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBBQ1jYWxsZXJBZGRyU3RyBAt3aXRoZHJhd0ZlZQkAawMFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzBRJ3aXRoZHJhd0ZlZVBlcmNlbnQAZAQWYWN0dWFsQXZhaWxhYmxlUmV3YXJkcwkAZQIJAGUCBRdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwUGaW52RmVlBQt3aXRoZHJhd0ZlZQMJAGcCAAAFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzCQACAQIgTm8gYXZhaWxhYmxlIHJld2FyZHMgdG8gd2l0aGRyYXcJAMwIAgkBDEludGVnZXJFbnRyeQIJARphZGRyZXNzQXZhaWxhYmxlUmV3YXJkc0tleQEFDWNhbGxlckFkZHJTdHIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFmFjdHVhbEF2YWlsYWJsZVJld2FyZHMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQZmVlQ29sbGVjdG9yQWRkcgULd2l0aGRyYXdGZWUFBHVuaXQFA25pbAFpAQpidXlUaWNrZXRzAAQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIhUGxlYXNlIGF0dGFjaCBleGFjdGx5IG9uZSBwYXltZW50AwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECJ1RpY2tldHMgY2FuIG9ubHkgaWJlIHB1cmNoYXNlZCBpbiBXYXZlcwMJAQIhPQIIBQNwbXQGYW1vdW50BQt0aWNrZXRQcmljZQkAAgEJAKwCAgkArAICAh9UaGUgcGF5bWVudCBtdXN0IGJlIG9mIGV4YWN0bHkgCQCkAwEFDnRpY2tldFByaWNlSW50AgYgd2F2ZXMEDWNhbGxlckFkZHJTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQTY3VycmVudFRpY2tldHNDb3VudAkBDXRyeUdldEludGVnZXIBCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNY2FsbGVyQWRkclN0cgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNY2FsbGVyQWRkclN0cgkAZAIFE2N1cnJlbnRUaWNrZXRzQ291bnQAAQUDbmlsAAEBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5OqYpag==",
"height": 2167554,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: FTFWuXbYyq8zjwFy9HFTPir7s42q8cQTr4SsL67f7j3V
Next: 3u4MqWFpo79MyPqXPF7Q9ofjw2BY9hm7SRauNoSRhnyx
Diff:
Old | New | | Differences |
---|
38 | 38 | | func r (q) = (q + "_totalLockedFunds") |
---|
39 | 39 | | |
---|
40 | 40 | | |
---|
41 | | - | func s (q,o) = ((q + "_lockedFunds_") + o) |
---|
| 41 | + | func s (q) = (q + "_lockedFundsTotalHistory") |
---|
42 | 42 | | |
---|
43 | 43 | | |
---|
44 | | - | func t (q) = (q + "_availableRewards") |
---|
| 44 | + | func t (q,o) = ((q + "_lockedFunds_") + o) |
---|
45 | 45 | | |
---|
46 | 46 | | |
---|
47 | | - | func u (m) = h(l(m)) |
---|
| 47 | + | func u (q) = (q + "_availableRewards") |
---|
48 | 48 | | |
---|
49 | 49 | | |
---|
50 | | - | func v (w) = { |
---|
51 | | - | let x = u(w) |
---|
52 | | - | let y = (x - 1) |
---|
53 | | - | if ((0 > y)) |
---|
| 50 | + | func v (m) = h(l(m)) |
---|
| 51 | + | |
---|
| 52 | + | |
---|
| 53 | + | func w (x) = { |
---|
| 54 | + | let y = v(x) |
---|
| 55 | + | let z = (y - 1) |
---|
| 56 | + | if ((0 > z)) |
---|
54 | 57 | | then 0 |
---|
55 | | - | else y |
---|
| 58 | + | else z |
---|
56 | 59 | | } |
---|
57 | 60 | | |
---|
58 | 61 | | |
---|
59 | | - | @Callable(z) |
---|
60 | | - | func setFeeCollectorAddress (A) = if ((z.caller != this)) |
---|
| 62 | + | @Callable(A) |
---|
| 63 | + | func setFeeCollectorAddress (B) = if ((A.caller != this)) |
---|
61 | 64 | | then throw("Admin Only") |
---|
62 | | - | else [StringEntry(f, A)] |
---|
| 65 | + | else [StringEntry(f, B)] |
---|
63 | 66 | | |
---|
64 | 67 | | |
---|
65 | 68 | | |
---|
66 | | - | @Callable(z) |
---|
| 69 | + | @Callable(A) |
---|
67 | 70 | | func depositFunds () = { |
---|
68 | | - | let B = if ((size(z.payments) == 1)) |
---|
69 | | - | then z.payments[0] |
---|
| 71 | + | let C = if ((size(A.payments) == 1)) |
---|
| 72 | + | then A.payments[0] |
---|
70 | 73 | | else throw("Please attach exactly one payment") |
---|
71 | | - | if ((B.assetId != fromBase58String(g))) |
---|
| 74 | + | if ((C.assetId != fromBase58String(g))) |
---|
72 | 75 | | then throw("You can only deposit USDN") |
---|
73 | 76 | | else { |
---|
74 | | - | let C = toBase58String(z.caller.bytes) |
---|
75 | | - | let D = h(p(C)) |
---|
76 | | - | $Tuple2([IntegerEntry(p(C), (D + B.amount))], 1) |
---|
| 77 | + | let D = toBase58String(A.caller.bytes) |
---|
| 78 | + | let E = h(p(D)) |
---|
| 79 | + | $Tuple2([IntegerEntry(p(D), (E + C.amount))], 1) |
---|
77 | 80 | | } |
---|
78 | 81 | | } |
---|
79 | 82 | | |
---|
80 | 83 | | |
---|
81 | 84 | | |
---|
82 | | - | @Callable(z) |
---|
83 | | - | func playerExitGame (o,w,E) = if ((z.caller != this)) |
---|
| 85 | + | @Callable(A) |
---|
| 86 | + | func playerExitGame (o,x,F) = if ((A.caller != this)) |
---|
84 | 87 | | then throw("Admin Only") |
---|
85 | 88 | | else { |
---|
86 | | - | let F = h(r(w)) |
---|
87 | | - | let D = h(p(w)) |
---|
88 | | - | let G = h(s(w, o)) |
---|
89 | | - | $Tuple2([IntegerEntry(p(w), (D + E)), IntegerEntry(r(w), (F - G)), IntegerEntry(s(w, o), 0)], 1) |
---|
| 89 | + | let G = h(r(x)) |
---|
| 90 | + | let E = h(p(x)) |
---|
| 91 | + | let H = h(t(x, o)) |
---|
| 92 | + | $Tuple2([IntegerEntry(p(x), (E + F)), IntegerEntry(r(x), (G - H)), IntegerEntry(t(x, o), 0)], 1) |
---|
90 | 93 | | } |
---|
91 | 94 | | |
---|
92 | 95 | | |
---|
93 | 96 | | |
---|
94 | | - | @Callable(z) |
---|
95 | | - | func lockFundsForGame (o,H) = { |
---|
96 | | - | let C = toBase58String(z.caller.bytes) |
---|
97 | | - | let D = h(p(C)) |
---|
98 | | - | let F = h(r(C)) |
---|
99 | | - | if ((H > D)) |
---|
| 97 | + | @Callable(A) |
---|
| 98 | + | func lockFundsForGame (o,I) = { |
---|
| 99 | + | let D = toBase58String(A.caller.bytes) |
---|
| 100 | + | let E = h(p(D)) |
---|
| 101 | + | let G = h(r(D)) |
---|
| 102 | + | let J = h(s(D)) |
---|
| 103 | + | if ((I > E)) |
---|
100 | 104 | | then throw("Not enough available funds to lock") |
---|
101 | | - | else $Tuple2([IntegerEntry(p(C), (D - H)), IntegerEntry(r(C), (F + H)), IntegerEntry(s(C, o), H)], 1) |
---|
| 105 | + | else $Tuple2([IntegerEntry(p(D), (E - I)), IntegerEntry(r(D), (G + I)), IntegerEntry(s(D), (J + I)), IntegerEntry(t(D, o), I)], 1) |
---|
102 | 106 | | } |
---|
103 | 107 | | |
---|
104 | 108 | | |
---|
105 | 109 | | |
---|
106 | | - | @Callable(z) |
---|
| 110 | + | @Callable(A) |
---|
107 | 111 | | func withdrawFunds () = { |
---|
108 | | - | let C = toBase58String(z.caller.bytes) |
---|
109 | | - | let I = addressFromStringValue(getStringValue(f)) |
---|
110 | | - | let D = h(p(C)) |
---|
111 | | - | let J = fraction(D, e, 100) |
---|
112 | | - | let K = (D - J) |
---|
113 | | - | if ((0 >= K)) |
---|
| 112 | + | let D = toBase58String(A.caller.bytes) |
---|
| 113 | + | let K = addressFromStringValue(getStringValue(f)) |
---|
| 114 | + | let E = h(p(D)) |
---|
| 115 | + | let L = fraction(E, e, 100) |
---|
| 116 | + | let M = (E - L) |
---|
| 117 | + | if ((0 >= M)) |
---|
114 | 118 | | then throw("No available funds to withdraw") |
---|
115 | | - | else [IntegerEntry(p(C), 0), ScriptTransfer(z.caller, K, fromBase58String(g)), ScriptTransfer(I, J, fromBase58String(g))] |
---|
| 119 | + | else [IntegerEntry(p(D), 0), ScriptTransfer(A.caller, M, fromBase58String(g)), ScriptTransfer(K, L, fromBase58String(g))] |
---|
116 | 120 | | } |
---|
117 | 121 | | |
---|
118 | 122 | | |
---|
119 | 123 | | |
---|
120 | | - | @Callable(z) |
---|
121 | | - | func setWinnerHeadsUp (o,L,M) = if ((z.caller != this)) |
---|
| 124 | + | @Callable(A) |
---|
| 125 | + | func setWinnerHeadsUp (o,N,O) = if ((A.caller != this)) |
---|
122 | 126 | | then throw("Admin Only") |
---|
123 | 127 | | else { |
---|
124 | | - | let N = t(L) |
---|
125 | | - | let O = h(N) |
---|
126 | | - | let P = v(L) |
---|
127 | | - | let Q = v(M) |
---|
128 | | - | [StringEntry(n(o), L), IntegerEntry(N, (O + (c * 2))), IntegerEntry(l(L), P), IntegerEntry(l(M), Q)] |
---|
| 128 | + | let P = u(N) |
---|
| 129 | + | let Q = h(P) |
---|
| 130 | + | let R = w(N) |
---|
| 131 | + | let S = w(O) |
---|
| 132 | + | [StringEntry(n(o), N), IntegerEntry(P, (Q + (c * 2))), IntegerEntry(l(N), R), IntegerEntry(l(O), S)] |
---|
129 | 133 | | } |
---|
130 | 134 | | |
---|
131 | 135 | | |
---|
132 | 136 | | |
---|
133 | | - | @Callable(z) |
---|
| 137 | + | @Callable(A) |
---|
134 | 138 | | func withdrawRewards () = { |
---|
135 | | - | let C = toBase58String(z.caller.bytes) |
---|
136 | | - | let I = addressFromStringValue(getStringValue(f)) |
---|
137 | | - | let O = h(t(C)) |
---|
138 | | - | let J = fraction(O, e, 100) |
---|
139 | | - | let R = ((O - d) - J) |
---|
140 | | - | if ((0 >= O)) |
---|
| 139 | + | let D = toBase58String(A.caller.bytes) |
---|
| 140 | + | let K = addressFromStringValue(getStringValue(f)) |
---|
| 141 | + | let Q = h(u(D)) |
---|
| 142 | + | let L = fraction(Q, e, 100) |
---|
| 143 | + | let T = ((Q - d) - L) |
---|
| 144 | + | if ((0 >= Q)) |
---|
141 | 145 | | then throw("No available rewards to withdraw") |
---|
142 | | - | else [IntegerEntry(t(C), 0), ScriptTransfer(z.caller, R, unit), ScriptTransfer(I, J, unit)] |
---|
| 146 | + | else [IntegerEntry(u(D), 0), ScriptTransfer(A.caller, T, unit), ScriptTransfer(K, L, unit)] |
---|
143 | 147 | | } |
---|
144 | 148 | | |
---|
145 | 149 | | |
---|
146 | 150 | | |
---|
147 | | - | @Callable(z) |
---|
| 151 | + | @Callable(A) |
---|
148 | 152 | | func buyTickets () = { |
---|
149 | | - | let B = if ((size(z.payments) == 1)) |
---|
150 | | - | then z.payments[0] |
---|
| 153 | + | let C = if ((size(A.payments) == 1)) |
---|
| 154 | + | then A.payments[0] |
---|
151 | 155 | | else throw("Please attach exactly one payment") |
---|
152 | | - | if (isDefined(B.assetId)) |
---|
| 156 | + | if (isDefined(C.assetId)) |
---|
153 | 157 | | then throw("Tickets can only ibe purchased in Waves") |
---|
154 | | - | else if ((B.amount != c)) |
---|
| 158 | + | else if ((C.amount != c)) |
---|
155 | 159 | | then throw((("The payment must be of exactly " + toString(b)) + " waves")) |
---|
156 | 160 | | else { |
---|
157 | | - | let C = toBase58String(z.caller.bytes) |
---|
158 | | - | let S = h(l(C)) |
---|
159 | | - | $Tuple2([IntegerEntry(l(C), (S + 1))], 1) |
---|
| 161 | + | let D = toBase58String(A.caller.bytes) |
---|
| 162 | + | let U = h(l(D)) |
---|
| 163 | + | $Tuple2([IntegerEntry(l(D), (U + 1))], 1) |
---|
160 | 164 | | } |
---|
161 | 165 | | } |
---|
162 | 166 | | |
---|
163 | 167 | | |
---|
164 | | - | @Verifier(T) |
---|
165 | | - | func U () = sigVerify(T.bodyBytes, T.proofs[0], T.senderPublicKey) |
---|
| 168 | + | @Verifier(V) |
---|
| 169 | + | func W () = sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey) |
---|
166 | 170 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = 100000000 |
---|
5 | 5 | | |
---|
6 | 6 | | let b = 1000000 |
---|
7 | 7 | | |
---|
8 | 8 | | let c = b |
---|
9 | 9 | | |
---|
10 | 10 | | let d = 500000 |
---|
11 | 11 | | |
---|
12 | 12 | | let e = 5 |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "feeCollectorAddress" |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "5ue1fiuV6j6UBr6Xf28Qms6y5FqzKtqvaxxhwu7hTQ58" |
---|
17 | 17 | | |
---|
18 | 18 | | func h (i) = { |
---|
19 | 19 | | let j = getInteger(this, i) |
---|
20 | 20 | | if ($isInstanceOf(j, "Int")) |
---|
21 | 21 | | then { |
---|
22 | 22 | | let k = j |
---|
23 | 23 | | k |
---|
24 | 24 | | } |
---|
25 | 25 | | else 0 |
---|
26 | 26 | | } |
---|
27 | 27 | | |
---|
28 | 28 | | |
---|
29 | 29 | | func l (m) = (m + "_ticketsCount") |
---|
30 | 30 | | |
---|
31 | 31 | | |
---|
32 | 32 | | func n (o) = (o + "_winner") |
---|
33 | 33 | | |
---|
34 | 34 | | |
---|
35 | 35 | | func p (q) = (q + "_availableFunds") |
---|
36 | 36 | | |
---|
37 | 37 | | |
---|
38 | 38 | | func r (q) = (q + "_totalLockedFunds") |
---|
39 | 39 | | |
---|
40 | 40 | | |
---|
41 | | - | func s (q,o) = ((q + "_lockedFunds_") + o) |
---|
| 41 | + | func s (q) = (q + "_lockedFundsTotalHistory") |
---|
42 | 42 | | |
---|
43 | 43 | | |
---|
44 | | - | func t (q) = (q + "_availableRewards") |
---|
| 44 | + | func t (q,o) = ((q + "_lockedFunds_") + o) |
---|
45 | 45 | | |
---|
46 | 46 | | |
---|
47 | | - | func u (m) = h(l(m)) |
---|
| 47 | + | func u (q) = (q + "_availableRewards") |
---|
48 | 48 | | |
---|
49 | 49 | | |
---|
50 | | - | func v (w) = { |
---|
51 | | - | let x = u(w) |
---|
52 | | - | let y = (x - 1) |
---|
53 | | - | if ((0 > y)) |
---|
| 50 | + | func v (m) = h(l(m)) |
---|
| 51 | + | |
---|
| 52 | + | |
---|
| 53 | + | func w (x) = { |
---|
| 54 | + | let y = v(x) |
---|
| 55 | + | let z = (y - 1) |
---|
| 56 | + | if ((0 > z)) |
---|
54 | 57 | | then 0 |
---|
55 | | - | else y |
---|
| 58 | + | else z |
---|
56 | 59 | | } |
---|
57 | 60 | | |
---|
58 | 61 | | |
---|
59 | | - | @Callable(z) |
---|
60 | | - | func setFeeCollectorAddress (A) = if ((z.caller != this)) |
---|
| 62 | + | @Callable(A) |
---|
| 63 | + | func setFeeCollectorAddress (B) = if ((A.caller != this)) |
---|
61 | 64 | | then throw("Admin Only") |
---|
62 | | - | else [StringEntry(f, A)] |
---|
| 65 | + | else [StringEntry(f, B)] |
---|
63 | 66 | | |
---|
64 | 67 | | |
---|
65 | 68 | | |
---|
66 | | - | @Callable(z) |
---|
| 69 | + | @Callable(A) |
---|
67 | 70 | | func depositFunds () = { |
---|
68 | | - | let B = if ((size(z.payments) == 1)) |
---|
69 | | - | then z.payments[0] |
---|
| 71 | + | let C = if ((size(A.payments) == 1)) |
---|
| 72 | + | then A.payments[0] |
---|
70 | 73 | | else throw("Please attach exactly one payment") |
---|
71 | | - | if ((B.assetId != fromBase58String(g))) |
---|
| 74 | + | if ((C.assetId != fromBase58String(g))) |
---|
72 | 75 | | then throw("You can only deposit USDN") |
---|
73 | 76 | | else { |
---|
74 | | - | let C = toBase58String(z.caller.bytes) |
---|
75 | | - | let D = h(p(C)) |
---|
76 | | - | $Tuple2([IntegerEntry(p(C), (D + B.amount))], 1) |
---|
| 77 | + | let D = toBase58String(A.caller.bytes) |
---|
| 78 | + | let E = h(p(D)) |
---|
| 79 | + | $Tuple2([IntegerEntry(p(D), (E + C.amount))], 1) |
---|
77 | 80 | | } |
---|
78 | 81 | | } |
---|
79 | 82 | | |
---|
80 | 83 | | |
---|
81 | 84 | | |
---|
82 | | - | @Callable(z) |
---|
83 | | - | func playerExitGame (o,w,E) = if ((z.caller != this)) |
---|
| 85 | + | @Callable(A) |
---|
| 86 | + | func playerExitGame (o,x,F) = if ((A.caller != this)) |
---|
84 | 87 | | then throw("Admin Only") |
---|
85 | 88 | | else { |
---|
86 | | - | let F = h(r(w)) |
---|
87 | | - | let D = h(p(w)) |
---|
88 | | - | let G = h(s(w, o)) |
---|
89 | | - | $Tuple2([IntegerEntry(p(w), (D + E)), IntegerEntry(r(w), (F - G)), IntegerEntry(s(w, o), 0)], 1) |
---|
| 89 | + | let G = h(r(x)) |
---|
| 90 | + | let E = h(p(x)) |
---|
| 91 | + | let H = h(t(x, o)) |
---|
| 92 | + | $Tuple2([IntegerEntry(p(x), (E + F)), IntegerEntry(r(x), (G - H)), IntegerEntry(t(x, o), 0)], 1) |
---|
90 | 93 | | } |
---|
91 | 94 | | |
---|
92 | 95 | | |
---|
93 | 96 | | |
---|
94 | | - | @Callable(z) |
---|
95 | | - | func lockFundsForGame (o,H) = { |
---|
96 | | - | let C = toBase58String(z.caller.bytes) |
---|
97 | | - | let D = h(p(C)) |
---|
98 | | - | let F = h(r(C)) |
---|
99 | | - | if ((H > D)) |
---|
| 97 | + | @Callable(A) |
---|
| 98 | + | func lockFundsForGame (o,I) = { |
---|
| 99 | + | let D = toBase58String(A.caller.bytes) |
---|
| 100 | + | let E = h(p(D)) |
---|
| 101 | + | let G = h(r(D)) |
---|
| 102 | + | let J = h(s(D)) |
---|
| 103 | + | if ((I > E)) |
---|
100 | 104 | | then throw("Not enough available funds to lock") |
---|
101 | | - | else $Tuple2([IntegerEntry(p(C), (D - H)), IntegerEntry(r(C), (F + H)), IntegerEntry(s(C, o), H)], 1) |
---|
| 105 | + | else $Tuple2([IntegerEntry(p(D), (E - I)), IntegerEntry(r(D), (G + I)), IntegerEntry(s(D), (J + I)), IntegerEntry(t(D, o), I)], 1) |
---|
102 | 106 | | } |
---|
103 | 107 | | |
---|
104 | 108 | | |
---|
105 | 109 | | |
---|
106 | | - | @Callable(z) |
---|
| 110 | + | @Callable(A) |
---|
107 | 111 | | func withdrawFunds () = { |
---|
108 | | - | let C = toBase58String(z.caller.bytes) |
---|
109 | | - | let I = addressFromStringValue(getStringValue(f)) |
---|
110 | | - | let D = h(p(C)) |
---|
111 | | - | let J = fraction(D, e, 100) |
---|
112 | | - | let K = (D - J) |
---|
113 | | - | if ((0 >= K)) |
---|
| 112 | + | let D = toBase58String(A.caller.bytes) |
---|
| 113 | + | let K = addressFromStringValue(getStringValue(f)) |
---|
| 114 | + | let E = h(p(D)) |
---|
| 115 | + | let L = fraction(E, e, 100) |
---|
| 116 | + | let M = (E - L) |
---|
| 117 | + | if ((0 >= M)) |
---|
114 | 118 | | then throw("No available funds to withdraw") |
---|
115 | | - | else [IntegerEntry(p(C), 0), ScriptTransfer(z.caller, K, fromBase58String(g)), ScriptTransfer(I, J, fromBase58String(g))] |
---|
| 119 | + | else [IntegerEntry(p(D), 0), ScriptTransfer(A.caller, M, fromBase58String(g)), ScriptTransfer(K, L, fromBase58String(g))] |
---|
116 | 120 | | } |
---|
117 | 121 | | |
---|
118 | 122 | | |
---|
119 | 123 | | |
---|
120 | | - | @Callable(z) |
---|
121 | | - | func setWinnerHeadsUp (o,L,M) = if ((z.caller != this)) |
---|
| 124 | + | @Callable(A) |
---|
| 125 | + | func setWinnerHeadsUp (o,N,O) = if ((A.caller != this)) |
---|
122 | 126 | | then throw("Admin Only") |
---|
123 | 127 | | else { |
---|
124 | | - | let N = t(L) |
---|
125 | | - | let O = h(N) |
---|
126 | | - | let P = v(L) |
---|
127 | | - | let Q = v(M) |
---|
128 | | - | [StringEntry(n(o), L), IntegerEntry(N, (O + (c * 2))), IntegerEntry(l(L), P), IntegerEntry(l(M), Q)] |
---|
| 128 | + | let P = u(N) |
---|
| 129 | + | let Q = h(P) |
---|
| 130 | + | let R = w(N) |
---|
| 131 | + | let S = w(O) |
---|
| 132 | + | [StringEntry(n(o), N), IntegerEntry(P, (Q + (c * 2))), IntegerEntry(l(N), R), IntegerEntry(l(O), S)] |
---|
129 | 133 | | } |
---|
130 | 134 | | |
---|
131 | 135 | | |
---|
132 | 136 | | |
---|
133 | | - | @Callable(z) |
---|
| 137 | + | @Callable(A) |
---|
134 | 138 | | func withdrawRewards () = { |
---|
135 | | - | let C = toBase58String(z.caller.bytes) |
---|
136 | | - | let I = addressFromStringValue(getStringValue(f)) |
---|
137 | | - | let O = h(t(C)) |
---|
138 | | - | let J = fraction(O, e, 100) |
---|
139 | | - | let R = ((O - d) - J) |
---|
140 | | - | if ((0 >= O)) |
---|
| 139 | + | let D = toBase58String(A.caller.bytes) |
---|
| 140 | + | let K = addressFromStringValue(getStringValue(f)) |
---|
| 141 | + | let Q = h(u(D)) |
---|
| 142 | + | let L = fraction(Q, e, 100) |
---|
| 143 | + | let T = ((Q - d) - L) |
---|
| 144 | + | if ((0 >= Q)) |
---|
141 | 145 | | then throw("No available rewards to withdraw") |
---|
142 | | - | else [IntegerEntry(t(C), 0), ScriptTransfer(z.caller, R, unit), ScriptTransfer(I, J, unit)] |
---|
| 146 | + | else [IntegerEntry(u(D), 0), ScriptTransfer(A.caller, T, unit), ScriptTransfer(K, L, unit)] |
---|
143 | 147 | | } |
---|
144 | 148 | | |
---|
145 | 149 | | |
---|
146 | 150 | | |
---|
147 | | - | @Callable(z) |
---|
| 151 | + | @Callable(A) |
---|
148 | 152 | | func buyTickets () = { |
---|
149 | | - | let B = if ((size(z.payments) == 1)) |
---|
150 | | - | then z.payments[0] |
---|
| 153 | + | let C = if ((size(A.payments) == 1)) |
---|
| 154 | + | then A.payments[0] |
---|
151 | 155 | | else throw("Please attach exactly one payment") |
---|
152 | | - | if (isDefined(B.assetId)) |
---|
| 156 | + | if (isDefined(C.assetId)) |
---|
153 | 157 | | then throw("Tickets can only ibe purchased in Waves") |
---|
154 | | - | else if ((B.amount != c)) |
---|
| 158 | + | else if ((C.amount != c)) |
---|
155 | 159 | | then throw((("The payment must be of exactly " + toString(b)) + " waves")) |
---|
156 | 160 | | else { |
---|
157 | | - | let C = toBase58String(z.caller.bytes) |
---|
158 | | - | let S = h(l(C)) |
---|
159 | | - | $Tuple2([IntegerEntry(l(C), (S + 1))], 1) |
---|
| 161 | + | let D = toBase58String(A.caller.bytes) |
---|
| 162 | + | let U = h(l(D)) |
---|
| 163 | + | $Tuple2([IntegerEntry(l(D), (U + 1))], 1) |
---|
160 | 164 | | } |
---|
161 | 165 | | } |
---|
162 | 166 | | |
---|
163 | 167 | | |
---|
164 | | - | @Verifier(T) |
---|
165 | | - | func U () = sigVerify(T.bodyBytes, T.proofs[0], T.senderPublicKey) |
---|
| 168 | + | @Verifier(V) |
---|
| 169 | + | func W () = sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey) |
---|
166 | 170 | | |
---|