tx · AX5kXmqZ93zb7GiVCSLNtpZosLqJjdWNB9gS7u2t2M7H

3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM:  -0.01400000 Waves

2020.06.23 12:15 [1056092] smart account 3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM > SELF 0.00000000 Waves

{ "type": 13, "id": "AX5kXmqZ93zb7GiVCSLNtpZosLqJjdWNB9gS7u2t2M7H", "fee": 1400000, "feeAssetId": null, "timestamp": 1592903731867, "version": 1, "sender": "3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM", "senderPublicKey": "FmnQ1LwTnauTS2BSrZivE1nSF1A9MY9hyYB72pyh5hw9", "proofs": [ "2scqAdLv1c4F3tNEBU4TnCYfY3zRWfkNVX3pubgJxKuRzZv8MUXnrUqKtDnM91hHccomiNHSRJTRzdjeU8Wr75r" ], "script": "base64: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", "chainId": 84, "height": 1056092, "spentComplexity": 0 } View: original | compacted Prev: 5Fquvgx8weY4n2UPtPBLWwkXcSTjf7sYAsBx5aza497h Next: FWDUvLDcFYhTZ3hJ16S882KTiRmWFPYaqnhxLLVfEbqw Diff:
OldNewDifferences
77 then throw("decode u8 error, decoding is finish")
88 else {
99 let x0 = take(drop(data, offset), 1)
10- let x1 = toInt(x0, 0)
11-[toInt((base58'1111111' + x0), 0), (offset + 1)]
10+ let x1 = toInt((base58'1111111' + x0), 0)
11+ if ((128 > x1))
12+ then [x1, (offset + 1)]
13+ else [toInt((base58'Ahg1opVcGW' + x0), 0), (offset + 1)]
1214 }
1315
1416
1820 then throw("decode u16 error, decoding is finish")
1921 else {
2022 let x0 = drop(data, offset)
21- let x1 = take(x0, 1)
22- let x2 = take(drop(x0, 1), 1)
23-[toInt(((base58'111111' + x2) + x1), 0), (offset + 2)]
23+ let x1 = take(x0, 2)
24+[toInt((base58'111111' + x1), 0), (offset + 2)]
2425 }
2526
2627
3031 then throw("decode u32 error, decoding is finish")
3132 else {
3233 let x0 = drop(data, offset)
33- let x1 = take(x0, 1)
34- let x2 = take(drop(x0, 1), 1)
35- let x3 = take(drop(x0, 2), 1)
36- let x4 = take(drop(x0, 3), 1)
37-[toInt(((((base58'1111' + x4) + x3) + x2) + x1), 0), (offset + 4)]
34+ let x1 = take(x0, 4)
35+[toInt((base58'1111' + x1), 0), (offset + 4)]
3836 }
3937
4038
4442 then throw("decode u32 error, decoding is finish")
4543 else {
4644 let x0 = drop(data, offset)
47- let x1 = take(x0, 1)
48- let x2 = take(drop(x0, 1), 1)
49- let x3 = take(drop(x0, 2), 1)
50- let x4 = take(drop(x0, 3), 1)
51- let x5 = take(drop(x0, 4), 1)
52- let x6 = take(drop(x0, 5), 1)
53- let x7 = take(drop(x0, 6), 1)
54- let x8 = take(drop(x0, 7), 1)
55-[toInt((((((((x8 + x7) + x6) + x5) + x4) + x3) + x2) + x1), 0), (offset + 8)]
45+ let x1 = take(x0, 8)
46+[toInt(x1, 0), (offset + 8)]
5647 }
5748
5849
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func decodeInt8 (data,offset) = if ((1 > size(data)))
55 then throw("decode u8 error, data must be at least 1 byte")
66 else if ((offset > size(data)))
77 then throw("decode u8 error, decoding is finish")
88 else {
99 let x0 = take(drop(data, offset), 1)
10- let x1 = toInt(x0, 0)
11-[toInt((base58'1111111' + x0), 0), (offset + 1)]
10+ let x1 = toInt((base58'1111111' + x0), 0)
11+ if ((128 > x1))
12+ then [x1, (offset + 1)]
13+ else [toInt((base58'Ahg1opVcGW' + x0), 0), (offset + 1)]
1214 }
1315
1416
1517 func decodeInt16 (data,offset) = if ((2 > size(data)))
1618 then throw("decode u16 error, data must be at least 2 bytes")
1719 else if ((offset > size(data)))
1820 then throw("decode u16 error, decoding is finish")
1921 else {
2022 let x0 = drop(data, offset)
21- let x1 = take(x0, 1)
22- let x2 = take(drop(x0, 1), 1)
23-[toInt(((base58'111111' + x2) + x1), 0), (offset + 2)]
23+ let x1 = take(x0, 2)
24+[toInt((base58'111111' + x1), 0), (offset + 2)]
2425 }
2526
2627
2728 func decodeInt32 (data,offset) = if ((4 > size(data)))
2829 then throw("decode u32 error, data must be at least 4 bytes")
2930 else if ((offset > size(data)))
3031 then throw("decode u32 error, decoding is finish")
3132 else {
3233 let x0 = drop(data, offset)
33- let x1 = take(x0, 1)
34- let x2 = take(drop(x0, 1), 1)
35- let x3 = take(drop(x0, 2), 1)
36- let x4 = take(drop(x0, 3), 1)
37-[toInt(((((base58'1111' + x4) + x3) + x2) + x1), 0), (offset + 4)]
34+ let x1 = take(x0, 4)
35+[toInt((base58'1111' + x1), 0), (offset + 4)]
3836 }
3937
4038
4139 func decodeInt64 (data,offset) = if ((8 > size(data)))
4240 then throw("decode u32 error, data must be at least 8 bytes")
4341 else if ((offset > size(data)))
4442 then throw("decode u32 error, decoding is finish")
4543 else {
4644 let x0 = drop(data, offset)
47- let x1 = take(x0, 1)
48- let x2 = take(drop(x0, 1), 1)
49- let x3 = take(drop(x0, 2), 1)
50- let x4 = take(drop(x0, 3), 1)
51- let x5 = take(drop(x0, 4), 1)
52- let x6 = take(drop(x0, 5), 1)
53- let x7 = take(drop(x0, 6), 1)
54- let x8 = take(drop(x0, 7), 1)
55-[toInt((((((((x8 + x7) + x6) + x5) + x4) + x3) + x2) + x1), 0), (offset + 8)]
45+ let x1 = take(x0, 8)
46+[toInt(x1, 0), (offset + 8)]
5647 }
5748
5849
5950 func decodeBool (data,offset) = {
6051 let decoded1 = decodeInt8(data, offset)
6152 [DataEntry("bool", (decoded1[0] != 0)), DataEntry("int", decoded1[1])]
6253 }
6354
6455
6556 func decodeBytes32 (data,offset) = if ((32 > size(data)))
6657 then throw("decode bytes32 error, data must be at least 32 bytes")
6758 else [DataEntry("byte_vector", take(drop(data, offset), 32)), DataEntry("int", (offset + 32))]
6859
6960
7061 func decodeBytes64 (data,offset) = if ((64 > size(data)))
7162 then throw("decode bytes64 error, data must be at least 64 bytes")
7263 else [DataEntry("byte_vector", take(drop(data, offset), 64)), DataEntry("int", (offset + 64))]
7364
7465
7566 func decodeBytes65 (data,offset) = if ((65 > size(data)))
7667 then throw("decode bytes65 error, data must be at least 65 bytes")
7768 else [DataEntry("byte_vector", take(drop(data, offset), 65)), DataEntry("int", (offset + 65))]
7869
7970
8071 func decodeBytes (data,offset) = {
8172 let decoded1 = decodeInt32(data, offset)
8273 let bytesSize = decoded1[0]
8374 let nextOffset = decoded1[1]
8475 [DataEntry("byte_vector", take(drop(data, nextOffset), bytesSize)), DataEntry("int", (nextOffset + bytesSize))]
8576 }
8677
8778
8879 func decodeString (data,offset) = {
8980 let decoded1 = decodeInt32(data, offset)
9081 let bytesSize = decoded1[0]
9182 let nextOffset = decoded1[1]
9283 [DataEntry("string", toUtf8String(take(drop(data, nextOffset), bytesSize))), DataEntry("int", (nextOffset + bytesSize))]
9384 }
9485
9586
9687 func getAsBool (tuple) = match tuple[0].value {
9788 case b: Boolean =>
9889 b
9990 case _ =>
10091 throw("not a Boolean")
10192 }
10293
10394
10495 func getAsByteVector (tuple) = match tuple[0].value {
10596 case bv: ByteVector =>
10697 bv
10798 case _ =>
10899 throw("not a ByteVector")
109100 }
110101
111102
112103 func getAsString (tuple) = match tuple[0].value {
113104 case s: String =>
114105 s
115106 case _ =>
116107 throw("not a String")
117108 }
118109
119110
120111 func getOffset (tuple) = match tuple[1].value {
121112 case i: Int =>
122113 i
123114 case _ =>
124115 throw("not a Int")
125116 }
126117
127118
128119 @Callable(contextObj)
129120 func testSaveString (data) = WriteSet([DataEntry("testSaveString", data)])
130121
131122
132123
133124 @Callable(contextObj)
134125 func relayAndVerify (data) = {
135126 let req1 = decodeInt64(data, 0)
136127 WriteSet([DataEntry(("temp" + "/clientId"), req1[0])])
137128 }
138129
139130

github/deemru/w8io/169f3d6 
48.23 ms