tx · 4Epa9AYhpPMabzj5ykacNmtWg7kEAPRgS1XgfRA5kHMo

3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk:  -0.00400000 Waves

2022.07.31 01:05 [2163131] smart account 3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk > SELF 0.00000000 Waves

{ "type": 13, "id": "4Epa9AYhpPMabzj5ykacNmtWg7kEAPRgS1XgfRA5kHMo", "fee": 400000, "feeAssetId": null, "timestamp": 1659218728402, "version": 2, "chainId": 84, "sender": "3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk", "senderPublicKey": "AR4BeE6hYADMvKxgRQs4ADN3krEqb2j8WE3WfJxzL3zE", "proofs": [ "26bK1BeNaXovPbYZojj9FaSHrCYNV9SE36UJjs84beDwbyMib8e19unDgYNEC5eKBpVxpHSRh4GQ8TNuefqELevF" ], "script": "base64:BgIWCAISAwoBCBIAEgASBQoDCAgIEgASAA0ABXdhdmVzAIDC1y8ADnRpY2tldFByaWNlSW50AMCEPQALdGlja2V0UHJpY2UFDnRpY2tldFByaWNlSW50AAZpbnZGZWUAoMIeABJ3aXRoZHJhd0ZlZVBlcmNlbnQABQAWZmVlQ29sbGVjdG9yQWRkcmVzc0tleQITZmVlQ29sbGVjdG9yQWRkcmVzcwENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAESZ2V0VGlja2V0c0NvdW50S2V5AQ1hZGRyZXNzU3RyaW5nCQCsAgIFDWFkZHJlc3NTdHJpbmcCDV90aWNrZXRzQ291bnQBDWdhbWVXaW5uZXJLZXkBBmdhbWVJZAkArAICBQZnYW1lSWQCB193aW5uZXIBGGFkZHJlc3NBdmFpbGFibGVGdW5kc0tleQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAg9fYXZhaWxhYmxlRnVuZHMBGmFkZHJlc3NBdmFpbGFibGVSZXdhcmRzS2V5AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEV9hdmFpbGFibGVSZXdhcmRzAQ9nZXRUaWNrZXRzQ291bnQBDWFkZHJlc3NTdHJpbmcJAQ10cnlHZXRJbnRlZ2VyAQkBEmdldFRpY2tldHNDb3VudEtleQEFDWFkZHJlc3NTdHJpbmcBDWNvbnN1bWVUaWNrZXQBCnBsYXllckFkZHIEEmN1cnJlbnRUaWNrZXRDb3VudAkBD2dldFRpY2tldHNDb3VudAEFCnBsYXllckFkZHIEFW5ld0N1cnJlbnRUaWNrZXRDb3VudAkAZQIFEmN1cnJlbnRUaWNrZXRDb3VudAABAwkAZgIAAAUVbmV3Q3VycmVudFRpY2tldENvdW50AAAFFW5ld0N1cnJlbnRUaWNrZXRDb3VudAYBaQEWc2V0RmVlQ29sbGVjdG9yQWRkcmVzcwENY29sbGVjdG9yQWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCkFkbWluIE9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgUWZmVlQ29sbGVjdG9yQWRkcmVzc0tleQUNY29sbGVjdG9yQWRkcgUDbmlsAWkBDGRlcG9zaXRGdW5kcwAEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkAAgECIVBsZWFzZSBhdHRhY2ggZXhhY3RseSBvbmUgcGF5bWVudAMJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQJAAIBAhlZb3UgY2FuIG9ubHkgZGVwb3NpdCBVU0ROBA1jYWxsZXJBZGRyU3RyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGFkZHJlc3NBdmFpbGFibGVGdW5kc0tleQEFDWNhbGxlckFkZHJTdHIIBQNwbXQGYW1vdW50BQNuaWwAAQFpAQ13aXRoZHJhd0Z1bmRzAAQNY2FsbGVyQWRkclN0cgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBBmZWVDb2xsZWN0b3JBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBBRZmZWVDb2xsZWN0b3JBZGRyZXNzS2V5BBVjdXJyZW50QXZhaWxhYmxlRnVuZHMJAQ10cnlHZXRJbnRlZ2VyAQkBGGFkZHJlc3NBdmFpbGFibGVGdW5kc0tleQEFDWNhbGxlckFkZHJTdHIEC3dpdGhkcmF3RmVlCQBrAwUVY3VycmVudEF2YWlsYWJsZUZ1bmRzBRJ3aXRoZHJhd0ZlZVBlcmNlbnQAZAQUYWN0dWFsQXZhaWxhYmxlRnVuZHMJAGUCCQBlAgUVY3VycmVudEF2YWlsYWJsZUZ1bmRzBQZpbnZGZWUFC3dpdGhkcmF3RmVlAwkAZwIAAAUUYWN0dWFsQXZhaWxhYmxlRnVuZHMJAAIBAh5ObyBhdmFpbGFibGUgZnVuZHMgdG8gd2l0aGRyYXcJAMwIAgkBDEludGVnZXJFbnRyeQIJARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRVjdXJyZW50QXZhaWxhYmxlRnVuZHMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQZmVlQ29sbGVjdG9yQWRkcgULd2l0aGRyYXdGZWUFBHVuaXQFA25pbAFpARBzZXRXaW5uZXJIZWFkc1VwAwZnYW1lSWQNd2lubmVyQWRkclN0cg9vdGhlclBsYXllckFkZHIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgpBZG1pbiBPbmx5BBNhdmFpbGFibGVSZXdhcmRzS2V5CQEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBBQ13aW5uZXJBZGRyU3RyBBdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwkBDXRyeUdldEludGVnZXIBBRNhdmFpbGFibGVSZXdhcmRzS2V5BBRuZXdUaWNrZXRDb3VudFdpbm5lcgkBDWNvbnN1bWVUaWNrZXQBBQ13aW5uZXJBZGRyU3RyBBluZXdUaWNrZXRDb3VudE90aGVyUGxheWVyCQENY29uc3VtZVRpY2tldAEFD290aGVyUGxheWVyQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQENZ2FtZVdpbm5lcktleQEFBmdhbWVJZAUNd2lubmVyQWRkclN0cgkAzAgCCQEMSW50ZWdlckVudHJ5AgUTYXZhaWxhYmxlUmV3YXJkc0tleQkAZAIFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzCQBoAgULdGlja2V0UHJpY2UAAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFRpY2tldHNDb3VudEtleQEFDXdpbm5lckFkZHJTdHIFFG5ld1RpY2tldENvdW50V2lubmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VGlja2V0c0NvdW50S2V5AQUPb3RoZXJQbGF5ZXJBZGRyBRluZXdUaWNrZXRDb3VudE90aGVyUGxheWVyBQNuaWwBaQEPd2l0aGRyYXdSZXdhcmRzAAQNY2FsbGVyQWRkclN0cgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBBmZWVDb2xsZWN0b3JBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBBRZmZWVDb2xsZWN0b3JBZGRyZXNzS2V5BBdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwkBDXRyeUdldEludGVnZXIBCQEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBBQ1jYWxsZXJBZGRyU3RyBAt3aXRoZHJhd0ZlZQkAawMFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzBRJ3aXRoZHJhd0ZlZVBlcmNlbnQAZAQWYWN0dWFsQXZhaWxhYmxlUmV3YXJkcwkAZQIJAGUCBRdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwUGaW52RmVlBQt3aXRoZHJhd0ZlZQMJAGcCAAAFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzCQACAQIgTm8gYXZhaWxhYmxlIHJld2FyZHMgdG8gd2l0aGRyYXcJAMwIAgkBDEludGVnZXJFbnRyeQIJARphZGRyZXNzQXZhaWxhYmxlUmV3YXJkc0tleQEFDWNhbGxlckFkZHJTdHIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFmFjdHVhbEF2YWlsYWJsZVJld2FyZHMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQZmVlQ29sbGVjdG9yQWRkcgULd2l0aGRyYXdGZWUFBHVuaXQFA25pbAFpAQpidXlUaWNrZXRzAAQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIhUGxlYXNlIGF0dGFjaCBleGFjdGx5IG9uZSBwYXltZW50AwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECJ1RpY2tldHMgY2FuIG9ubHkgaWJlIHB1cmNoYXNlZCBpbiBXYXZlcwMJAQIhPQIIBQNwbXQGYW1vdW50BQt0aWNrZXRQcmljZQkAAgEJAKwCAgkArAICAh9UaGUgcGF5bWVudCBtdXN0IGJlIG9mIGV4YWN0bHkgCQCkAwEFDnRpY2tldFByaWNlSW50AgYgd2F2ZXMEDWNhbGxlckFkZHJTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQTY3VycmVudFRpY2tldHNDb3VudAkBDXRyeUdldEludGVnZXIBCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNY2FsbGVyQWRkclN0cgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNY2FsbGVyQWRkclN0cgkAZAIFE2N1cnJlbnRUaWNrZXRzQ291bnQAAQUDbmlsAAEBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5OWkqsw==", "height": 2163131, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 91VKoXSyhqh5QXKt1y3yKbjXZQhM2XM1t8S5onyAdTRE Next: 5aJhDv3xBTxh4RYRLJuyfvTziwYjTy46thC5ty5F2EMG Diff:
OldNewDifferences
7171
7272
7373 @Callable(w)
74-func setWinnerHeadsUp (n,A,B) = if ((w.caller != this))
74+func withdrawFunds () = {
75+ let z = toBase58String(w.caller.bytes)
76+ let A = addressFromStringValue(getStringValue(f))
77+ let B = g(o(z))
78+ let C = fraction(B, e, 100)
79+ let D = ((B - d) - C)
80+ if ((0 >= D))
81+ then throw("No available funds to withdraw")
82+ else [IntegerEntry(o(z), 0), ScriptTransfer(w.caller, B, unit), ScriptTransfer(A, C, unit)]
83+ }
84+
85+
86+
87+@Callable(w)
88+func setWinnerHeadsUp (n,E,F) = if ((w.caller != this))
7589 then throw("Admin Only")
7690 else {
77- let C = q(A)
78- let D = g(C)
79- let E = s(A)
80- let F = s(B)
81-[StringEntry(m(n), A), IntegerEntry(C, (D + (c * 2))), IntegerEntry(k(A), E), IntegerEntry(k(B), F)]
91+ let G = q(E)
92+ let H = g(G)
93+ let I = s(E)
94+ let J = s(F)
95+[StringEntry(m(n), E), IntegerEntry(G, (H + (c * 2))), IntegerEntry(k(E), I), IntegerEntry(k(F), J)]
8296 }
8397
8498
86100 @Callable(w)
87101 func withdrawRewards () = {
88102 let z = toBase58String(w.caller.bytes)
89- let G = addressFromStringValue(getStringValue(f))
90- let D = g(q(z))
91- let H = fraction(D, e, 100)
92- let I = ((D - d) - H)
93- if ((0 >= D))
103+ let A = addressFromStringValue(getStringValue(f))
104+ let H = g(q(z))
105+ let C = fraction(H, e, 100)
106+ let K = ((H - d) - C)
107+ if ((0 >= H))
94108 then throw("No available rewards to withdraw")
95- else [IntegerEntry(q(z), 0), ScriptTransfer(w.caller, I, unit), ScriptTransfer(G, H, unit)]
109+ else [IntegerEntry(q(z), 0), ScriptTransfer(w.caller, K, unit), ScriptTransfer(A, C, unit)]
96110 }
97111
98112
108122 then throw((("The payment must be of exactly " + toString(b)) + " waves"))
109123 else {
110124 let z = toBase58String(w.caller.bytes)
111- let J = g(k(z))
112- $Tuple2([IntegerEntry(k(z), (J + 1))], 1)
125+ let L = g(k(z))
126+ $Tuple2([IntegerEntry(k(z), (L + 1))], 1)
113127 }
114128 }
115129
116130
117-@Verifier(K)
118-func L () = sigVerify(K.bodyBytes, K.proofs[0], K.senderPublicKey)
131+@Verifier(M)
132+func N () = sigVerify(M.bodyBytes, M.proofs[0], M.senderPublicKey)
119133
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = 1000000
77
88 let c = b
99
1010 let d = 500000
1111
1212 let e = 5
1313
1414 let f = "feeCollectorAddress"
1515
1616 func g (h) = {
1717 let i = getInteger(this, h)
1818 if ($isInstanceOf(i, "Int"))
1919 then {
2020 let j = i
2121 j
2222 }
2323 else 0
2424 }
2525
2626
2727 func k (l) = (l + "_ticketsCount")
2828
2929
3030 func m (n) = (n + "_winner")
3131
3232
3333 func o (p) = (p + "_availableFunds")
3434
3535
3636 func q (p) = (p + "_availableRewards")
3737
3838
3939 func r (l) = g(k(l))
4040
4141
4242 func s (t) = {
4343 let u = r(t)
4444 let v = (u - 1)
4545 if ((0 > v))
4646 then 0
4747 else v
4848 }
4949
5050
5151 @Callable(w)
5252 func setFeeCollectorAddress (x) = if ((w.caller != this))
5353 then throw("Admin Only")
5454 else [StringEntry(f, x)]
5555
5656
5757
5858 @Callable(w)
5959 func depositFunds () = {
6060 let y = if ((size(w.payments) == 1))
6161 then w.payments[0]
6262 else throw("Please attach exactly one payment")
6363 if (isDefined(y.assetId))
6464 then throw("You can only deposit USDN")
6565 else {
6666 let z = toBase58String(w.caller.bytes)
6767 $Tuple2([IntegerEntry(o(z), y.amount)], 1)
6868 }
6969 }
7070
7171
7272
7373 @Callable(w)
74-func setWinnerHeadsUp (n,A,B) = if ((w.caller != this))
74+func withdrawFunds () = {
75+ let z = toBase58String(w.caller.bytes)
76+ let A = addressFromStringValue(getStringValue(f))
77+ let B = g(o(z))
78+ let C = fraction(B, e, 100)
79+ let D = ((B - d) - C)
80+ if ((0 >= D))
81+ then throw("No available funds to withdraw")
82+ else [IntegerEntry(o(z), 0), ScriptTransfer(w.caller, B, unit), ScriptTransfer(A, C, unit)]
83+ }
84+
85+
86+
87+@Callable(w)
88+func setWinnerHeadsUp (n,E,F) = if ((w.caller != this))
7589 then throw("Admin Only")
7690 else {
77- let C = q(A)
78- let D = g(C)
79- let E = s(A)
80- let F = s(B)
81-[StringEntry(m(n), A), IntegerEntry(C, (D + (c * 2))), IntegerEntry(k(A), E), IntegerEntry(k(B), F)]
91+ let G = q(E)
92+ let H = g(G)
93+ let I = s(E)
94+ let J = s(F)
95+[StringEntry(m(n), E), IntegerEntry(G, (H + (c * 2))), IntegerEntry(k(E), I), IntegerEntry(k(F), J)]
8296 }
8397
8498
8599
86100 @Callable(w)
87101 func withdrawRewards () = {
88102 let z = toBase58String(w.caller.bytes)
89- let G = addressFromStringValue(getStringValue(f))
90- let D = g(q(z))
91- let H = fraction(D, e, 100)
92- let I = ((D - d) - H)
93- if ((0 >= D))
103+ let A = addressFromStringValue(getStringValue(f))
104+ let H = g(q(z))
105+ let C = fraction(H, e, 100)
106+ let K = ((H - d) - C)
107+ if ((0 >= H))
94108 then throw("No available rewards to withdraw")
95- else [IntegerEntry(q(z), 0), ScriptTransfer(w.caller, I, unit), ScriptTransfer(G, H, unit)]
109+ else [IntegerEntry(q(z), 0), ScriptTransfer(w.caller, K, unit), ScriptTransfer(A, C, unit)]
96110 }
97111
98112
99113
100114 @Callable(w)
101115 func buyTickets () = {
102116 let y = if ((size(w.payments) == 1))
103117 then w.payments[0]
104118 else throw("Please attach exactly one payment")
105119 if (isDefined(y.assetId))
106120 then throw("Tickets can only ibe purchased in Waves")
107121 else if ((y.amount != c))
108122 then throw((("The payment must be of exactly " + toString(b)) + " waves"))
109123 else {
110124 let z = toBase58String(w.caller.bytes)
111- let J = g(k(z))
112- $Tuple2([IntegerEntry(k(z), (J + 1))], 1)
125+ let L = g(k(z))
126+ $Tuple2([IntegerEntry(k(z), (L + 1))], 1)
113127 }
114128 }
115129
116130
117-@Verifier(K)
118-func L () = sigVerify(K.bodyBytes, K.proofs[0], K.senderPublicKey)
131+@Verifier(M)
132+func N () = sigVerify(M.bodyBytes, M.proofs[0], M.senderPublicKey)
119133

github/deemru/w8io/3ef1775 
63.18 ms