tx · 9TzpGq4Ye3SCt2VNQ86FNLydPnotxpPcRCuKMosybJxH 3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw: -0.01000000 Waves 2022.06.03 22:28 [2080584] smart account 3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw > SELF 0.00000000 Waves
{ "type": 13, "id": "9TzpGq4Ye3SCt2VNQ86FNLydPnotxpPcRCuKMosybJxH", "fee": 1000000, "feeAssetId": null, "timestamp": 1654284531020, "version": 2, "chainId": 84, "sender": "3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw", "senderPublicKey": "GTKqLSK6nuFkRdebB5SmTwTU2DnTeLMvhymCFfT2CxX2", "proofs": [ "2MW3gJBjgKpmPoLrM2kp2KWWhXJZLqG6hxXfdzWXhH2ks6ooKvL6wjKhRiPK7ok8SZh1PFH6p9tKFPbDfppYJPw2" ], "script": "base64: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", "height": 2080584, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7JRA5pYAQBSXo2GJqALxTEkQzuvVpXFeRqD9zUfT8wQk Next: HqKtN1geP5FtbPy8EE2c13YjMEmg4hDTbeKsCnFfJkis Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = base58' | |
4 | + | let a = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga' | |
5 | 5 | ||
6 | - | let b = base58' | |
6 | + | let b = base58'3N59qn7Ndw24WrGFkNFk7PGTBCzdMETyKqj' | |
7 | 7 | ||
8 | - | let c = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
9 | - | ||
10 | - | let d = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
11 | - | ||
12 | - | let e = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
13 | - | ||
14 | - | let f = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
15 | - | ||
16 | - | let g = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
17 | - | ||
18 | - | let h = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
19 | - | ||
20 | - | let i = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ' | |
21 | - | ||
22 | - | let j = base58'3N59qn7Ndw24WrGFkNFk7PGTBCzdMETyKqj' | |
23 | - | ||
24 | - | let k = base58'3MzqbY4iHg79pg4DNLK6UXUsbPuDcoJTzLw' | |
25 | - | ||
26 | - | @Callable(l) | |
27 | - | func DepositFunds (m,n,o) = { | |
28 | - | let p = (toBase58String(l.caller.bytes) + "_Payment") | |
29 | - | let q = { | |
30 | - | let r = getInteger(this, p) | |
31 | - | if ($isInstanceOf(r, "Int")) | |
8 | + | @Callable(c) | |
9 | + | func DepositFunds () = { | |
10 | + | let d = (toBase58String(c.caller.bytes) + "_Liq") | |
11 | + | let e = { | |
12 | + | let f = getInteger(this, d) | |
13 | + | if ($isInstanceOf(f, "Int")) | |
32 | 14 | then { | |
33 | - | let | |
34 | - | | |
15 | + | let g = f | |
16 | + | g | |
35 | 17 | } | |
36 | 18 | else 0 | |
37 | 19 | } | |
38 | - | if ((q != 0)) | |
39 | - | then throw("You have already deposited funds, deposits can only be done once") | |
20 | + | let h = if ((size(c.payments) == 1)) | |
21 | + | then c.payments[0] | |
22 | + | else throw("Attached payment is required") | |
23 | + | if (if ((0 >= h.amount)) | |
24 | + | then true | |
25 | + | else (h.assetId != a)) | |
26 | + | then throw("Can only deposit BUsd tokens, and amount should be positive") | |
40 | 27 | else { | |
41 | - | let t = if ((size(l.payments) == 1)) | |
42 | - | then l.payments[0] | |
43 | - | else throw("Attached payment is required") | |
44 | - | if (if (if (if (if (if (if (if (if (if (if ((0 >= t.amount)) | |
45 | - | then (t.assetId != a) | |
46 | - | else false) | |
47 | - | then (t.assetId != b) | |
48 | - | else false) | |
49 | - | then (t.assetId != c) | |
50 | - | else false) | |
51 | - | then (t.assetId != d) | |
52 | - | else false) | |
53 | - | then (t.assetId != e) | |
54 | - | else false) | |
55 | - | then (t.assetId != f) | |
56 | - | else false) | |
57 | - | then (t.assetId != g) | |
58 | - | else false) | |
59 | - | then (t.assetId != h) | |
60 | - | else false) | |
61 | - | then (t.assetId != i) | |
62 | - | else false) | |
63 | - | then isDefined(t.assetId) | |
64 | - | else false) | |
65 | - | then throw("Can only deposit accepted tokens, and amount should be positive") | |
66 | - | else if (if (if ((m == "")) | |
67 | - | then true | |
68 | - | else (n == "")) | |
69 | - | then true | |
70 | - | else (o == "")) | |
71 | - | then throw("Job Scope, Deliverables desc and Freelancer Wallet Address cannot be empty") | |
72 | - | else { | |
73 | - | let u = if (isDefined(t.assetId)) | |
74 | - | then toBase58String(value(t.assetId)) | |
75 | - | else "Waves" | |
76 | - | [StringEntry((toBase58String(l.caller.bytes) + "_Scope"), m), StringEntry((toBase58String(l.caller.bytes) + "_Deliv"), n), StringEntry((toBase58String(l.caller.bytes) + "_Asset"), u), StringEntry((toBase58String(l.caller.bytes) + "_Freelancer"), o), IntegerEntry((toBase58String(l.caller.bytes) + "_Payment"), t.amount)] | |
77 | - | } | |
28 | + | let i = (e + h.amount) | |
29 | + | [IntegerEntry((toBase58String(c.caller.bytes) + "_Liq"), i)] | |
78 | 30 | } | |
79 | 31 | } | |
80 | 32 | ||
81 | 33 | ||
82 | 34 | ||
83 | - | @Callable(l) | |
84 | - | func PayFreelancer (v) = { | |
85 | - | let p = (toBase58String(l.caller.bytes) + "_Payment") | |
86 | - | let o = (toBase58String(l.caller.bytes) + "_Freelancer") | |
87 | - | let w = (toBase58String(l.caller.bytes) + "_Asset") | |
88 | - | let x = (toBase58String(l.caller.bytes) + "_Paidtrx") | |
89 | - | let q = { | |
90 | - | let r = getInteger(this, p) | |
91 | - | if ($isInstanceOf(r, "Int")) | |
35 | + | @Callable(c) | |
36 | + | func WithdrawLiq (j) = { | |
37 | + | let d = (toBase58String(c.caller.bytes) + "_Liq") | |
38 | + | let k = (toBase58String(c.caller.bytes) + "_LastUnstake") | |
39 | + | let l = (toBase58String(c.caller.bytes) + "_trxUnstake") | |
40 | + | let m = Address(b) | |
41 | + | let n = 10 | |
42 | + | let o = 1 | |
43 | + | let p = { | |
44 | + | let f = getInteger(this, d) | |
45 | + | if ($isInstanceOf(f, "Int")) | |
92 | 46 | then { | |
93 | - | let | |
94 | - | | |
47 | + | let g = f | |
48 | + | g | |
95 | 49 | } | |
96 | 50 | else 0 | |
97 | 51 | } | |
98 | - | let | |
99 | - | let | |
100 | - | if ($isInstanceOf( | |
52 | + | let q = { | |
53 | + | let f = getInteger(this, l) | |
54 | + | if ($isInstanceOf(f, "Int")) | |
101 | 55 | then { | |
102 | - | let | |
103 | - | | |
56 | + | let g = f | |
57 | + | g | |
104 | 58 | } | |
105 | 59 | else 0 | |
106 | 60 | } | |
107 | - | let z = getStringValue(this, o) | |
108 | - | let A = getStringValue(this, w) | |
109 | - | let B = addressFromStringValue(z) | |
110 | - | let C = Address(j) | |
111 | - | let u = if ((A == "Waves")) | |
112 | - | then unit | |
113 | - | else fromBase58String(A) | |
114 | - | if ((0 >= (((95 * q) / 100) - (v * 100000000)))) | |
115 | - | then throw(("You do not have enough funds to make payment, your available funds are: " + toString((q / 100000000)))) | |
116 | - | else if (if ((y >= 12)) | |
117 | - | then (q > 0) | |
61 | + | let r = { | |
62 | + | let f = getInteger(this, k) | |
63 | + | if ($isInstanceOf(f, "Int")) | |
64 | + | then { | |
65 | + | let g = f | |
66 | + | g | |
67 | + | } | |
68 | + | else 0 | |
69 | + | } | |
70 | + | let e = (p - (j * 10000000)) | |
71 | + | if ((0 >= e)) | |
72 | + | then throw(("You do not have enough funds to withdraw, your available funds are: " + toString((p / 100000000)))) | |
73 | + | else if (if ((q == 2)) | |
74 | + | then (height > (q + n)) | |
118 | 75 | else false) | |
119 | - | then throw(" | |
76 | + | then throw((("Second withdraw cannot be done before " + toString(((height - n) - q))) + " min")) | |
120 | 77 | else { | |
121 | - | let D = if ((y == 11)) | |
122 | - | then 0 | |
123 | - | else (q - (v * 100000000)) | |
124 | - | let E = if ((y == 11)) | |
125 | - | then ((95 * q) / 100) | |
126 | - | else ((95 * v) * 1000000) | |
127 | - | let F = if ((y == 11)) | |
128 | - | then ((5 * q) / 100) | |
129 | - | else ((5 * v) * 1000000) | |
130 | - | let G = if ((y == 11)) | |
131 | - | then 0 | |
132 | - | else (y + 1) | |
133 | - | $Tuple2([IntegerEntry((toBase58String(l.caller.bytes) + "_Payment"), D), IntegerEntry((toBase58String(l.caller.bytes) + "_Paidtrx"), G), ScriptTransfer(B, E, u), ScriptTransfer(C, F, u)], u) | |
78 | + | let s = (q + 1) | |
79 | + | $Tuple2([IntegerEntry((toBase58String(c.caller.bytes) + "_trxUnstake"), s), IntegerEntry((toBase58String(c.caller.bytes) + "_Liq"), e), IntegerEntry((toBase58String(c.caller.bytes) + "_trxUnstake"), height), ScriptTransfer(c.caller, (j * 10000000), a), ScriptTransfer(m, (o * 100000000), a)], a) | |
134 | 80 | } | |
135 | 81 | } | |
136 | - | ||
137 | - | ||
138 | - | ||
139 | - | @Callable(l) | |
140 | - | func AdminTransfer (H,I,J,K,L) = if ((l.caller.bytes != k)) | |
141 | - | then throw("Only Admin can do this") | |
142 | - | else if ((((K + J) + L) != 100)) | |
143 | - | then throw("Total of Percentages cannot be different from 100%") | |
144 | - | else { | |
145 | - | let p = (H + "_Payment") | |
146 | - | let o = (H + "_Freelancer") | |
147 | - | let w = (toBase58String(l.caller.bytes) + "_Asset") | |
148 | - | let q = { | |
149 | - | let r = getInteger(this, p) | |
150 | - | if ($isInstanceOf(r, "Int")) | |
151 | - | then { | |
152 | - | let s = r | |
153 | - | s | |
154 | - | } | |
155 | - | else 0 | |
156 | - | } | |
157 | - | let z = getStringValue(this, o) | |
158 | - | let B = addressFromStringValue(z) | |
159 | - | let A = getStringValue(this, w) | |
160 | - | let C = Address(j) | |
161 | - | let M = addressFromStringValue(H) | |
162 | - | let u = if ((A == "Waves")) | |
163 | - | then unit | |
164 | - | else fromBase58String(A) | |
165 | - | if ((q == 0)) | |
166 | - | then throw("User's balance is 0 BUsdc cannot realize any payment") | |
167 | - | else $Tuple2([IntegerEntry((H + "_Payment"), 0), ScriptTransfer(B, ((J * q) / 100), u), ScriptTransfer(M, ((K * q) / 100), u), ScriptTransfer(C, ((L * q) / 100), u)], u) | |
168 | - | } | |
169 | 82 | ||
170 | 83 |
github/deemru/w8io/169f3d6 39.82 ms ◑