tx · 9FXpvR6zQ5ZEgE9b8fL8CPb3KQfZsRiVKFxmKP8AyTFk

3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua:  -0.01400000 Waves

2021.03.17 13:57 [1441630] smart account 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua > SELF 0.00000000 Waves

{ "type": 13, "id": "9FXpvR6zQ5ZEgE9b8fL8CPb3KQfZsRiVKFxmKP8AyTFk", "fee": 1400000, "feeAssetId": null, "timestamp": 1615978654585, "version": 2, "chainId": 84, "sender": "3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua", "senderPublicKey": "CTyHhnVTxf16Z4CmGGneAK8WB5g2QyT4MB8kUn8vPPcu", "proofs": [ "2WoKV4nGy48dxNgKCcsyAcK5cwVq9mtjWsihvMYUEKcAisQsEHcVKHkzRwfcbXCeeVpQ9n8HEzaiYF3eUJkdPFAu" ], "script": "base64:AAIEAAAAAAAAAAkIAhIAEgMKAQgAAAAEAAAAAAlzZXBhcmF0b3ICAAAAA19fXwAAAAARa2V5TG9ja2FibGVBc3NldHMCAAAAE2RBcHBfTG9ja2FibGVBc3NldHMBAAAACmNoZWNrQXNzZXQAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAJAAPsAAAAAQUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAAB2lzQXNzZXQFAAAAByRtYXRjaDAGBwEAAAAUYWRkRW50cnlUb1N0cmluZ0xpc3QAAAACAAAACnN0cmluZ0xpc3QAAAAFZW50cnkDCQAAZgAAAAIAAAAAAAAAAAEJAAExAAAAAQUAAAAKc3RyaW5nTGlzdAUAAAAFZW50cnkJAAEsAAAAAgkAASwAAAACBQAAAApzdHJpbmdMaXN0BQAAAAlzZXBhcmF0b3IFAAAABWVudHJ5AAAAAgAAAAFpAQAAAARpbml0AAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFrZXlMb2NrYWJsZUFzc2V0cwIAAAAEdGVzdAUAAAADbmlsAAAAAWkBAAAAEm9wQWRkTG9ja2FibGVBc3NldAAAAAEAAAAKYXNzZXRJZFN0cgQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAAphc3NldElkU3RyAwkBAAAAAiE9AAAAAgUAAAAEdGhpcwgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAADUFjY2VzcyBkZW5pZWQDCQAAAAAAAAIJAQAAAApjaGVja0Fzc2V0AAAAAQUAAAAHYXNzZXRJZAcJAAACAAAAAQIAAAAVTm90IGFuIGV4aXN0aW5nIGFzc2V0BAAAAA5sb2NrYWJsZUFzc2V0cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAARa2V5TG9ja2FibGVBc3NldHMDCQAAAAAAAAIJAQAAAAhjb250YWlucwAAAAIFAAAADmxvY2thYmxlQXNzZXRzBQAAAAphc3NldElkU3RyBgkAAAIAAAABAgAAABZBc3NldCBhbHJlYWR5IGxvY2thYmxlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEWtleUxvY2thYmxlQXNzZXRzCQEAAAAUYWRkRW50cnlUb1N0cmluZ0xpc3QAAAACBQAAAA5sb2NrYWJsZUFzc2V0cwUAAAAKYXNzZXRJZFN0cgUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmto2OS", "height": 1441630, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3XMHsevErajrpQbXAvQACwTKv3XDyrbYphaUugDqquyb Next: GKwJMdvEsXQumJ17GmG5VtktsnHQC9dYyPpjdGCM59kP Diff:
OldNewDifferences
1313 }
1414
1515
16-func getLockableAssets () = {
17- let strList = getStringValue(this, keyLockableAssets)
18- let splited = split(strList, separator)
19- if ((100 > size(splited)))
20- then throw(toString(size(splited)))
21- else splited
22- }
16+func addEntryToStringList (stringList,entry) = if ((1 > size(stringList)))
17+ then entry
18+ else ((stringList + separator) + entry)
2319
2420
2521 @Callable(i)
3531 else if ((checkAsset(assetId) == false))
3632 then throw("Not an existing asset")
3733 else {
38- let lockableAssets = getLockableAssets()
39- if ((containsElement(lockableAssets, assetIdStr) == true))
34+ let lockableAssets = getStringValue(this, keyLockableAssets)
35+ if ((contains(lockableAssets, assetIdStr) == true))
4036 then throw("Asset already lockable")
41- else [StringEntry(keyLockableAssets, makeString(assetIdStr :: lockableAssets, separator))]
37+ else [StringEntry(keyLockableAssets, addEntryToStringList(lockableAssets, assetIdStr))]
4238 }
4339 }
4440
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "___"
55
66 let keyLockableAssets = "dApp_LockableAssets"
77
88 func checkAsset (assetId) = match assetInfo(assetId) {
99 case isAsset: Asset =>
1010 true
1111 case _ =>
1212 false
1313 }
1414
1515
16-func getLockableAssets () = {
17- let strList = getStringValue(this, keyLockableAssets)
18- let splited = split(strList, separator)
19- if ((100 > size(splited)))
20- then throw(toString(size(splited)))
21- else splited
22- }
16+func addEntryToStringList (stringList,entry) = if ((1 > size(stringList)))
17+ then entry
18+ else ((stringList + separator) + entry)
2319
2420
2521 @Callable(i)
2622 func init () = [StringEntry(keyLockableAssets, "test")]
2723
2824
2925
3026 @Callable(i)
3127 func opAddLockableAsset (assetIdStr) = {
3228 let assetId = fromBase58String(assetIdStr)
3329 if ((this != i.caller))
3430 then throw("Access denied")
3531 else if ((checkAsset(assetId) == false))
3632 then throw("Not an existing asset")
3733 else {
38- let lockableAssets = getLockableAssets()
39- if ((containsElement(lockableAssets, assetIdStr) == true))
34+ let lockableAssets = getStringValue(this, keyLockableAssets)
35+ if ((contains(lockableAssets, assetIdStr) == true))
4036 then throw("Asset already lockable")
41- else [StringEntry(keyLockableAssets, makeString(assetIdStr :: lockableAssets, separator))]
37+ else [StringEntry(keyLockableAssets, addEntryToStringList(lockableAssets, assetIdStr))]
4238 }
4339 }
4440
4541
4642 @Verifier(tx)
4743 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
4844

github/deemru/w8io/169f3d6 
30.96 ms