Bip21-Uri

BIP21 URI 是否對參數有要求的順序?

  • June 2, 2022

我需要一些幫助來理解BIP21 URIs的更好點。參數是否有要求的順序?我對 ABNF 語法的概念不是很有經驗,所以我很難理解。

例如,我知道這是有效的。

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=20.3&label=Luke-Jr

我知道這是有效的:

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=20.3&label=Luke-Jr&optionalparam=blahblahblah

但這有效嗎?

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?optionalparam=blahblahblah&amount=20.3&label=Luke-Jr

非常具體地說,參數的順序必須始終是數量、標籤、消息,然後是可選參數嗎?或者可以在金額之前包含可選參數嗎?

BIP21 中的 ABNF 表示bitcoinparam可以按任意順序排列。

bitcoinurn     = "bitcoin:" bitcoinaddress [ "?" bitcoinparams ]
bitcoinaddress = *base58
bitcoinparams  = bitcoinparam [ "&" bitcoinparams ]
bitcoinparam   = [ amountparam / labelparam / messageparam / otherparam / reqparam ]

此列表中的第三項表明排序並不重要。任何有效bitcoinparam的都可以在 RHS 表達式中排在第一位。然後,您可以bitcoinparam使用相同的規則預先添加任何其他內容。根據需要重複。

引用自:https://bitcoin.stackexchange.com/questions/113945