tx · kRbmHTdPFuHCvva71GA7RqKPBExGdxaocZsaR9ue2Dd 3MxwS9SVbzkGjLhjwHzwU2Y5woR9GefLiyd: -1.04000000 Waves 2019.02.03 02:56 [478064] smart asset 3MxwS9SVbzkGjLhjwHzwU2Y5woR9GefLiyd > SELF 0 xxxx
{ "type": 15, "id": "kRbmHTdPFuHCvva71GA7RqKPBExGdxaocZsaR9ue2Dd", "fee": 104000000, "feeAssetId": null, "timestamp": 1549151776289, "version": 1, "sender": "3MxwS9SVbzkGjLhjwHzwU2Y5woR9GefLiyd", "senderPublicKey": "CPzTyJ5SnPvs5ksmtZGfNhEUYgGKZD9iAuG6LEieENjE", "proofs": [ "4t4cq187XVtAMTTktxhvjtyxwa4ucMiz1Dx8TfZkaZAMe31bFMZbWmK4aNqgnAzrAGq5sVoBieWHV9qdqBE9L87K" ], "assetId": "7qQJ3Pwt41BaQNJ9sVSnGGCgm36i2jLBE6aVPJ4mwuQw", "script": "base64:AQQAAAARdm90ZUJhbmtQdWJsaWNLZXkJAAJZAAAAAQIAAAArYXpXaHlOTVFqRVk5QVF0MmV5U1hYcVIyOE5Kd0ViSlRLeTEzMnprVm9UZQQAAAAIdm90ZUJhbmsJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAEXZvdGVCYW5rUHVibGljS2V5BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAQAAAAHaXNzdWVUeAkAA+gAAAABCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAF0AAAAB2Fzc2V0SWQEAAAAByRtYXRjaDEFAAAAB2lzc3VlVHgDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAEElzc3VlVHJhbnNhY3Rpb24EAAAAB2lzc3VlVHgFAAAAByRtYXRjaDEEAAAAEXJlZ0Fzc2V0Rm9yVm90aW5nCQAEGgAAAAIFAAAACHZvdGVCYW5rCQACWAAAAAEIBQAAAAdpc3N1ZVR4AAAAAmlkAwkAAAAAAAACCAUAAAABdAAAAAZzZW5kZXIIBQAAAAdpc3N1ZVR4AAAABnNlbmRlcgQAAAAYdm90aW5nQXNzZXRDb25kaXRpb25zTWV0AwMDAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEXJlZ0Fzc2V0Rm9yVm90aW5nCQAAAAAAAAIIBQAAAAF0AAAACXJlY2lwaWVudAUAAAAIdm90ZUJhbmsHCQEAAAABIQAAAAEIBQAAAAdpc3N1ZVR4AAAACnJlaXNzdWFibGUHCQAAAAAAAAIIBQAAAAdpc3N1ZVR4AAAACHF1YW50aXR5CAUAAAABdAAAAAZhbW91bnQHCQAAAAAAAAIIBQAAAAdpc3N1ZVR4AAAACGRlY2ltYWxzAAAAAAAAAAAABwMFAAAAGHZvdGluZ0Fzc2V0Q29uZGl0aW9uc01ldAYJAAACAAAAAQIAAABEc3RhcnQgdm90aW5nIGNvbmRpdGlvbnMgbm90IG1ldC4gVm90aW5nIG5vdCByZWdpc3RyZWQgb3Igd3JvbmcgYXNzZXQEAAAADnZvdGVyUHVibGljS2V5CAUAAAABdAAAAAphdHRhY2htZW50BAAAAAx2b3RlckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADnZvdGVyUHVibGljS2V5BAAAAAp2b3RlclJlZ0lkCQAEHAAAAAIIBQAAAAdpc3N1ZVR4AAAABnNlbmRlcgkAAlgAAAABCAUAAAAMdm90ZXJBZGRyZXNzAAAABWJ5dGVzAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAACnZvdGVyUmVnSWQEAAAADnZvdGVyU2lnbmF0dXJlCQAAyQAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAAKdm90ZXJSZWdJZAAAAAAAAAAAQAQAAAAJdm90ZXJUeElkCQAAygAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAAKdm90ZXJSZWdJZAAAAAAAAAAAQAMJAAAAAAAAAggFAAAAAXQAAAACaWQFAAAACXZvdGVyVHhJZAMDAwMJAAAAAAAAAggFAAAAAXQAAAAPc2VuZGVyUHVibGljS2V5BQAAABF2b3RlQmFua1B1YmxpY0tleQkAAAAAAAACCAUAAAABdAAAAAZhbW91bnQAAAAAAAAAAAEHCQAAZgAAAAIAAAAAAACYloAIBQAAAAF0AAAAA2ZlZQcJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAPoAAAAAQUAAAAJdm90ZXJUeElkBwkAAfQAAAADCAUAAAABdAAAAAlib2R5Qnl0ZXMFAAAADnZvdGVyU2lnbmF0dXJlBQAAAA52b3RlclB1YmxpY0tleQcJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAVd3JvbmcgdHggaWQgcmVnaXN0cmVkCQACWAAAAAEFAAAADnZvdGVyU2lnbmF0dXJlAgAAAAEgCQACWAAAAAEFAAAACXZvdGVyVHhJZAkAAAIAAAABAgAAABN2b3RlciBub3QgcmVnaXN0cmVkBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABeAUAAAAHJG1hdGNoMAYH7m1bZg==", "chainId": 84, "height": 478064, "spentComplexity": 0 } View: original | compacted Prev: 6RiijBwdLP53zSJGHdShkAAAGTokrq3Ag2HubvucvpML Next: none Diff:
Old | New | Differences | |
---|---|---|---|
41 | 41 | else false) | |
42 | 42 | then sigVerify(t.bodyBytes, voterSignature, voterPublicKey) | |
43 | 43 | else false | |
44 | - | else throw("wrong tx id registred") | |
44 | + | else throw(((("wrong tx id registred" + toBase58String(voterSignature)) + " ") + toBase58String(voterTxId))) | |
45 | 45 | } | |
46 | 46 | else throw("voter not registred") | |
47 | 47 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let voteBankPublicKey = fromBase58String("azWhyNMQjEY9AQt2eySXXqR28NJwEbJTKy132zkVoTe") | |
4 | 4 | let voteBank = addressFromPublicKey(voteBankPublicKey) | |
5 | 5 | match tx { | |
6 | 6 | case t: TransferTransaction => | |
7 | 7 | let issueTx = transactionById(extract(t.assetId)) | |
8 | 8 | match issueTx { | |
9 | 9 | case issueTx: IssueTransaction => | |
10 | 10 | let regAssetForVoting = getInteger(voteBank, toBase58String(issueTx.id)) | |
11 | 11 | if ((t.sender == issueTx.sender)) | |
12 | 12 | then { | |
13 | 13 | let votingAssetConditionsMet = if (if (if (if (isDefined(regAssetForVoting)) | |
14 | 14 | then (t.recipient == voteBank) | |
15 | 15 | else false) | |
16 | 16 | then !(issueTx.reissuable) | |
17 | 17 | else false) | |
18 | 18 | then (issueTx.quantity == t.amount) | |
19 | 19 | else false) | |
20 | 20 | then (issueTx.decimals == 0) | |
21 | 21 | else false | |
22 | 22 | if (votingAssetConditionsMet) | |
23 | 23 | then true | |
24 | 24 | else throw("start voting conditions not met. Voting not registred or wrong asset") | |
25 | 25 | } | |
26 | 26 | else { | |
27 | 27 | let voterPublicKey = t.attachment | |
28 | 28 | let voterAddress = addressFromPublicKey(voterPublicKey) | |
29 | 29 | let voterRegId = getBinary(issueTx.sender, toBase58String(voterAddress.bytes)) | |
30 | 30 | if (isDefined(voterRegId)) | |
31 | 31 | then { | |
32 | 32 | let voterSignature = take(extract(voterRegId), 64) | |
33 | 33 | let voterTxId = drop(extract(voterRegId), 64) | |
34 | 34 | if ((t.id == voterTxId)) | |
35 | 35 | then if (if (if (if ((t.senderPublicKey == voteBankPublicKey)) | |
36 | 36 | then (t.amount == 1) | |
37 | 37 | else false) | |
38 | 38 | then (10000000 > t.fee) | |
39 | 39 | else false) | |
40 | 40 | then !(isDefined(transactionById(voterTxId))) | |
41 | 41 | else false) | |
42 | 42 | then sigVerify(t.bodyBytes, voterSignature, voterPublicKey) | |
43 | 43 | else false | |
44 | - | else throw("wrong tx id registred") | |
44 | + | else throw(((("wrong tx id registred" + toBase58String(voterSignature)) + " ") + toBase58String(voterTxId))) | |
45 | 45 | } | |
46 | 46 | else throw("voter not registred") | |
47 | 47 | } | |
48 | 48 | case _ => | |
49 | 49 | false | |
50 | 50 | } | |
51 | 51 | case x: SetAssetScriptTransaction => | |
52 | 52 | true | |
53 | 53 | case _ => | |
54 | 54 | false | |
55 | 55 | } |
github/deemru/w8io/026f985 55.09 ms ◑