ethers.js/lib.esm/utils/base64.js

53 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2022-11-30 15:44:23 -05:00
/**
2022-12-30 11:30:03 -05:00
* [Base64 encoding](link-wiki-base64) using 6-bit words to encode
2022-11-30 15:44:23 -05:00
* arbitrary bytes into a string using 65 printable symbols, the
* upper-case and lower-case alphabet, the digits ``0`` through ``9``,
* ``"+"`` and ``"/"`` with the ``"="`` used for padding.
*
2022-12-02 21:27:06 -05:00
* @_subsection: api/utils:Base64 Encoding [about-base64]
2022-11-30 15:44:23 -05:00
*/
2022-09-15 22:58:45 -04:00
import { getBytes, getBytesCopy } from "./data.js";
/**
2022-11-30 15:44:23 -05:00
* Decodes the base-64 encoded %%value%%.
2023-02-12 22:14:26 -05:00
*
* @example:
* // The decoded value is always binary data...
* result = decodeBase64("SGVsbG8gV29ybGQhIQ==")
* //_result:
*
* // ...use toUtf8String to convert it to a string.
* toUtf8String(result)
* //_result:
*
* // Decoding binary data
* decodeBase64("EjQ=")
* //_result:
2022-09-15 22:58:45 -04:00
*/
2022-11-30 15:44:23 -05:00
export function decodeBase64(value) {
return getBytesCopy(Buffer.from(value, "base64"));
2022-09-05 16:57:11 -04:00
}
;
2022-09-15 22:58:45 -04:00
/**
2022-11-30 15:44:23 -05:00
* Encodes %%data%% as a base-64 encoded string.
2023-02-12 22:14:26 -05:00
*
* @example:
* // Encoding binary data as a hexstring
* encodeBase64("0x1234")
* //_result:
*
* // Encoding binary data as a Uint8Array
* encodeBase64(new Uint8Array([ 0x12, 0x34 ]))
* //_result:
*
* // The input MUST be data...
* encodeBase64("Hello World!!")
* //_error:
*
* // ...use toUtf8Bytes for this.
* encodeBase64(toUtf8Bytes("Hello World!!"))
* //_result:
2022-09-15 22:58:45 -04:00
*/
2022-09-05 16:57:11 -04:00
export function encodeBase64(data) {
2022-09-15 22:58:45 -04:00
return Buffer.from(getBytes(data)).toString("base64");
2022-09-05 16:57:11 -04:00
}
//# sourceMappingURL=base64.js.map