tx · FAag8RirTS74koxxf2b7N5rY8FwNTrHcKNQizp1r5x96
3MygQawG2gPjoej8wX2cqkxmg7KXAPP6xar: -1.00000000 Waves
2020.09.06 13:58 [1165450] smart asset 3MygQawG2gPjoej8wX2cqkxmg7KXAPP6xar > SELF 0.00000000 Test200
{
"type": 15,
"id": "FAag8RirTS74koxxf2b7N5rY8FwNTrHcKNQizp1r5x96",
"fee": 100000000,
"feeAssetId": null,
"timestamp": 1599389888897,
"version": 1,
"sender": "3MygQawG2gPjoej8wX2cqkxmg7KXAPP6xar",
"senderPublicKey": "BUxg9XtvamV81CZCqrQzi8BxCizU41dpSqoqt5mW56XS",
"proofs": [
"47dPz3YLeDJzh3WTQ5arH6AaYyAVHWcEDR4oB2ERox68koAS5a2DTFRQ8xdFK3Jg6mqQHVFXvTYn3TNqGcNhMVqt"
],
"assetId": "ELifKEtwTDt6TVLYYWJKNoCKuNJxzFTDcR5YC8YBWh2e",
"script": "base64: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",
"chainId": 84,
"height": 1165450,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 39ET78RrCbZHVHvuU9ytgdbSFxrVXQZwBkJNM6ZyW2pX
Next: G91wNTbHLAhYzuLw691vtmYKTVistcPS1SzQVsCM8o6c
Diff:
Old | New | | Differences |
---|
14 | 14 | | let priceBuyMin = (priceSell - intervalPrice) |
---|
15 | 15 | | let priceBuyMax = (priceSell + intervalPrice) |
---|
16 | 16 | | match tx { |
---|
17 | | - | case tx: MassTransferTransaction|BurnTransaction|SetAssetScriptTransaction|ReissueTransaction => |
---|
| 17 | + | case tx: BurnTransaction|MassTransferTransaction|SetAssetScriptTransaction|ReissueTransaction => |
---|
18 | 18 | | (tx.sender == dAppAddress) |
---|
19 | 19 | | case t: TransferTransaction => |
---|
20 | | - | true |
---|
| 20 | + | if ((t.feeAssetId != sponsor)) |
---|
| 21 | + | then throw("### To send, use the sponsor token AYDIK ID - 5QNpGE1TbLFPcKiKcNpnShmJWx9DH2UUtGNWgf8TVDaC ### Для отправки используйте спонсорский токен AYDIK ID - 5QNpGE1TbLFPcKiKcNpnShmJWx9DH2UUtGNWgf8TVDaC ###") |
---|
| 22 | + | else true |
---|
21 | 23 | | case e: ExchangeTransaction => |
---|
22 | | - | if (if ((e.buyOrder.price >= 80000000)) |
---|
23 | | - | then (120000000 >= e.sellOrder.price) |
---|
24 | | - | else false) |
---|
| 24 | + | let sender = e.sellOrder.sender |
---|
| 25 | + | let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey) |
---|
| 26 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) |
---|
| 27 | + | let admin = (e.sellOrder.sender == addressFromPublicKey(adminPK)) |
---|
| 28 | + | if (admin) |
---|
25 | 29 | | then true |
---|
26 | | - | else throw("0.8 <= order price <= 1.2") |
---|
| 30 | + | else if (isDefined(e.sellOrder.assetPair.priceAsset)) |
---|
| 31 | + | then throw("Only waves accepted") |
---|
| 32 | + | else if (sell) |
---|
| 33 | + | then if ((10 > e.sellOrder.amount)) |
---|
| 34 | + | then throw("Объем продажи должен быть больше или равно") |
---|
| 35 | + | else if ((priceSell > e.sellOrder.price)) |
---|
| 36 | + | then throw("Цена продажи должна быть больше") |
---|
| 37 | + | else true |
---|
| 38 | + | else if (buy) |
---|
| 39 | + | then if (if ((priceBuyMin > e.sellOrder.price)) |
---|
| 40 | + | then true |
---|
| 41 | + | else (e.sellOrder.price > priceBuyMax)) |
---|
| 42 | + | then throw((((("Цена покупки должна быть в пределах диапазона " + toString(priceBuyMin)) + " - ") + toString(priceBuyMax)) + " Wavelets")) |
---|
| 43 | + | else true |
---|
| 44 | + | else throw("something bad happened") |
---|
27 | 45 | | case _ => |
---|
28 | | - | true |
---|
| 46 | + | false |
---|
29 | 47 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | 3 | | let dAppAddress = addressFromString("3MygQawG2gPjoej8wX2cqkxmg7KXAPP6xar") |
---|
4 | 4 | | let adminPK = base58'BUxg9XtvamV81CZCqrQzi8BxCizU41dpSqoqt5mW56XS' |
---|
5 | 5 | | let tim = (lastBlock.timestamp / 1000) |
---|
6 | 6 | | let sponsor = base58'5QNpGE1TbLFPcKiKcNpnShmJWx9DH2UUtGNWgf8TVDaC' |
---|
7 | 7 | | let startTime = 1598979600 |
---|
8 | 8 | | let startPrice = 100000 |
---|
9 | 9 | | let intervalTime = 259200 |
---|
10 | 10 | | let intervalPrice = 100000 |
---|
11 | 11 | | let period = ((tim - startTime) / intervalTime) |
---|
12 | 12 | | let periodEnd = (((period + 1) * intervalTime) + startTime) |
---|
13 | 13 | | let priceSell = (startPrice + (intervalPrice * period)) |
---|
14 | 14 | | let priceBuyMin = (priceSell - intervalPrice) |
---|
15 | 15 | | let priceBuyMax = (priceSell + intervalPrice) |
---|
16 | 16 | | match tx { |
---|
17 | | - | case tx: MassTransferTransaction|BurnTransaction|SetAssetScriptTransaction|ReissueTransaction => |
---|
| 17 | + | case tx: BurnTransaction|MassTransferTransaction|SetAssetScriptTransaction|ReissueTransaction => |
---|
18 | 18 | | (tx.sender == dAppAddress) |
---|
19 | 19 | | case t: TransferTransaction => |
---|
20 | | - | true |
---|
| 20 | + | if ((t.feeAssetId != sponsor)) |
---|
| 21 | + | then throw("### To send, use the sponsor token AYDIK ID - 5QNpGE1TbLFPcKiKcNpnShmJWx9DH2UUtGNWgf8TVDaC ### Для отправки используйте спонсорский токен AYDIK ID - 5QNpGE1TbLFPcKiKcNpnShmJWx9DH2UUtGNWgf8TVDaC ###") |
---|
| 22 | + | else true |
---|
21 | 23 | | case e: ExchangeTransaction => |
---|
22 | | - | if (if ((e.buyOrder.price >= 80000000)) |
---|
23 | | - | then (120000000 >= e.sellOrder.price) |
---|
24 | | - | else false) |
---|
| 24 | + | let sender = e.sellOrder.sender |
---|
| 25 | + | let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey) |
---|
| 26 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) |
---|
| 27 | + | let admin = (e.sellOrder.sender == addressFromPublicKey(adminPK)) |
---|
| 28 | + | if (admin) |
---|
25 | 29 | | then true |
---|
26 | | - | else throw("0.8 <= order price <= 1.2") |
---|
| 30 | + | else if (isDefined(e.sellOrder.assetPair.priceAsset)) |
---|
| 31 | + | then throw("Only waves accepted") |
---|
| 32 | + | else if (sell) |
---|
| 33 | + | then if ((10 > e.sellOrder.amount)) |
---|
| 34 | + | then throw("Объем продажи должен быть больше или равно") |
---|
| 35 | + | else if ((priceSell > e.sellOrder.price)) |
---|
| 36 | + | then throw("Цена продажи должна быть больше") |
---|
| 37 | + | else true |
---|
| 38 | + | else if (buy) |
---|
| 39 | + | then if (if ((priceBuyMin > e.sellOrder.price)) |
---|
| 40 | + | then true |
---|
| 41 | + | else (e.sellOrder.price > priceBuyMax)) |
---|
| 42 | + | then throw((((("Цена покупки должна быть в пределах диапазона " + toString(priceBuyMin)) + " - ") + toString(priceBuyMax)) + " Wavelets")) |
---|
| 43 | + | else true |
---|
| 44 | + | else throw("something bad happened") |
---|
27 | 45 | | case _ => |
---|
28 | | - | true |
---|
| 46 | + | false |
---|
29 | 47 | | } |
---|