tx · BYCEoBuZfqUGpeQgvjJrrY65LaJ1Z2dcwF1kVGd9AwFn

3N8mwjgLRxL4TqXfzx1BkDQowTd11YQzonb:  -0.01000000 Waves

2022.02.13 19:29 [1922091] smart account 3N8mwjgLRxL4TqXfzx1BkDQowTd11YQzonb > SELF 0.00000000 Waves

{ "type": 13, "id": "BYCEoBuZfqUGpeQgvjJrrY65LaJ1Z2dcwF1kVGd9AwFn", "fee": 1000000, "feeAssetId": null, "timestamp": 1644769759198, "version": 2, "chainId": 84, "sender": "3N8mwjgLRxL4TqXfzx1BkDQowTd11YQzonb", "senderPublicKey": "FRWHTvHAyrGoiWNsvEJfBfhsqvQVZTYSYrFdXkm9fABv", "proofs": [ "KtALywsXGcF2whi27ypnbcCYXDTzPaZgb4R9YLxP48QcQhKPbAKoAZ8Sy4CCBw5KrwyzaPwBa86ZNdD5PE2saLR" ], "script": "base64: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Y29uZXhEYXBwAgAAAAAJAAACAAAAAQIAAAAsU2NvbmV4IGRhcHAgYWxyZWFkeSBzZXQsIHlvdSBjYW4ndCBvdmVycmlkZSEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAANc2NvbmV4RGFwcEtleQUAAAAHZGFwcEtleQUAAAADbmlsAAAAAWkBAAAAEWNvbGxlY3Rpb25Qcm9jZXNzAAAABAAAAApjb2xsZWN0aW9uAAAADXN1YmNvbGxlY3Rpb24AAAAFYXJ0SWQAAAAHY3JlYXRvcgkABRQAAAACCQEAAAALY29sbGVjdGlvbnMAAAAGCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAAWkFAAAACmNvbGxlY3Rpb24FAAAADXN1YmNvbGxlY3Rpb24FAAAABWFydElkBQAAAAdjcmVhdG9yCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQAAAABaQEAAAAQdXBkYXRlQ29sbGVjdGlvbgAAAAYAAAAMY29sbGVjdGlvbklkAAAADW9sZENvbGxlY3Rpb24AAAAQb2xkU3ViY29sbGVjdGlvbgAAAAVhcnRJZAAAAApjb2xsZWN0aW9uAAAADXN1YmNvbGxlY3Rpb24EAAAABmNhbGxlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdzYWxlS2V5CQEAAAAJa2V5T25TYWxlAAAAAgUAAAAFYXJ0SWQFAAAABmNhbGxlcgMJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABBQAAAAdzYWxlS2V5CQAAAgAAAAECAAAAL0NhbiBub3QgdXBkYXRlIGNvbGxlY3Rpb24gZnJvbSBhcnR3b3JrIGZvciBzYWxlBAAAAA1kZWxldGVFbnRyaWVzAwMJAQAAAAIhPQAAAAIFAAAADW9sZENvbGxlY3Rpb24FAAAACmNvbGxlY3Rpb24GCQEAAAACIT0AAAACBQAAABBvbGRTdWJjb2xsZWN0aW9uBQAAAA1zdWJjb2xsZWN0aW9uCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABprZXlTdWJjb2xsZWN0aW9uQ29sbGVjdGlvbgAAAAMFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACmNvbGxlY3Rpb24FAAAAA25pbAUAAAADbmlsCQAETgAAAAIFAAAADWRlbGV0ZUVudHJpZXMJAQAAAAtjb2xsZWN0aW9ucwAAAAYFAAAADGNvbGxlY3Rpb25JZAUAAAABaQUAAAAKY29sbGVjdGlvbgUAAAANc3ViY29sbGVjdGlvbgUAAAAFYXJ0SWQFAAAABmNhbGxlcgAAAACH22eV", "height": 1922091, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ftb5gmWAnJyVGk9zkrcSmEf3Xn4ojUFDjd7UQgKfeY5 Next: BfwxJVDQVG7XTmwKi1cUbeCL1FgstGz5EidHvpohbAH Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func keyCollection (caller,artId) = ((("collection_" + artId) + "_") + caller)
4+func keyCollection (caller,collectionId) = ((("collection_" + collectionId) + "_") + caller)
55
66
7-func keySubcollection (caller,artId) = ((("subcollection_" + artId) + "_") + caller)
7+func keySubcollection (caller,collectionId) = ((("subcollection_" + collectionId) + "_") + caller)
88
99
10-func keySubcollectionCollection (caller,artId,collection) = ((((("subcollection_collection_" + artId) + "_") + caller) + "_") + collection)
10+func keySubcollectionCollection (caller,collectionId,collection) = ((((("subcollection_collection_" + collectionId) + "_") + caller) + "_") + collection)
1111
1212
13-func keyOnSale (caller,artId) = ((("art_onsale_" + artId) + "_") + caller)
13+func keyOnSale (caller,collectionId) = ((("art_onsale_" + collectionId) + "_") + caller)
1414
1515
1616 let sconexDappKey = "sconexDappKey"
3333 else throw("Only the sconex dapp can invoke this")
3434
3535
36-func collections (i,collection,subcollection,artId,creator) = if (if (invokerIsSconexDapp(i.caller))
36+func collections (txId,i,collection,subcollection,artId,creator) = if (if (invokerIsSconexDapp(i.caller))
3737 then true
3838 else (i.caller == this))
3939 then if ((collection == ""))
5454
5555
5656 @Callable(i)
57-func collectionProcess (collection,subcollection,artId,creator) = $Tuple2(collections(i, collection, subcollection, artId, creator), toBase58String(i.transactionId))
57+func collectionProcess (collection,subcollection,artId,creator) = $Tuple2(collections(toBase58String(i.transactionId), i, collection, subcollection, artId, creator), toBase58String(i.transactionId))
5858
5959
6060
6161 @Callable(i)
62-func updateCollection (oldCollection,oldSubcollection,artId,collection,subcollection) = {
62+func updateCollection (collectionId,oldCollection,oldSubcollection,artId,collection,subcollection) = {
6363 let caller = toBase58String(i.caller.bytes)
6464 let saleKey = keyOnSale(artId, caller)
6565 if (getBooleanByKey(saleKey))
7070 else (oldSubcollection != subcollection))
7171 then [DeleteEntry(keySubcollectionCollection(caller, artId, collection))]
7272 else nil
73- (deleteEntries ++ collections(i, collection, subcollection, artId, caller))
73+ (deleteEntries ++ collections(collectionId, i, collection, subcollection, artId, caller))
7474 }
7575 }
7676
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func keyCollection (caller,artId) = ((("collection_" + artId) + "_") + caller)
4+func keyCollection (caller,collectionId) = ((("collection_" + collectionId) + "_") + caller)
55
66
7-func keySubcollection (caller,artId) = ((("subcollection_" + artId) + "_") + caller)
7+func keySubcollection (caller,collectionId) = ((("subcollection_" + collectionId) + "_") + caller)
88
99
10-func keySubcollectionCollection (caller,artId,collection) = ((((("subcollection_collection_" + artId) + "_") + caller) + "_") + collection)
10+func keySubcollectionCollection (caller,collectionId,collection) = ((((("subcollection_collection_" + collectionId) + "_") + caller) + "_") + collection)
1111
1212
13-func keyOnSale (caller,artId) = ((("art_onsale_" + artId) + "_") + caller)
13+func keyOnSale (caller,collectionId) = ((("art_onsale_" + collectionId) + "_") + caller)
1414
1515
1616 let sconexDappKey = "sconexDappKey"
1717
1818 func getStr (key) = match getString(this, key) {
1919 case b: String =>
2020 b
2121 case _ =>
2222 ""
2323 }
2424
2525
2626 let sconexDapp = getStr(sconexDappKey)
2727
2828 func getBooleanByKey (key) = valueOrElse(getBoolean(addressFromStringValue(sconexDapp), key), false)
2929
3030
3131 func invokerIsSconexDapp (invoker) = if ((invoker == addressFromString(sconexDapp)))
3232 then true
3333 else throw("Only the sconex dapp can invoke this")
3434
3535
36-func collections (i,collection,subcollection,artId,creator) = if (if (invokerIsSconexDapp(i.caller))
36+func collections (txId,i,collection,subcollection,artId,creator) = if (if (invokerIsSconexDapp(i.caller))
3737 then true
3838 else (i.caller == this))
3939 then if ((collection == ""))
4040 then throw("Collections can not be empty!")
4141 else if ((subcollection == ""))
4242 then [StringEntry(keyCollection(creator, artId), collection)]
4343 else [StringEntry(keyCollection(creator, artId), collection), StringEntry(keySubcollectionCollection(creator, artId, collection), subcollection)]
4444 else throw("Wrong invoker")
4545
4646
4747 @Callable(i)
4848 func initDapp (dappKey) = if ((i.caller != this))
4949 then throw("You cannot do this action")
5050 else if ((sconexDapp != ""))
5151 then throw("Sconex dapp already set, you can't override!")
5252 else [StringEntry(sconexDappKey, dappKey)]
5353
5454
5555
5656 @Callable(i)
57-func collectionProcess (collection,subcollection,artId,creator) = $Tuple2(collections(i, collection, subcollection, artId, creator), toBase58String(i.transactionId))
57+func collectionProcess (collection,subcollection,artId,creator) = $Tuple2(collections(toBase58String(i.transactionId), i, collection, subcollection, artId, creator), toBase58String(i.transactionId))
5858
5959
6060
6161 @Callable(i)
62-func updateCollection (oldCollection,oldSubcollection,artId,collection,subcollection) = {
62+func updateCollection (collectionId,oldCollection,oldSubcollection,artId,collection,subcollection) = {
6363 let caller = toBase58String(i.caller.bytes)
6464 let saleKey = keyOnSale(artId, caller)
6565 if (getBooleanByKey(saleKey))
6666 then throw("Can not update collection from artwork for sale")
6767 else {
6868 let deleteEntries = if (if ((oldCollection != collection))
6969 then true
7070 else (oldSubcollection != subcollection))
7171 then [DeleteEntry(keySubcollectionCollection(caller, artId, collection))]
7272 else nil
73- (deleteEntries ++ collections(i, collection, subcollection, artId, caller))
73+ (deleteEntries ++ collections(collectionId, i, collection, subcollection, artId, caller))
7474 }
7575 }
7676
7777

github/deemru/w8io/c3f4982 
24.64 ms