tx · CCi42pKGYXzm1uxtQHkTGUCc9TV7Pf7etwk933xUzHBC

3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM:  -0.02000000 Waves

2020.05.15 12:05 [999115] smart account 3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM > SELF 0.00000000 Waves

{ "type": 13, "id": "CCi42pKGYXzm1uxtQHkTGUCc9TV7Pf7etwk933xUzHBC", "fee": 2000000, "feeAssetId": null, "timestamp": 1589533570853, "version": 1, "sender": "3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM", "senderPublicKey": "FmnQ1LwTnauTS2BSrZivE1nSF1A9MY9hyYB72pyh5hw9", "proofs": [ "2xquNBmzTpoSxu4oAnxyh82teN2qHQo7Y25d3Y9AeQNGvDRt3LyoXEpaGCeUpCymtfp1EuUHEW3hkhNf1nXYhBZk" ], "script": "base64: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", "chainId": 84, "height": 999115, "spentComplexity": 0 } View: original | compacted Prev: BnYcWNnUZbenhkYULNeBBBh4LJHsN78KQew5vKjZHxo1 Next: FRghnRea52DLCWv3tNXNCfLqovW1afjWGNTwVtBYEn98 Diff:
OldNewDifferences
131131 }
132132
133133
134+func decodeRequestPacket (data) = {
135+ let tuple1 = decodeString(data, 0)
136+ let tuple2 = decodeInt64(data, getOffset(tuple1))
137+ let tuple3 = decodeBytes(data, tuple2[1])
138+ let tuple4 = decodeInt64(data, getOffset(tuple3))
139+ let tuple5 = decodeInt64(data, tuple4[1])
140+[DataEntry("clientId", getAsString(tuple1)), DataEntry("oracleScriptId", tuple2[0]), DataEntry("calldata", getAsByteVector(tuple3)), DataEntry("askCount", tuple4[0]), DataEntry("minCount", tuple5[0])]
141+ }
142+
143+
144+func decodeResponsePacket (data) = {
145+ let tuple1 = decodeString(data, 0)
146+ let tuple2 = decodeInt64(data, getOffset(tuple1))
147+ let tuple3 = decodeInt64(data, tuple2[1])
148+ let tuple4 = decodeInt64(data, tuple3[1])
149+ let tuple5 = decodeInt64(data, tuple4[1])
150+ let tuple6 = decodeInt8(data, tuple5[1])
151+ let tuple7 = decodeBytes(data, tuple6[1])
152+[DataEntry("clientId", getAsString(tuple1)), DataEntry("requestId", tuple2[0]), DataEntry("ansCount", tuple3[0]), DataEntry("requestTime", tuple4[0]), DataEntry("resolveTime", tuple5[0]), DataEntry("resolveStatus", tuple6[0]), DataEntry("result", getAsByteVector(tuple7))]
153+ }
154+
155+
134156 @Callable(contextObj)
135157 func testDecodeInt16 (data) = {
136158 let offset = 0
192214
193215
194216 @Callable(contextObj)
195-func testDecodeResponsePacket (data) = {
196- let tuple1 = decodeString(data, 0)
197- let tuple2 = decodeInt64(data, getOffset(tuple1))
198- let tuple3 = decodeInt64(data, tuple2[1])
199- let tuple4 = decodeInt64(data, tuple3[1])
200- let tuple5 = decodeInt64(data, tuple4[1])
201- let tuple6 = decodeInt8(data, tuple5[1])
202- let tuple7 = decodeBytes(data, tuple6[1])
203- let priceBytes = getAsByteVector(tuple7)
204- let tuple8 = decodeString(priceBytes, 0)
205- let tuple9 = decodeInt64(priceBytes, getOffset(tuple8))
206- WriteSet([DataEntry("responsePacket/clientId", getAsString(tuple1)), DataEntry("responsePacket/requestId", tuple2[0]), DataEntry("responsePacket/ansCount", tuple3[0]), DataEntry("responsePacket/requestTime", tuple4[0]), DataEntry("responsePacket/resolveTime", tuple5[0]), DataEntry("responsePacket/resolveStatus", tuple6[0]), DataEntry("responsePacket/result/symbol", getAsString(tuple8)), DataEntry("responsePacket/result/multiplier", tuple9[0])])
217+func relayAndVerify (data) = {
218+ let tuple1 = decodeBytes(data, 0)
219+ let tuple2 = decodeBytes(data, getOffset(tuple1))
220+ WriteSet([DataEntry("requestPacket", getAsByteVector(tuple1)), DataEntry("responsePacket", getAsByteVector(tuple2))])
207221 }
208222
209223
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)
1010 let x1 = toInt((base58'1111111' + x0), 0)
1111 if ((128 > x1))
1212 then [x1, (offset + 1)]
1313 else [toInt((base58'Ahg1opVcGW' + x0), 0), (offset + 1)]
1414 }
1515
1616
1717 func decodeInt16 (data,offset) = if ((2 > size(data)))
1818 then throw("decode u16 error, data must be at least 2 bytes")
1919 else if ((offset > size(data)))
2020 then throw("decode u16 error, decoding is finish")
2121 else {
2222 let x0 = drop(data, offset)
2323 let x1 = take(x0, 1)
2424 let x2 = take(drop(x0, 1), 1)
2525 if ((decodeInt8(x2, 0)[0] >= 0))
2626 then [toInt(((base58'111111' + x2) + x1), 0), (offset + 2)]
2727 else [toInt(((base58'3CUsUpv9t' + x2) + x1), 0), (offset + 2)]
2828 }
2929
3030
3131 func decodeInt32 (data,offset) = if ((4 > size(data)))
3232 then throw("decode u32 error, data must be at least 4 bytes")
3333 else if ((offset > size(data)))
3434 then throw("decode u32 error, decoding is finish")
3535 else {
3636 let x0 = drop(data, offset)
3737 let x1 = take(x0, 1)
3838 let x2 = take(drop(x0, 1), 1)
3939 let x3 = take(drop(x0, 2), 1)
4040 let x4 = take(drop(x0, 3), 1)
4141 if ((decodeInt8(x4, 0)[0] >= 0))
4242 then [toInt(((((base58'1111' + x4) + x3) + x2) + x1), 0), (offset + 4)]
4343 else [toInt(((((base58'7YXq9G' + x4) + x3) + x2) + x1), 0), (offset + 4)]
4444 }
4545
4646
4747 func decodeInt64 (data,offset) = if ((8 > size(data)))
4848 then throw("decode u32 error, data must be at least 8 bytes")
4949 else if ((offset > size(data)))
5050 then throw("decode u32 error, decoding is finish")
5151 else {
5252 let x0 = drop(data, offset)
5353 let x1 = take(x0, 1)
5454 let x2 = take(drop(x0, 1), 1)
5555 let x3 = take(drop(x0, 2), 1)
5656 let x4 = take(drop(x0, 3), 1)
5757 let x5 = take(drop(x0, 4), 1)
5858 let x6 = take(drop(x0, 5), 1)
5959 let x7 = take(drop(x0, 6), 1)
6060 let x8 = take(drop(x0, 7), 1)
6161 [toInt((((((((x8 + x7) + x6) + x5) + x4) + x3) + x2) + x1), 0), (offset + 8)]
6262 }
6363
6464
6565 func decodeBool (data,offset) = {
6666 let decoded1 = decodeInt8(data, offset)
6767 [DataEntry("bool", (decoded1[0] != 0)), DataEntry("int", decoded1[1])]
6868 }
6969
7070
7171 func decodeBytes32 (data,offset) = if ((32 > size(data)))
7272 then throw("decode bytes32 error, data must be at least 32 bytes")
7373 else [DataEntry("byte_vector", take(drop(data, offset), 32)), DataEntry("int", (offset + 32))]
7474
7575
7676 func decodeBytes64 (data,offset) = if ((64 > size(data)))
7777 then throw("decode bytes64 error, data must be at least 64 bytes")
7878 else [DataEntry("byte_vector", take(drop(data, offset), 64)), DataEntry("int", (offset + 64))]
7979
8080
8181 func decodeBytes65 (data,offset) = if ((65 > size(data)))
8282 then throw("decode bytes65 error, data must be at least 65 bytes")
8383 else [DataEntry("byte_vector", take(drop(data, offset), 65)), DataEntry("int", (offset + 65))]
8484
8585
8686 func decodeBytes (data,offset) = {
8787 let decoded1 = decodeInt32(data, offset)
8888 let bytesSize = decoded1[0]
8989 let nextOffset = decoded1[1]
9090 [DataEntry("byte_vector", take(drop(data, nextOffset), bytesSize)), DataEntry("int", (nextOffset + bytesSize))]
9191 }
9292
9393
9494 func decodeString (data,offset) = {
9595 let decoded1 = decodeInt32(data, offset)
9696 let bytesSize = decoded1[0]
9797 let nextOffset = decoded1[1]
9898 [DataEntry("string", toUtf8String(take(drop(data, nextOffset), bytesSize))), DataEntry("int", (nextOffset + bytesSize))]
9999 }
100100
101101
102102 func getAsBool (tuple) = match tuple[0].value {
103103 case b: Boolean =>
104104 b
105105 case _ =>
106106 throw("not a Boolean")
107107 }
108108
109109
110110 func getAsByteVector (tuple) = match tuple[0].value {
111111 case bv: ByteVector =>
112112 bv
113113 case _ =>
114114 throw("not a ByteVector")
115115 }
116116
117117
118118 func getAsString (tuple) = match tuple[0].value {
119119 case s: String =>
120120 s
121121 case _ =>
122122 throw("not a String")
123123 }
124124
125125
126126 func getOffset (tuple) = match tuple[1].value {
127127 case i: Int =>
128128 i
129129 case _ =>
130130 throw("not a Int")
131131 }
132132
133133
134+func decodeRequestPacket (data) = {
135+ let tuple1 = decodeString(data, 0)
136+ let tuple2 = decodeInt64(data, getOffset(tuple1))
137+ let tuple3 = decodeBytes(data, tuple2[1])
138+ let tuple4 = decodeInt64(data, getOffset(tuple3))
139+ let tuple5 = decodeInt64(data, tuple4[1])
140+[DataEntry("clientId", getAsString(tuple1)), DataEntry("oracleScriptId", tuple2[0]), DataEntry("calldata", getAsByteVector(tuple3)), DataEntry("askCount", tuple4[0]), DataEntry("minCount", tuple5[0])]
141+ }
142+
143+
144+func decodeResponsePacket (data) = {
145+ let tuple1 = decodeString(data, 0)
146+ let tuple2 = decodeInt64(data, getOffset(tuple1))
147+ let tuple3 = decodeInt64(data, tuple2[1])
148+ let tuple4 = decodeInt64(data, tuple3[1])
149+ let tuple5 = decodeInt64(data, tuple4[1])
150+ let tuple6 = decodeInt8(data, tuple5[1])
151+ let tuple7 = decodeBytes(data, tuple6[1])
152+[DataEntry("clientId", getAsString(tuple1)), DataEntry("requestId", tuple2[0]), DataEntry("ansCount", tuple3[0]), DataEntry("requestTime", tuple4[0]), DataEntry("resolveTime", tuple5[0]), DataEntry("resolveStatus", tuple6[0]), DataEntry("result", getAsByteVector(tuple7))]
153+ }
154+
155+
134156 @Callable(contextObj)
135157 func testDecodeInt16 (data) = {
136158 let offset = 0
137159 let x1 = decodeInt16(data, offset)
138160 WriteSet([DataEntry("i16", x1[0])])
139161 }
140162
141163
142164
143165 @Callable(contextObj)
144166 func testDecodeInt64 (data) = {
145167 let offset = 0
146168 let decoded = decodeInt64(data, offset)
147169 WriteSet([DataEntry("i64", decoded[0])])
148170 }
149171
150172
151173
152174 @Callable(contextObj)
153175 func testDecodeString (data) = {
154176 let offset = 0
155177 let decoded = decodeString(data, offset)
156178 WriteSet([DataEntry("string", getAsString(decoded))])
157179 }
158180
159181
160182
161183 @Callable(contextObj)
162184 func testDecodeBytes (data) = {
163185 let offset = 0
164186 let decoded = decodeBytes(data, offset)
165187 WriteSet([DataEntry("bytes", getAsByteVector(decoded))])
166188 }
167189
168190
169191
170192 @Callable(contextObj)
171193 func testDecodeBytes32 (data) = {
172194 let offset = 0
173195 let decoded = decodeBytes32(data, offset)
174196 WriteSet([DataEntry("bytes", getAsByteVector(decoded))])
175197 }
176198
177199
178200
179201 @Callable(contextObj)
180202 func testDecodeCryptoPrice (data) = {
181203 let offset = 0
182204 let tuple1 = decodeString(data, offset)
183205 let tuple2 = decodeInt64(data, getOffset(tuple1))
184206 WriteSet([DataEntry("symbol", getAsString(tuple1)), DataEntry("multiplier", tuple2[0])])
185207 }
186208
187209
188210
189211 @Callable(contextObj)
190212 func testInt () = WriteSet([DataEntry("responsePacket/clientId", toInt(base58'111111Sw', 0))])
191213
192214
193215
194216 @Callable(contextObj)
195-func testDecodeResponsePacket (data) = {
196- let tuple1 = decodeString(data, 0)
197- let tuple2 = decodeInt64(data, getOffset(tuple1))
198- let tuple3 = decodeInt64(data, tuple2[1])
199- let tuple4 = decodeInt64(data, tuple3[1])
200- let tuple5 = decodeInt64(data, tuple4[1])
201- let tuple6 = decodeInt8(data, tuple5[1])
202- let tuple7 = decodeBytes(data, tuple6[1])
203- let priceBytes = getAsByteVector(tuple7)
204- let tuple8 = decodeString(priceBytes, 0)
205- let tuple9 = decodeInt64(priceBytes, getOffset(tuple8))
206- WriteSet([DataEntry("responsePacket/clientId", getAsString(tuple1)), DataEntry("responsePacket/requestId", tuple2[0]), DataEntry("responsePacket/ansCount", tuple3[0]), DataEntry("responsePacket/requestTime", tuple4[0]), DataEntry("responsePacket/resolveTime", tuple5[0]), DataEntry("responsePacket/resolveStatus", tuple6[0]), DataEntry("responsePacket/result/symbol", getAsString(tuple8)), DataEntry("responsePacket/result/multiplier", tuple9[0])])
217+func relayAndVerify (data) = {
218+ let tuple1 = decodeBytes(data, 0)
219+ let tuple2 = decodeBytes(data, getOffset(tuple1))
220+ WriteSet([DataEntry("requestPacket", getAsByteVector(tuple1)), DataEntry("responsePacket", getAsByteVector(tuple2))])
207221 }
208222
209223

github/deemru/w8io/026f985 
54.24 ms