tx · dqBZQvkQ9sCzsLZonYiykQHig7LqZm9M2qT16cxjNi1

3MrGaZVRhknEGfHJ19ttUPNnDRoFqcHhVN7:  -0.00300000 Waves

2023.03.15 21:45 [2491514] smart account 3MrGaZVRhknEGfHJ19ttUPNnDRoFqcHhVN7 > SELF 0.00000000 Waves

{ "type": 13, "id": "dqBZQvkQ9sCzsLZonYiykQHig7LqZm9M2qT16cxjNi1", "fee": 300000, "feeAssetId": null, "timestamp": 1678905986067, "version": 2, "chainId": 84, "sender": "3MrGaZVRhknEGfHJ19ttUPNnDRoFqcHhVN7", "senderPublicKey": "CrHxACS7bWTh8cgmgqstvybmgMqR9KtDryGFt5svZhBW", "proofs": [ "2F72djSndaznKCcYHjkTcYGxacN2zftVE6e5jwYGtAnLQn8un8zK2Tdu2cE4JKrvxJKAFZ7GCBk4GdkaKbDHMvVR" ], "script": "base64:BgIxCAISBAoCGBgSBAoCGBgSAwoBCBIDCgEIEgUKAwgICBIECgIICBIDCgEIEgUKAwgYGAgADmNvbGxlY3Rpb25OYW1lCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAg5jb2xsZWN0aW9uTmFtZQAGc3ltYm9sCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgZzeW1ib2wAC2Rlc2NyaXB0aW9uCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgtkZXNjcmlwdGlvbgALdG90YWxBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCC3RvdGFsQW1vdW50AAhkQXBwSnNvbgkBB0FkZHJlc3MBCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCCGRBcHBKc29uAQxvbmx5SW50ZXJuYWwBBmNhbGxlcgMJAAACBQZjYWxsZXIFBHRoaXMFBHVuaXQJAAIBAhJPbmx5IGludGVybmFsIGNhbGwBDXRyYW5zZmVyT3JOb3QCAnRvB2Fzc2V0SWQDCQAAAgUCdG8FBHRoaXMJAQtTdHJpbmdFbnRyeQICDtC60L7RgdGC0YvQu9GMAg7QutC+0YHRgtGL0LvRjAkBDlNjcmlwdFRyYW5zZmVyAwUCdG8AAQUHYXNzZXRJZAEHc2V0VXNlcgMHYXNzZXRJZAR1c2VyB2V4cGlyZXMJAQV0aHJvdwAIAWkBEG1ha2VKU09OSW50ZXJuYWwCB2FycktleXMJYXJyVmFsdWVzCQELdmFsdWVPckVsc2UCCQEMb25seUludGVybmFsAQgFAWkGY2FsbGVyBANyZXMJAPwHBAUIZEFwcEpzb24CCG1ha2VKU09OCQDMCAIFB2FycktleXMJAMwIAgUJYXJyVmFsdWVzBQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwkAlAoCBQNuaWwFA3JlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFhZGRUb0pTT05JbnRlcm5hbAIHYXJyS2V5cwlhcnJWYWx1ZXMJAQt2YWx1ZU9yRWxzZQIJAQxvbmx5SW50ZXJuYWwBCAUBaQZjYWxsZXIEA3JlcwkA/AcEBQhkQXBwSnNvbgIJYWRkVG9KU09OCQDMCAIFB2FycktleXMJAMwIAgUJYXJyVmFsdWVzBQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwkAlAoCBQNuaWwFA3JlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVyZWFkQnlKU09OS2V5SW50ZXJuYWwBA2tleQkBC3ZhbHVlT3JFbHNlAgkBDG9ubHlJbnRlcm5hbAEIBQFpBmNhbGxlcgQDcmVzCQD8BwQFCGRBcHBKc29uAg1yZWFkQnlKU09OS2V5CQDMCAIFA2tleQUDbmlsBQNuaWwDCQAAAgUDcmVzBQNyZXMJAJQKAgUDbmlsBQNyZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEXZGVsZXRlQnlKU09OS2V5SW50ZXJuYWwBA2tleQkBC3ZhbHVlT3JFbHNlAgkBDG9ubHlJbnRlcm5hbAEIBQFpBmNhbGxlcgQDcmVzCQD8BwQFCGRBcHBKc29uAg9kZWxldGVCeUpTT05LZXkJAMwIAgUDa2V5BQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwkAlAoCBQNuaWwFA3JlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRpbml0Aw5jb2xsZWN0aW9uTmFtZQZzeW1ib2wLZGVzY3JpcHRpb24JAQt2YWx1ZU9yRWxzZQIJAQxvbmx5SW50ZXJuYWwBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgIOY29sbGVjdGlvbk5hbWUFDmNvbGxlY3Rpb25OYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQICBnN5bWJvbAUGc3ltYm9sCQDMCAIJAQtTdHJpbmdFbnRyeQICC2Rlc2NyaXB0aW9uBQtkZXNjcmlwdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgILdG90YWxBbW91bnQAAAUDbmlsAWkBBG1pbnQCAnRvCHRva2VuVVJJCQELdmFsdWVPckVsc2UCCQEMb25seUludGVybmFsAQgFAWkGY2FsbGVyBAd0b2tlbklkCQBkAgULdG90YWxBbW91bnQAAQQHcHJlTmFtZQkArAICCQCsAgIFBnN5bWJvbAIBIwkApAMBBQd0b2tlbklkBARuYW1lAwkAZwIAEAkAsQIBBQdwcmVOYW1lBQdwcmVOYW1lCQCkAwEFB3Rva2VuSWQEBWFzc2V0CQDDCAcFBG5hbWUJAKwCAgkArAICAgZ7dXJpOiIFCHRva2VuVVJJAgIifQABAAAHBQR1bml0BQZoZWlnaHQEB2Fzc2V0SWQJALgIAQUFYXNzZXQECXRvQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFAnRvBAh0cmFuc2ZlcgkBDXRyYW5zZmVyT3JOb3QCBQl0b0FkZHJlc3MFB2Fzc2V0SWQDCQAAAgUIdHJhbnNmZXIFCHRyYW5zZmVyCQDMCAIFBWFzc2V0CQDMCAIFCHRyYW5zZmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgt0b3RhbEFtb3VudAUHdG9rZW5JZAkAzAgCCQELU3RyaW5nRW50cnkCBQRuYW1lBQh0b2tlblVSSQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3NldERBcHBKc29uAQtkQXBwQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBDG9ubHlJbnRlcm5hbAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCAghkQXBwSnNvbgULZEFwcEFkZHJlc3MFA25pbAFpAQ90ZXN0U3RvcmFnZUpzb24DB2pzb25LZXkHYXJyS2V5cwlhcnJWYWx1ZXMEA3JlcwkA/AcEBQR0aGlzAhBtYWtlSlNPTkludGVybmFsCQDMCAIFB2FycktleXMJAMwIAgUJYXJyVmFsdWVzBQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2pzb25LZXkKAAFABQNyZXMDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQNuaWwFA3JlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgC72APk", "height": 2491514, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GxqSoMK8fhRd7xy9Xj5vkyCesk4sEhB7u43E8kXT8AC3 Next: AKVeJyeRsFfgvXFP4BJfTK1pUAjsvTYpg5HQps8ecDxG Diff:
OldNewDifferences
99
1010 let totalAmount = getIntegerValue(this, "totalAmount")
1111
12-let dAppJson = Address(fromBase58String("3MrGaZVRhknEGfHJ19ttUPNnDRoFqcHhVN7"))
12+let dAppJson = Address(fromBase58String(getStringValue(this, "dAppJson")))
1313
1414 func onlyInternal (caller) = if ((caller == this))
1515 then unit
6565
6666
6767 @Callable(i)
68-func init (collectionName,symbol,description) = if ((i.caller == this))
69- then [StringEntry("collectionName", collectionName), StringEntry("symbol", symbol), StringEntry("description", description), IntegerEntry("totalAmount", 0)]
70- else throw("only dApp")
68+func init (collectionName,symbol,description) = valueOrElse(onlyInternal(i.caller), [StringEntry("collectionName", collectionName), StringEntry("symbol", symbol), StringEntry("description", description), IntegerEntry("totalAmount", 0)])
7169
7270
7371
7472 @Callable(i)
75-func mint (to,tokenURI) = if ((i.caller == this))
76- then {
77- let tokenId = (totalAmount + 1)
78- let preName = ((symbol + "#") + toString(tokenId))
79- let name = if ((16 >= size(preName)))
80- then preName
81- else toString(tokenId)
82- let asset = Issue(name, (("{uri:\"" + tokenURI) + "\"}"), 1, 0, false, unit, height)
83- let assetId = calculateAssetId(asset)
84- let toAddress = Address(fromBase58String(to))
85- let transfer = transferOrNot(toAddress, assetId)
86- if ((transfer == transfer))
87- then [asset, transfer, IntegerEntry("totalAmount", tokenId), StringEntry(name, tokenURI)]
88- else throw("Strict value is not equal to itself.")
89- }
90- else throw("only dApp")
73+func mint (to,tokenURI) = valueOrElse(onlyInternal(i.caller), {
74+ let tokenId = (totalAmount + 1)
75+ let preName = ((symbol + "#") + toString(tokenId))
76+ let name = if ((16 >= size(preName)))
77+ then preName
78+ else toString(tokenId)
79+ let asset = Issue(name, (("{uri:\"" + tokenURI) + "\"}"), 1, 0, false, unit, height)
80+ let assetId = calculateAssetId(asset)
81+ let toAddress = Address(fromBase58String(to))
82+ let transfer = transferOrNot(toAddress, assetId)
83+ if ((transfer == transfer))
84+ then [asset, transfer, IntegerEntry("totalAmount", tokenId), StringEntry(name, tokenURI)]
85+ else throw("Strict value is not equal to itself.")
86+ })
87+
88+
89+
90+@Callable(i)
91+func setDAppJson (dAppAddress) = valueOrElse(onlyInternal(i.caller), [StringEntry("dAppJson", dAppAddress)])
9192
9293
9394
9596 func testStorageJson (jsonKey,arrKeys,arrValues) = {
9697 let res = invoke(this, "makeJSONInternal", [arrKeys, arrValues], nil)
9798 if ((res == res))
98- then $Tuple2(nil, res)
99+ then $Tuple2([StringEntry(jsonKey, {
100+ let @ = res
101+ if ($isInstanceOf(@, "String"))
102+ then @
103+ else throw(($getType(@) + " couldn't be cast to String"))
104+ })], res)
99105 else throw("Strict value is not equal to itself.")
100106 }
101107
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let collectionName = getStringValue(this, "collectionName")
55
66 let symbol = getStringValue(this, "symbol")
77
88 let description = getStringValue(this, "description")
99
1010 let totalAmount = getIntegerValue(this, "totalAmount")
1111
12-let dAppJson = Address(fromBase58String("3MrGaZVRhknEGfHJ19ttUPNnDRoFqcHhVN7"))
12+let dAppJson = Address(fromBase58String(getStringValue(this, "dAppJson")))
1313
1414 func onlyInternal (caller) = if ((caller == this))
1515 then unit
1616 else throw("Only internal call")
1717
1818
1919 func transferOrNot (to,assetId) = if ((to == this))
2020 then StringEntry("костыль", "костыль")
2121 else ScriptTransfer(to, 1, assetId)
2222
2323
2424 func setUser (assetId,user,expires) = throw()
2525
2626
2727 @Callable(i)
2828 func makeJSONInternal (arrKeys,arrValues) = valueOrElse(onlyInternal(i.caller), {
2929 let res = invoke(dAppJson, "makeJSON", [arrKeys, arrValues], nil)
3030 if ((res == res))
3131 then $Tuple2(nil, res)
3232 else throw("Strict value is not equal to itself.")
3333 })
3434
3535
3636
3737 @Callable(i)
3838 func addToJSONInternal (arrKeys,arrValues) = valueOrElse(onlyInternal(i.caller), {
3939 let res = invoke(dAppJson, "addToJSON", [arrKeys, arrValues], nil)
4040 if ((res == res))
4141 then $Tuple2(nil, res)
4242 else throw("Strict value is not equal to itself.")
4343 })
4444
4545
4646
4747 @Callable(i)
4848 func readByJSONKeyInternal (key) = valueOrElse(onlyInternal(i.caller), {
4949 let res = invoke(dAppJson, "readByJSONKey", [key], nil)
5050 if ((res == res))
5151 then $Tuple2(nil, res)
5252 else throw("Strict value is not equal to itself.")
5353 })
5454
5555
5656
5757 @Callable(i)
5858 func deleteByJSONKeyInternal (key) = valueOrElse(onlyInternal(i.caller), {
5959 let res = invoke(dAppJson, "deleteByJSONKey", [key], nil)
6060 if ((res == res))
6161 then $Tuple2(nil, res)
6262 else throw("Strict value is not equal to itself.")
6363 })
6464
6565
6666
6767 @Callable(i)
68-func init (collectionName,symbol,description) = if ((i.caller == this))
69- then [StringEntry("collectionName", collectionName), StringEntry("symbol", symbol), StringEntry("description", description), IntegerEntry("totalAmount", 0)]
70- else throw("only dApp")
68+func init (collectionName,symbol,description) = valueOrElse(onlyInternal(i.caller), [StringEntry("collectionName", collectionName), StringEntry("symbol", symbol), StringEntry("description", description), IntegerEntry("totalAmount", 0)])
7169
7270
7371
7472 @Callable(i)
75-func mint (to,tokenURI) = if ((i.caller == this))
76- then {
77- let tokenId = (totalAmount + 1)
78- let preName = ((symbol + "#") + toString(tokenId))
79- let name = if ((16 >= size(preName)))
80- then preName
81- else toString(tokenId)
82- let asset = Issue(name, (("{uri:\"" + tokenURI) + "\"}"), 1, 0, false, unit, height)
83- let assetId = calculateAssetId(asset)
84- let toAddress = Address(fromBase58String(to))
85- let transfer = transferOrNot(toAddress, assetId)
86- if ((transfer == transfer))
87- then [asset, transfer, IntegerEntry("totalAmount", tokenId), StringEntry(name, tokenURI)]
88- else throw("Strict value is not equal to itself.")
89- }
90- else throw("only dApp")
73+func mint (to,tokenURI) = valueOrElse(onlyInternal(i.caller), {
74+ let tokenId = (totalAmount + 1)
75+ let preName = ((symbol + "#") + toString(tokenId))
76+ let name = if ((16 >= size(preName)))
77+ then preName
78+ else toString(tokenId)
79+ let asset = Issue(name, (("{uri:\"" + tokenURI) + "\"}"), 1, 0, false, unit, height)
80+ let assetId = calculateAssetId(asset)
81+ let toAddress = Address(fromBase58String(to))
82+ let transfer = transferOrNot(toAddress, assetId)
83+ if ((transfer == transfer))
84+ then [asset, transfer, IntegerEntry("totalAmount", tokenId), StringEntry(name, tokenURI)]
85+ else throw("Strict value is not equal to itself.")
86+ })
87+
88+
89+
90+@Callable(i)
91+func setDAppJson (dAppAddress) = valueOrElse(onlyInternal(i.caller), [StringEntry("dAppJson", dAppAddress)])
9192
9293
9394
9495 @Callable(i)
9596 func testStorageJson (jsonKey,arrKeys,arrValues) = {
9697 let res = invoke(this, "makeJSONInternal", [arrKeys, arrValues], nil)
9798 if ((res == res))
98- then $Tuple2(nil, res)
99+ then $Tuple2([StringEntry(jsonKey, {
100+ let @ = res
101+ if ($isInstanceOf(@, "String"))
102+ then @
103+ else throw(($getType(@) + " couldn't be cast to String"))
104+ })], res)
99105 else throw("Strict value is not equal to itself.")
100106 }
101107
102108

github/deemru/w8io/169f3d6 
29.03 ms