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:
Old | New | | Differences |
---|
5 | 5 | | |
---|
6 | 6 | | let secondSeparator = "/" |
---|
7 | 7 | | |
---|
8 | | - | func getAddrToIntMappingKey (mappingName,addr) = makeString([mappingName, addr], separator) |
---|
| 8 | + | func getMappingKey (mappingName,addr,separator) = makeString([mappingName, addr], separator) |
---|
9 | 9 | | |
---|
10 | 10 | | |
---|
11 | | - | func getListOfArrays (mappingName,addr) = split(getStringValue(this, getAddrToIntMappingKey(mappingName, addr)), separator) |
---|
| 11 | + | func getElements (mappingName,addr,separator) = getStringValue(this, getMappingKey(mappingName, addr, separator)) |
---|
12 | 12 | | |
---|
13 | 13 | | |
---|
14 | | - | func getAddrToIntMappingIndex (mappingName,addr) = size(getListOfArrays("mapString", addr)) |
---|
| 14 | + | func getValueByKey (key) = getStringValue(this, key) |
---|
15 | 15 | | |
---|
16 | 16 | | |
---|
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 | + | } |
---|
18 | 21 | | |
---|
19 | 22 | | |
---|
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) |
---|
22 | 25 | | else throw("overcrowded") |
---|
23 | 26 | | |
---|
24 | 27 | | |
---|
25 | 28 | | @Callable(i) |
---|
26 | | - | func setStruct (valueInt) = [setAddrToIntMappingValue("mapString", toString(this), valueInt)] |
---|
| 29 | + | func setMap () = [setMappingValue("mapString", toString(this))] |
---|
27 | 30 | | |
---|
28 | 31 | | |
---|
29 | 32 | | |
---|
30 | 33 | | @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)] |
---|
34 | 35 | | |
---|
35 | 36 | | |
---|
36 | 37 | | |
---|
37 | 38 | | @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)))] |
---|
41 | 45 | | |
---|
42 | 46 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let separator = "_" |
---|
5 | 5 | | |
---|
6 | 6 | | let secondSeparator = "/" |
---|
7 | 7 | | |
---|
8 | | - | func getAddrToIntMappingKey (mappingName,addr) = makeString([mappingName, addr], separator) |
---|
| 8 | + | func getMappingKey (mappingName,addr,separator) = makeString([mappingName, addr], separator) |
---|
9 | 9 | | |
---|
10 | 10 | | |
---|
11 | | - | func getListOfArrays (mappingName,addr) = split(getStringValue(this, getAddrToIntMappingKey(mappingName, addr)), separator) |
---|
| 11 | + | func getElements (mappingName,addr,separator) = getStringValue(this, getMappingKey(mappingName, addr, separator)) |
---|
12 | 12 | | |
---|
13 | 13 | | |
---|
14 | | - | func getAddrToIntMappingIndex (mappingName,addr) = size(getListOfArrays("mapString", addr)) |
---|
| 14 | + | func getValueByKey (key) = getStringValue(this, key) |
---|
15 | 15 | | |
---|
16 | 16 | | |
---|
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 | + | } |
---|
18 | 21 | | |
---|
19 | 22 | | |
---|
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) |
---|
22 | 25 | | else throw("overcrowded") |
---|
23 | 26 | | |
---|
24 | 27 | | |
---|
25 | 28 | | @Callable(i) |
---|
26 | | - | func setStruct (valueInt) = [setAddrToIntMappingValue("mapString", toString(this), valueInt)] |
---|
| 29 | + | func setMap () = [setMappingValue("mapString", toString(this))] |
---|
27 | 30 | | |
---|
28 | 31 | | |
---|
29 | 32 | | |
---|
30 | 33 | | @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)] |
---|
34 | 35 | | |
---|
35 | 36 | | |
---|
36 | 37 | | |
---|
37 | 38 | | @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)))] |
---|
41 | 45 | | |
---|
42 | 46 | | |
---|