tx · 8YyofqQTRaGnM7nmmju8mPPVNeEnZhZqxHEx8dJspB2C

3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV:  -0.01400000 Waves

2020.07.24 11:18 [1101341] smart account 3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV > SELF 0.00000000 Waves

{ "type": 13, "id": "8YyofqQTRaGnM7nmmju8mPPVNeEnZhZqxHEx8dJspB2C", "fee": 1400000, "feeAssetId": null, "timestamp": 1595578721759, "version": 1, "sender": "3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV", "senderPublicKey": "BF56eooJyMKnwSL3B65fqLBFPfubUbW6wdky9pCGQajE", "proofs": [ "aKQc1hjmw2VBzR4ooTg9oKDGSQ175Lw3w2fHSCxSeURCDK3NA2QUqGv2oX3yb7mRXQeQSZFHEGpepFHfAy9DYEK" ], "script": "base64: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", "chainId": 84, "height": 1101341, "spentComplexity": 0 } View: original | compacted Prev: G47j7kWuCoaEdRi5WbC85SMTUteD2i92KkAfnouZAU4k Next: Ad9S25AAuJ8oTCUtAzQvV8p39xgtuB2Ek5B4sK2RqiJy Diff:
OldNewDifferences
153153 then throw("This artwork is already registered")
154154 else if ((size(hash) > 64))
155155 then throw("Hash is too long, 64 characters max.")
156- else {
157- let payment = extract(invoke.payment)
158- let amount = extract(payment.amount)
159- let paymentAssetId = if (isDefined(payment.assetId))
160- then extract(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(((("art_hash_" + hash) + "_") + callerAddress), 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- }
156+ else WriteSet([DataEntry(((("art_hash_" + hash) + "_") + callerAddress), 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)])
169157 }
170158
171159
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let storageVerifier = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
55
66 let signVerifier = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
77
88 let bank = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
99
1010 let acceptedToken = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
1111
1212 let usdnID = "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"
1313
1414 func getStringByKey (key) = match getString(this, key) {
1515 case a: String =>
1616 a
1717 case _ =>
1818 ""
1919 }
2020
2121
2222 func getStringByAddressKey (addr,key) = match getString(addr, key) {
2323 case a: String =>
2424 a
2525 case _ =>
2626 ""
2727 }
2828
2929
3030 func validateNFTs (accumulator,id) = {
3131 let assetDetails = value(assetInfo(fromBase58String(id)))
3232 if (if (if ((assetDetails.quantity != 1))
3333 then true
3434 else (assetDetails.decimals != 0))
3535 then true
3636 else (assetDetails.reissuable != false))
3737 then (accumulator + 0)
3838 else (accumulator + 1)
3939 }
4040
4141
4242 let userCreated = "CREATED"
4343
4444 let userSuspended = "SUSPENDED"
4545
4646 let userUnregistered = "UNREGISTERED"
4747
4848 @Callable(i)
4949 func registerUpdateUser (name,description,thumb,social) = {
5050 let callerAddr = toString(addressFromPublicKey(i.callerPublicKey))
5151 let id = toBase58String(i.transactionId)
5252 let newUser = getStringByKey(("user_" + callerAddr))
5353 if (if ((name == ""))
5454 then true
5555 else (description == ""))
5656 then throw("Name and description cannot be empty")
5757 else if ((newUser == ""))
5858 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)])
5959 else WriteSet([DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb)])
6060 }
6161
6262
6363
6464 @Callable(invoke)
6565 func test (hash) = throw("Error")
6666
6767
6868
6969 @Callable(invoke)
7070 func addArtwork (hash,json,nfts,signID) = {
7171 let id = toBase58String(invoke.transactionId)
7272 let callerAddress = toBase58String(invoke.caller.bytes)
7373 let entryExist = getStringByKey(((("art_hash_" + hash) + "_") + callerAddress))
7474 let entryDate = lastBlock.timestamp
7575 let nftArray = split(nfts, "|")
7676 let numberOfNFTs = size(nftArray)
7777 let checkIDs = {
7878 let $list28342869 = nftArray
7979 let $size28342869 = size($list28342869)
8080 let $acc028342869 = 0
8181 if (($size28342869 == 0))
8282 then $acc028342869
8383 else {
8484 let $acc128342869 = validateNFTs($acc028342869, $list28342869[0])
8585 if (($size28342869 == 1))
8686 then $acc128342869
8787 else {
8888 let $acc228342869 = validateNFTs($acc128342869, $list28342869[1])
8989 if (($size28342869 == 2))
9090 then $acc228342869
9191 else {
9292 let $acc328342869 = validateNFTs($acc228342869, $list28342869[2])
9393 if (($size28342869 == 3))
9494 then $acc328342869
9595 else {
9696 let $acc428342869 = validateNFTs($acc328342869, $list28342869[3])
9797 if (($size28342869 == 4))
9898 then $acc428342869
9999 else {
100100 let $acc528342869 = validateNFTs($acc428342869, $list28342869[4])
101101 if (($size28342869 == 5))
102102 then $acc528342869
103103 else {
104104 let $acc628342869 = validateNFTs($acc528342869, $list28342869[5])
105105 if (($size28342869 == 6))
106106 then $acc628342869
107107 else {
108108 let $acc728342869 = validateNFTs($acc628342869, $list28342869[6])
109109 if (($size28342869 == 7))
110110 then $acc728342869
111111 else {
112112 let $acc828342869 = validateNFTs($acc728342869, $list28342869[7])
113113 if (($size28342869 == 8))
114114 then $acc828342869
115115 else {
116116 let $acc928342869 = validateNFTs($acc828342869, $list28342869[8])
117117 if (($size28342869 == 9))
118118 then $acc928342869
119119 else {
120120 let $acc1028342869 = validateNFTs($acc928342869, $list28342869[9])
121121 if (($size28342869 == 10))
122122 then $acc1028342869
123123 else {
124124 let $acc1128342869 = validateNFTs($acc1028342869, $list28342869[10])
125125 throw("List size exceed 10")
126126 }
127127 }
128128 }
129129 }
130130 }
131131 }
132132 }
133133 }
134134 }
135135 }
136136 }
137137 }
138138 let userIsRegistered = match getString(this, ("user_status_" + callerAddress)) {
139139 case s: String =>
140140 s
141141 case _ =>
142142 userUnregistered
143143 }
144144 if ((userIsRegistered == userUnregistered))
145145 then throw("Please register this account first")
146146 else if ((userIsRegistered == userSuspended))
147147 then throw("Your account is suspended")
148148 else if ((numberOfNFTs > 10))
149149 then throw("Maximum 10 editions per artwork")
150150 else if ((checkIDs != numberOfNFTs))
151151 then throw("Please verify that all NFT ids are valid.")
152152 else if ((entryExist != ""))
153153 then throw("This artwork is already registered")
154154 else if ((size(hash) > 64))
155155 then throw("Hash is too long, 64 characters max.")
156- else {
157- let payment = extract(invoke.payment)
158- let amount = extract(payment.amount)
159- let paymentAssetId = if (isDefined(payment.assetId))
160- then extract(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(((("art_hash_" + hash) + "_") + callerAddress), 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- }
156+ else WriteSet([DataEntry(((("art_hash_" + hash) + "_") + callerAddress), 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)])
169157 }
170158
171159
172160
173161 @Callable(invoke)
174162 func updateArtworkInfos (hash,json) = {
175163 let id = toBase58String(invoke.transactionId)
176164 let callerAddress = toBase58String(invoke.caller.bytes)
177165 let entryExist = getStringByKey(((("art_hash_" + hash) + "_") + callerAddress))
178166 let isOwner = isDefined(getString(this, ((("art_hash_" + hash) + "_") + callerAddress)))
179167 let userIsRegistered = match getString(this, ("user_status_" + callerAddress)) {
180168 case s: String =>
181169 s
182170 case _ =>
183171 userUnregistered
184172 }
185173 if (!(isOwner))
186174 then throw("You are not the creator of this artwork")
187175 else if ((userIsRegistered == userSuspended))
188176 then throw("Your account is suspended")
189177 else if ((entryExist != "NONE"))
190178 then throw("This artwork is already registered")
191179 else if ((size(hash) > 64))
192180 then throw("Hash is too long, 64 characters max.")
193181 else WriteSet([DataEntry(((("art_json_" + id) + "_") + callerAddress), json)])
194182 }
195183
196184

github/deemru/w8io/3ef1775 
43.29 ms