tx · Cb4VtPpScxPvbGFQe7hgVKjiA9mYJ8TRrfL5wrWuSdcv

3MvCKDNrXFLCPCMjLTQXzfiHYejGf5QST42:  -0.00200000 Waves

2022.07.01 13:06 [2120445] smart account 3MvCKDNrXFLCPCMjLTQXzfiHYejGf5QST42 > SELF 0.00000000 Waves

{ "type": 13, "id": "Cb4VtPpScxPvbGFQe7hgVKjiA9mYJ8TRrfL5wrWuSdcv", "fee": 200000, "feeAssetId": null, "timestamp": 1656670048980, "version": 2, "chainId": 84, "sender": "3MvCKDNrXFLCPCMjLTQXzfiHYejGf5QST42", "senderPublicKey": "Bm8NA6cDADuRW1tDcjPsFdpsoUGwdxSD16MjDxtar9JB", "proofs": [ "3Po8JAQ3QcDp6KJvbqwnWBLDgMKWNQfAjg7PdiK9UEeDvFBQh6sxfKg47s1E2PPcUAH1xZLUYquVxKNVEpagE3ie" ], "script": "base64:AAIFAAAAAAAAABAIAhIAEgMKAQgSABIDCgEIAAAABwAAAAAJc2VwYXJhdG9yAgAAAAFfAAAAAA9zZWNvbmRTZXBhcmF0b3ICAAAAAS8BAAAADWdldE1hcHBpbmdLZXkAAAADAAAAC21hcHBpbmdOYW1lAAAABGFkZHIAAAAJc2VwYXJhdG9yCQAEuQAAAAIJAARMAAAAAgUAAAALbWFwcGluZ05hbWUJAARMAAAAAgUAAAAEYWRkcgUAAAADbmlsBQAAAAlzZXBhcmF0b3IBAAAAC2dldEVsZW1lbnRzAAAAAwAAAAttYXBwaW5nTmFtZQAAAARhZGRyAAAACXNlcGFyYXRvcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkBAAAADWdldE1hcHBpbmdLZXkAAAADBQAAAAttYXBwaW5nTmFtZQUAAAAEYWRkcgUAAAAJc2VwYXJhdG9yAQAAAA1nZXRWYWx1ZUJ5S2V5AAAAAQAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAPc2V0TWFwcGluZ1ZhbHVlAAAAAgAAAAttYXBwaW5nTmFtZQAAAARhZGRyBAAAAAlzZWNvbmRLZXkJAQAAAA1nZXRNYXBwaW5nS2V5AAAAAwUAAAALbWFwcGluZ05hbWUFAAAABGFkZHIFAAAAD3NlY29uZFNlcGFyYXRvcgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWdldE1hcHBpbmdLZXkAAAADAgAAAAltYXBTdHJpbmcFAAAABGFkZHIFAAAACXNlcGFyYXRvcgUAAAAJc2Vjb25kS2V5AQAAABVzZXRTZWNvbmRNYXBwaW5nVmFsdWUAAAADAAAAC21hcHBpbmdOYW1lAAAABGFkZHIAAAADdmFsAwkAAGcAAAACAAAAAAAAAABkCQABMQAAAAEFAAAAA3ZhbAkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWdldE1hcHBpbmdLZXkAAAADAgAAAAltYXBTdHJpbmcFAAAABGFkZHIFAAAAD3NlY29uZFNlcGFyYXRvcgUAAAADdmFsCQAAAgAAAAECAAAAC292ZXJjcm93ZGVkAAAABAAAAAFpAQAAAAZzZXRNYXAAAAAACQAETAAAAAIJAQAAAA9zZXRNYXBwaW5nVmFsdWUAAAACAgAAAAltYXBTdHJpbmcJAAQlAAAAAQUAAAAEdGhpcwUAAAADbmlsAAAAAWkBAAAAC3NldE1hcEluTWFwAAAAAQAAAAh2YWx1ZUludAkABEwAAAACCQEAAAAVc2V0U2Vjb25kTWFwcGluZ1ZhbHVlAAAAAwIAAAAJbWFwU3RyaW5nCQAEJQAAAAEFAAAABHRoaXMFAAAACHZhbHVlSW50BQAAAANuaWwAAAABaQEAAAAGZ2V0TWFwAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAExCQEAAAALZ2V0RWxlbWVudHMAAAADAgAAAAltYXBTdHJpbmcJAAQlAAAAAQUAAAAEdGhpcwUAAAAJc2VwYXJhdG9yBQAAAANuaWwAAAABaQEAAAANZ2V0TWFwRnJvbU1hcAAAAAEAAAAFaW5kZXgJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAABMgkBAAAADWdldFZhbHVlQnlLZXkAAAABCQEAAAALZ2V0RWxlbWVudHMAAAADAgAAAAltYXBTdHJpbmcJAAQlAAAAAQUAAAAEdGhpcwUAAAAJc2VwYXJhdG9yBQAAAANuaWwAAAAAaDbBzA==", "height": 2120445, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DNmMCHxseYyDRjJRbYwghUvEDNco42Hc3rEBRsXvCFon Next: 9uKLfQRDDJSQqLUEYkvnqMYo19MGS1MeUucqWhPuRnM2 Diff:
OldNewDifferences
55
66 let secondSeparator = "/"
77
8-func getAddrToIntMappingKey (mappingName,addr) = makeString([mappingName, addr], separator)
8+func getMappingKey (mappingName,addr,separator) = makeString([mappingName, addr], separator)
99
1010
11-func getListOfArrays (mappingName,addr) = split(getStringValue(this, getAddrToIntMappingKey(mappingName, addr)), separator)
11+func getElements (mappingName,addr,separator) = getStringValue(this, getMappingKey(mappingName, addr, separator))
1212
1313
14-func getAddrToIntMappingIndex (mappingName,addr) = size(getListOfArrays("mapString", addr))
14+func getValueByKey (key) = getStringValue(this, key)
1515
1616
17-func getAddrToIntMappingIndexIn (indexIn) = size(split(getListOfArrays("mapString", toString(this))[indexIn], secondSeparator))
17+func setMappingValue (mappingName,addr) = {
18+ let secondKey = getMappingKey(mappingName, addr, secondSeparator)
19+ StringEntry(getMappingKey("mapString", addr, separator), secondKey)
20+ }
1821
1922
20-func setAddrToIntMappingValue (mappingName,addr,val) = if ((150 >= size(val)))
21- then StringEntry(getAddrToIntMappingKey("mapString", addr), val)
23+func setSecondMappingValue (mappingName,addr,val) = if ((100 >= size(val)))
24+ then StringEntry(getMappingKey("mapString", addr, secondSeparator), val)
2225 else throw("overcrowded")
2326
2427
2528 @Callable(i)
26-func setStruct (valueInt) = [setAddrToIntMappingValue("mapString", toString(this), valueInt)]
29+func setMap () = [setMappingValue("mapString", toString(this))]
2730
2831
2932
3033 @Callable(i)
31-func getArrayFromStruct (index) = if ((getAddrToIntMappingIndex("mapString", toString(this)) >= index))
32- then [StringEntry("1", getListOfArrays("mapString", toString(this))[index])]
33- else throw("out of range")
34+func setMapInMap (valueInt) = [setSecondMappingValue("mapString", toString(this), valueInt)]
3435
3536
3637
3738 @Callable(i)
38-func getElementFromArray (index,indexIn) = if ((getAddrToIntMappingIndexIn(indexIn) >= indexIn))
39- then [StringEntry("2", split(getListOfArrays("mapString", toString(this))[index], secondSeparator)[indexIn])]
40- else throw("out of range")
39+func getMap () = [StringEntry("1", getElements("mapString", toString(this), separator))]
40+
41+
42+
43+@Callable(i)
44+func getMapFromMap (index) = [StringEntry("2", getValueByKey(getElements("mapString", toString(this), separator)))]
4145
4246
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 let secondSeparator = "/"
77
8-func getAddrToIntMappingKey (mappingName,addr) = makeString([mappingName, addr], separator)
8+func getMappingKey (mappingName,addr,separator) = makeString([mappingName, addr], separator)
99
1010
11-func getListOfArrays (mappingName,addr) = split(getStringValue(this, getAddrToIntMappingKey(mappingName, addr)), separator)
11+func getElements (mappingName,addr,separator) = getStringValue(this, getMappingKey(mappingName, addr, separator))
1212
1313
14-func getAddrToIntMappingIndex (mappingName,addr) = size(getListOfArrays("mapString", addr))
14+func getValueByKey (key) = getStringValue(this, key)
1515
1616
17-func getAddrToIntMappingIndexIn (indexIn) = size(split(getListOfArrays("mapString", toString(this))[indexIn], secondSeparator))
17+func setMappingValue (mappingName,addr) = {
18+ let secondKey = getMappingKey(mappingName, addr, secondSeparator)
19+ StringEntry(getMappingKey("mapString", addr, separator), secondKey)
20+ }
1821
1922
20-func setAddrToIntMappingValue (mappingName,addr,val) = if ((150 >= size(val)))
21- then StringEntry(getAddrToIntMappingKey("mapString", addr), val)
23+func setSecondMappingValue (mappingName,addr,val) = if ((100 >= size(val)))
24+ then StringEntry(getMappingKey("mapString", addr, secondSeparator), val)
2225 else throw("overcrowded")
2326
2427
2528 @Callable(i)
26-func setStruct (valueInt) = [setAddrToIntMappingValue("mapString", toString(this), valueInt)]
29+func setMap () = [setMappingValue("mapString", toString(this))]
2730
2831
2932
3033 @Callable(i)
31-func getArrayFromStruct (index) = if ((getAddrToIntMappingIndex("mapString", toString(this)) >= index))
32- then [StringEntry("1", getListOfArrays("mapString", toString(this))[index])]
33- else throw("out of range")
34+func setMapInMap (valueInt) = [setSecondMappingValue("mapString", toString(this), valueInt)]
3435
3536
3637
3738 @Callable(i)
38-func getElementFromArray (index,indexIn) = if ((getAddrToIntMappingIndexIn(indexIn) >= indexIn))
39- then [StringEntry("2", split(getListOfArrays("mapString", toString(this))[index], secondSeparator)[indexIn])]
40- else throw("out of range")
39+func getMap () = [StringEntry("1", getElements("mapString", toString(this), separator))]
40+
41+
42+
43+@Callable(i)
44+func getMapFromMap (index) = [StringEntry("2", getValueByKey(getElements("mapString", toString(this), separator)))]
4145
4246

github/deemru/w8io/169f3d6 
56.33 ms