1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-05-12 12:03:29 +00:00

bip-path-templates: Change chars for ranges from "[]" to "{}"

This commit is contained in:
Dmitry Petukhov 2021-05-11 13:55:09 +05:00
parent 2305c5bda6
commit 6ffc3542f8
No known key found for this signature in database
GPG Key ID: 2301D26BDC15160D

View File

@ -98,7 +98,7 @@ Each section consists of ''index template'', optionally followed by the hardened
Index template can be: Index template can be:
* An integer value from 0 to 2147483647 ("Unit index template") * An integer value from 0 to 2147483647 ("Unit index template")
* The <nowiki>"["</nowiki> character, followed by a number of ''index ranges'' delimited by commas (","), followed by <nowiki>"]"</nowiki> character ("Ranged index template") * The <nowiki>"{"</nowiki> character, followed by a number of ''index ranges'' delimited by commas (","), followed by <nowiki>"}"</nowiki> character ("Ranged index template")
Implementations MAY limit the maximum number of index ranges within the Ranged index template. Implementations MAY limit the maximum number of index ranges within the Ranged index template.
@ -129,7 +129,7 @@ It may be desireable to have fully unambiguous encoding, where for each valid pa
To achieve this, two extra rules are needed: To achieve this, two extra rules are needed:
* Within Ranged index template, subsequent range MUST NOT start with the value that is equal to the end of the previous range plus one. Thus, <nowiki>"[1,2,3-5]"</nowiki> is not allowed, and should be specified as <nowiki>"[1-5]"</nowiki> instead. This rule might make templates less convenient for frequent edits, though. * Within Ranged index template, subsequent range MUST NOT start with the value that is equal to the end of the previous range plus one. Thus, <nowiki>"{1,2,3-5}"</nowiki> is not allowed, and should be specified as <nowiki>"{1-5}"</nowiki> instead. This rule might make templates less convenient for frequent edits, though.
* Only one type of hardened marker should be allowed (either "h" or "'"). * Only one type of hardened marker should be allowed (either "h" or "'").
@ -193,7 +193,7 @@ At the moment, three implementations exist:
==Examples== ==Examples==
'''"m/[44,49,84]'/0'/0'/[0-1]/[0-50000]"''' specifies a full template that matches both external and internal chains of BIP44, BIP49 and BIP84 paths, with a constraint that the address index cannot be larger than 50000 '''"m/{44,49,84}'/0'/0'/{0-1}/{0-50000}"''' specifies a full template that matches both external and internal chains of BIP44, BIP49 and BIP84 paths, with a constraint that the address index cannot be larger than 50000
Its representation after parsing can be (using Python syntax, ignoring full/partial distinction): Its representation after parsing can be (using Python syntax, ignoring full/partial distinction):
[[(2147483692, 2147483692), (2147483697, 2147483697), (2147483732, 2147483732)), [[(2147483692, 2147483692), (2147483697, 2147483697), (2147483732, 2147483732)),
@ -202,7 +202,7 @@ Its representation after parsing can be (using Python syntax, ignoring full/part
[(0, 1)], [(0, 1)],
[(0, 50000)]] [(0, 50000)]]
'''"[0-2,33,123]/*"''' specifies a partial template that matches non-hardened values 0, 1, 2, 33, 123 as first index, and any non-hardened value at second index '''"{0-2,33,123}/*"''' specifies a partial template that matches non-hardened values 0, 1, 2, 33, 123 as first index, and any non-hardened value at second index
Its representation after parsing can be: Its representation after parsing can be:
[[(0, 2), (33, 33), (123, 123)], [(0, 2147483647)]] [[(0, 2), (33, 33), (123, 123)], [(0, 2147483647)]]