Hola, quiero enviar una transacción con la función createTx. Cuando el valor es superior a 4294967296, aparece un error Error: Advertencia: paquete (): 1 argumentos sin usar, si el número es menor, la transacción se completa correctamente.
Cuando se usa un número bastante grande (4295) que se traduce en 4295000000, HASH falla al enviar una transacción.
Esto se debe a los argumentos del método pack que se utilizan en caso de que el valor sea >= 4294967296 pack se llamaría como pack('@', 4295000000) que da la advertencia
El código que se traduce está aquí:
function binToHex(value) { let i, l, o = '', n; value += ''; for (i = 0, l = value.length; i < l; i++) { n = value.charCodeAt(i).toString(16); o += n.length < 2 ? '0' + n : n; } return o; } function intToHexHandler(firstFormat, firstValue, secondFormat, SecondValue) { return binToHex(pack(firstFormat, firstValue)) + (secondFormat ? binToHex(pack(secondFormat, SecondValue)) : ''); } function intToHex(value) { if (value < 250) return intToHexHandler('C', value); else if (value < 65536) return intToHexHandler('C', 250, 'v', value); else if (value < 4294967296) return intToHexHandler('C', 251, 'V', value); else return intToHexHandler('C', 252, '@', value); } createTx({ to, value, fee, nonce, data = '' }) { const dataHex = binToHex(data); const message = to.substr(2) + intToHex(value) + intToHex(fee) + intToHex(nonce) + intToHex(data.length) + dataHex; const hash = sha256(encHex.parse(message)); const sign = this._keyPair.sign(hash.toString(encHex)).toDER('hex'); return { to: to, value: String(value), fee: String(fee), nonce: String(nonce), data: dataHex, pubkey: this.publicKey, sign: sign } }La función de paquete está aquí: https://github.com/xboston/metahash-js/blob/1e0caad6b18c5580c5173a77529af70b9885b8bf/dist/metahash.js#L22866
Y la billetera js está aquí: https://github.com/xboston/metahash-js/blob/1e0caad6b18c5580c5173a77529af70b9885b8bf/src/Wallet.js
¿Tiene alguna idea de qué argumentos se deben dar al método de paquete en caso de hash> = 4294967296?