tx · FuDNeLRg4dW2EQieV6sNAM4hPyNdMiRkJTcfk1WSTnK2

3MxtQrEmBbDFbySn3ayXvcRjZbyScx4xzzc:  -0.01400000 Waves

2019.08.19 17:52 [638177] smart account 3MxtQrEmBbDFbySn3ayXvcRjZbyScx4xzzc > SELF 0.00000000 Waves

{ "type": 13, "id": "FuDNeLRg4dW2EQieV6sNAM4hPyNdMiRkJTcfk1WSTnK2", "fee": 1400000, "feeAssetId": null, "timestamp": 1566226327164, "version": 1, "sender": "3MxtQrEmBbDFbySn3ayXvcRjZbyScx4xzzc", "senderPublicKey": "8eoHp1Jim29PQhkXAFXPJz9VisX26f32aDzcruV2oAp6", "proofs": [ "3TdQrHXyoGa1Tv2H4pLt1saeWNNoub7SvFcQuhkuKrQerqXp8yc85F3DKFX5FVBVsKtGUrUu3BNaLkpCsjyMUT9V" ], "script": "base64:AwQAAAAHUHViS2V5MQEAAAAgaQxxSAhSITOlMYdvwKcfK7u/x0yzOg/68EH0ax0QlWUEAAAAB1B1YktleTIBAAAAILb58FcZXTIbjEshMW6ayDB2XcNop87YatlbtNE8j6N0BAAAAARzaWcxAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAB1B1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAABHNpZzIDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAHUHViS2V5MgAAAAAAAAAAAQAAAAAAAAAAAAkAAGYAAAACCQAAZAAAAAIFAAAABHNpZzEFAAAABHNpZzIAAAAAAAAAAADO+UOI", "chainId": 84, "height": 638177, "spentComplexity": 0 } View: original | compacted Prev: 2jztBp8Upc83j3LYGseTTgbpWqpHEKTBwdAuKzcBNeq9 Next: E7d7fG2EiSELG1eGWFZpFoFQT1mWnSDFCdBvz6oy3cJN Full:
OldNewDifferences
1-{-# STDLIB_VERSION 1 #-}
1+{-# STDLIB_VERSION 3 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
3-let dealer = base58'BrpLMJrt3XATLKfqc24Vf95caJgpz781uz58riLeJAQj'
4-let dealerAddress = addressFromPublicKey(base58'BrpLMJrt3XATLKfqc24Vf95caJgpz781uz58riLeJAQj')
5-let player = base58'2KwU4vzdgPmKyf7q354H9kSyX9NZjNiq4qbnH2wi2VDF'
6-let playerAddress = addressFromPublicKey(base58'2KwU4vzdgPmKyf7q354H9kSyX9NZjNiq4qbnH2wi2VDF')
7-let multiSigAddress = addressFromPublicKey(base58'8eoHp1Jim29PQhkXAFXPJz9VisX26f32aDzcruV2oAp6')
8-match tx {
9- case tx: DataTransaction =>
10- let dealerSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], dealer))
11- then 1
12- else 0
13- let playerSigned = if (sigVerify(tx.bodyBytes, tx.proofs[1], player))
14- then 1
15- else 0
16- let block = extract(getInteger(multiSigAddress, "block"))
17- if ((block > 0))
18- then {
19- let method = extract(getString(tx.data, "method"))
20- if ((method == "game"))
21- then {
22- let lastBlock = extract(getInteger(multiSigAddress, "lastBlock"))
23- let newLastBlock = extract(getInteger(tx.data, "lastBlock"))
24- if ((newLastBlock > lastBlock))
25- then ((dealerSigned + playerSigned) == 2)
26- else false
27- }
28- else if ((method == "getSaltDealer"))
29- then (playerSigned == 1)
30- else if ((method == "getSaltPlayer"))
31- then (dealerSigned == 1)
32- else if ((method == "setSaltPlayer"))
33- then {
34- let hashLastGame = extract(getString(multiSigAddress, "hashLastGame"))
35- let hashLastBlock = extract(getString(multiSigAddress, "hashLastBlock"))
36- let saltPlayer = extract(getString(tx.data, "saltPlayer"))
37- if ((sha256(toBytes((saltPlayer + hashLastBlock))) == toBytes(hashLastBlock)))
38- then (playerSigned == 1)
39- else false
40- }
41- else if ((method == "setSaltDealer"))
42- then {
43- let hashLastGame = extract(getString(multiSigAddress, "hashLastGame"))
44- let hashLastBlock = extract(getString(multiSigAddress, "hashLastBlock"))
45- let saltDealer = extract(getString(tx.data, "saltDealer"))
46- if ((sha256(toBytes((saltDealer + hashLastGame))) == toBytes(hashLastBlock)))
47- then (dealerSigned == 1)
48- else false
49- }
50- else false
51- }
52- else {
53- let newBlock = extract(getInteger(tx.data, "block"))
54- (newBlock > 0)
55- }
56- case tt: TransferTransaction =>
57- let failurePayOut = extract(getBoolean(multiSigAddress, "failurePayOut"))
58- let lastBlock = extract(getInteger(multiSigAddress, "lastBlock"))
59- if ((tt.recipient == multiSigAddress))
60- then if ((dealerAddress == tt.sender))
61- then (tt.amount != 0)
62- else (tt.amount != 0)
63- else if (if ((failurePayOut == true))
64- then (height > lastBlock)
65- else false)
66- then true
67- else false
68- case mtx: MassTransferTransaction =>
69- if ((mtx.sender == multiSigAddress))
70- then {
71- let block = extract(getInteger(multiSigAddress, "block"))
72- if ((height > block))
73- then true
74- else {
75- let failurePayOut = extract(getBoolean(multiSigAddress, "failurePayOut"))
76- let lastBlock = extract(getInteger(multiSigAddress, "lastBlock"))
77- if (((lastBlock + 3) > height))
78- then if ((failurePayOut == false))
79- then {
80- let dealerSigned = if (sigVerify(mtx.bodyBytes, mtx.proofs[0], dealer))
81- then 1
82- else 0
83- let playerSigned = if (sigVerify(mtx.bodyBytes, mtx.proofs[1], player))
84- then 1
85- else 0
86- ((dealerSigned + playerSigned) == 2)
87- }
88- else false
89- else false
90- }
91- }
92- else false
93- case ta: SetScriptTransaction =>
94- true
95- case _ =>
96- false
97-}
3+let PubKey1 = base58'854p8BYzrj6yBPRPmfQur3oF1Rjc1AJ548qRp5FT5kDa'
4+let PubKey2 = base58'DKGFPozLrsiR8NM4NJzqQaBYC8NyGYjuw2hDYicQVjco'
5+let sig1 = if (sigVerify(tx.bodyBytes, tx.proofs[0], PubKey1))
6+ then 1
7+ else 0
8+let sig2 = if (sigVerify(tx.bodyBytes, tx.proofs[1], PubKey2))
9+ then 1
10+ else 0
11+((sig1 + sig2) > 0)

github/deemru/w8io/169f3d6 
42.78 ms