Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14864824
D14172.id41133.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
D14172.id41133.diff
View Options
diff --git a/modules/ecashaddrjs/README.md b/modules/ecashaddrjs/README.md
--- a/modules/ecashaddrjs/README.md
+++ b/modules/ecashaddrjs/README.md
@@ -150,3 +150,4 @@
1.4.1-6 - Fix repo README link for npmjs page\
1.5.0 - Add `getOutputScriptFromAddress` function to get outputScript from address
1.5.1 - Patch `getTypeAndHashFromOutputScript` to return type in lowercase (how chronik accepts it)
+1.5.2 - Make input of address type case insensitive for `encode`, e.g. `p2pkh` and `P2PKH` both work
diff --git a/modules/ecashaddrjs/package.json b/modules/ecashaddrjs/package.json
--- a/modules/ecashaddrjs/package.json
+++ b/modules/ecashaddrjs/package.json
@@ -1,6 +1,6 @@
{
"name": "ecashaddrjs",
- "version": "1.5.1",
+ "version": "1.5.2",
"description": "eCash cashaddr address format support for Node.js and web browsers.",
"main": "src/cashaddr.js",
"browser": "dist/cashaddrjs.min.js",
diff --git a/modules/ecashaddrjs/src/cashaddr.js b/modules/ecashaddrjs/src/cashaddr.js
--- a/modules/ecashaddrjs/src/cashaddr.js
+++ b/modules/ecashaddrjs/src/cashaddr.js
@@ -28,7 +28,7 @@
*
* @static
* @param {string} prefix Cash address prefix. E.g.: 'ecash'.
- * @param {string} type Type of address to generate. Either 'P2PKH' or 'P2SH'.
+ * @param {string} type Type of address to generate. Either 'P2PKH' or 'P2SH'. Case-insensitive.
* @param {Uint8Array or string} hash Hash to encode represented as an array of 8-bit integers.
* @returns {string}
* @throws {ValidationError}
@@ -47,7 +47,7 @@
hash = stringToUint8Array(hash);
}
var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));
- var versionByte = getTypeBits(type) + getHashSizeBits(hash);
+ var versionByte = getTypeBits(type.toUpperCase()) + getHashSizeBits(hash);
var payloadData = toUint5Array(concat(new Uint8Array([versionByte]), hash));
var checksumData = concat(
concat(prefixData, payloadData),
diff --git a/modules/ecashaddrjs/test/cashaddr.js b/modules/ecashaddrjs/test/cashaddr.js
--- a/modules/ecashaddrjs/test/cashaddr.js
+++ b/modules/ecashaddrjs/test/cashaddr.js
@@ -192,6 +192,37 @@
}
});
+ it('should encode test hashes on mainnet correctly with lower case or mixed case for type', () => {
+ for (const index in TEST_HASHES) {
+ assert.equal(
+ cashaddr.encode('ecash', 'p2pkh', TEST_HASHES[index]),
+ EXPECTED_P2PKH_OUTPUTS[index],
+ );
+ assert.equal(
+ cashaddr.encode('ecash', 'p2sh', TEST_HASHES[index]),
+ EXPECTED_P2SH_OUTPUTS[index],
+ );
+ }
+ for (const index in TEST_HASHES) {
+ assert.equal(
+ cashaddr.encode(
+ 'ecash',
+ 'P2Pkh',
+ TEST_HASHES_STRINGS[index],
+ ),
+ EXPECTED_P2PKH_OUTPUTS[index],
+ );
+ assert.equal(
+ cashaddr.encode(
+ 'ecash',
+ 'p2sH',
+ TEST_HASHES_STRINGS[index],
+ ),
+ EXPECTED_P2SH_OUTPUTS[index],
+ );
+ }
+ });
+
it('should encode test hashes on testnet correctly', () => {
for (const index in TEST_HASHES) {
assert.equal(
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, May 20, 22:38 (4 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5863184
Default Alt Text
D14172.id41133.diff (3 KB)
Attached To
D14172: [ecashaddrjs] Support use of lowercase types for encoding addresses
Event Timeline
Log In to Comment