tx · 2LSSjZ9U2cZsGDULUmFm88j6VH6Uac6mehJm5uDNqwSu

3Mxe3HYDHbWbDCjBY2cg5m61ua794YZUrAq:  -0.01400000 Waves

2019.03.15 22:01 [537650] smart account 3Mxe3HYDHbWbDCjBY2cg5m61ua794YZUrAq > SELF 0.00000000 Waves

{ "type": 13, "id": "2LSSjZ9U2cZsGDULUmFm88j6VH6Uac6mehJm5uDNqwSu", "fee": 1400000, "feeAssetId": null, "timestamp": 1552676507464, "version": 1, "sender": "3Mxe3HYDHbWbDCjBY2cg5m61ua794YZUrAq", "senderPublicKey": "8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK", "proofs": [ "2fcr6mfVDAmvPDrKZLR16JJ2LNBQ7DxxkvneZs64ZAvLCrjsTFWvBccdht9mN1qQy9WjDqXhNn4eJo6E7KQA7dhF" ], "script": "base64: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Um5jRFZKNUZCbWM5eWd6TVRieGZFdFBMY1ZubksJAAACAAAAAQIAAAATZnJvbUJhc2U1OFN0cmluZyBFUQMJAAAAAAAAAggFAAAACXBheW1lbnRUeAAAAAphdHRhY2htZW50CQABmwAAAAECAAAALDhwUFVNQVh4c2E0eU54cVJuY0RWSjVGQm1jOXlnek1UYnhmRXRQTGNWbm5LCQAAAgAAAAECAAAACnRvQnl0ZXMgRVEJAAACAAAAAQIAAAAMdG9CeXRlcyBOT0VRAwMDAwMDAwMFAAAAFmRhdGFUcmFuc2FjdGlvbklzVmFsaWQJAQAAAAIhPQAAAAIIBQAAAAlwYXltZW50VHgAAAAGc2VuZGVyBQAAAAltZUFkZHJlc3MHCQEAAAACIT0AAAACCAUAAAAJcGF5bWVudFR4AAAABnNlbmRlcgUAAAANc2VydmVyQWRkcmVzcwcJAAAAAAAAAggFAAAACXBheW1lbnRUeAAAAAlyZWNpcGllbnQFAAAADXNlcnZlckFkZHJlc3MHCQAAZwAAAAIIBQAAAAlwYXltZW50VHgAAAAGYW1vdW50CQAAZQAAAAIFAAAACnBhaWRBbW91bnQFAAAACXBhaWRUeEZlZQcJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAlwYXltZW50VHgAAAAHYXNzZXRJZAcJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAlwYXltZW50VHgAAAAKZmVlQXNzZXRJZAcJAAH0AAAAAwgFAAAABmRhdGFUeAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAABmRhdGFUeAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAlwYXltZW50VHgAAAAPc2VuZGVyUHVibGljS2V5BwkAAAAAAAACCAUAAAAGZGF0YVR4AAAAA2ZlZQUAAAAJZGF0YVR4RmVlBwkAAAIAAAABAgAAADFEVDogVFJBTlNBQ1RJT04gdHlwZSBpcyBub3QgYSBUcmFuc2ZlclRyYW5zYWN0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAAFd2luVHgFAAAAByRtYXRjaDAEAAAAFXdpblRyYW5zZmVyQXR0YWNobWVudAgF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", "chainId": 84, "height": 537650, "spentComplexity": 0 } View: original | compacted Prev: BR2PBdLKL5kkgRUkPtob5qTvBq1FqMeXhoEcAA8ZJgxv Next: 4fFAMR4c75H1X5i9Mz6WjMfsi7W6nsfE58msBg3rgbi6 Diff:
OldNewDifferences
6868 if ((addressFromPublicKey(paymentTx.attachment) != addressFromPublicKey(base58'8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK')))
6969 then if ((paymentTx.attachment == base58'8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK'))
7070 then throw("base58 EQ")
71- else if ((paymentTx.attachment == mePublicKey))
72- then throw("string mePublicKey EQ")
71+ else if ((paymentTx.attachment == tx.senderPublicKey))
72+ then throw("mePublicKey EQ")
7373 else if ((paymentTx.attachment == fromBase58String("8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK")))
74- then throw("string fromBase58String EQ")
75- else throw("string NOEQ NOEQ")
74+ then throw("fromBase58String EQ")
75+ else if ((paymentTx.attachment == toBytes("8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK")))
76+ then throw("toBytes EQ")
77+ else throw("toBytes NOEQ")
7678 else if (if (if (if (if (if (if (if (dataTransactionIsValid)
7779 then (paymentTx.sender != meAddress)
7880 else false)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let author = "MaDaMa Labs @daidalos"
44 let oneWaves = 100000000
55 let paidAmount = (1 * oneWaves)
66 let winAmount = (10 * oneWaves)
77 let paidTxFee = (oneWaves / 100)
88 let dataTxFee = (oneWaves / 100)
99 let winTxFee = (oneWaves / 100)
1010 let startPos = 0
1111 let endPos = 24
1212 let saltLength = 50
1313 let meAddress = tx.sender
1414 let mePublicKey = tx.senderPublicKey
1515 if ((meAddress != addressFromPublicKey(mePublicKey)))
1616 then throw("INIT: SENDER IS WRONG")
1717 else {
1818 let serverAddressPublicKey = fromBase58String(extract(getString(tx.sender, "serverAddress")))
1919 let serverAddress = addressFromPublicKey(serverAddressPublicKey)
2020 match tx {
2121 case dataTx: DataTransaction =>
2222 let insertPosCheck = isDefined(getInteger(dataTx.data, "pos"))
2323 if (!(insertPosCheck))
2424 then throw("DT: POSITION value is not an integer")
2525 else {
2626 let insertPos = extract(getInteger(dataTx.data, "pos"))
2727 let validPos = if ((insertPos >= startPos))
2828 then (endPos >= insertPos)
2929 else false
3030 if (!(validPos))
3131 then throw("DT: POSITION is not valid")
3232 else {
3333 let insertPosStringTemp = if ((insertPos > 9))
3434 then toString(insertPos)
3535 else ("0" + toString(insertPos))
3636 let insertPosString = ("pos" + insertPosStringTemp)
3737 let paymentTxId = extract(getString(dataTx.data, insertPosString))
3838 let satisfiesFormat = if (if (if (if ((size(dataTx.data) == 3))
3939 then insertPosCheck
4040 else false)
4141 then isDefined(getString(dataTx.data, insertPosString))
4242 else false)
4343 then isDefined(getBoolean(dataTx.data, paymentTxId))
4444 else false)
4545 then (extract(getBoolean(dataTx.data, paymentTxId)) == true)
4646 else false
4747 if (!(satisfiesFormat))
4848 then throw("DT: DATA FORMAT is not valid")
4949 else {
5050 let posNotUsed = !(isDefined(getString(meAddress, insertPosString)))
5151 if (!(posNotUsed))
5252 then throw("DT: POSISTION alredy used")
5353 else {
5454 let txIdNotUsed = !(isDefined(getBoolean(meAddress, paymentTxId)))
5555 if (!(txIdNotUsed))
5656 then throw("DT: TXID alredy used")
5757 else {
5858 let dataTransactionIsValid = if (if (if (validPos)
5959 then satisfiesFormat
6060 else false)
6161 then posNotUsed
6262 else false)
6363 then txIdNotUsed
6464 else false
6565 let paymentTx = transactionById(fromBase58String(paymentTxId))
6666 match paymentTx {
6767 case paymentTx: TransferTransaction =>
6868 if ((addressFromPublicKey(paymentTx.attachment) != addressFromPublicKey(base58'8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK')))
6969 then if ((paymentTx.attachment == base58'8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK'))
7070 then throw("base58 EQ")
71- else if ((paymentTx.attachment == mePublicKey))
72- then throw("string mePublicKey EQ")
71+ else if ((paymentTx.attachment == tx.senderPublicKey))
72+ then throw("mePublicKey EQ")
7373 else if ((paymentTx.attachment == fromBase58String("8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK")))
74- then throw("string fromBase58String EQ")
75- else throw("string NOEQ NOEQ")
74+ then throw("fromBase58String EQ")
75+ else if ((paymentTx.attachment == toBytes("8pPUMAXxsa4yNxqRncDVJ5FBmc9ygzMTbxfEtPLcVnnK")))
76+ then throw("toBytes EQ")
77+ else throw("toBytes NOEQ")
7678 else if (if (if (if (if (if (if (if (dataTransactionIsValid)
7779 then (paymentTx.sender != meAddress)
7880 else false)
7981 then (paymentTx.sender != serverAddress)
8082 else false)
8183 then (paymentTx.recipient == serverAddress)
8284 else false)
8385 then (paymentTx.amount >= (paidAmount - paidTxFee))
8486 else false)
8587 then !(isDefined(paymentTx.assetId))
8688 else false)
8789 then !(isDefined(paymentTx.feeAssetId))
8890 else false)
8991 then sigVerify(dataTx.bodyBytes, dataTx.proofs[0], paymentTx.senderPublicKey)
9092 else false)
9193 then (dataTx.fee == dataTxFee)
9294 else false
9395 case _ =>
9496 throw("DT: TRANSACTION type is not a TransferTransaction")
9597 }
9698 }
9799 }
98100 }
99101 }
100102 }
101103 case winTx: MassTransferTransaction =>
102104 let winTransferAttachment = winTx.attachment
103105 if ((size(winTransferAttachment) != (saltLength + 5)))
104106 then throw("MTT: ATTACHMENT SIZE is wrong")
105107 else {
106108 let unitsBytes = takeRightBytes(take(winTransferAttachment, 2), 1)
107109 let tensBytes = take(winTransferAttachment, 1)
108110 let winBytes = takeRightBytes(take(winTransferAttachment, 4), 1)
109111 let unitsInt = if ((unitsBytes == toBytes("0")))
110112 then 0
111113 else if ((unitsBytes == toBytes("1")))
112114 then 1
113115 else if ((unitsBytes == toBytes("2")))
114116 then 2
115117 else if ((unitsBytes == toBytes("3")))
116118 then 3
117119 else if ((unitsBytes == toBytes("4")))
118120 then 4
119121 else if ((unitsBytes == toBytes("5")))
120122 then 5
121123 else if ((unitsBytes == toBytes("6")))
122124 then 6
123125 else if ((unitsBytes == toBytes("7")))
124126 then 7
125127 else if ((unitsBytes == toBytes("8")))
126128 then 8
127129 else if ((unitsBytes == toBytes("9")))
128130 then 9
129131 else 0
130132 let tensInt = if ((tensBytes == toBytes("0")))
131133 then 0
132134 else if ((tensBytes == toBytes("1")))
133135 then 10
134136 else if ((tensBytes == toBytes("2")))
135137 then 20
136138 else 0
137139 let posInt = (tensInt + unitsInt)
138140 let validPos = if ((posInt >= startPos))
139141 then (endPos >= posInt)
140142 else false
141143 if (!(validPos))
142144 then throw("MTT: POSITION NUMBER is not valid")
143145 else {
144146 let posString = if ((posInt > 9))
145147 then toString(posInt)
146148 else ("0" + toString(posInt))
147149 let posHashDefined = isDefined(getString(meAddress, ("hash" + posString)))
148150 if (!(posHashDefined))
149151 then throw("MTT: POSITION HASH did not found in data")
150152 else {
151153 let posHash = extract(getString(meAddress, ("hash" + posString)))
152154 let validateAttachment = (sha256(winTransferAttachment) == fromBase58String(posHash))
153155 if (!(validateAttachment))
154156 then throw("MTT: ATTACHMENT HASH is not valid")
155157 else {
156158 let serverAddressCheck = if ((winTx.transfers[0].recipient == serverAddress))
157159 then (size(winTx.transfers) == 2)
158160 else false
159161 if (!(serverAddressCheck))
160162 then throw("MTT: SERVER ADDRESS is wrong")
161163 else {
162164 let isWinner = (winBytes == toBytes("1"))
163165 if (!(isWinner))
164166 then throw("MTT: POSITION is not winner")
165167 else {
166168 let paymentTxId = extract(getString(meAddress, ("pos" + posString)))
167169 let paymentTx = transactionById(fromBase58String(paymentTxId))
168170 match paymentTx {
169171 case paymentTx: TransferTransaction =>
170172 let recipientIsThePayment = (winTx.transfers[1].recipient == paymentTx.sender)
171173 if (!(recipientIsThePayment))
172174 then throw("MTT: WINNER RECIPIENT is wrong")
173175 else if (if (if (if (if ((winTx.transfers[0].amount == ((wavesBalance(meAddress) - winAmount) - winTxFee)))
174176 then (winTx.transfers[1].amount == winAmount)
175177 else false)
176178 then !(isDefined(paymentTx.assetId))
177179 else false)
178180 then !(isDefined(paymentTx.feeAssetId))
179181 else false)
180182 then (winTx.fee == winTxFee)
181183 else false)
182184 then if (sigVerify(winTx.bodyBytes, winTx.proofs[0], mePublicKey))
183185 then true
184186 else sigVerify(winTx.bodyBytes, winTx.proofs[0], paymentTx.senderPublicKey)
185187 else false
186188 case _ =>
187189 throw("MTT: TRANSACTION type is not a TransferTransaction")
188190 }
189191 }
190192 }
191193 }
192194 }
193195 }
194196 }
195197 case serviceTx: TransferTransaction =>
196198 let wavesRestCheck = ((winAmount + winTxFee) > wavesBalance(meAddress))
197199 if (!(wavesRestCheck))
198200 then throw("TT: WAVES balance is more then win amount")
199201 else {
200202 let serverAddressCheck = (serviceTx.recipient == serverAddress)
201203 if (!(serverAddressCheck))
202204 then throw("TT: SERVER ADDRESS is wrong")
203205 else if (sigVerify(serviceTx.bodyBytes, serviceTx.proofs[0], mePublicKey))
204206 then (serviceTx.fee == winTxFee)
205207 else false
206208 }
207209 case _ =>
208210 sigVerify(tx.bodyBytes, tx.proofs[0], mePublicKey)
209211 }
210212 }

github/deemru/w8io/026f985 
68.79 ms