tx · CCJTvVdNy3VFwARMQemjiRfnYjL2Ei3Q3RgXx8XP5EXq

3N2hBea4tJ4vmGdTnr7iGEfeCwsDkLyCbWK:  -0.14000000 Waves

2018.12.31 00:47 [428317] smart account 3N2hBea4tJ4vmGdTnr7iGEfeCwsDkLyCbWK > SELF 0.00000000 Waves

{ "type": 13, "id": "CCJTvVdNy3VFwARMQemjiRfnYjL2Ei3Q3RgXx8XP5EXq", "fee": 14000000, "feeAssetId": null, "timestamp": 1546206453597, "version": 1, "sender": "3N2hBea4tJ4vmGdTnr7iGEfeCwsDkLyCbWK", "senderPublicKey": "9vCFiiQT1mT2SMoSSoShakxyfJND9mzVDfjiaiVdh7y5", "proofs": [ "63Q2HaNcDhNsS1CaHQR7VqqJCpmCB32XaxF7uSQTDfDR7GTXx1qnofCHDWfQKL8XuBqkw6cxhWt6nmDKri6HcqBs" ], "script": "base64:AQQAAAAKUG9XQWNjb3VudAkBAAAAB2V4dHJhY3QAAAABCAUAAAACdHgAAAAGc2VuZGVyBAAAAAhQb1dBc3NldAEAAAAgq9PSmJEH/4Ec4pkrv/eP12LnK4HTTi4ztX16Pf7XgKUEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAMJAAAAAAAAAggFAAAAAnR4AAAAB2Fzc2V0SWQFAAAACFBvV0Fzc2V0CQAAAAAAAAIIBQAAAAJ0eAAAAANmZWUAAAAAAAANu6AJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwAwMJAAAAAAAAAgkAAZAAAAABCAUAAAACdHgAAAAEZGF0YQAAAAAAAAAAAQkAAAAAAAACCAkAAZEAAAACCAUAAAACdHgAAAAEZGF0YQAAAAAAAAAAAAAAAANrZXkCAAAAAU4HCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQcJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5+X3WAA==", "chainId": 84, "height": 428317, "spentComplexity": 0 } View: original | compacted Prev: EdjELS2tYcbYk2kxeMES5tRyLLve4uAT3Muf6A1N4iiT Next: 8MJc9xwiKtdAnPzsmmz64MTUoYm1U2PGDKPgLefXXKVh Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
3-let this = extract(tx.sender)
4-let asset = base58'ExHsMiLc9eWokuf95Xwpr2SosZ7FejAqGepk1wWXrQFQ'
5-let N = extract(getInteger(this, "N"))
6-let lastUpdate = extract(getInteger(this, "lastUpdate"))
7-let balanceOnLastUpdate = extract(getInteger(this, "balanceOnLastUpdate"))
8-let currentBalance = assetBalance(this, asset)
9-let validityPeriod = 1000
10-let C = 10
11-let denominator = 100
3+let PoWAccount = extract(tx.sender)
4+let PoWAsset = base58'CZk46R9XmGhrtCHFRB1qJqZbQAM9yK2ys7c5xsakBjJ4'
125 match tx {
136 case tx: TransferTransaction =>
14- let firstBytes = toBase58String(take(tx.id, N))
15- let transferAmount = ((currentBalance / denominator) + 1)
16- if (if (if (if (if ((validityPeriod > (height - lastUpdate)))
17- then isDefined(getBoolean(this, firstBytes))
7+ if ((tx.assetId == PoWAsset))
8+ then (tx.fee == 900000)
9+ else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
10+ case tx: DataTransaction =>
11+ if (if ((size(tx.data) == 1))
12+ then (tx.data[0].key == "N")
1813 else false)
19- then (tx.amount == transferAmount)
20- else false)
21- then (tx.assetId == asset)
22- else false)
23- then (tx.fee == 500000)
24- else false)
25- then !(isDefined(tx.feeAssetId))
26- else false
27- case tx: DataTransaction =>
28- let newN = ((N + (if (((balanceOnLastUpdate - currentBalance) > (validityPeriod * C)))
29- then 1
30- else 0)) + (if (((validityPeriod / C) > (balanceOnLastUpdate - currentBalance)))
31- then -1
32- else 0))
33- if (if (if (if (if (((height - lastUpdate) >= validityPeriod))
34- then (size(tx.data) == 3)
35- else false)
36- then (extract(getInteger(tx.data, "N")) == (if ((newN > 0))
37- then newN
38- else 1))
39- else false)
40- then (extract(getInteger(tx.data, "lastUpdate")) == height)
41- else false)
42- then (extract(getInteger(tx.data, "balanceOnLastUpdate")) == currentBalance)
43- else false)
44- then (tx.fee == 500000)
14+ then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
4515 else false
4616 case _ =>
4717 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
3-let this = extract(tx.sender)
4-let asset = base58'ExHsMiLc9eWokuf95Xwpr2SosZ7FejAqGepk1wWXrQFQ'
5-let N = extract(getInteger(this, "N"))
6-let lastUpdate = extract(getInteger(this, "lastUpdate"))
7-let balanceOnLastUpdate = extract(getInteger(this, "balanceOnLastUpdate"))
8-let currentBalance = assetBalance(this, asset)
9-let validityPeriod = 1000
10-let C = 10
11-let denominator = 100
3+let PoWAccount = extract(tx.sender)
4+let PoWAsset = base58'CZk46R9XmGhrtCHFRB1qJqZbQAM9yK2ys7c5xsakBjJ4'
125 match tx {
136 case tx: TransferTransaction =>
14- let firstBytes = toBase58String(take(tx.id, N))
15- let transferAmount = ((currentBalance / denominator) + 1)
16- if (if (if (if (if ((validityPeriod > (height - lastUpdate)))
17- then isDefined(getBoolean(this, firstBytes))
7+ if ((tx.assetId == PoWAsset))
8+ then (tx.fee == 900000)
9+ else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
10+ case tx: DataTransaction =>
11+ if (if ((size(tx.data) == 1))
12+ then (tx.data[0].key == "N")
1813 else false)
19- then (tx.amount == transferAmount)
20- else false)
21- then (tx.assetId == asset)
22- else false)
23- then (tx.fee == 500000)
24- else false)
25- then !(isDefined(tx.feeAssetId))
26- else false
27- case tx: DataTransaction =>
28- let newN = ((N + (if (((balanceOnLastUpdate - currentBalance) > (validityPeriod * C)))
29- then 1
30- else 0)) + (if (((validityPeriod / C) > (balanceOnLastUpdate - currentBalance)))
31- then -1
32- else 0))
33- if (if (if (if (if (((height - lastUpdate) >= validityPeriod))
34- then (size(tx.data) == 3)
35- else false)
36- then (extract(getInteger(tx.data, "N")) == (if ((newN > 0))
37- then newN
38- else 1))
39- else false)
40- then (extract(getInteger(tx.data, "lastUpdate")) == height)
41- else false)
42- then (extract(getInteger(tx.data, "balanceOnLastUpdate")) == currentBalance)
43- else false)
44- then (tx.fee == 500000)
14+ then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
4515 else false
4616 case _ =>
4717 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
4818 }

github/deemru/w8io/026f985 
21.59 ms