tx · 3S8PdHSs7ZS7Tb7tr32sQf7bQ4wDorSr93vXDasHviQD
3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW: -1.00400000 Waves
2020.03.12 15:10 [905925] smart asset 3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW > SELF 0 PreSmartKey
{
"type": 15,
"id": "3S8PdHSs7ZS7Tb7tr32sQf7bQ4wDorSr93vXDasHviQD",
"fee": 100400000,
"feeAssetId": null,
"timestamp": 1584015037373,
"version": 1,
"sender": "3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW",
"senderPublicKey": "7wiL4SU2VfpuDUUtTqN4WrWXBp7awHtxk4BjkK1vYuSY",
"proofs": [
"379PgiPac52Q9tmmkUNDjgQZcKuFx4AFuu41onsiovjpUGY8BLBrKuiS6uYTAjUgK6azwJ5ZfNXzqoWWdP5fQgmM"
],
"assetId": "EaAk66w36Wo7mi1xgcHyjeaiCrsaerH1gJ3cKTePEz5o",
"script": "base64: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",
"chainId": 84,
"height": 905925,
"spentComplexity": 0
}
View: original | compacted
Prev: EX7pDXja8GkBex1Kw3gxzjKu9e9MK4SEdUb6ZpJqwvCV
Next: none
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 1 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | 3 | | let master = Address(base58'3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW') |
---|
| 4 | + | let unlockedAt = 1584015306000 |
---|
4 | 5 | | match tx { |
---|
5 | 6 | | case t: TransferTransaction => |
---|
6 | 7 | | let senderKey = ("pre_sk_" + toBase58String(t.sender.bytes)) |
---|
7 | 8 | | let isSenderAllowed = (getInteger(master, senderKey) == 1) |
---|
8 | | - | if (if ((t.sender == master)) |
---|
| 9 | + | let isUnlocked = (t.timestamp > unlockedAt) |
---|
| 10 | + | if (if (if (isUnlocked) |
---|
| 11 | + | then true |
---|
| 12 | + | else (t.sender == master)) |
---|
9 | 13 | | then true |
---|
10 | 14 | | else (t.recipient == master)) |
---|
11 | 15 | | then true |
---|
|
13 | 17 | | case mt: MassTransferTransaction => |
---|
14 | 18 | | let senderKey = ("pre_sk_" + toBase58String(mt.sender.bytes)) |
---|
15 | 19 | | let isSenderAllowed = (getInteger(master, senderKey) == 1) |
---|
16 | | - | if ((mt.sender == master)) |
---|
| 20 | + | let isUnlocked = (mt.timestamp > unlockedAt) |
---|
| 21 | + | if (if (isUnlocked) |
---|
| 22 | + | then true |
---|
| 23 | + | else (mt.sender == master)) |
---|
17 | 24 | | then true |
---|
18 | 25 | | else isSenderAllowed |
---|
19 | 26 | | case ex: ExchangeTransaction => |
---|
20 | 27 | | let senderKey = ("pre_sk_" + toBase58String(ex.sellOrder.sender.bytes)) |
---|
21 | 28 | | let isSenderAllowed = (getInteger(master, senderKey) == 1) |
---|
| 29 | + | let isUnlocked = (ex.timestamp > unlockedAt) |
---|
22 | 30 | | let buy = sigVerify(ex.buyOrder.bodyBytes, ex.buyOrder.proofs[0], ex.buyOrder.senderPublicKey) |
---|
23 | | - | if (if (buy) |
---|
| 31 | + | if (if (if (isUnlocked) |
---|
| 32 | + | then true |
---|
| 33 | + | else buy) |
---|
24 | 34 | | then true |
---|
25 | 35 | | else (ex.sellOrder.sender == master)) |
---|
26 | 36 | | then true |
---|
27 | 37 | | else isSenderAllowed |
---|
28 | 38 | | case b: BurnTransaction => |
---|
29 | | - | (b.sender == master) |
---|
| 39 | + | let isUnlocked = (b.timestamp > unlockedAt) |
---|
| 40 | + | if (isUnlocked) |
---|
| 41 | + | then true |
---|
| 42 | + | else (b.sender == master) |
---|
30 | 43 | | case s: SetAssetScriptTransaction => |
---|
31 | 44 | | true |
---|
32 | 45 | | case _ => |
---|
33 | | - | true |
---|
| 46 | + | false |
---|
34 | 47 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 1 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | 3 | | let master = Address(base58'3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW') |
---|
| 4 | + | let unlockedAt = 1584015306000 |
---|
4 | 5 | | match tx { |
---|
5 | 6 | | case t: TransferTransaction => |
---|
6 | 7 | | let senderKey = ("pre_sk_" + toBase58String(t.sender.bytes)) |
---|
7 | 8 | | let isSenderAllowed = (getInteger(master, senderKey) == 1) |
---|
8 | | - | if (if ((t.sender == master)) |
---|
| 9 | + | let isUnlocked = (t.timestamp > unlockedAt) |
---|
| 10 | + | if (if (if (isUnlocked) |
---|
| 11 | + | then true |
---|
| 12 | + | else (t.sender == master)) |
---|
9 | 13 | | then true |
---|
10 | 14 | | else (t.recipient == master)) |
---|
11 | 15 | | then true |
---|
12 | 16 | | else isSenderAllowed |
---|
13 | 17 | | case mt: MassTransferTransaction => |
---|
14 | 18 | | let senderKey = ("pre_sk_" + toBase58String(mt.sender.bytes)) |
---|
15 | 19 | | let isSenderAllowed = (getInteger(master, senderKey) == 1) |
---|
16 | | - | if ((mt.sender == master)) |
---|
| 20 | + | let isUnlocked = (mt.timestamp > unlockedAt) |
---|
| 21 | + | if (if (isUnlocked) |
---|
| 22 | + | then true |
---|
| 23 | + | else (mt.sender == master)) |
---|
17 | 24 | | then true |
---|
18 | 25 | | else isSenderAllowed |
---|
19 | 26 | | case ex: ExchangeTransaction => |
---|
20 | 27 | | let senderKey = ("pre_sk_" + toBase58String(ex.sellOrder.sender.bytes)) |
---|
21 | 28 | | let isSenderAllowed = (getInteger(master, senderKey) == 1) |
---|
| 29 | + | let isUnlocked = (ex.timestamp > unlockedAt) |
---|
22 | 30 | | let buy = sigVerify(ex.buyOrder.bodyBytes, ex.buyOrder.proofs[0], ex.buyOrder.senderPublicKey) |
---|
23 | | - | if (if (buy) |
---|
| 31 | + | if (if (if (isUnlocked) |
---|
| 32 | + | then true |
---|
| 33 | + | else buy) |
---|
24 | 34 | | then true |
---|
25 | 35 | | else (ex.sellOrder.sender == master)) |
---|
26 | 36 | | then true |
---|
27 | 37 | | else isSenderAllowed |
---|
28 | 38 | | case b: BurnTransaction => |
---|
29 | | - | (b.sender == master) |
---|
| 39 | + | let isUnlocked = (b.timestamp > unlockedAt) |
---|
| 40 | + | if (isUnlocked) |
---|
| 41 | + | then true |
---|
| 42 | + | else (b.sender == master) |
---|
30 | 43 | | case s: SetAssetScriptTransaction => |
---|
31 | 44 | | true |
---|
32 | 45 | | case _ => |
---|
33 | | - | true |
---|
| 46 | + | false |
---|
34 | 47 | | } |
---|