tx · GQvkN1PUKZTuwakr1NGNf69FKVF6iCXYFpmPdrC5x9EA

3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA:  -0.02000000 Waves

2020.04.28 16:38 [974662] smart account 3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA > SELF 0.00000000 Waves

{ "type": 13, "id": "GQvkN1PUKZTuwakr1NGNf69FKVF6iCXYFpmPdrC5x9EA", "fee": 2000000, "feeAssetId": null, "timestamp": 1588081159542, "version": 1, "sender": "3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA", "senderPublicKey": "Aj2RvtYHTSnDfcwYBCD5ZEwG3V483xJe2L1n13KPsi3a", "proofs": [ "4hxD7hwQzKzVHaSPKQXEL7kbKT8CRgwqoAsALev45mtQtNdVWby8K1ybMviPkPAfvn4wQPj2SjuheFeCeo8kotCZ" ], "script": "base64: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", "chainId": 84, "height": 974662, "spentComplexity": 0 } View: original | compacted Prev: Bjp3jDvvFe2qrwKpCYe5CA2b7oeiUFfXRpnpar4GmFAZ Next: 3PzDaRvPnUAh6HAYzq4e5jWCXCWgHSfJWogMxSWdjN8r Diff:
OldNewDifferences
112112
113113
114114 @Callable(contextObj)
115+func testDecodeBytes (data) = {
116+ let offset = 0
117+ let decoded = decodeBytes(data, offset)
118+ WriteSet([DataEntry("bytes", decoded[0])])
119+ }
120+
121+
122+
123+@Callable(contextObj)
115124 func testIntFromBytes (data) = WriteSet([DataEntry("bytesToInt", toInt(data, 0))])
116125
117126
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 decodeBytes (data,offset) = {
7272 let decoded1 = decodeInt32(data, offset)
7373 let bytesSize = decoded1[0]
7474 let nextOffset = decoded1[1]
7575 [take(drop(data, nextOffset), bytesSize), (nextOffset + bytesSize)]
7676 }
7777
7878
7979 func decodeString (data,offset) = {
8080 let decoded1 = decodeInt32(data, offset)
8181 let bytesSize = decoded1[0]
8282 let nextOffset = decoded1[1]
8383 [toUtf8String(take(drop(data, nextOffset), bytesSize)), (nextOffset + bytesSize)]
8484 }
8585
8686
8787 @Callable(contextObj)
8888 func testDecodeInt16 (data) = {
8989 let offset = 0
9090 let x1 = decodeInt16(data, offset)
9191 WriteSet([DataEntry("i16", x1[0])])
9292 }
9393
9494
9595
9696 @Callable(contextObj)
9797 func testDecodeInt64 (data) = {
9898 let offset = 0
9999 let decoded = decodeInt64(data, offset)
100100 WriteSet([DataEntry("i64", decoded[0])])
101101 }
102102
103103
104104
105105 @Callable(contextObj)
106106 func testDecodeString (data) = {
107107 let offset = 0
108108 let decoded = decodeString(data, offset)
109109 WriteSet([DataEntry("string", decoded[0])])
110110 }
111111
112112
113113
114114 @Callable(contextObj)
115+func testDecodeBytes (data) = {
116+ let offset = 0
117+ let decoded = decodeBytes(data, offset)
118+ WriteSet([DataEntry("bytes", decoded[0])])
119+ }
120+
121+
122+
123+@Callable(contextObj)
115124 func testIntFromBytes (data) = WriteSet([DataEntry("bytesToInt", toInt(data, 0))])
116125
117126
118127
119128 @Callable(contextObj)
120129 func testStringFromBytes (data) = WriteSet([DataEntry("bytesToString", toUtf8String(data))])
121130
122131
123132
124133 @Callable(contextObj)
125134 func setValidator (validator) = if ((contextObj.caller == this))
126135 then WriteSet([DataEntry("validator", validator)])
127136 else throw("Only owner can use this function.")
128137
129138
130139
131140 @Callable(contextObj)
132141 func reportData (data) = {
133142 let validator = getBinary(this, "validator")
134143 if ((contextObj.caller.bytes == validator))
135144 then WriteSet([DataEntry("data_reported", data)])
136145 else throw("Only validator can use this function.")
137146 }
138147
139148

github/deemru/w8io/3ef1775 
39.66 ms