tx · LwaV4KasN4hYdxErbUy5RtMcugPoKgF6KZajdGZVfeK

3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua:  -0.01400000 Waves

2021.03.17 14:08 [1441643] smart account 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua > SELF 0.00000000 Waves

{ "type": 13, "id": "LwaV4KasN4hYdxErbUy5RtMcugPoKgF6KZajdGZVfeK", "fee": 1400000, "feeAssetId": null, "timestamp": 1615979322390, "version": 2, "chainId": 84, "sender": "3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua", "senderPublicKey": "CTyHhnVTxf16Z4CmGGneAK8WB5g2QyT4MB8kUn8vPPcu", "proofs": [ "6ZJcVVD1kq5WsNi9ATuiEA8L4RUxJt1fkZpUAKfyYx916QKmzeLaMbfUvtTH3N84zN3wrAECMcSQGs7FHdFHFy7" ], "script": "base64:AAIEAAAAAAAAAAkIAhIAEgMKAQgAAAAGAAAAAAlzZXBhcmF0b3ICAAAAA19fXwAAAAAQa2V5TG9ja2FibGVBc3NldAIAAAATZEFwcF9Mb2NrYWJsZUFzc2V0XwAAAAAVa2V5TG9ja2FibGVBc3NldHNMaXN0AgAAABdkQXBwX0xvY2thYmxlQXNzZXRzTGlzdAEAAAAKY2hlY2tBc3NldAAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAkAA+wAAAABBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAAHaXNBc3NldAUAAAAHJG1hdGNoMAYHAQAAABRhZGRFbnRyeVRvU3RyaW5nTGlzdAAAAAIAAAAKc3RyaW5nTGlzdAAAAAVlbnRyeQMJAABmAAAAAgAAAAAAAAAAAQkAATEAAAABBQAAAApzdHJpbmdMaXN0BQAAAAVlbnRyeQkAASwAAAACCQABLAAAAAIFAAAACnN0cmluZ0xpc3QFAAAACXNlcGFyYXRvcgUAAAAFZW50cnkBAAAAD2lzTG9ja2FibGVBc3NldAAAAAEAAAAKYXNzZXRJZFN0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEGtleUxvY2thYmxlQXNzZXQFAAAACmFzc2V0SWRTdHIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAKaXNMb2NrYWJsZQUAAAAHJG1hdGNoMAYHAAAAAgAAAAFpAQAAAARpbml0AAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABVrZXlMb2NrYWJsZUFzc2V0c0xpc3QCAAAAAAUAAAADbmlsAAAAAWkBAAAAEm9wQWRkTG9ja2FibGVBc3NldAAAAAEAAAAKYXNzZXRJZFN0cgQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAAphc3NldElkU3RyAwkBAAAAAiE9AAAAAgUAAAAEdGhpcwgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAADUFjY2VzcyBkZW5pZWQDCQAAAAAAAAIJAQAAAApjaGVja0Fzc2V0AAAAAQUAAAAHYXNzZXRJZAcJAAACAAAAAQIAAAAVTm90IGFuIGV4aXN0aW5nIGFzc2V0AwkAAAAAAAACCQEAAAAPaXNMb2NrYWJsZUFzc2V0AAAAAQUAAAAKYXNzZXRJZFN0cgYJAAACAAAAAQIAAAAZQXNzZXQgaXMgYWxyZWFkeSBsb2NrYWJsZQQAAAAZdXBkYXRlZExvY2thYmxlQXNzZXRzTGlzdAkBAAAAFGFkZEVudHJ5VG9TdHJpbmdMaXN0AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAVa2V5TG9ja2FibGVBc3NldHNMaXN0BQAAAAphc3NldElkU3RyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAFWtleUxvY2thYmxlQXNzZXRzTGlzdAUAAAAZdXBkYXRlZExvY2thYmxlQXNzZXRzTGlzdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAAEGtleUxvY2thYmxlQXNzZXQFAAAACmFzc2V0SWRTdHICAAAABHRlc3QFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5+ybzqQ==", "height": 1441643, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GKwJMdvEsXQumJ17GmG5VtktsnHQC9dYyPpjdGCM59kP Next: B54LQr15EsadxDybBcq2uZwve92WCf3pDJKVieaFBVKo Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "___"
55
6-let keyLockableAssets = "dApp_LockableAssets"
6+let keyLockableAsset = "dApp_LockableAsset_"
7+
8+let keyLockableAssetsList = "dApp_LockableAssetsList"
79
810 func checkAsset (assetId) = match assetInfo(assetId) {
911 case isAsset: Asset =>
1820 else ((stringList + separator) + entry)
1921
2022
23+func isLockableAsset (assetIdStr) = match getString(this, (keyLockableAsset + assetIdStr)) {
24+ case isLockable: String =>
25+ true
26+ case _ =>
27+ false
28+}
29+
30+
2131 @Callable(i)
22-func init () = [StringEntry(keyLockableAssets, "")]
32+func init () = [StringEntry(keyLockableAssetsList, "")]
2333
2434
2535
3040 then throw("Access denied")
3141 else if ((checkAsset(assetId) == false))
3242 then throw("Not an existing asset")
33- else {
34- let lockableAssets = getStringValue(this, keyLockableAssets)
35- if ((contains(lockableAssets, assetIdStr) == true))
36- then throw("Asset already lockable")
37- else [StringEntry(keyLockableAssets, addEntryToStringList(lockableAssets, assetIdStr))]
38- }
43+ else if ((isLockableAsset(assetIdStr) == true))
44+ then throw("Asset is already lockable")
45+ else {
46+ let updatedLockableAssetsList = addEntryToStringList(getStringValue(this, keyLockableAssetsList), assetIdStr)
47+[StringEntry(keyLockableAssetsList, updatedLockableAssetsList), StringEntry((keyLockableAsset + assetIdStr), "test")]
48+ }
3949 }
4050
4151
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "___"
55
6-let keyLockableAssets = "dApp_LockableAssets"
6+let keyLockableAsset = "dApp_LockableAsset_"
7+
8+let keyLockableAssetsList = "dApp_LockableAssetsList"
79
810 func checkAsset (assetId) = match assetInfo(assetId) {
911 case isAsset: Asset =>
1012 true
1113 case _ =>
1214 false
1315 }
1416
1517
1618 func addEntryToStringList (stringList,entry) = if ((1 > size(stringList)))
1719 then entry
1820 else ((stringList + separator) + entry)
1921
2022
23+func isLockableAsset (assetIdStr) = match getString(this, (keyLockableAsset + assetIdStr)) {
24+ case isLockable: String =>
25+ true
26+ case _ =>
27+ false
28+}
29+
30+
2131 @Callable(i)
22-func init () = [StringEntry(keyLockableAssets, "")]
32+func init () = [StringEntry(keyLockableAssetsList, "")]
2333
2434
2535
2636 @Callable(i)
2737 func opAddLockableAsset (assetIdStr) = {
2838 let assetId = fromBase58String(assetIdStr)
2939 if ((this != i.caller))
3040 then throw("Access denied")
3141 else if ((checkAsset(assetId) == false))
3242 then throw("Not an existing asset")
33- else {
34- let lockableAssets = getStringValue(this, keyLockableAssets)
35- if ((contains(lockableAssets, assetIdStr) == true))
36- then throw("Asset already lockable")
37- else [StringEntry(keyLockableAssets, addEntryToStringList(lockableAssets, assetIdStr))]
38- }
43+ else if ((isLockableAsset(assetIdStr) == true))
44+ then throw("Asset is already lockable")
45+ else {
46+ let updatedLockableAssetsList = addEntryToStringList(getStringValue(this, keyLockableAssetsList), assetIdStr)
47+[StringEntry(keyLockableAssetsList, updatedLockableAssetsList), StringEntry((keyLockableAsset + assetIdStr), "test")]
48+ }
3949 }
4050
4151
4252 @Verifier(tx)
4353 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
4454

github/deemru/w8io/169f3d6 
46.78 ms