tx · Gji1d3xyGeik1DHtJYomUuAdGap36SVu7aFYxN7jVYAe

3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA:  -0.02000000 Waves

2020.04.28 16:58 [974680] smart account 3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA > SELF 0.00000000 Waves

{ "type": 13, "id": "Gji1d3xyGeik1DHtJYomUuAdGap36SVu7aFYxN7jVYAe", "fee": 2000000, "feeAssetId": null, "timestamp": 1588082341654, "version": 1, "sender": "3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA", "senderPublicKey": "Aj2RvtYHTSnDfcwYBCD5ZEwG3V483xJe2L1n13KPsi3a", "proofs": [ "3BQWWtMSEEDmapA5hBzVQsWoHMB5Yuf1SvwY5yfJQ2DpeRG7Qxa8iwkVV3vutiguCyrUPQQ4fANdTnaHdeLmh8JN" ], "script": "base64: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", "chainId": 84, "height": 974680, "spentComplexity": 0 } View: original | compacted Prev: 3PzDaRvPnUAh6HAYzq4e5jWCXCWgHSfJWogMxSWdjN8r Next: 57Poy5FkzgtVZT64wRr3BYMfXoPZspZEUdgc12EmpNPD Diff:
OldNewDifferences
136136
137137
138138 @Callable(contextObj)
139+func testDCSCSB (data) = {
140+ let offset = 0
141+ let x1 = decodeString(data, offset)
142+ match x1[1] {
143+ case t: Int =>
144+ let x2 = decodeBytes32(data, t)
145+ WriteSet([DataEntry("string", x1[0]), DataEntry("bytes", x2[0])])
146+ case _ =>
147+ throw("decode bytes65 error, data must be at least 65 bytes")
148+ }
149+ }
150+
151+
152+
153+@Callable(contextObj)
139154 func testDecodeBytes32 (data) = {
140155 let offset = 0
141156 let decoded = decodeBytes32(data, offset)
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 [(decoded1[0] != 0), 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 [take(drop(data, offset), 32), (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 [take(drop(data, offset), 64), (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 [take(drop(data, offset), 65), (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 [take(drop(data, nextOffset), bytesSize), (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 [toUtf8String(take(drop(data, nextOffset), bytesSize)), (nextOffset + bytesSize)]
9999 }
100100
101101
102102 @Callable(contextObj)
103103 func testDecodeInt16 (data) = {
104104 let offset = 0
105105 let x1 = decodeInt16(data, offset)
106106 WriteSet([DataEntry("i16", x1[0])])
107107 }
108108
109109
110110
111111 @Callable(contextObj)
112112 func testDecodeInt64 (data) = {
113113 let offset = 0
114114 let decoded = decodeInt64(data, offset)
115115 WriteSet([DataEntry("i64", decoded[0])])
116116 }
117117
118118
119119
120120 @Callable(contextObj)
121121 func testDecodeString (data) = {
122122 let offset = 0
123123 let decoded = decodeString(data, offset)
124124 WriteSet([DataEntry("string", decoded[0])])
125125 }
126126
127127
128128
129129 @Callable(contextObj)
130130 func testDecodeBytes (data) = {
131131 let offset = 0
132132 let decoded = decodeBytes(data, offset)
133133 WriteSet([DataEntry("bytes", decoded[0])])
134134 }
135135
136136
137137
138138 @Callable(contextObj)
139+func testDCSCSB (data) = {
140+ let offset = 0
141+ let x1 = decodeString(data, offset)
142+ match x1[1] {
143+ case t: Int =>
144+ let x2 = decodeBytes32(data, t)
145+ WriteSet([DataEntry("string", x1[0]), DataEntry("bytes", x2[0])])
146+ case _ =>
147+ throw("decode bytes65 error, data must be at least 65 bytes")
148+ }
149+ }
150+
151+
152+
153+@Callable(contextObj)
139154 func testDecodeBytes32 (data) = {
140155 let offset = 0
141156 let decoded = decodeBytes32(data, offset)
142157 WriteSet([DataEntry("bytes", decoded[0])])
143158 }
144159
145160
146161
147162 @Callable(contextObj)
148163 func testIntFromBytes (data) = WriteSet([DataEntry("bytesToInt", toInt(data, 0))])
149164
150165
151166
152167 @Callable(contextObj)
153168 func testStringFromBytes (data) = WriteSet([DataEntry("bytesToString", toUtf8String(data))])
154169
155170
156171
157172 @Callable(contextObj)
158173 func setValidator (validator) = if ((contextObj.caller == this))
159174 then WriteSet([DataEntry("validator", validator)])
160175 else throw("Only owner can use this function.")
161176
162177
163178
164179 @Callable(contextObj)
165180 func reportData (data) = {
166181 let validator = getBinary(this, "validator")
167182 if ((contextObj.caller.bytes == validator))
168183 then WriteSet([DataEntry("data_reported", data)])
169184 else throw("Only validator can use this function.")
170185 }
171186
172187

github/deemru/w8io/3ef1775 
41.82 ms