tx · 4AfwfmDFN9bV975XEJd6ZhWEp1mtUXCEbqhd3pwVfHcq

3PB78esDgZEwDPG8zTrcv7VEBvzSd84Pzp9:  -0.01000000 Waves

2020.04.05 20:31 [2004481] smart account 3PB78esDgZEwDPG8zTrcv7VEBvzSd84Pzp9 > SELF 0.00000000 Waves

{ "type": 13, "id": "4AfwfmDFN9bV975XEJd6ZhWEp1mtUXCEbqhd3pwVfHcq", "fee": 1000000, "feeAssetId": null, "timestamp": 1586107706965, "version": 1, "sender": "3PB78esDgZEwDPG8zTrcv7VEBvzSd84Pzp9", "senderPublicKey": "6CkaEA8CPAoVRkUbUWp6SCbWJv28yoVGSL812PfGS65k", "proofs": [ "4H5sARyNSyyAjSiWSMNf4ZxdyDxFJooeW2Sk9b8CU7QRDmuCEwzSy8P31N4gi8E1W691jAtqrMxyF6APe121x1wL" ], "script": "base64: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AGQAAAACBQAAAA1tb250aE9wZW5UaW1lBQAAAAVtb250aAIAAAABLgQAAAAJcmVjaXBpZW50CQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA9wYXlvdXRQdWJsaWNLZXkEAAAAC2Jhc2VCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAAC2Jhc2VBc3NldElkBAAAAAxxdW90ZUJhbGFuY2UJAAPrAAAAAgUAAAAEdGhpcwUAAAAMcXVvdGVBc3NldElkBAAAAA5vbGRCYXNlQmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAMYmFsYW5jZV9iYXNlBAAAAA9vbGRRdW90ZUJhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAADWJhbGFuY2VfcXVvdGUEAAAAD29sZFRvdGFsQmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAANYmFsYW5jZV90b3RhbAQAAAAIbW1Qcm9maXQJAABlAAAAAgUAAAAMcXVvdGVCYWxhbmNlCQAAawAAAAMFAAAAD29sZFF1b3RlQmFsYW5jZQUAAAAOb2xkQmFzZUJhbGFuY2UFAAAAC2Jhc2VCYWxhbmNlBAAAAAluZXRQcm9maXQJAABlAAAAAgkAAGUAAAACCQAAaAAAAAIAAAAAAAAAAAIFAAAADHF1b3RlQmFsYW5jZQUAAAAIbW1Qcm9maXQFAAAAD29sZFRvdGFsQmFsYW5jZQQAAAAGYW1vdW50AwkAAGYAAAACCQAAZAAAAAIFAAAAD3F1YXJ0ZXJPcGVuVGltZQUAAAAHdGltZW91dAUAAAANbGFzdEJsb2NrVGltZQkAAGQAAAACBQAAAAhtbVByb2ZpdAMJAABmAAAAAgUAAAAJbmV0UHJvZml0AAAAAAAAAAAABQAAAAluZXRQcm9maXQAAAAAAAAAAAAJAABrAAAAAwUAAAAIbW1Qcm9maXQAAAAAAAAAAAgAAAAAAAAAAAoDAwkAAGYAAAACBQAAAAZhbW91bnQAAAAAAAAAAAAJAABnAAAAAgUAAAAMcXVvdGVCYWxhbmNlBQAAAAZhbW91bnQHCQEAAAAMU2NyaXB0UmVzdWx0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", "chainId": 87, "height": 2004481, "spentComplexity": 0 } View: original | compacted Prev: none Next: BD76PqWKVqCAopLjMf2FLTXb9RFtSAzRQj9BKgqBDtJH Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let baseAssetId = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'
5+
6+let quoteAssetId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
7+
8+let amountAssetId = baseAssetId
9+
10+let priceAssetId = quoteAssetId
11+
12+let dappPublicKey = base58'2TxTux7YwCDmz45WeFjTfDpBg7t9hBir8SqeD9m86yen'
13+
14+let payoutPublicKey = base58'CmtjCeZ9NqoQScT4HoWGn8vNQ8hK7kDKQfukQbjChQq1'
15+
16+let mmBotPublicKey = base58'5dQbzkYkh2UWtcR1cDwxZVzkduK1SVEeVa1TyLmD6eVU'
17+
18+let managerPublicKey = base58'66BGZcJJ9yAWcHKZZeiuA71wAvC5GWTmdQWArjt1g6jC'
19+
20+let guarantorPublicKeys = nil
21+
22+let month = (2629746 * 1000)
23+
24+let quarter = (month * 3)
25+
26+let timeout = (month / 10)
27+
28+let lastBlockTime = lastBlock.timestamp
29+
30+let monthOpenTime = ((lastBlockTime / month) * month)
31+
32+let quarterOpenTime = ((lastBlockTime / quarter) * quarter)
33+
34+func toDateString (timestamp) = {
35+ let sp = " "
36+ let zz = " UTC"
37+ let norm = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]
38+ let leap = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
39+ if (if (((-12212553600 * 1000) > timestamp))
40+ then true
41+ else (timestamp >= (253402300800 * 1000)))
42+ then throw("ISO 8601: only years from 1583 to 9999 are permitted.")
43+ else {
44+ let epoch = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366)
45+ let ce = (timestamp + ((epoch * 86400) * 1000))
46+ let date = {
47+ let yy = ((ce / (31556952 * 1000)) - 1)
48+ let dty = (((((yy * 365) + (yy / 4)) - (yy / 100)) + (yy / 400)) + 366)
49+ let ytd = ((ce / (86400 * 1000)) - dty)
50+ let months = if (if (if ((((yy + 1) % 4) == 0))
51+ then (((yy + 1) % 100) != 0)
52+ else false)
53+ then true
54+ else (((yy + 1) % 400) == 0))
55+ then leap
56+ else norm
57+ let mm = if ((ytd >= months[12]))
58+ then throw("Month overflow error!")
59+ else if ((ytd >= months[11]))
60+ then 11
61+ else if ((ytd >= months[10]))
62+ then 10
63+ else if ((ytd >= months[9]))
64+ then 9
65+ else if ((ytd >= months[8]))
66+ then 8
67+ else if ((ytd >= months[7]))
68+ then 7
69+ else if ((ytd >= months[6]))
70+ then 6
71+ else if ((ytd >= months[5]))
72+ then 5
73+ else if ((ytd >= months[4]))
74+ then 4
75+ else if ((ytd >= months[3]))
76+ then 3
77+ else if ((ytd >= months[2]))
78+ then 2
79+ else if ((ytd >= months[1]))
80+ then 1
81+ else if ((ytd >= months[0]))
82+ then 0
83+ else throw("Month overflow error!")
84+ let dd = (ytd - months[mm])
85+ ((((toString((yy + 1)) + "-") + drop(toString((mm + 101)), 1)) + "-") + drop(toString((dd + 101)), 1))
86+ }
87+ let time = {
88+ let rd = (ce % (86400 * 1000))
89+ let hh = (rd / (3600 * 1000))
90+ let rh = (rd % (3600 * 1000))
91+ let mm = (rh / (60 * 1000))
92+ let rm = (rh % (60 * 1000))
93+ let ss = (rm / 1000)
94+ let ms = (rm % 1000)
95+ ((drop(toString((hh + 100)), 1) + ":") + drop(toString((mm + 100)), 1))
96+ }
97+ (((date + sp) + time) + zz)
98+ }
99+ }
100+
101+
102+@Callable(i)
103+func setBalances (total) = if ((i.callerPublicKey != managerPublicKey))
104+ then throw("Only the administrator can adjust the balances!")
105+ else if (isDefined(i.payment))
106+ then throw("Please do not attach payment when setting balances.")
107+ else if ((0 > total))
108+ then throw("Negative total balance are not allowed...")
109+ else {
110+ let baseBalance = assetBalance(this, baseAssetId)
111+ let quoteBalance = assetBalance(this, quoteAssetId)
112+ let totalBalance = match getInteger(this, "balance_total") {
113+ case x: Int =>
114+ x
115+ case _ =>
116+ 0
117+ }
118+ if ((total > 0))
119+ then WriteSet([DataEntry("balance_base", baseBalance), DataEntry("balance_quote", quoteBalance), DataEntry("balance_total", total), DataEntry("last_update", lastBlockTime)])
120+ else if ((totalBalance > 0))
121+ then WriteSet([DataEntry("balance_base", baseBalance), DataEntry("balance_quote", quoteBalance), DataEntry("last_update", lastBlockTime)])
122+ else throw("Zero total balance are not allowed...")
123+ }
124+
125+
126+
127+@Callable(i)
128+func sendRewards () = {
129+ let lastUpdate = getIntegerValue(this, "last_update")
130+ let nextMonth = (((lastUpdate / month) + 1) * month)
131+ if ((i.callerPublicKey != managerPublicKey))
132+ then throw("Only administrator can send rewards!")
133+ else if (isDefined(i.payment))
134+ then throw("Please do not attach payment when sending rewards.")
135+ else if (if ((nextMonth > lastBlockTime))
136+ then true
137+ else (lastBlockTime >= (monthOpenTime + timeout)))
138+ then throw((("Rewards must be sent after " + toDateString((monthOpenTime + month))) + "."))
139+ else {
140+ let recipient = addressFromPublicKey(payoutPublicKey)
141+ let baseBalance = assetBalance(this, baseAssetId)
142+ let quoteBalance = assetBalance(this, quoteAssetId)
143+ let oldBaseBalance = getIntegerValue(this, "balance_base")
144+ let oldQuoteBalance = getIntegerValue(this, "balance_quote")
145+ let oldTotalBalance = getIntegerValue(this, "balance_total")
146+ let mmProfit = (quoteBalance - fraction(oldQuoteBalance, oldBaseBalance, baseBalance))
147+ let netProfit = (((2 * quoteBalance) - mmProfit) - oldTotalBalance)
148+ let amount = if (((quarterOpenTime + timeout) > lastBlockTime))
149+ then (mmProfit + (if ((netProfit > 0))
150+ then netProfit
151+ else 0))
152+ else fraction(mmProfit, 8, 10)
153+ if (if ((amount > 0))
154+ then (quoteBalance >= amount)
155+ else false)
156+ then ScriptResult(WriteSet([DataEntry("balance_base", baseBalance), DataEntry("balance_quote", (quoteBalance - amount)), DataEntry("last_update", lastBlockTime)]), TransferSet([ScriptTransfer(recipient, amount, quoteAssetId)]))
157+ else if ((amount > quoteBalance))
158+ then throw("Insufficient funds on the balance of quotes...")
159+ else throw("Zero or negative rewards are not allowed...")
160+ }
161+ }
162+
163+
164+
165+@Callable(i)
166+func emergencyExit () = {
167+ let lastUpdate = getIntegerValue(this, "last_update")
168+ let emergencyTime = ((((lastUpdate / month) + 1) * month) + timeout)
169+ if (isDefined(i.payment))
170+ then throw("Please do not attach payment in an emergency.")
171+ else if (if ((emergencyTime > lastBlockTime))
172+ then (i.callerPublicKey != managerPublicKey)
173+ else false)
174+ then throw((("Time for emergencies will be after " + toDateString(emergencyTime)) + "."))
175+ else {
176+ let recipient = addressFromPublicKey(dappPublicKey)
177+ let baseBalance = assetBalance(this, baseAssetId)
178+ let quoteBalance = assetBalance(this, quoteAssetId)
179+ let st0 = if ((baseBalance == 0))
180+ then nil
181+ else [ScriptTransfer(recipient, baseBalance, baseAssetId)]
182+ let st1 = if ((quoteBalance == 0))
183+ then st0
184+ else ScriptTransfer(recipient, quoteBalance, quoteAssetId) :: st0
185+ let scriptTransfers = st1
186+ if ((size(scriptTransfers) > 0))
187+ then ScriptResult(WriteSet([DataEntry("last_update", lastBlockTime)]), TransferSet(scriptTransfers))
188+ else throw("There is nothing on the balances!")
189+ }
190+ }
191+
192+
193+@Verifier(tx)
194+func verify () = {
195+ func isValid (sig,keys) = {
196+ func check (acc,pub) = if (acc)
197+ then true
198+ else sigVerify(tx.bodyBytes, sig, pub)
199+
200+ let $list1134411371 = keys
201+ let $size1134411371 = size($list1134411371)
202+ let $acc01134411371 = false
203+ if (($size1134411371 == 0))
204+ then $acc01134411371
205+ else {
206+ let $acc11134411371 = check($acc01134411371, $list1134411371[0])
207+ if (($size1134411371 == 1))
208+ then $acc11134411371
209+ else {
210+ let $acc21134411371 = check($acc11134411371, $list1134411371[1])
211+ if (($size1134411371 == 2))
212+ then $acc21134411371
213+ else {
214+ let $acc31134411371 = check($acc21134411371, $list1134411371[2])
215+ if (($size1134411371 == 3))
216+ then $acc31134411371
217+ else {
218+ let $acc41134411371 = check($acc31134411371, $list1134411371[3])
219+ if (($size1134411371 == 4))
220+ then $acc41134411371
221+ else {
222+ let $acc51134411371 = check($acc41134411371, $list1134411371[4])
223+ if (($size1134411371 == 5))
224+ then $acc51134411371
225+ else {
226+ let $acc61134411371 = check($acc51134411371, $list1134411371[5])
227+ throw("List size exceed 5")
228+ }
229+ }
230+ }
231+ }
232+ }
233+ }
234+ }
235+
236+ let rightManager = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
237+ then true
238+ else sigVerify(tx.bodyBytes, tx.proofs[0], mmBotPublicKey)
239+ let rightGuarantors = ((((if (isValid(tx.proofs[1], guarantorPublicKeys))
240+ then 1
241+ else 0) + (if (isValid(tx.proofs[2], guarantorPublicKeys))
242+ then 1
243+ else 0)) + (if (isValid(tx.proofs[3], guarantorPublicKeys))
244+ then 1
245+ else 0)) >= ((size(guarantorPublicKeys) + 1) / 2))
246+ match tx {
247+ case o: Order =>
248+ if (rightManager)
249+ then if (if (if (if ((o.matcherFeeAssetId == priceAssetId))
250+ then (o.assetPair.amountAsset == amountAssetId)
251+ else false)
252+ then (o.assetPair.priceAsset == priceAssetId)
253+ else false)
254+ then true
255+ else if (if ((o.orderType == Buy))
256+ then (o.matcherFeeAssetId == priceAssetId)
257+ else false)
258+ then (o.assetPair.amountAsset == priceAssetId)
259+ else false)
260+ then true
261+ else if ((o.orderType == Sell))
262+ then if (if (!(isDefined(o.matcherFeeAssetId)))
263+ then !(isDefined(o.assetPair.priceAsset))
264+ else false)
265+ then true
266+ else if ((o.matcherFeeAssetId == priceAssetId))
267+ then (o.assetPair.priceAsset == priceAssetId)
268+ else false
269+ else false
270+ else false
271+ case t: TransferTransaction =>
272+ if (if (rightManager)
273+ then ((quarterOpenTime + timeout) > lastBlockTime)
274+ else false)
275+ then (addressFromRecipient(t.recipient) == addressFromPublicKey(dappPublicKey))
276+ else false
277+ case s: SetScriptTransaction =>
278+ if (rightManager)
279+ then rightGuarantors
280+ else false
281+ case _ =>
282+ false
283+ }
284+ }
285+

github/deemru/w8io/3ef1775 
32.17 ms