tx · J7SfUvrTBpwJSiN9vATbs5nwKT4BxSmxbxD1xMKQQdsU

3N7mHni68urHVKtWFoc9PG9i1whD4vT1zHv:  -0.01000000 Waves

2020.09.23 15:45 [1189966] smart account 3N7mHni68urHVKtWFoc9PG9i1whD4vT1zHv > SELF 0.00000000 Waves

{ "type": 13, "id": "J7SfUvrTBpwJSiN9vATbs5nwKT4BxSmxbxD1xMKQQdsU", "fee": 1000000, "feeAssetId": null, "timestamp": 1600865150748, "version": 1, "sender": "3N7mHni68urHVKtWFoc9PG9i1whD4vT1zHv", "senderPublicKey": "2eWqPHKfXACF4XZ8qSjY1hi62wxxYvcR77dNsKf1E296", "proofs": [ "67S7CEFwapDsQqJygWHWUjNKZPr3gtAKBzkGqJjL8VfeDDTLwvYCCkSU1CdmmgEhPFbGvx3QWye3pxrRXDjFdz4V" ], "script": "base64:AAIEAAAAAAAAAAgIAhIECgIBCAAAAAkAAAAAC2FkZHJlc3NCb29rCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUVoHUeTQTO77iaMaO0CyN+LlydsBXbwHeAAAAABN3aGl0ZWxpc3RBZGRyZXNzS2V5AgAAABB3aGl0ZWxpc3RBZGRyZXNzAAAAABdkQXBwV2hpdGVsaXN0QWRkcmVzc0tleQIAAAAUZEFwcFdoaXRlbGlzdEFkZHJlc3MAAAAAB2Fzc2V0SWQBAAAAIPMVxgNTMO9BU55wDmRoKYpgmtFv8lW6Eee2GfiGSp7bAAAAABJvd25lckFkZHJlc3NTdHJpbmcCAAAAIzNON21Ibmk2OHVySFZLdFdGb2M5UEc5aTF3aEQ0dlQxekh2AAAAAAN2ZXICAAAABTYuMC4wAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAthZGRyZXNzQm9vawUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAFhCQAAAgAAAAECAAAABm5vIGtleQAAAAAQd2hpdGVsaXN0QWRkcmVzcwkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAEFAAAAE3doaXRlbGlzdEFkZHJlc3NLZXkAAAAAFGRBcHBXaGl0ZWxpc3RBZGRyZXNzCQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQUAAAAXZEFwcFdoaXRlbGlzdEFkZHJlc3NLZXkAAAABAAAAAWkBAAAAGXJlaXNzdWVTZWN1cml0eUZvckFkZHJlc3MAAAACAAAACHF1YW50aXR5AAAAB2FkZHJlc3MEAAAAE2NhbGxlckFkZHJlc3NTdHJpbmcJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMDCQEAAAACIT0AAAACBQAAABNjYWxsZXJBZGRyZXNzU3RyaW5nBQAAABJvd25lckFkZHJlc3NTdHJpbmcJAQAAAAIhPQAAAAIFAAAAE2NhbGxlckFkZHJlc3NTdHJpbmcJAAQlAAAAAQUAAAAUZEFwcFdoaXRlbGlzdEFkZHJlc3MHCQAAAgAAAAECAAAALCMwMDEgY2FsbGVyIGhhcyBubyByaWdodHMgZm9yIHRoaXMgb3BlcmF0aW9uBAAAAA5pc0FjY291bnRBbGxvdwQAAAAHJG1hdGNoMAkABBoAAAACBQAAABB3aGl0ZWxpc3RBZGRyZXNzBQAAAAdhZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEA/////////wEEAAAACmRBcHBTdGF0dXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAUZEFwcFdoaXRlbGlzdEFkZHJlc3MFAAAAB2FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQD////////8GAMDCQEAAAACIT0AAAACBQAAAApkQXBwU3RhdHVzAP////////wYBgkBAAAAAiE9AAAAAgUAAAAOaXNBY2NvdW50QWxsb3cA/////////wEEAAAAEWN1cnJlbnRLZXlBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAHYWRkcmVzcwQAAAANYmFsYW5jZUFtb3VudAkAA/AAAAACBQAAAAR0aGlzBQAAAAdhc3NldElkAwkAAGcAAAACBQAAAA1iYWxhbmNlQW1vdW50BQAAAAhxdWFudGl0eQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABFjdXJyZW50S2V5QWRkcmVzcwUAAAAIcXVhbnRpdHkFAAAAB2Fzc2V0SWQFAAAAA25pbAkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAAB2Fzc2V0SWQJAABlAAAAAgUAAAAIcXVhbnRpdHkFAAAADWJhbGFuY2VBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWN1cnJlbnRLZXlBZGRyZXNzBQAAAAhxdWFudGl0eQUAAAAHYXNzZXRJZAUAAAADbmlsCQAAAgAAAAECAAAAFiMwMDIgaW52YWxpZCByZWNpcGllbnQAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAGVNldEFzc2V0U2NyaXB0VHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAQAAAAEdHhJZAkAAlgAAAABCAUAAAACdHgAAAACaWQEAAAACXBBZGRyZXNzMQkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAECAAAACXBBZGRyZXNzMQQAAAAJcEFkZHJlc3MyCQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3MyBAAAAAlwQWRkcmVzczMJAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABAgAAAAlwQWRkcmVzczMEAAAACXBBZGRyZXNzNAkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAECAAAACXBBZGRyZXNzNAQAAAAJcEFkZHJlc3M1CQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3M1BAAAAAlwQWRkcmVzczYJAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABAgAAAAlwQWRkcmVzczYEAAAACXBBZGRyZXNzNwkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAECAAAACXBBZGRyZXNzNwQAAAAJcEFkZHJlc3M4CQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3M4BAAAAAtwS2V5MVNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAACXBBZGRyZXNzMQUAAAAEdHhJZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTJTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAlwQWRkcmVzczIFAAAABHR4SWQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAC3BLZXkzU2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAJcEFkZHJlc3MzBQAAAAR0eElkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5NFNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAACXBBZGRyZXNzNAUAAAAEdHhJZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTVTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAlwQWRkcmVzczUFAAAABHR4SWQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAC3BLZXk2U2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAJcEFkZHJlc3M2BQAAAAR0eElkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5N1NpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAACXBBZGRyZXNzNwUAAAAEdHhJZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleThTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAlwQWRkcmVzczgFAAAABHR4SWQAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAtwS2V5MVNpZ25lZAUAAAALcEtleTJTaWduZWQFAAAAC3BLZXkzU2lnbmVkBQAAAAtwS2V5NFNpZ25lZAUAAAALcEtleTVTaWduZWQFAAAAC3BLZXk2U2lnbmVkBQAAAAtwS2V5N1NpZ25lZAUAAAALcEtleThTaWduZWQAAAAAAAAAAAMHZolPHQ==", "chainId": 84, "height": 1189966, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let addressBook = Address(base58'3MwoVRAPfC2NKuuYJKHVAVtUFhq8MyTEfQh')
5+
6+let whitelistAddressKey = "whitelistAddress"
7+
8+let dAppWhitelistAddressKey = "dAppWhitelistAddress"
9+
10+let assetId = base58'HMuKyVpDeTp6swdTVzcbh8Yq4NvEPFUytKdhqfBo2Nmg'
11+
12+let ownerAddressString = "3N7mHni68urHVKtWFoc9PG9i1whD4vT1zHv"
13+
14+let ver = "6.0.0"
15+
16+func getAddressFromBook (key) = match getString(addressBook, key) {
17+ case a: String =>
18+ Address(fromBase58String(a))
19+ case _ =>
20+ throw("no key")
21+}
22+
23+
24+let whitelistAddress = getAddressFromBook(whitelistAddressKey)
25+
26+let dAppWhitelistAddress = getAddressFromBook(dAppWhitelistAddressKey)
27+
28+@Callable(i)
29+func reissueSecurityForAddress (quantity,address) = {
30+ let callerAddressString = toBase58String(i.caller.bytes)
31+ if (if ((callerAddressString != ownerAddressString))
32+ then (callerAddressString != toString(dAppWhitelistAddress))
33+ else false)
34+ then throw("#001 caller has no rights for this operation")
35+ else {
36+ let isAccountAllow = match getInteger(whitelistAddress, address) {
37+ case a: Int =>
38+ a
39+ case _ =>
40+ -255
41+ }
42+ let dAppStatus = match getInteger(dAppWhitelistAddress, address) {
43+ case a: Int =>
44+ a
45+ case _ =>
46+ -1000
47+ }
48+ if (if ((dAppStatus != -1000))
49+ then true
50+ else (isAccountAllow != -255))
51+ then {
52+ let currentKeyAddress = Address(fromBase58String(address))
53+ let balanceAmount = assetBalance(this, assetId)
54+ if ((balanceAmount >= quantity))
55+ then [ScriptTransfer(currentKeyAddress, quantity, assetId)]
56+ else [Reissue(assetId, (quantity - balanceAmount), true), ScriptTransfer(currentKeyAddress, quantity, assetId)]
57+ }
58+ else throw("#002 invalid recipient")
59+ }
60+ }
61+
62+
63+@Verifier(tx)
64+func verify () = match tx {
65+ case tx: SetAssetScriptTransaction|SetScriptTransaction =>
66+ let txId = toBase58String(tx.id)
67+ let pAddress1 = getAddressFromBook("pAddress1")
68+ let pAddress2 = getAddressFromBook("pAddress2")
69+ let pAddress3 = getAddressFromBook("pAddress3")
70+ let pAddress4 = getAddressFromBook("pAddress4")
71+ let pAddress5 = getAddressFromBook("pAddress5")
72+ let pAddress6 = getAddressFromBook("pAddress6")
73+ let pAddress7 = getAddressFromBook("pAddress7")
74+ let pAddress8 = getAddressFromBook("pAddress8")
75+ let pKey1Signed = if (isDefined(getInteger(pAddress1, txId)))
76+ then 1
77+ else 0
78+ let pKey2Signed = if (isDefined(getInteger(pAddress2, txId)))
79+ then 1
80+ else 0
81+ let pKey3Signed = if (isDefined(getInteger(pAddress3, txId)))
82+ then 1
83+ else 0
84+ let pKey4Signed = if (isDefined(getInteger(pAddress4, txId)))
85+ then 1
86+ else 0
87+ let pKey5Signed = if (isDefined(getInteger(pAddress5, txId)))
88+ then 1
89+ else 0
90+ let pKey6Signed = if (isDefined(getInteger(pAddress6, txId)))
91+ then 1
92+ else 0
93+ let pKey7Signed = if (isDefined(getInteger(pAddress7, txId)))
94+ then 1
95+ else 0
96+ let pKey8Signed = if (isDefined(getInteger(pAddress8, txId)))
97+ then 1
98+ else 0
99+ ((((((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) + pKey6Signed) + pKey7Signed) + pKey8Signed) >= 3)
100+ case _ =>
101+ false
102+}
103+

github/deemru/w8io/873ac7e 
24.33 ms