tx · 5evj5W5a9sqwwMLSvQPGNYH3jpVjhTCg585vJQEQN13H

3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV:  -1.00400000 Waves

2019.07.20 21:58 [594634] smart asset 3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV > SELF 0.00000000 TBTC

{ "type": 15, "id": "5evj5W5a9sqwwMLSvQPGNYH3jpVjhTCg585vJQEQN13H", "fee": 100400000, "feeAssetId": null, "timestamp": 1563649111247, "version": 1, "sender": "3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV", "senderPublicKey": "DANkK8NJhJ9K7AHbve8QzKkbyvJzr5pbttLhba7d9BGm", "proofs": [ "34mNCS9KkrXBTW4M2QTz1VHS9DiWBLuPGwSLfFZ47quMu1RBS7f689re9Zj2d9cF2mVn5tyeTeBf57gTfY56qV1B" ], "assetId": "Emn8cyGDFgnLCKLTXqVWhKJARhtR2muBUuZaSmqNzDfn", "script": "base64:AgQAAAAObWF0Y2hlckFkZHJlc3MJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNNczhmU2ZBeEJMRGpLdk5WZ0FDUnpRb0JMQ3RDV3h0YXd1BAAAAA5nYXRld2F5QWRkcmVzcwkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM01yaHR6djlLRXRqeDRtRzQ3b3hnamFoSEtXMzNvVG50RVYEAAAADVdoaXRlbGlzdEFkZHIJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNONkR3V3hUODJuR0pVd0J3ZDdMNTE0cjJ1NzFncjdXaHdKBAAAAAp2YWxpZFN0YXRlAAAAAAAAAAPoBAAAAANWZXICAAAADTEuMS40LXRlc3RuZXQEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAMDCQEAAAACIT0AAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAA5nYXRld2F5QWRkcmVzcwkBAAAAAiE9AAAAAggFAAAAAnR4AAAACXJlY2lwaWVudAUAAAAOZ2F0ZXdheUFkZHJlc3MHCQAAAgAAAAECAAAALE9ubHkgdHJhbnNhY3Rpb25zIHdpdGggYSBnYXRld2F5IGFyZSBhbGxvd2VkAwkAAAAAAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAA5nYXRld2F5QWRkcmVzcwYEAAAACndoaXRlMUxpc3QJAAJYAAAAAQgIBQAAAAJ0eAAAAAZzZW5kZXIAAAAFYnl0ZXMEAAAACGFzc2V0VHh0CQACWAAAAAEJAQAAAAdleHRyYWN0AAAAAQgFAAAAAnR4AAAAB2Fzc2V0SWQEAAAAD3doaXRlMUxpc3RBc3NldAkAASwAAAACCQABLAAAAAIFAAAACndoaXRlMUxpc3QCAAAAAV8FAAAACGFzc2V0VHh0BAAAABF3aGl0ZTFMaXN0T3ZlcmFsbAkAASwAAAACAgAAAARyZXNfBQAAAAhhc3NldFR4dAQAAAAPd2hpdGUxTGlzdEVudHJ5CQAEGgAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAANV2hpdGVsaXN0QWRkcgUAAAAKd2hpdGUxTGlzdAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAD3doaXRlMUxpc3RFbnRyeQkAAAIAAAABAgAAAC1UaGUgc2VuZGVyJ3MgYWRkcmVzcyBpcyBub3QgaW4gdGhlIHdoaXRlIGxpc3QDCQEAAAACIT0AAAACBQAAAA93aGl0ZTFMaXN0RW50cnkFAAAACnZhbGlkU3RhdGUJAAACAAAAAQIAAAAcU2VuZGVyIGlzIG5vdCBpbiB2YWxpZCBzdGF0ZQQAAAAUd2hpdGUxTGlzdEFzc2V0RW50cnkJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAA1XaGl0ZWxpc3RBZGRyBQAAAA93aGl0ZTFMaXN0QXNzZXQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAABR3aGl0ZTFMaXN0QXNzZXRFbnRyeQQAAAAWd2hpdGUxTGlzdE92ZXJhbGxFbnRyeQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAADVdoaXRlbGlzdEFkZHIFAAAAEXdoaXRlMUxpc3RPdmVyYWxsAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAWd2hpdGUxTGlzdE92ZXJhbGxFbnRyeQYEAAAAC2N1cjFCYWxhbmNlCQAD6wAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIIBQAAAAJ0eAAAAAdhc3NldElkAwkAAGYAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAAFndoaXRlMUxpc3RPdmVyYWxsRW50cnkJAABlAAAAAgUAAAALY3VyMUJhbGFuY2UIBQAAAAJ0eAAAAAZhbW91bnQJAAACAAAAAQIAAAAjVW5hYmxlIHRvIHNlbmQgc3VjaCBhbW91bnQgKHR5cGU9MSkGBAAAAAtjdXIxQmFsYW5jZQkAA+sAAAACCAUAAAACdHgAAAAGc2VuZGVyCAUAAAACdHgAAAAHYXNzZXRJZAMJAABmAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAABR3aGl0ZTFMaXN0QXNzZXRFbnRyeQkAAGUAAAACBQAAAAtjdXIxQmFsYW5jZQgFAAAAAnR4AAAABmFtb3VudAkAAAIAAAABAgAAACNVbmFibGUgdG8gc2VuZCBzdWNoIGFtb3VudCAodHlwZT0yKQYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwAwkBAAAAAiE9AAAAAggFAAAAAnR4AAAABnNlbmRlcgUAAAAObWF0Y2hlckFkZHJlc3MJAAACAAAAAQIAAAAZSW5jb3JyZWN0IG1hdGNoZXIgYWRkcmVzcwQAAAARb3V0Y29taW5nMUFjY291bnQICAUAAAACdHgAAAAIYnV5T3JkZXIAAAAGc2VuZGVyBAAAABFvdXRjb21pbmcyQWNjb3VudAgIBQAAAAJ0eAAAAAlzZWxsT3JkZXIAAAAGc2VuZGVyBAAAAAp3aGl0ZTFMaXN0CQACWAAAAAEIBQAAABFvdXRjb21pbmcxQWNjb3VudAAAAAVieXRlcwQAAAAKd2hpdGUyTGlzdAkAAlgAAAABCAUAAAARb3V0Y29taW5nMkFjY291bnQAAAAFYnl0ZXMEAAAAD3doaXRlMUxpc3RFbnRyeQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAADVdoaXRlbGlzdEFkZHIJAAJYAAAAAQgFAAAAEW91dGNvbWluZzFBY2NvdW50AAAABWJ5dGVzBAAAAA93aGl0ZTJMaXN0RW50cnkJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAA1XaGl0ZWxpc3RBZGRyCQACWAAAAAEIBQAAABFvdXRjb21pbmcyQWNjb3VudAAAAAVieXRlcwMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAD3doaXRlMUxpc3RFbnRyeQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAFVXNlciAFAAAACndoaXRlMUxpc3QCAAAAEiBub3QgaW4gd2hpdGUgbGlzdAMJAQAAAAIhPQAAAAIFAAAAD3doaXRlMUxpc3RFbnRyeQUAAAAKdmFsaWRTdGF0ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAFVXNlciAFAAAACndoaXRlMUxpc3QCAAAAEyBub3QgaW4gdmFsaWQgc3RhdGUDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAA93aGl0ZTJMaXN0RW50cnkJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABVVzZXIgBQAAAAp3aGl0ZTJMaXN0AgAAABIgbm90IGluIHdoaXRlIGxpc3QDCQEAAAACIT0AAAACBQAAAA93aGl0ZTJMaXN0RW50cnkFAAAACnZhbGlkU3RhdGUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABVVzZXIgBQAAAAp3aGl0ZTJMaXN0AgAAABMgbm90IGluIHZhbGlkIHN0YXRlBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAEAAAACXBBZGRyZXNzMQkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM05DVkRhVDFBU2JSZDQyaEJTdzRFRzZvakdWUkd0dk1pejEEAAAACXBBZGRyZXNzMgkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM01zMmtUQXhkcmNYRHh3ZWRmYk5qU2k2ZXdHQ1VxdDNoZVoEAAAACXBBZGRyZXNzMwkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM042b2dubTd4blFTRmlvd25TMURmMUxhY0pVUVh2ZkRGTGUEAAAACXBBZGRyZXNzNAkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM010VkNtTjlNWmJXZjlxeGlNRm9FUEJyZGMyZkxwM1N2dUMEAAAACXBBZGRyZXNzNQkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM011V0c4Z3NUSzRSUUJzbTk3c01DdVVYVzk5SnZSeHdZU2cEAAAAC3BLZXkxU2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAAlwQWRkcmVzczEJAAJYAAAAAQgFAAAAAnR4AAAAAmlkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5MlNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAAJcEFkZHJlc3MyCQACWAAAAAEIBQAAAAJ0eAAAAAJpZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTNTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAACXBBZGRyZXNzMwkAAlgAAAABCAUAAAACdHgAAAACaWQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAC3BLZXk0U2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAAlwQWRkcmVzczQJAAJYAAAAAQgFAAAAAnR4AAAAAmlkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5NVNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAAJcEFkZHJlc3M1CQACWAAAAAEIBQAAAAJ0eAAAAAJpZAAAAAAAAAAAAQAAAAAAAAAAAAkAAGcAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAC3BLZXkxU2lnbmVkBQAAAAtwS2V5MlNpZ25lZAUAAAALcEtleTNTaWduZWQFAAAAC3BLZXk0U2lnbmVkBQAAAAtwS2V5NVNpZ25lZAAAAAAAAAAAAwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPQnVyblRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAkAAAAAAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAA5nYXRld2F5QWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAASUmVpc3N1ZVRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAkAAAAAAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAA5nYXRld2F5QWRkcmVzcwfbjEJf", "chainId": 84, "height": 594634, "spentComplexity": 0 } View: original | compacted Prev: 9B6ydYGHAGtmQutMTwkuhkK8hHrn5iAhNiAmSeKAHPeA Next: DmEzXoV1GCi37jHkY3xqHxGmd8gq8XzJsnJuv3vyR9Mq Diff:
OldNewDifferences
6868 else true
6969 }
7070 case tx: SetAssetScriptTransaction =>
71- true
71+ let pAddress1 = addressFromString("3NCVDaT1ASbRd42hBSw4EG6ojGVRGtvMiz1")
72+ let pAddress2 = addressFromString("3Ms2kTAxdrcXDxwedfbNjSi6ewGCUqt3heZ")
73+ let pAddress3 = addressFromString("3N6ognm7xnQSFiownS1Df1LacJUQXvfDFLe")
74+ let pAddress4 = addressFromString("3MtVCmN9MZbWf9qxiMFoEPBrdc2fLp3SvuC")
75+ let pAddress5 = addressFromString("3MuWG8gsTK4RQBsm97sMCuUXW99JvRxwYSg")
76+ let pKey1Signed = if (isDefined(getInteger(extract(pAddress1), toBase58String(tx.id))))
77+ then 1
78+ else 0
79+ let pKey2Signed = if (isDefined(getInteger(extract(pAddress2), toBase58String(tx.id))))
80+ then 1
81+ else 0
82+ let pKey3Signed = if (isDefined(getInteger(extract(pAddress3), toBase58String(tx.id))))
83+ then 1
84+ else 0
85+ let pKey4Signed = if (isDefined(getInteger(extract(pAddress4), toBase58String(tx.id))))
86+ then 1
87+ else 0
88+ let pKey5Signed = if (isDefined(getInteger(extract(pAddress5), toBase58String(tx.id))))
89+ then 1
90+ else 0
91+ (((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) >= 3)
7292 case tx: BurnTransaction =>
7393 (tx.sender == gatewayAddress)
7494 case tx: ReissueTransaction =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 2 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let matcherAddress = addressFromString("3Ms8fSfAxBLDjKvNVgACRzQoBLCtCWxtawu")
44 let gatewayAddress = addressFromString("3Mrhtzv9KEtjx4mG47oxgjahHKW33oTntEV")
55 let WhitelistAddr = addressFromString("3N6DwWxT82nGJUwBwd7L514r2u71gr7WhwJ")
66 let validState = 1000
77 let Ver = "1.1.4-testnet"
88 match tx {
99 case tx: MassTransferTransaction =>
1010 false
1111 case tx: TransferTransaction =>
1212 if (if ((tx.sender != gatewayAddress))
1313 then (tx.recipient != gatewayAddress)
1414 else false)
1515 then throw("Only transactions with a gateway are allowed")
1616 else if ((tx.sender == gatewayAddress))
1717 then true
1818 else {
1919 let white1List = toBase58String(tx.sender.bytes)
2020 let assetTxt = toBase58String(extract(tx.assetId))
2121 let white1ListAsset = ((white1List + "_") + assetTxt)
2222 let white1ListOverall = ("res_" + assetTxt)
2323 let white1ListEntry = getInteger(extract(WhitelistAddr), white1List)
2424 if (!(isDefined(white1ListEntry)))
2525 then throw("The sender's address is not in the white list")
2626 else if ((white1ListEntry != validState))
2727 then throw("Sender is not in valid state")
2828 else {
2929 let white1ListAssetEntry = getInteger(extract(WhitelistAddr), white1ListAsset)
3030 if (!(isDefined(white1ListAssetEntry)))
3131 then {
3232 let white1ListOverallEntry = getInteger(extract(WhitelistAddr), white1ListOverall)
3333 if (!(isDefined(white1ListOverallEntry)))
3434 then true
3535 else {
3636 let cur1Balance = assetBalance(tx.sender, tx.assetId)
3737 if ((extract(white1ListOverallEntry) > (cur1Balance - tx.amount)))
3838 then throw("Unable to send such amount (type=1)")
3939 else true
4040 }
4141 }
4242 else {
4343 let cur1Balance = assetBalance(tx.sender, tx.assetId)
4444 if ((extract(white1ListAssetEntry) > (cur1Balance - tx.amount)))
4545 then throw("Unable to send such amount (type=2)")
4646 else true
4747 }
4848 }
4949 }
5050 case tx: ExchangeTransaction =>
5151 if ((tx.sender != matcherAddress))
5252 then throw("Incorrect matcher address")
5353 else {
5454 let outcoming1Account = tx.buyOrder.sender
5555 let outcoming2Account = tx.sellOrder.sender
5656 let white1List = toBase58String(outcoming1Account.bytes)
5757 let white2List = toBase58String(outcoming2Account.bytes)
5858 let white1ListEntry = getInteger(extract(WhitelistAddr), toBase58String(outcoming1Account.bytes))
5959 let white2ListEntry = getInteger(extract(WhitelistAddr), toBase58String(outcoming2Account.bytes))
6060 if (!(isDefined(white1ListEntry)))
6161 then throw((("User " + white1List) + " not in white list"))
6262 else if ((white1ListEntry != validState))
6363 then throw((("User " + white1List) + " not in valid state"))
6464 else if (!(isDefined(white2ListEntry)))
6565 then throw((("User " + white2List) + " not in white list"))
6666 else if ((white2ListEntry != validState))
6767 then throw((("User " + white2List) + " not in valid state"))
6868 else true
6969 }
7070 case tx: SetAssetScriptTransaction =>
71- true
71+ let pAddress1 = addressFromString("3NCVDaT1ASbRd42hBSw4EG6ojGVRGtvMiz1")
72+ let pAddress2 = addressFromString("3Ms2kTAxdrcXDxwedfbNjSi6ewGCUqt3heZ")
73+ let pAddress3 = addressFromString("3N6ognm7xnQSFiownS1Df1LacJUQXvfDFLe")
74+ let pAddress4 = addressFromString("3MtVCmN9MZbWf9qxiMFoEPBrdc2fLp3SvuC")
75+ let pAddress5 = addressFromString("3MuWG8gsTK4RQBsm97sMCuUXW99JvRxwYSg")
76+ let pKey1Signed = if (isDefined(getInteger(extract(pAddress1), toBase58String(tx.id))))
77+ then 1
78+ else 0
79+ let pKey2Signed = if (isDefined(getInteger(extract(pAddress2), toBase58String(tx.id))))
80+ then 1
81+ else 0
82+ let pKey3Signed = if (isDefined(getInteger(extract(pAddress3), toBase58String(tx.id))))
83+ then 1
84+ else 0
85+ let pKey4Signed = if (isDefined(getInteger(extract(pAddress4), toBase58String(tx.id))))
86+ then 1
87+ else 0
88+ let pKey5Signed = if (isDefined(getInteger(extract(pAddress5), toBase58String(tx.id))))
89+ then 1
90+ else 0
91+ (((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) >= 3)
7292 case tx: BurnTransaction =>
7393 (tx.sender == gatewayAddress)
7494 case tx: ReissueTransaction =>
7595 (tx.sender == gatewayAddress)
7696 case _ =>
7797 false
7898 }

github/deemru/w8io/6500d08 
39.84 ms