tx · DzXtPr94keo1K5Rf44ztzAXBZA8CNhoX5nLZG2wxHdJT

3MwPfAfkrELWorzsNx3KyZU525FZksSmRq9:  -0.01400000 Waves

2019.12.01 14:09 [789481] smart account 3MwPfAfkrELWorzsNx3KyZU525FZksSmRq9 > SELF 0.00000000 Waves

{ "type": 13, "id": "DzXtPr94keo1K5Rf44ztzAXBZA8CNhoX5nLZG2wxHdJT", "fee": 1400000, "feeAssetId": null, "timestamp": 1575198605446, "version": 1, "sender": "3MwPfAfkrELWorzsNx3KyZU525FZksSmRq9", "senderPublicKey": "xdeD5P7gGVng1RJJ4k7QRv7jMHJERkQnH2AJwLUV2Ju", "proofs": [ "3vGLHCV6Hqmpy3KnxzZvk1UQMp8AL5fpdnBfVkhXbW8uu8GxXwWr1FNbVgacLYDsXmqM5HCLnv7gJyu9aqYJHTii" ], "script": "base64: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", "chainId": 84, "height": 789481, "spentComplexity": 0 } View: original | compacted Prev: 3eSn2cPEpWdmkAhHhbESqoGnsz5hRfVTLNQ74uNGCXrf Next: FBECEvUH7S8VhUQREgemG2ZWchtJvRc3sA5seKNpCnUU Diff:
OldNewDifferences
88 else {
99 let keyIndex = value(indexOf(json, (("\"" + key) + "\":")))
1010 let data = drop(json, ((keyIndex + size(key)) + 3))
11+ data
12+ }
13+
14+
15+func getJsonBeforeKey (json,key) = if (if ((take(json, 1) != "{"))
16+ then (take(json, 1) != "]")
17+ else false)
18+ then throw("")
19+ else {
20+ let keyIndex = value(indexOf(json, (("\"" + key) + "\":")))
21+ let data = take(json, keyIndex)
22+ data
23+ }
24+
25+
26+func getJsonAfterKey (json,key,newValue) = if (if ((take(json, 1) != "{"))
27+ then (take(json, 1) != "]")
28+ else false)
29+ then throw("")
30+ else {
31+ let keyIndex = value(indexOf(json, (("\"" + key) + "\":")))
32+ let data = takeRight(json, (((keyIndex + size(key)) + 3) + size(newValue)))
1133 data
1234 }
1335
4062 case _ =>
4163 throw("The key doesn't exist")
4264 }
65+ let valueBeforeJson = getJsonBeforeKey(valueJSON, key)
66+ let valueAfterJson = getJsonAfterKey(valueJSON, key, newValue)
4367 let valueInJson = getValueString(get(valueJSON, key))
4468 if ((valueInJson == newValue))
4569 then throw("same value so no changes")
46- else WriteSet([DataEntry("newvalue", newValue)])
70+ else WriteSet([DataEntry("newvalue", ((valueBeforeJson + newValue) + valueAfterJson))])
4771 }
4872
4973
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func get (json,key) = if (if ((take(json, 1) != "{"))
55 then (take(json, 1) != "]")
66 else false)
77 then throw("")
88 else {
99 let keyIndex = value(indexOf(json, (("\"" + key) + "\":")))
1010 let data = drop(json, ((keyIndex + size(key)) + 3))
11+ data
12+ }
13+
14+
15+func getJsonBeforeKey (json,key) = if (if ((take(json, 1) != "{"))
16+ then (take(json, 1) != "]")
17+ else false)
18+ then throw("")
19+ else {
20+ let keyIndex = value(indexOf(json, (("\"" + key) + "\":")))
21+ let data = take(json, keyIndex)
22+ data
23+ }
24+
25+
26+func getJsonAfterKey (json,key,newValue) = if (if ((take(json, 1) != "{"))
27+ then (take(json, 1) != "]")
28+ else false)
29+ then throw("")
30+ else {
31+ let keyIndex = value(indexOf(json, (("\"" + key) + "\":")))
32+ let data = takeRight(json, (((keyIndex + size(key)) + 3) + size(newValue)))
1133 data
1234 }
1335
1436
1537 func getValueString (json) = take(drop(json, 1), value(indexOf(drop(json, 1), "\"")))
1638
1739
1840 func getValueIntOrBool (json) = {
1941 let indexSymbolOne = value(indexOf(json, "}"))
2042 let indexSymbolTwo = value(indexOf(json, ","))
2143 if ((indexSymbolTwo > indexSymbolOne))
2244 then take(json, indexSymbolOne)
2345 else take(json, indexSymbolTwo)
2446 }
2547
2648
2749 func getValueInt (json) = parseIntValue(getValueIntOrBool(json))
2850
2951
3052 func getValueBool (json) = if ((getValueIntOrBool(json) == "true"))
3153 then true
3254 else false
3355
3456
3557 @Callable(i)
3658 func testUpdateJsonKeyValue (jsonKey,key,newValue) = {
3759 let valueJSON = match getString(this, jsonKey) {
3860 case s: String =>
3961 s
4062 case _ =>
4163 throw("The key doesn't exist")
4264 }
65+ let valueBeforeJson = getJsonBeforeKey(valueJSON, key)
66+ let valueAfterJson = getJsonAfterKey(valueJSON, key, newValue)
4367 let valueInJson = getValueString(get(valueJSON, key))
4468 if ((valueInJson == newValue))
4569 then throw("same value so no changes")
46- else WriteSet([DataEntry("newvalue", newValue)])
70+ else WriteSet([DataEntry("newvalue", ((valueBeforeJson + newValue) + valueAfterJson))])
4771 }
4872
4973
5074
5175 @Callable(i)
5276 func testGet (json,key) = WriteSet([DataEntry("json", get(json, key))])
5377
5478
5579
5680 @Callable(i)
5781 func testGetValueString (json,key) = WriteSet([DataEntry("json", getValueString(get(json, key)))])
5882
5983
6084
6185 @Callable(i)
6286 func testGetValueInt (json,key) = WriteSet([DataEntry("json", getValueInt(get(json, key)))])
6387
6488
6589
6690 @Callable(i)
6791 func testGetValueBool (json,key) = WriteSet([DataEntry("json", getValueBool(get(json, key)))])
6892
6993

github/deemru/w8io/169f3d6 
36.71 ms