var assert = require('assert') var BigInteger = require('bigi') // Import operations BigInteger.fromHex = function(hex) { var buffer = new Buffer(hex, 'hex') assert.equal(buffer.length, Buffer.byteLength(hex) / 2) return BigInteger.fromBuffer(buffer) } BigInteger.fromBuffer = function(buffer) { assert(Array.isArray(buffer) || Buffer.isBuffer(buffer)) // FIXME: Transitionary // FIXME: Transitionary if (Buffer.isBuffer(buffer)) { buffer = Array.prototype.slice.call(buffer) } return BigInteger.fromByteArrayUnsigned(buffer) } // Export operations BigInteger.prototype.toBuffer = function() { return new Buffer(this.toByteArrayUnsigned()) } BigInteger.prototype.toHex = function() { return this.toBuffer().toString('hex') } BigInteger.prototype.toPaddedBuffer = function(s) { var buffer = this.toBuffer() var padded = new Buffer(s - buffer.length) padded.fill(0) return Buffer.concat([padded, buffer], s) } module.exports = BigInteger