tx · 44HpmrpB3GLiR4e7TPwDexfMUbps4r2JVNNajLRH5fmW

3N4EFimhkN5F5mh7kUkL9tuTFRxMa4kmvpN:  -0.01400000 Waves

2020.10.07 17:31 [1210275] smart account 3N4EFimhkN5F5mh7kUkL9tuTFRxMa4kmvpN > SELF 0.00000000 Waves

{ "type": 13, "id": "44HpmrpB3GLiR4e7TPwDexfMUbps4r2JVNNajLRH5fmW", "fee": 1400000, "feeAssetId": null, "timestamp": 1602081134921, "version": 1, "sender": "3N4EFimhkN5F5mh7kUkL9tuTFRxMa4kmvpN", "senderPublicKey": "GFK7PYB6cXjs4wEDvwEwkzcx1NxSS7QwXSxy7JmaBcXk", "proofs": [ "3Kdm8rqV6q33Cup5wAftTzRPDh4tgsztgW9g1A5PkLxynsV4hDyk51Au4yu19mFE1yUZUSfXUy33q14LaiBDKPkb", "2P7opDUT8Xxk6XbESXvYaxLaukgm1gYpjdTfqjwPXqyVZz52C9nXfhGPZipXv87XZhpDEn8f4eZfQRTsmfLZWVYo", "3JDNU1g5S66ckLvnycPNUNJi5a3JPxsm9vJbzCRc6pUydMuNk6fUNbMUV6tb7wgciWRsnim4WUMyPm5kX3rSxDer" ], "script": "base64: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dEFzc2V0RW50cnkJAAQaAAAAAgkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAEFAAAAE3doaXRlbGlzdEFkZHJlc3NLZXkFAAAAD3doaXRlMUxpc3RBc3NldAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAFHdoaXRlMUxpc3RBc3NldEVudHJ5BAAAABZ3aGl0ZTFMaXN0T3ZlcmFsbEVudHJ5CQAEGgAAAAIJAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABBQAAABN3aGl0ZWxpc3RBZGRyZXNzS2V5BQAAABF3aGl0ZTFMaXN0T3ZlcmFsbAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAFndoaXRlMUxpc3RPdmVyYWxsRW50cnkGBAAAAAtjdXIxQmFsYW5jZQkAA+sAAAACCAUAAAACdHgAAAAGc2VuZGVyCAUAAAACdHgAAAAHYXNzZXRJZAMJAABmAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAABZ3aGl0ZTFMaXN0T3ZlcmFsbEVudHJ5CQAAZQAAAAIFAAAAC2N1cjFCYWxhbmNlCAUAAAACdHgAAAAGYW1vdW50CQAAAgAAAAECAAAAKCMwMDYgVW5hYmxlIHRvIHNlbmQgc3VjaCBhbW91bnQgKHR5cGU9MSkGBAAAAAtjdXIxQmFsYW5jZQkAA+sAAAACCAUAAAACdHgAAAAGc2VuZGVyCAUAAAACdHgAAAAHYXNzZXRJZAMJAABmAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAABR3aGl0ZTFMaXN0QXNzZXRFbnRyeQkAAGUAAAACBQAAAAtjdXIxQmFsYW5jZQgFAAAAAnR4AAAABmFtb3VudAkAAAIAAAABAgAAACgjMDA3IFVuYWJsZSB0byBzZW5kIHN1Y2ggYW1vdW50ICh0eXBlPTIpBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBAAAAAR0eElkCQACWAAAAAEIBQAAAAJ0eAAAAAJpZAQAAAAJcEFkZHJlc3MxCQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3MxBAAAAAlwQWRkcmVzczIJ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", "chainId": 84, "height": 1210275, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AVBDScsJMvWMBwFaw9fUBN8kFrQZnvpcb9rNEfghEA1B Next: none Diff:
OldNewDifferences
77 let gatewayAddressKey = "gatewayAddress"
88 let gatewayControlAssetKey = "gatewayControlAsset"
99 let validState = 1000
10-let ver = "5.0.5"
11-let protector0 = base58'Gq8oqv19zNXKzz4QoYE8o6wgobbtmfiLBm1DD8zmfawx'
12-let protector1 = base58'JDaizZSMrRZnaZVFQzdixsxoZUnBirfyap3F4zfVmHWt'
13-let protector2 = base58'7TTjchn9fUMdgBn5TMqer3YGdUr61djeokuqGAtxAjke'
14-let protector3 = base58'HUKkWXsC7xzSncw7EDb5NPsXKFx5VJq82hUMgB1G7ELK'
15-let protector4 = base58'E9rAmSbNdH2F3dYffqTSbvRA96pX1HBYWbAHQrNJu2Ej'
10+let ver = "5.0.6"
1611 func getAddressFromBook (key) = match getString(addressBook, key) {
1712 case a: String =>
1813 Address(fromBase58String(a))
9893 let pAddress1 = getAddressFromBook("pAddress1")
9994 let pAddress2 = getAddressFromBook("pAddress2")
10095 let pAddress3 = getAddressFromBook("pAddress3")
101- let pKey1Signed = if (if (isDefined(getInteger(pAddress1, txId)))
102- then true
103- else sigVerify(tx.bodyBytes, tx.proofs[0], protector0))
96+ let pAddress4 = getAddressFromBook("pAddress4")
97+ let pAddress5 = getAddressFromBook("pAddress5")
98+ let pAddress6 = getAddressFromBook("pAddress6")
99+ let pAddress7 = getAddressFromBook("pAddress7")
100+ let pAddress8 = getAddressFromBook("pAddress8")
101+ let pKey1Signed = if (isDefined(getInteger(pAddress1, txId)))
104102 then 1
105103 else 0
106- let pKey2Signed = if (if (isDefined(getInteger(pAddress2, txId)))
107- then true
108- else sigVerify(tx.bodyBytes, tx.proofs[1], protector1))
104+ let pKey2Signed = if (isDefined(getInteger(pAddress2, txId)))
109105 then 1
110106 else 0
111- let pKey3Signed = if (if (isDefined(getInteger(pAddress3, txId)))
112- then true
113- else sigVerify(tx.bodyBytes, tx.proofs[2], protector2))
107+ let pKey3Signed = if (isDefined(getInteger(pAddress3, txId)))
114108 then 1
115109 else 0
116- (((pKey1Signed + pKey2Signed) + pKey3Signed) >= 3)
110+ let pKey4Signed = if (isDefined(getInteger(pAddress4, txId)))
111+ then 1
112+ else 0
113+ let pKey5Signed = if (isDefined(getInteger(pAddress5, txId)))
114+ then 1
115+ else 0
116+ let pKey6Signed = if (isDefined(getInteger(pAddress6, txId)))
117+ then 1
118+ else 0
119+ let pKey7Signed = if (isDefined(getInteger(pAddress7, txId)))
120+ then 1
121+ else 0
122+ let pKey8Signed = if (isDefined(getInteger(pAddress8, txId)))
123+ then 1
124+ else 0
125+ ((((((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) + pKey6Signed) + pKey7Signed) + pKey8Signed) >= 3)
117126 case _: LeaseTransaction =>
118127 false
119128 case _: SponsorFeeTransaction =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let addressBook = Address(base58'3MwoVRAPfC2NKuuYJKHVAVtUFhq8MyTEfQh')
44 let whitelistAddressKey = "whitelistAddress"
55 let dAppWhitelistAddressKey = "dAppWhitelistAddress"
66 let matcherAddressKey = "matcherAddress"
77 let gatewayAddressKey = "gatewayAddress"
88 let gatewayControlAssetKey = "gatewayControlAsset"
99 let validState = 1000
10-let ver = "5.0.5"
11-let protector0 = base58'Gq8oqv19zNXKzz4QoYE8o6wgobbtmfiLBm1DD8zmfawx'
12-let protector1 = base58'JDaizZSMrRZnaZVFQzdixsxoZUnBirfyap3F4zfVmHWt'
13-let protector2 = base58'7TTjchn9fUMdgBn5TMqer3YGdUr61djeokuqGAtxAjke'
14-let protector3 = base58'HUKkWXsC7xzSncw7EDb5NPsXKFx5VJq82hUMgB1G7ELK'
15-let protector4 = base58'E9rAmSbNdH2F3dYffqTSbvRA96pX1HBYWbAHQrNJu2Ej'
10+let ver = "5.0.6"
1611 func getAddressFromBook (key) = match getString(addressBook, key) {
1712 case a: String =>
1813 Address(fromBase58String(a))
1914 case _ =>
2015 throw("#008 no key")
2116 }
2217
2318 func getAssetFromAddressBook () = match getString(extract(addressBook), gatewayControlAssetKey) {
2419 case a: String =>
2520 toBytes(a)
2621 case _ =>
2722 throw("#009 no key")
2823 }
2924
3025 match tx {
3126 case o: Order =>
3227 if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
3328 then (addressFromPublicKey(o.matcherPublicKey) == getAddressFromBook(matcherAddressKey))
3429 else false
3530 case tx: TransferTransaction =>
3631 if (!(sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)))
3732 then throw("#001 Transaction must be signed by owner")
3833 else {
3934 let userState = getInteger(getAddressFromBook(whitelistAddressKey), toBase58String(tx.sender.bytes))
4035 if (!(isDefined(userState)))
4136 then throw("#002 Address not in whitelist")
4237 else if ((userState != validState))
4338 then throw("#003 User not in valid state")
4439 else if (!(isDefined(tx.assetId)))
4540 then {
4641 let key = (toBase58String(tx.sender.bytes) + "_WAVES")
4742 let minAmount = getInteger(getAddressFromBook(whitelistAddressKey), key)
4843 if (isDefined(minAmount))
4944 then {
5045 let curBalance = wavesBalance(extract(tx.sender))
5146 if ((extract(minAmount) > (curBalance - tx.amount)))
5247 then throw("#004 Unable to send such amount (type=2)")
5348 else true
5449 }
5550 else {
5651 let keyOverall = "res_WAVES"
5752 let minAmountOverall = getInteger(getAddressFromBook(whitelistAddressKey), keyOverall)
5853 if (isDefined(minAmountOverall))
5954 then {
6055 let curBalance = wavesBalance(extract(tx.sender))
6156 if ((extract(minAmountOverall) > (curBalance - tx.amount)))
6257 then throw("#005 Unable to send such amount (type=1)")
6358 else true
6459 }
6560 else true
6661 }
6762 }
6863 else if ((tx.assetId == getAssetFromAddressBook()))
6964 then (tx.recipient == getAddressFromBook(gatewayAddressKey))
7065 else {
7166 let white1List = toBase58String(tx.sender.bytes)
7267 let assetTxt = toBase58String(extract(tx.assetId))
7368 let white1ListAsset = ((white1List + "_") + assetTxt)
7469 let white1ListOverall = ("res_" + assetTxt)
7570 let white1ListAssetEntry = getInteger(getAddressFromBook(whitelistAddressKey), white1ListAsset)
7671 if (!(isDefined(white1ListAssetEntry)))
7772 then {
7873 let white1ListOverallEntry = getInteger(getAddressFromBook(whitelistAddressKey), white1ListOverall)
7974 if (!(isDefined(white1ListOverallEntry)))
8075 then true
8176 else {
8277 let cur1Balance = assetBalance(tx.sender, tx.assetId)
8378 if ((extract(white1ListOverallEntry) > (cur1Balance - tx.amount)))
8479 then throw("#006 Unable to send such amount (type=1)")
8580 else true
8681 }
8782 }
8883 else {
8984 let cur1Balance = assetBalance(tx.sender, tx.assetId)
9085 if ((extract(white1ListAssetEntry) > (cur1Balance - tx.amount)))
9186 then throw("#007 Unable to send such amount (type=2)")
9287 else true
9388 }
9489 }
9590 }
9691 case tx: SetScriptTransaction =>
9792 let txId = toBase58String(tx.id)
9893 let pAddress1 = getAddressFromBook("pAddress1")
9994 let pAddress2 = getAddressFromBook("pAddress2")
10095 let pAddress3 = getAddressFromBook("pAddress3")
101- let pKey1Signed = if (if (isDefined(getInteger(pAddress1, txId)))
102- then true
103- else sigVerify(tx.bodyBytes, tx.proofs[0], protector0))
96+ let pAddress4 = getAddressFromBook("pAddress4")
97+ let pAddress5 = getAddressFromBook("pAddress5")
98+ let pAddress6 = getAddressFromBook("pAddress6")
99+ let pAddress7 = getAddressFromBook("pAddress7")
100+ let pAddress8 = getAddressFromBook("pAddress8")
101+ let pKey1Signed = if (isDefined(getInteger(pAddress1, txId)))
104102 then 1
105103 else 0
106- let pKey2Signed = if (if (isDefined(getInteger(pAddress2, txId)))
107- then true
108- else sigVerify(tx.bodyBytes, tx.proofs[1], protector1))
104+ let pKey2Signed = if (isDefined(getInteger(pAddress2, txId)))
109105 then 1
110106 else 0
111- let pKey3Signed = if (if (isDefined(getInteger(pAddress3, txId)))
112- then true
113- else sigVerify(tx.bodyBytes, tx.proofs[2], protector2))
107+ let pKey3Signed = if (isDefined(getInteger(pAddress3, txId)))
114108 then 1
115109 else 0
116- (((pKey1Signed + pKey2Signed) + pKey3Signed) >= 3)
110+ let pKey4Signed = if (isDefined(getInteger(pAddress4, txId)))
111+ then 1
112+ else 0
113+ let pKey5Signed = if (isDefined(getInteger(pAddress5, txId)))
114+ then 1
115+ else 0
116+ let pKey6Signed = if (isDefined(getInteger(pAddress6, txId)))
117+ then 1
118+ else 0
119+ let pKey7Signed = if (isDefined(getInteger(pAddress7, txId)))
120+ then 1
121+ else 0
122+ let pKey8Signed = if (isDefined(getInteger(pAddress8, txId)))
123+ then 1
124+ else 0
125+ ((((((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) + pKey6Signed) + pKey7Signed) + pKey8Signed) >= 3)
117126 case _: LeaseTransaction =>
118127 false
119128 case _: SponsorFeeTransaction =>
120129 false
121130 case _: MassTransferTransaction =>
122131 false
123132 case _: IssueTransaction =>
124133 false
125134 case _: ReissueTransaction =>
126135 false
127136 case _: BurnTransaction =>
128137 false
129138 case _: ExchangeTransaction =>
130139 false
131140 case tx: InvokeScriptTransaction =>
132141 match tx.payment {
133142 case _: AttachedPayment =>
134143 match getInteger(getAddressFromBook(dAppWhitelistAddressKey), toBase58String(addressFromRecipient(tx.dApp).bytes)) {
135144 case _: Int =>
136145 true
137146 case _ =>
138147 false
139148 }
140149 case _ =>
141150 true
142151 }
143152 case _ =>
144153 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
145154 }

github/deemru/w8io/169f3d6 
39.45 ms