tx · FFeuTxhcLforNgPx4hwX9MJQ1VHLeJ1odLagV1273QS2

3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f:  -0.01400000 Waves

2018.09.29 15:17 [353273] smart account 3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f > SELF 0.00000000 Waves

{ "type": 13, "id": "FFeuTxhcLforNgPx4hwX9MJQ1VHLeJ1odLagV1273QS2", "fee": 1400000, "feeAssetId": null, "timestamp": 1538223501133, "version": 1, "sender": "3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f", "senderPublicKey": "4BRdUi95rN89kRWamqTcb9Dj9pLpAQbjLt17MPxcgGhG", "proofs": [ "3LmGubvdxJUABzqeGR8crtX5oWehTmZECy91ALwep56F1fqGG6JPhwG5krRjZRA1uRHzHJLUVNhKJW5VDSUs1zw1" ], "script": "base64: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", "chainId": 84, "height": 353273, "spentComplexity": 0 } View: original | compacted Prev: BFg2qfV6Yk4vrANWoymmLRiLcF2M76VWajwURQuNimmh Next: DBwuZ3GPJMyvVncAu5sSmCcHrhP98xjbcs4GYniyFxHT Diff:
OldNewDifferences
9191 let fromUnits = extract(getInteger(contract, fromKey))
9292 let toUnits = extract(getInteger(contract, toKey))
9393 let redAttackers = (fromUnits % 100)
94- let greenAttackers = ((fromUnits - redAttackers) / 100)
95- let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 100)
94+ let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
95+ let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
9696 let redDefenders = (toUnits % 100)
97- let greenDefenders = ((toUnits - redDefenders) / 100)
98- let blueDefenders = (((toUnits - (greenDefenders * 100)) - redDefenders) / 100)
97+ let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
98+ let blueDefenders = (((toUnits - (greenDefenders * 100)) - redDefenders) / 10000)
9999 let attackers = ((redAttackers + greenAttackers) + blueAttackers)
100100 let defenders = ((redDefenders + greenDefenders) + blueDefenders)
101101 let king = if (if (if ((redAttackers > 0))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let redPubKey = base58'BYrrqVpD5uuz7cndnPwuUxuYFUK6Bovu6yfoV8seY6Px'
44 let greenPubKey = base58'HnSkSntD7ihFgZpLNmHgdVnVmCYxJLC96eNbubTXsWju'
55 let bluePubKey = base58'5Ak4HQK3cnkwe6XVUXwpCYeSAARwruKyAmsmegePUPvo'
66 let redAddr = Address(base58'3MyP3hrK8SBvtXtggNWdsry8KuGdrv1sFrV')
77 let greenAddr = Address(base58'3MzzYQCC8Ks86exHaWV2VpaANbNLPRDunNJ')
88 let blueAddr = Address(base58'3MuuWYr3DyjEkncbNU1tUeFbyvcyZng9gz4')
99 let contract = tx.sender
1010 let redSigned = sigVerify(tx.bodyBytes, tx.proofs[0], redPubKey)
1111 let greenSigned = sigVerify(tx.bodyBytes, tx.proofs[0], greenPubKey)
1212 let blueSigned = sigVerify(tx.bodyBytes, tx.proofs[0], bluePubKey)
1313 match tx {
1414 case ttx: DataTransaction =>
1515 let dataSize = size(ttx.data)
1616 let fromKey = ttx.data[0].key
1717 let toKey = ttx.data[1].key
1818 let newFromUnits = ttx.data[0].value
1919 let newToUnits = ttx.data[1].value
2020 let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
2121 then (toKey == "country2")
2222 else false)
2323 then true
2424 else if ((fromKey == "country2"))
2525 then if ((toKey == "country1"))
2626 then true
2727 else (toKey == "country3")
2828 else false)
2929 then true
3030 else if ((fromKey == "country3"))
3131 then if (if ((toKey == "country2"))
3232 then true
3333 else (toKey == "country4"))
3434 then true
3535 else (toKey == "country5")
3636 else false)
3737 then true
3838 else if ((fromKey == "country4"))
3939 then if ((toKey == "country3"))
4040 then true
4141 else (toKey == "country8")
4242 else false)
4343 then true
4444 else if ((fromKey == "country5"))
4545 then if ((toKey == "country3"))
4646 then true
4747 else (toKey == "country10")
4848 else false)
4949 then true
5050 else if ((fromKey == "country6"))
5151 then (toKey == "country7")
5252 else false)
5353 then true
5454 else if ((fromKey == "country7"))
5555 then if ((toKey == "country6"))
5656 then true
5757 else (toKey == "country8")
5858 else false)
5959 then true
6060 else if ((fromKey == "country8"))
6161 then if (if ((toKey == "country4"))
6262 then true
6363 else (toKey == "country7"))
6464 then true
6565 else (toKey == "country9")
6666 else false)
6767 then true
6868 else if ((fromKey == "country9"))
6969 then if ((toKey == "country8"))
7070 then true
7171 else (toKey == "country10")
7272 else false)
7373 then true
7474 else if ((fromKey == "country10"))
7575 then if (if ((toKey == "country5"))
7676 then true
7777 else (toKey == "country10"))
7878 then true
7979 else (toKey == "country11")
8080 else false)
8181 then true
8282 else if ((fromKey == "country11"))
8383 then if ((toKey == "country10"))
8484 then true
8585 else (toKey == "country12")
8686 else false)
8787 then true
8888 else if ((fromKey == "country12"))
8989 then (toKey == "country11")
9090 else false
9191 let fromUnits = extract(getInteger(contract, fromKey))
9292 let toUnits = extract(getInteger(contract, toKey))
9393 let redAttackers = (fromUnits % 100)
94- let greenAttackers = ((fromUnits - redAttackers) / 100)
95- let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 100)
94+ let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
95+ let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
9696 let redDefenders = (toUnits % 100)
97- let greenDefenders = ((toUnits - redDefenders) / 100)
98- let blueDefenders = (((toUnits - (greenDefenders * 100)) - redDefenders) / 100)
97+ let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
98+ let blueDefenders = (((toUnits - (greenDefenders * 100)) - redDefenders) / 10000)
9999 let attackers = ((redAttackers + greenAttackers) + blueAttackers)
100100 let defenders = ((redDefenders + greenDefenders) + blueDefenders)
101101 let king = if (if (if ((redAttackers > 0))
102102 then redSigned
103103 else false)
104104 then true
105105 else if ((greenAttackers > 0))
106106 then greenSigned
107107 else false)
108108 then true
109109 else if ((blueAttackers > 0))
110110 then blueSigned
111111 else false
112112 let multiAttackers = (fromUnits / attackers)
113113 let multiDefenders = (toUnits / defenders)
114114 let win = if (if (if (if (king)
115115 then (multiAttackers != multiDefenders)
116116 else false)
117117 then (attackers > defenders)
118118 else false)
119119 then (newFromUnits == 0)
120120 else false)
121121 then (newToUnits == ((attackers - defenders) * multiAttackers))
122122 else false
123123 let lost = if (if (if (if (king)
124124 then (multiAttackers != multiDefenders)
125125 else false)
126126 then (defenders > attackers)
127127 else false)
128128 then (newFromUnits == 0)
129129 else false)
130130 then (newToUnits == ((defenders - attackers) * multiDefenders))
131131 else false
132132 let draw = if (if (if (if (king)
133133 then (multiAttackers != multiDefenders)
134134 else false)
135135 then (attackers == defenders)
136136 else false)
137137 then (newFromUnits == 0)
138138 else false)
139139 then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
140140 else false
141141 let move = if (if (if (if (king)
142142 then (multiAttackers == multiDefenders)
143143 else false)
144144 then (newFromUnits == 0)
145145 else false)
146146 then (10 >= (attackers + defenders))
147147 else false)
148148 then (newToUnits == ((attackers + defenders) * multiAttackers))
149149 else false
150150 if (if (if (if (if (win)
151151 then true
152152 else lost)
153153 then true
154154 else draw)
155155 then true
156156 else move)
157157 then (dataSize == 2)
158158 else false)
159159 then true
160160 else (dataSize == 12)
161161 case ntx: TransferTransaction =>
162162 true
163163 case _ =>
164164 true
165165 }

github/deemru/w8io/873ac7e 
42.23 ms