tx · GTp4uiDVGawYf2g5esYKbQUDC1RmcLQr9eA8FVezLZ4n

3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV:  -0.01400000 Waves

2020.07.24 10:46 [1101308] smart account 3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV > SELF 0.00000000 Waves

{ "type": 13, "id": "GTp4uiDVGawYf2g5esYKbQUDC1RmcLQr9eA8FVezLZ4n", "fee": 1400000, "feeAssetId": null, "timestamp": 1595576826594, "version": 1, "sender": "3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV", "senderPublicKey": "BF56eooJyMKnwSL3B65fqLBFPfubUbW6wdky9pCGQajE", "proofs": [ "5hAjjR48hXx5RSKVdfXBNtRR4s5zRGr77dNoRySw3rGmxDtA3K62abJSBTAiTK3Ub9p7Kkj6Yxsu4NhqHFuFfkYm" ], "script": "base64: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", "chainId": 84, "height": 1101308, "spentComplexity": 0 } View: original | compacted Prev: F2Yy8Au4ez5UxSzXWFYmjXfHBpkAiz3Hcrtq7QgxZydm Next: 5q6BMy1odFeSc5zJFPsULZbbCAMx3CNM49ajuzpKvPsd Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let storageVerifier = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
5+
6+let signVerifier = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
7+
8+let bank = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
9+
10+let acceptedToken = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
11+
12+let usdnID = "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"
13+
414 func getStringByKey (key) = match getString(this, key) {
515 case a: String =>
616 a
919 }
1020
1121
22+func getStringByAddressKey (addr,key) = match getString(addr, key) {
23+ case a: String =>
24+ a
25+ case _ =>
26+ ""
27+}
28+
29+
30+func validateNFTs (accumulator,id) = {
31+ let assetDetails = value(assetInfo(fromBase58String(id)))
32+ if (if (if ((assetDetails.quantity != 1))
33+ then true
34+ else (assetDetails.decimals != 0))
35+ then true
36+ else (assetDetails.reissuable != false))
37+ then (accumulator + 0)
38+ else (accumulator + 1)
39+ }
40+
41+
1242 let userCreated = "CREATED"
1343
1444 let userSuspended = "SUSPENDED"
45+
46+let userUnregistered = "UNREGISTERED"
1547
1648 @Callable(i)
1749 func registerUpdateUser (name,description,thumb,social) = {
2860 }
2961
3062
63+
64+@Callable(invoke)
65+func test (hash) = throw("Error")
66+
67+
68+
69+@Callable(invoke)
70+func addArtwork (hash,json,nfts,signID) = {
71+ let id = toBase58String(invoke.transactionId)
72+ let entryExist = getStringByKey(hash)
73+ let callerAddress = toBase58String(invoke.caller.bytes)
74+ let entryDate = lastBlock.timestamp
75+ let nftArray = split(nfts, "|")
76+ let numberOfNFTs = size(nftArray)
77+ let checkIDs = {
78+ let $list28042839 = nftArray
79+ let $size28042839 = size($list28042839)
80+ let $acc028042839 = 0
81+ if (($size28042839 == 0))
82+ then $acc028042839
83+ else {
84+ let $acc128042839 = validateNFTs($acc028042839, $list28042839[0])
85+ if (($size28042839 == 1))
86+ then $acc128042839
87+ else {
88+ let $acc228042839 = validateNFTs($acc128042839, $list28042839[1])
89+ if (($size28042839 == 2))
90+ then $acc228042839
91+ else {
92+ let $acc328042839 = validateNFTs($acc228042839, $list28042839[2])
93+ if (($size28042839 == 3))
94+ then $acc328042839
95+ else {
96+ let $acc428042839 = validateNFTs($acc328042839, $list28042839[3])
97+ if (($size28042839 == 4))
98+ then $acc428042839
99+ else {
100+ let $acc528042839 = validateNFTs($acc428042839, $list28042839[4])
101+ if (($size28042839 == 5))
102+ then $acc528042839
103+ else {
104+ let $acc628042839 = validateNFTs($acc528042839, $list28042839[5])
105+ if (($size28042839 == 6))
106+ then $acc628042839
107+ else {
108+ let $acc728042839 = validateNFTs($acc628042839, $list28042839[6])
109+ if (($size28042839 == 7))
110+ then $acc728042839
111+ else {
112+ let $acc828042839 = validateNFTs($acc728042839, $list28042839[7])
113+ if (($size28042839 == 8))
114+ then $acc828042839
115+ else {
116+ let $acc928042839 = validateNFTs($acc828042839, $list28042839[8])
117+ if (($size28042839 == 9))
118+ then $acc928042839
119+ else {
120+ let $acc1028042839 = validateNFTs($acc928042839, $list28042839[9])
121+ if (($size28042839 == 10))
122+ then $acc1028042839
123+ else {
124+ let $acc1128042839 = validateNFTs($acc1028042839, $list28042839[10])
125+ throw("List size exceed 10")
126+ }
127+ }
128+ }
129+ }
130+ }
131+ }
132+ }
133+ }
134+ }
135+ }
136+ }
137+ }
138+ let userIsRegistered = match getString(this, ("user_status_" + callerAddress)) {
139+ case s: String =>
140+ s
141+ case _ =>
142+ userUnregistered
143+ }
144+ if ((userIsRegistered == userUnregistered))
145+ then throw("Please register this account first")
146+ else if ((userIsRegistered == userSuspended))
147+ then throw("Your account is suspended")
148+ else if ((numberOfNFTs > 10))
149+ then throw("Maximum 10 editions per artwork")
150+ else if ((checkIDs != numberOfNFTs))
151+ then throw("Please verify that all NFT ids are valid.")
152+ else if ((entryExist != "NONE"))
153+ then throw("This artwork is already registered")
154+ else if ((size(hash) > 64))
155+ then throw("Hash is too long, 64 characters max.")
156+ else {
157+ let payment = value(invoke.payment)
158+ let amount = payment.amount
159+ let paymentAssetId = if (isDefined(payment.assetId))
160+ then payment.assetId
161+ else throw("Waves is not accepted as payment")
162+ let currentPrice = 17099863201094
163+ if ((acceptedToken != paymentAssetId))
164+ then throw("This token is not accepted at the moment")
165+ else if ((amount != currentPrice))
166+ then throw("The price is wrong")
167+ else ScriptResult(WriteSet([DataEntry(hash, id), DataEntry(((("art_date_" + id) + "_") + callerAddress), entryDate), DataEntry(((("art_json_" + id) + "_") + callerAddress), json), DataEntry(((("art_nfts_" + id) + "_") + callerAddress), nfts), DataEntry(((("art_sign_" + id) + "_") + callerAddress), signID)]), TransferSet([ScriptTransfer(addressFromStringValue(bank), amount, payment.assetId)]))
168+ }
169+ }
170+
171+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let storageVerifier = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
5+
6+let signVerifier = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
7+
8+let bank = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
9+
10+let acceptedToken = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
11+
12+let usdnID = "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"
13+
414 func getStringByKey (key) = match getString(this, key) {
515 case a: String =>
616 a
717 case _ =>
818 ""
919 }
1020
1121
22+func getStringByAddressKey (addr,key) = match getString(addr, key) {
23+ case a: String =>
24+ a
25+ case _ =>
26+ ""
27+}
28+
29+
30+func validateNFTs (accumulator,id) = {
31+ let assetDetails = value(assetInfo(fromBase58String(id)))
32+ if (if (if ((assetDetails.quantity != 1))
33+ then true
34+ else (assetDetails.decimals != 0))
35+ then true
36+ else (assetDetails.reissuable != false))
37+ then (accumulator + 0)
38+ else (accumulator + 1)
39+ }
40+
41+
1242 let userCreated = "CREATED"
1343
1444 let userSuspended = "SUSPENDED"
45+
46+let userUnregistered = "UNREGISTERED"
1547
1648 @Callable(i)
1749 func registerUpdateUser (name,description,thumb,social) = {
1850 let callerAddr = toString(addressFromPublicKey(i.callerPublicKey))
1951 let id = toBase58String(i.transactionId)
2052 let newUser = getStringByKey(("user_" + callerAddr))
2153 if (if ((name == ""))
2254 then true
2355 else (description == ""))
2456 then throw("Name and description cannot be empty")
2557 else if ((newUser == ""))
2658 then WriteSet([DataEntry(("user_" + callerAddr), ((id + "_") + toString(lastBlock.timestamp))), DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb), DataEntry(("user_status_" + callerAddr), userCreated)])
2759 else WriteSet([DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb)])
2860 }
2961
3062
63+
64+@Callable(invoke)
65+func test (hash) = throw("Error")
66+
67+
68+
69+@Callable(invoke)
70+func addArtwork (hash,json,nfts,signID) = {
71+ let id = toBase58String(invoke.transactionId)
72+ let entryExist = getStringByKey(hash)
73+ let callerAddress = toBase58String(invoke.caller.bytes)
74+ let entryDate = lastBlock.timestamp
75+ let nftArray = split(nfts, "|")
76+ let numberOfNFTs = size(nftArray)
77+ let checkIDs = {
78+ let $list28042839 = nftArray
79+ let $size28042839 = size($list28042839)
80+ let $acc028042839 = 0
81+ if (($size28042839 == 0))
82+ then $acc028042839
83+ else {
84+ let $acc128042839 = validateNFTs($acc028042839, $list28042839[0])
85+ if (($size28042839 == 1))
86+ then $acc128042839
87+ else {
88+ let $acc228042839 = validateNFTs($acc128042839, $list28042839[1])
89+ if (($size28042839 == 2))
90+ then $acc228042839
91+ else {
92+ let $acc328042839 = validateNFTs($acc228042839, $list28042839[2])
93+ if (($size28042839 == 3))
94+ then $acc328042839
95+ else {
96+ let $acc428042839 = validateNFTs($acc328042839, $list28042839[3])
97+ if (($size28042839 == 4))
98+ then $acc428042839
99+ else {
100+ let $acc528042839 = validateNFTs($acc428042839, $list28042839[4])
101+ if (($size28042839 == 5))
102+ then $acc528042839
103+ else {
104+ let $acc628042839 = validateNFTs($acc528042839, $list28042839[5])
105+ if (($size28042839 == 6))
106+ then $acc628042839
107+ else {
108+ let $acc728042839 = validateNFTs($acc628042839, $list28042839[6])
109+ if (($size28042839 == 7))
110+ then $acc728042839
111+ else {
112+ let $acc828042839 = validateNFTs($acc728042839, $list28042839[7])
113+ if (($size28042839 == 8))
114+ then $acc828042839
115+ else {
116+ let $acc928042839 = validateNFTs($acc828042839, $list28042839[8])
117+ if (($size28042839 == 9))
118+ then $acc928042839
119+ else {
120+ let $acc1028042839 = validateNFTs($acc928042839, $list28042839[9])
121+ if (($size28042839 == 10))
122+ then $acc1028042839
123+ else {
124+ let $acc1128042839 = validateNFTs($acc1028042839, $list28042839[10])
125+ throw("List size exceed 10")
126+ }
127+ }
128+ }
129+ }
130+ }
131+ }
132+ }
133+ }
134+ }
135+ }
136+ }
137+ }
138+ let userIsRegistered = match getString(this, ("user_status_" + callerAddress)) {
139+ case s: String =>
140+ s
141+ case _ =>
142+ userUnregistered
143+ }
144+ if ((userIsRegistered == userUnregistered))
145+ then throw("Please register this account first")
146+ else if ((userIsRegistered == userSuspended))
147+ then throw("Your account is suspended")
148+ else if ((numberOfNFTs > 10))
149+ then throw("Maximum 10 editions per artwork")
150+ else if ((checkIDs != numberOfNFTs))
151+ then throw("Please verify that all NFT ids are valid.")
152+ else if ((entryExist != "NONE"))
153+ then throw("This artwork is already registered")
154+ else if ((size(hash) > 64))
155+ then throw("Hash is too long, 64 characters max.")
156+ else {
157+ let payment = value(invoke.payment)
158+ let amount = payment.amount
159+ let paymentAssetId = if (isDefined(payment.assetId))
160+ then payment.assetId
161+ else throw("Waves is not accepted as payment")
162+ let currentPrice = 17099863201094
163+ if ((acceptedToken != paymentAssetId))
164+ then throw("This token is not accepted at the moment")
165+ else if ((amount != currentPrice))
166+ then throw("The price is wrong")
167+ else ScriptResult(WriteSet([DataEntry(hash, id), DataEntry(((("art_date_" + id) + "_") + callerAddress), entryDate), DataEntry(((("art_json_" + id) + "_") + callerAddress), json), DataEntry(((("art_nfts_" + id) + "_") + callerAddress), nfts), DataEntry(((("art_sign_" + id) + "_") + callerAddress), signID)]), TransferSet([ScriptTransfer(addressFromStringValue(bank), amount, payment.assetId)]))
168+ }
169+ }
170+
171+

github/deemru/w8io/873ac7e 
58.14 ms