42 lines
No EOL
1 KiB
Java
42 lines
No EOL
1 KiB
Java
package com.tangem.wallet;
|
|
|
|
/**
|
|
* Created by Ilia on 29.09.2017.
|
|
*/
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
@SuppressWarnings("WeakerAccess")
|
|
public final class BitcoinOutputStream extends ByteArrayOutputStream {
|
|
|
|
public void writeInt16(int value) {
|
|
write(value & 0xff);
|
|
write((value >> 8) & 0xff);
|
|
}
|
|
|
|
public void writeInt32(int value) {
|
|
write(value & 0xff);
|
|
write((value >> 8) & 0xff);
|
|
write((value >> 16) & 0xff);
|
|
write((value >>> 24) & 0xff);
|
|
}
|
|
|
|
public void writeInt64(long value) {
|
|
writeInt32((int) (value & 0xFFFFFFFFL));
|
|
writeInt32((int) ((value >>> 32) & 0xFFFFFFFFL));
|
|
}
|
|
|
|
public void writeVarInt(long value) {
|
|
if (value < 0xfd) {
|
|
write((int) (value & 0xff));
|
|
} else if (value < 0xffff) {
|
|
write(0xfd);
|
|
writeInt16((int) value);
|
|
} else if (value < 0xffffffffL) {
|
|
write(0xfe);
|
|
writeInt32((int) value);
|
|
} else {
|
|
write(0xff);
|
|
writeInt64(value);
|
|
}
|
|
}
|
|
} |