Estoy viendo algunos documentos para la creación de facturas Lightning en https://github.com/lightning/bolts/blob/master/11-payment-encoding.md#now-send-24-for-an-entire-list-of -cosas-hashed .
Dicen un hash SHA256 de
One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelones
8yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqsCuando creo una factura con un LND, devuelve una factura que, cuando se decodifica, muestra el mismo valor, pero cuando trato de codificar la cadena de origen con JavaScript o con herramientas en línea, nunca obtengo una cadena como esa.
Esto es lo que obtengo con JavaScript:
createHash('sha256').update(str).digest('hex') 3925b6f67e2c340036ed12093dd44e0368df1b6ea26c53dbe4811f58fd5db8c1Las herramientas en línea tampoco dan el resultado que espero.
Entonces, supongo que hay algún procedimiento extra de codificación/descodificación bajo el capó.
¿Cómo convierto One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelon en 8yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqs ?
Utilicé la bech32-converting para verificar esto:
conv = require('bech32-converting') conv("").toBech32("3925b6f67e2c340036ed12093dd44e0368df1b6ea26c53dbe4811f58fd5db8c1") > '18yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqspe7lh6' que contiene el resultado... Tenga en cuenta que hay un 1 antepuesto y pe7lh6 :
El primer carácter ( 1 ) es el separador Bech32 que siempre es 1 (usando conv("bc") arriba antepondría bc por ejemplo)
Los últimos seis caracteres ( pe7lh6 ) son la suma de comprobación de Bech32