tx · 8dn6zKRUPgDVjzYKSzbtueqDHtZ9PHgrNg35tZhFdXB2

3MzHoJV1CLomRBnH8ABRteuuqzwfBLpmFBK:  -0.01000000 Waves

2022.05.15 17:13 [2052897] smart account 3MzHoJV1CLomRBnH8ABRteuuqzwfBLpmFBK > SELF 0.00000000 Waves

{ "type": 13, "id": "8dn6zKRUPgDVjzYKSzbtueqDHtZ9PHgrNg35tZhFdXB2", "fee": 1000000, "feeAssetId": null, "timestamp": 1652624001127, "version": 2, "chainId": 84, "sender": "3MzHoJV1CLomRBnH8ABRteuuqzwfBLpmFBK", "senderPublicKey": "2z1emPvrjxnaWuXjZw8rWnzZqfZkA5DTGxvfyhRXgXKo", "proofs": [ "GjjAwaGgqB3wr9wZRXwPCnStiVPTv2U16FdL13tQXk79ppHNVAZJ8387U44FQ3xWdGzpEKW5msLPrix2CdM5PQS" ], "script": "base64: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ZUtleQkAAAIAAAABAgAAAC9DYW4gbm90IHVwZGF0ZSBjb2xsZWN0aW9uIGZyb20gYXJ0d29yayBmb3Igc2FsZQQAAAANZGVsZXRlRW50cmllcwMDCQEAAAACIT0AAAACBQAAAA1vbGRDb2xsZWN0aW9uBQAAAApjb2xsZWN0aW9uBgkBAAAAAiE9AAAAAgUAAAAQb2xkU3ViY29sbGVjdGlvbgUAAAANc3ViY29sbGVjdGlvbgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5U3ViY29sbGVjdGlvbkNvbGxlY3Rpb24AAAADBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApjb2xsZWN0aW9uBQAAAANuaWwFAAAAA25pbAQAAAAfdmFsaWRhdGVBbmRQcm9jZXNzUGF5bWVudEludm9rZQkAA/wAAAAECQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIFAAAACXN0YWtlRGFwcAIAAAAOdGhpcyBub3QgZm91bmQCAAAAGXZhbGlkYXRlQW5kUHJvY2Vzc1BheW1lbnQFAAAAA25pbAkABEwAAAACCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABQAAAANuaWwDCQAAAAAAAAIFAAAAH3ZhbGlkYXRlQW5kUHJvY2Vzc1BheW1lbnRJbnZva2UFAAAAH3ZhbGlkYXRlQW5kUHJvY2Vzc1BheW1lbnRJbnZva2UJAAROAAAAAgUAAAANZGVsZXRlRW50cmllcwkBAAAAC2NvbGxlY3Rpb25zAAAABQUAAAAFYXJ0SWQFAAAAAWkFAAAACmNvbGxlY3Rpb24FAAAADXN1YmNvbGxlY3Rpb24FAAAABmNhbGxlcgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAA+dmSdQ==", "height": 2052897, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func keyCollection (caller,collectionId) = ((("collection_" + collectionId) + "_") + caller)
5+
6+
7+func keySubcollectionCollection (caller,collectionId,collection) = ((((("subcollection_collection_" + collectionId) + "_") + caller) + "_") + collection)
8+
9+
10+func keyOnSale (caller,collectionId) = ((("art_onsale_" + collectionId) + "_") + caller)
11+
12+
13+let sconexDappKey = "sconexDapp"
14+
15+let oracleKey = "oracleKey"
16+
17+func getStr (key) = match getString(this, key) {
18+ case b: String =>
19+ b
20+ case _ =>
21+ ""
22+}
23+
24+
25+let oracle = getStr(oracleKey)
26+
27+let oracleFee = valueOrErrorMessage(addressFromString(oracle), "Collections dapp doesnt have oracle defined")
28+
29+let stakeDapp = addressFromString(valueOrErrorMessage(getString(oracleFee, "stakeDapp"), "sconexDapp not found"))
30+
31+let sconexDapp = getStringValue(oracleFee, sconexDappKey)
32+
33+func getBooleanByKey (key) = valueOrElse(getBoolean(addressFromStringValue(sconexDapp), key), false)
34+
35+
36+func invokerIsSconexDapp (invoker) = if ((invoker != addressFromString(sconexDapp)))
37+ then throw("Only the sconex dapp can invoke this")
38+ else true
39+
40+
41+func getStringByKeyFromDapp (dapp,key) = valueOrElse(getString(dapp, key), "")
42+
43+
44+func collections (collectionId,i,collection,subcollection,creator) = if ((collection == ""))
45+ then throw("Collections can not be empty!")
46+ else if ((subcollection == ""))
47+ then [StringEntry(keyCollection(creator, collectionId), collection)]
48+ else [StringEntry(keyCollection(creator, collectionId), collection), StringEntry(keySubcollectionCollection(creator, collectionId, collection), subcollection)]
49+
50+
51+@Callable(i)
52+func initDapp (dappKey) = if ((i.caller != this))
53+ then throw("You cannot do this action")
54+ else if ((oracle != ""))
55+ then throw("oracle already set, you can't override!")
56+ else [StringEntry(oracleKey, dappKey)]
57+
58+
59+
60+@Callable(i)
61+func collectionProcess (collection,subcollection,creator) = if (if (!(invokerIsSconexDapp(i.caller)))
62+ then (i.caller != this)
63+ else false)
64+ then throw("Wrong invoker")
65+ else $Tuple2(collections(toBase58String(i.transactionId), i, collection, subcollection, creator), toBase58String(i.transactionId))
66+
67+
68+
69+@Callable(i)
70+func updateCollection (oldCollection,oldSubcollection,artId,collection,subcollection) = {
71+ let caller = toBase58String(i.caller.bytes)
72+ let saleKey = keyOnSale(artId, caller)
73+ if (getBooleanByKey(saleKey))
74+ then throw("Can not update collection from artwork for sale")
75+ else {
76+ let deleteEntries = if (if ((oldCollection != collection))
77+ then true
78+ else (oldSubcollection != subcollection))
79+ then [DeleteEntry(keySubcollectionCollection(caller, artId, collection))]
80+ else nil
81+ let validateAndProcessPaymentInvoke = invoke(valueOrErrorMessage(stakeDapp, "this not found"), "validateAndProcessPayment", nil, [i.payments[0]])
82+ if ((validateAndProcessPaymentInvoke == validateAndProcessPaymentInvoke))
83+ then (deleteEntries ++ collections(artId, i, collection, subcollection, caller))
84+ else throw("Strict value is not equal to itself.")
85+ }
86+ }
87+
88+

github/deemru/w8io/c3f4982 
15.82 ms