tx · 4iGoz13a8bz5oZtFxopaLKgeTAS2kaRF3KxKTPocenPY

3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV:  -1.00400000 Waves

2019.07.20 21:23 [594601] smart asset 3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV > SELF 0.00000000 TBTC

{ "type": 15, "id": "4iGoz13a8bz5oZtFxopaLKgeTAS2kaRF3KxKTPocenPY", "fee": 100400000, "feeAssetId": null, "timestamp": 1563647065439, "version": 1, "sender": "3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV", "senderPublicKey": "DANkK8NJhJ9K7AHbve8QzKkbyvJzr5pbttLhba7d9BGm", "proofs": [ "4fkE9gUJygwfx4xd71YouxxgL377eRryr6PY5JRvmjXAeaFCmp9AdTqrHJZk76iQ3dK9XUmLUsScWae7fW5AtbqR" ], "assetId": "Emn8cyGDFgnLCKLTXqVWhKJARhtR2muBUuZaSmqNzDfn", "script": "base64:AgQAAAAObWF0Y2hlckFkZHJlc3MJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNNczhmU2ZBeEJMRGpLdk5WZ0FDUnpRb0JMQ3RDV3h0YXd1BAAAAA5nYXRld2F5QWRkcmVzcwkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM01yaHR6djlLRXRqeDRtRzQ3b3hnamFoSEtXMzNvVG50RVYEAAAADVdoaXRlbGlzdEFkZHIJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNONkR3V3hUODJuR0pVd0J3ZDdMNTE0cjJ1NzFncjdXaHdKBAAAAAp2YWxpZFN0YXRlAAAAAAAAAAPoBAAAAANWZXICAAAADTEuMS40LXRlc3RuZXQEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAMDCQEAAAACIT0AAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAA5nYXRld2F5QWRkcmVzcwkBAAAAAiE9AAAAAggFAAAAAnR4AAAACXJlY2lwaWVudAUAAAAOZ2F0ZXdheUFkZHJlc3MHCQAAAgAAAAECAAAALE9ubHkgdHJhbnNhY3Rpb25zIHdpdGggYSBnYXRld2F5IGFyZSBhbGxvd2VkAwkAAAAAAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAA5nYXRld2F5QWRkcmVzcwYEAAAACndoaXRlMUxpc3QJAAJYAAAAAQgIBQAAAAJ0eAAAAAZzZW5kZXIAAAAFYnl0ZXMEAAAACGFzc2V0VHh0CQACWAAAAAEJAQAAAAdleHRyYWN0AAAAAQgFAAAAAnR4AAAAB2Fzc2V0SWQEAAAAD3doaXRlMUxpc3RBc3NldAkAASwAAAACCQABLAAAAAIFAAAACndoaXRlMUxpc3QCAAAAAV8FAAAACGFzc2V0VHh0BAAAABF3aGl0ZTFMaXN0T3ZlcmFsbAkAASwAAAACAgAAAARyZXNfBQAAAAhhc3NldFR4dAQAAAAPd2hpdGUxTGlzdEVudHJ5CQAEGgAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAANV2hpdGVsaXN0QWRkcgUAAAAKd2hpdGUxTGlzdAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAD3doaXRlMUxpc3RFbnRyeQkAAAIAAAABAgAAAC1UaGUgc2VuZGVyJ3MgYWRkcmVzcyBpcyBub3QgaW4gdGhlIHdoaXRlIGxpc3QDCQEAAAACIT0AAAACBQAAAA93aGl0ZTFMaXN0RW50cnkFAAAACnZhbGlkU3RhdGUJAAACAAAAAQIAAAAcU2VuZGVyIGlzIG5vdCBpbiB2YWxpZCBzdGF0ZQQAAAAUd2hpdGUxTGlzdEFzc2V0RW50cnkJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAA1XaGl0ZWxpc3RBZGRyBQAAAA93aGl0ZTFMaXN0QXNzZXQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAABR3aGl0ZTFMaXN0QXNzZXRFbnRyeQQAAAAWd2hpdGUxTGlzdE92ZXJhbGxFbnRyeQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAADVdoaXRlbGlzdEFkZHIFAAAAEXdoaXRlMUxpc3RPdmVyYWxsAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAWd2hpdGUxTGlzdE92ZXJhbGxFbnRyeQYEAAAAC2N1cjFCYWxhbmNlCQAD6wAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIIBQAAAAJ0eAAAAAdhc3NldElkAwkAAGYAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAAFndoaXRlMUxpc3RPdmVyYWxsRW50cnkJAABlAAAAAgUAAAALY3VyMUJhbGFuY2UIBQAAAAJ0eAAAAAZhbW91bnQJAAACAAAAAQIAAAAjVW5hYmxlIHRvIHNlbmQgc3VjaCBhbW91bnQgKHR5cGU9MSkGBAAAAAtjdXIxQmFsYW5jZQkAA+sAAAACCAUAAAACdHgAAAAGc2VuZGVyCAUAAAACdHgAAAAHYXNzZXRJZAMJAABmAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAABR3aGl0ZTFMaXN0QXNzZXRFbnRyeQkAAGUAAAACBQAAAAtjdXIxQmFsYW5jZQgFAAAAAnR4AAAABmFtb3VudAkAAAIAAAABAgAAACNVbmFibGUgdG8gc2VuZCBzdWNoIGFtb3VudCAodHlwZT0yKQYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwAwkBAAAAAiE9AAAAAggFAAAAAnR4AAAABnNlbmRlcgUAAAAObWF0Y2hlckFkZHJlc3MJAAACAAAAAQIAAAAZSW5jb3JyZWN0IG1hdGNoZXIgYWRkcmVzcwQAAAARb3V0Y29taW5nMUFjY291bnQICAUAAAACdHgAAAAIYnV5T3JkZXIAAAAGc2VuZGVyBAAAABFvdXRjb21pbmcyQWNjb3VudAgIBQAAAAJ0eAAAAAlzZWxsT3JkZXIAAAAGc2VuZGVyBAAAAAp3aGl0ZTFMaXN0CQACWAAAAAEIBQAAABFvdXRjb21pbmcxQWNjb3VudAAAAAVieXRlcwQAAAAKd2hpdGUyTGlzdAkAAlgAAAABCAUAAAARb3V0Y29taW5nMkFjY291bnQAAAAFYnl0ZXMEAAAAD3doaXRlMUxpc3RFbnRyeQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAADVdoaXRlbGlzdEFkZHIJAAJYAAAAAQgFAAAAEW91dGNvbWluZzFBY2NvdW50AAAABWJ5dGVzBAAAAA93aGl0ZTJMaXN0RW50cnkJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAA1XaGl0ZWxpc3RBZGRyCQACWAAAAAEIBQAAABFvdXRjb21pbmcyQWNjb3VudAAAAAVieXRlcwMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAD3doaXRlMUxpc3RFbnRyeQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAFVXNlciAFAAAACndoaXRlMUxpc3QCAAAAEiBub3QgaW4gd2hpdGUgbGlzdAMJAQAAAAIhPQAAAAIFAAAAD3doaXRlMUxpc3RFbnRyeQUAAAAKdmFsaWRTdGF0ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAFVXNlciAFAAAACndoaXRlMUxpc3QCAAAAEyBub3QgaW4gdmFsaWQgc3RhdGUDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAA93aGl0ZTJMaXN0RW50cnkJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABVVzZXIgBQAAAAp3aGl0ZTJMaXN0AgAAABIgbm90IGluIHdoaXRlIGxpc3QDCQEAAAACIT0AAAACBQAAAA93aGl0ZTJMaXN0RW50cnkFAAAACnZhbGlkU3RhdGUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABVVzZXIgBQAAAAp3aGl0ZTJMaXN0AgAAABMgbm90IGluIHZhbGlkIHN0YXRlBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9CdXJuVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIFAAAADmdhdGV3YXlBZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABJSZWlzc3VlVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIFAAAADmdhdGV3YXlBZGRyZXNzB/nNmhY=", "chainId": 84, "height": 594601, "spentComplexity": 0 } View: original | compacted Prev: none Next: AYtAimk9tE436ex6d3fwS6AaKa2Xd2yin9dxs1zybDei Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 2 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let matcherAddress = addressFromString("3Ms8fSfAxBLDjKvNVgACRzQoBLCtCWxtawu")
4+let gatewayAddress = addressFromString("3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV")
5+let WhitelistAddr = addressFromString("3N6DwWxT82nGJUwBwd7L514r2u71gr7WhwJ")
6+let validState = 1000
7+let Ver = "1.1.4-testnet"
8+match tx {
9+ case tx: MassTransferTransaction =>
10+ false
11+ case tx: TransferTransaction =>
12+ if (if ((tx.sender != gatewayAddress))
13+ then (tx.recipient != gatewayAddress)
14+ else false)
15+ then throw("Only transactions with a gateway are allowed")
16+ else if ((tx.sender == gatewayAddress))
17+ then true
18+ else {
19+ let white1List = toBase58String(tx.sender.bytes)
20+ let assetTxt = toBase58String(extract(tx.assetId))
21+ let white1ListAsset = ((white1List + "_") + assetTxt)
22+ let white1ListOverall = ("res_" + assetTxt)
23+ let white1ListEntry = getInteger(extract(WhitelistAddr), white1List)
24+ if (!(isDefined(white1ListEntry)))
25+ then throw("The sender's address is not in the white list")
26+ else if ((white1ListEntry != validState))
27+ then throw("Sender is not in valid state")
28+ else {
29+ let white1ListAssetEntry = getInteger(extract(WhitelistAddr), white1ListAsset)
30+ if (!(isDefined(white1ListAssetEntry)))
31+ then {
32+ let white1ListOverallEntry = getInteger(extract(WhitelistAddr), white1ListOverall)
33+ if (!(isDefined(white1ListOverallEntry)))
34+ then true
35+ else {
36+ let cur1Balance = assetBalance(tx.sender, tx.assetId)
37+ if ((extract(white1ListOverallEntry) > (cur1Balance - tx.amount)))
38+ then throw("Unable to send such amount (type=1)")
39+ else true
40+ }
41+ }
42+ else {
43+ let cur1Balance = assetBalance(tx.sender, tx.assetId)
44+ if ((extract(white1ListAssetEntry) > (cur1Balance - tx.amount)))
45+ then throw("Unable to send such amount (type=2)")
46+ else true
47+ }
48+ }
49+ }
50+ case tx: ExchangeTransaction =>
51+ if ((tx.sender != matcherAddress))
52+ then throw("Incorrect matcher address")
53+ else {
54+ let outcoming1Account = tx.buyOrder.sender
55+ let outcoming2Account = tx.sellOrder.sender
56+ let white1List = toBase58String(outcoming1Account.bytes)
57+ let white2List = toBase58String(outcoming2Account.bytes)
58+ let white1ListEntry = getInteger(extract(WhitelistAddr), toBase58String(outcoming1Account.bytes))
59+ let white2ListEntry = getInteger(extract(WhitelistAddr), toBase58String(outcoming2Account.bytes))
60+ if (!(isDefined(white1ListEntry)))
61+ then throw((("User " + white1List) + " not in white list"))
62+ else if ((white1ListEntry != validState))
63+ then throw((("User " + white1List) + " not in valid state"))
64+ else if (!(isDefined(white2ListEntry)))
65+ then throw((("User " + white2List) + " not in white list"))
66+ else if ((white2ListEntry != validState))
67+ then throw((("User " + white2List) + " not in valid state"))
68+ else true
69+ }
70+ case tx: SetAssetScriptTransaction =>
71+ true
72+ case tx: BurnTransaction =>
73+ (tx.sender == gatewayAddress)
74+ case tx: ReissueTransaction =>
75+ (tx.sender == gatewayAddress)
76+ case _ =>
77+ false
78+}

github/deemru/w8io/6500d08 
31.30 ms