tx · 3QRPAWLvqkBDosUTsQMRzurxWt4ZduWAem3PQWYbRYKv 3Mz9N7YPfZPWGd4yYaX6H53Gcgrq6ifYiH7: -1.00000000 Waves 2019.03.19 19:02 [543341] smart asset 3Mz9N7YPfZPWGd4yYaX6H53Gcgrq6ifYiH7 > SELF 0 HOT POTATO
{ "type": 15, "id": "3QRPAWLvqkBDosUTsQMRzurxWt4ZduWAem3PQWYbRYKv", "fee": 100000000, "feeAssetId": null, "timestamp": 1553011354926, "version": 1, "sender": "3Mz9N7YPfZPWGd4yYaX6H53Gcgrq6ifYiH7", "senderPublicKey": "2M25DqL2W4rGFLCFadgATboS8EPqyWAN3DjH12AH5Kdr", "proofs": [ "2g1QfHcy7ETxC33TXhb47wa9gDxLXTcghfjM6FBkxrjmNdVcyDPq6nr8ekpehGL7g4cFgCCo7a27wTycnyzbTKYi" ], "assetId": "4BTv2xDm1apCRXxQJ5Hhq3UrLvsEr8ougJR1tkAhaxBQ", "script": "base64:AgQAAAATbWluaW11bVdhdmVzQmFsYW5jZQAAAAAAO5rKAAQAAAAQbW92ZVRpbWVJbkJsb2NrcwAAAAAAAAATiAQAAAAQbWluaW1hbEZlZVRvTW92ZQAAAAAAAJiWgAQAAAAQbWluaW1hbEZlZVRvQnVybgAAAAAAAvrwgAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAEAAAABHR4SWQIBQAAAAF0AAAACmF0dGFjaG1lbnQEAAAAHGN1cnJlbnRSZWNpcGllbnRXYXZlc0JhbGFuY2UJAQAAAAx3YXZlc0JhbGFuY2UAAAABCAUAAAABdAAAAAlyZWNpcGllbnQEAAAAC3RyYW5zYWN0aW9uCQAD6AAAAAEJAQAAAAdleHRyYWN0AAAAAQgFAAAAAXQAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMQUAAAALdHJhbnNhY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAEElzc3VlVHJhbnNhY3Rpb24EAAAAB2lzc3VlVHgFAAAAByRtYXRjaDEEAAAAE3RyYW5zYWN0aW9uQnlJc3N1ZXIJAAAAAAAAAggFAAAAAXQAAAAPc2VuZGVyUHVibGljS2V5CAUAAAAHaXNzdWVUeAAAAA9zZW5kZXJQdWJsaWNLZXkDBQAAABN0cmFuc2FjdGlvbkJ5SXNzdWVyAwkAAGYAAAACBQAAABNtaW5pbXVtV2F2ZXNCYWxhbmNlBQAAABxjdXJyZW50UmVjaXBpZW50V2F2ZXNCYWxhbmNlCQAAAgAAAAECAAAAMEN1cnJlbnQgYmFsYW5jZSBpcyBsZXNzIHRoYW4gbWluaW1hbFdhdmVzQmFsYW5jZQYDCQAAZgAAAAIAAAAAAAAAACAJAADIAAAAAQgFAAAAAXQAAAAKYXR0YWNobWVudAkAAAIAAAABAgAAAClBdHRhY2htZW50IHNob3VsZCBjb250YWluIHRyYW5zYWN0aW9uIGlkIAQAAAAJcmVjZWl2ZVR4CQAD6AAAAAEFAAAABHR4SWQEAAAAByRtYXRjaDIFAAAACXJlY2VpdmVUeAMDCQAAAQAAAAIFAAAAByRtYXRjaDICAAAAF01hc3NUcmFuc2ZlclRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gyAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAVyZWNUeAUAAAAHJG1hdGNoMgQAAAATcmVjZWl2ZWRCbG9ja051bWJlcgkBAAAAB2V4dHJhY3QAAAABCQAD6QAAAAEIBQAAAAVyZWNUeAAAAAJpZAQAAAAacmVjZWl2ZWRBc3NldEluTGFzdE5CbG9ja3MDCQAAZwAAAAIFAAAAEG1vdmVUaW1lSW5CbG9ja3MJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABNyZWNlaXZlZEJsb2NrTnVtYmVyCQAAAAAAAAIIBQAAAAF0AAAAB2Fzc2V0SWQIBQAAAAVyZWNUeAAAAAdhc3NldElkBwQAAAANZmVlTW9yZTFXYXZlcwkAAGcAAAACCAUAAAABdAAAAANmZWUFAAAAEG1pbmltYWxGZWVUb01vdmUDAwkBAAAAASEAAAABBQAAABpyZWNlaXZlZEFzc2V0SW5MYXN0TkJsb2NrcwkBAAAAASEAAAABBQAAAA1mZWVNb3JlMVdhdmVzBwkAAAIAAAABAgAAAD1Zb3UgZ290IHBvdGF0byBsb25nIHRpbWUgYWdvLCBub3cgeW91IGhhdmUgdG8gcGF5IDEgV0FWRVMgZmVlAwUAAAAacmVjZWl2ZWRBc3NldEluTGFzdE5CbG9ja3MGBQAAAA1mZWVNb3JlMVdhdmVzCQAAAgAAAAECAAAAH1JlY2VpdmUgdHggc2hvdWxkIGJlIGEgdHJhbnNmZXIJAAACAAAAAQIAAAAMTm90IGlzc3VlIHR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9CdXJuVHJhbnNhY3Rpb24EAAAABGJ1cm4FAAAAByRtYXRjaDADCQAAZgAAAAIFAAAAEG1pbmltYWxGZWVUb0J1cm4IBQAAAARidXJuAAAAA2ZlZQkAAAIAAAABAgAAACpZb3UgaGF2ZSB0byBwYXkgNSBXQVZFUyB0byBidXJuIHRoaXMgdG9rZW4GAwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAABG1hc3MFAAAAByRtYXRjaDAEAAAAC3RyYW5zYWN0aW9uCQAD6AAAAAEJAQAAAAdleHRyYWN0AAAAAQgFAAAABG1hc3MAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMQUAAAALdHJhbnNhY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAEElzc3VlVHJhbnNhY3Rpb24EAAAAB2lzc3VlVHgFAAAAByRtYXRjaDEJAAAAAAAAAggFAAAABG1hc3MAAAAPc2VuZGVyUHVibGljS2V5CAUAAAAHaXNzdWVUeAAAAA9zZW5kZXJQdWJsaWNLZXkJAAACAAAAAQIAAAARQmFkIGlzc3VlIHR4IHR5cGUJAAACAAAAAQIAAAAgWW91IG9ubHkgY2FuIHRyYW5zZmVyIHRoaXMgdG9rZW7MiftE", "chainId": 84, "height": 543341, "spentComplexity": 0 } View: original | compacted Prev: 5dMVayXUHKyMBEx7Y32oTuQEg3Yb2n1GkDJauUqe4sBc Next: 2KMxPdggyRjrdzFvFmvpRi1W9Ukv8XrA9KBjpgmxUmhA Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 2 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let minimumWavesBalance = 1000000000 | |
4 | 4 | let moveTimeInBlocks = 5000 | |
5 | 5 | let minimalFeeToMove = 10000000 | |
6 | 6 | let minimalFeeToBurn = 50000000 | |
7 | 7 | match tx { | |
8 | 8 | case t: TransferTransaction => | |
9 | 9 | let txId = t.attachment | |
10 | 10 | let currentRecipientWavesBalance = wavesBalance(t.recipient) | |
11 | 11 | let transaction = transactionById(extract(t.assetId)) | |
12 | 12 | match transaction { | |
13 | 13 | case issueTx: IssueTransaction => | |
14 | 14 | let transactionByIssuer = (t.senderPublicKey == issueTx.senderPublicKey) | |
15 | 15 | if (transactionByIssuer) | |
16 | 16 | then if ((minimumWavesBalance > currentRecipientWavesBalance)) | |
17 | 17 | then throw("Current balance is less than minimalWavesBalance") | |
18 | 18 | else true | |
19 | 19 | else if ((32 > size(t.attachment))) | |
20 | 20 | then throw("Attachment should contain transaction id ") | |
21 | 21 | else { | |
22 | 22 | let receiveTx = transactionById(txId) | |
23 | 23 | match receiveTx { | |
24 | 24 | case recTx: MassTransferTransaction|TransferTransaction => | |
25 | 25 | let receivedBlockNumber = extract(transactionHeightById(recTx.id)) | |
26 | 26 | let receivedAssetInLastNBlocks = if ((moveTimeInBlocks >= (height - receivedBlockNumber))) | |
27 | 27 | then (t.assetId == recTx.assetId) | |
28 | 28 | else false | |
29 | 29 | let feeMore1Waves = (t.fee >= minimalFeeToMove) | |
30 | 30 | if (if (!(receivedAssetInLastNBlocks)) | |
31 | 31 | then !(feeMore1Waves) | |
32 | 32 | else false) | |
33 | 33 | then throw("You got potato long time ago, now you have to pay 1 WAVES fee") | |
34 | 34 | else if (receivedAssetInLastNBlocks) | |
35 | 35 | then true | |
36 | 36 | else feeMore1Waves | |
37 | 37 | case _ => | |
38 | 38 | throw("Receive tx should be a transfer") | |
39 | 39 | } | |
40 | 40 | } | |
41 | 41 | case _ => | |
42 | 42 | throw("Not issue tx") | |
43 | 43 | } | |
44 | 44 | case burn: BurnTransaction => | |
45 | 45 | if ((minimalFeeToBurn > burn.fee)) | |
46 | 46 | then throw("You have to pay 5 WAVES to burn this token") | |
47 | 47 | else true | |
48 | 48 | case mass: SetAssetScriptTransaction|MassTransferTransaction => | |
49 | 49 | let transaction = transactionById(extract(mass.assetId)) | |
50 | 50 | match transaction { | |
51 | 51 | case issueTx: IssueTransaction => | |
52 | 52 | (mass.senderPublicKey == issueTx.senderPublicKey) | |
53 | 53 | case _ => | |
54 | 54 | throw("Bad issue tx type") | |
55 | 55 | } | |
56 | 56 | case _ => | |
57 | 57 | throw("You only can transfer this token") | |
58 | 58 | } |
github/deemru/w8io/026f985 20.21 ms ◑