liquidjs-lib
Advanced tools
Comparing version 6.0.2-liquid.1 to 6.0.2-liquid.2
{ | ||
"name": "liquidjs-lib", | ||
"version": "6.0.2-liquid.1", | ||
"version": "6.0.2-liquid.2", | ||
"description": "Client-side Liquid JavaScript library", | ||
@@ -5,0 +5,0 @@ "main": "./src/index.js", |
@@ -16,2 +16,3 @@ /// <reference types="node" /> | ||
version: number; | ||
[key: string]: any; | ||
} | ||
@@ -50,9 +51,8 @@ /** | ||
/** | ||
* Returns an Issuance object for issuance transaction input. | ||
* @param assetAmount the number of asset to issue. | ||
* @param tokenAmount the number of token to issue. | ||
* @param precision the number of digit after the decimal point (8 for satoshi). | ||
* Returns an unblinded Issuance object for issuance transaction input. | ||
* @param assetSats the number of asset to issue. | ||
* @param tokenSats the number of token to issue. | ||
* @param contract the asset ricarding contract of the issuance. | ||
*/ | ||
export declare function newIssuance(assetAmount: number, tokenAmount: number, precision?: number, contract?: IssuanceContract): Issuance; | ||
export declare function newIssuance(assetSats: number, tokenSats: number, contract?: IssuanceContract): Issuance; | ||
export declare function isReissuance(issuance: Issuance): boolean; | ||
@@ -82,12 +82,7 @@ /** | ||
/** | ||
* converts asset amount to confidential value. | ||
* converts asset amount to satoshis. | ||
* satoshis = assetAmount * 10^precision | ||
* @param assetAmount the asset amount. | ||
* @param precision the precision, 8 by default. | ||
* @param precision the precision, 8 by default (like L-BTC). | ||
*/ | ||
export declare function toConfidentialAssetAmount(assetAmount: number, precision?: number): Buffer; | ||
/** | ||
* converts token amount to confidential value. | ||
* @param assetAmount the token amount. | ||
* @param precision the precision, 8 by default. | ||
*/ | ||
export declare function toConfidentialTokenAmount(tokenAmount: number, precision?: number): Buffer; | ||
export declare function amountWithPrecisionToSatoshis(assetAmount: number, precision?: number): number; |
@@ -47,3 +47,3 @@ 'use strict'; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
exports.toConfidentialTokenAmount = exports.toConfidentialAssetAmount = exports.calculateReissuanceToken = exports.calculateAsset = exports.issuanceEntropyFromInput = exports.generateEntropy = exports.isReissuance = exports.newIssuance = exports.hashContract = exports.validateIssuanceContract = exports.hasTokenAmount = void 0; | ||
exports.amountWithPrecisionToSatoshis = exports.calculateReissuanceToken = exports.calculateAsset = exports.issuanceEntropyFromInput = exports.generateEntropy = exports.isReissuance = exports.newIssuance = exports.hashContract = exports.validateIssuanceContract = exports.hasTokenAmount = void 0; | ||
const bufferutils_1 = require('./bufferutils'); | ||
@@ -78,11 +78,9 @@ const confidential_1 = require('./confidential'); | ||
throw new Error('Invalid asset contract'); | ||
const constractJSON = `{"entity":{"domain":"${ | ||
contract.entity.domain | ||
}"},"issuer_pubkey":"${contract.issuer_pubkey}","name":"${ | ||
contract.name | ||
}","precision":${contract.precision},"ticker":"${ | ||
contract.ticker | ||
}","version":${contract.version}}`; | ||
const sortedKeys = Object.keys(contract).sort(); | ||
const sortedContract = sortedKeys.reduce( | ||
(obj, key) => ({ ...obj, [key]: contract[key] }), | ||
{}, | ||
); | ||
return bcrypto | ||
.sha256(Buffer.from(constractJSON)) | ||
.sha256(Buffer.from(JSON.stringify(sortedContract))) | ||
.slice() | ||
@@ -93,21 +91,20 @@ .reverse(); | ||
/** | ||
* Returns an Issuance object for issuance transaction input. | ||
* @param assetAmount the number of asset to issue. | ||
* @param tokenAmount the number of token to issue. | ||
* @param precision the number of digit after the decimal point (8 for satoshi). | ||
* Returns an unblinded Issuance object for issuance transaction input. | ||
* @param assetSats the number of asset to issue. | ||
* @param tokenSats the number of token to issue. | ||
* @param contract the asset ricarding contract of the issuance. | ||
*/ | ||
function newIssuance(assetAmount, tokenAmount, precision = 8, contract) { | ||
if (assetAmount < 0) throw new Error('Invalid asset amount'); | ||
if (tokenAmount < 0) throw new Error('Invalid token amount'); | ||
if (precision < 0 || precision > 8) throw new Error('Invalid precision'); | ||
let contractHash = Buffer.alloc(32); | ||
if (contract) { | ||
if (contract.precision !== precision) | ||
throw new Error('precision is not equal to the asset contract precision'); | ||
contractHash = hashContract(contract); | ||
} | ||
const iss = { | ||
assetAmount: toConfidentialAssetAmount(assetAmount, precision), | ||
tokenAmount: toConfidentialTokenAmount(tokenAmount, precision), | ||
function newIssuance(assetSats, tokenSats, contract) { | ||
if (assetSats < 0) throw new Error('Invalid asset amount'); | ||
if (tokenSats < 0) throw new Error('Invalid token amount'); | ||
const contractHash = contract ? hashContract(contract) : Buffer.alloc(32); | ||
const issuanceObject = { | ||
assetAmount: | ||
assetSats === 0 | ||
? Buffer.of(0x00) | ||
: (0, confidential_1.satoshiToConfidentialValue)(assetSats), | ||
tokenAmount: | ||
tokenSats === 0 | ||
? Buffer.of(0x00) | ||
: (0, confidential_1.satoshiToConfidentialValue)(tokenSats), | ||
assetBlindingNonce: Buffer.alloc(32), | ||
@@ -117,3 +114,3 @@ // in case of issuance, the asset entropy = the contract hash. | ||
}; | ||
return iss; | ||
return issuanceObject; | ||
} | ||
@@ -188,20 +185,10 @@ exports.newIssuance = newIssuance; | ||
/** | ||
* converts asset amount to confidential value. | ||
* converts asset amount to satoshis. | ||
* satoshis = assetAmount * 10^precision | ||
* @param assetAmount the asset amount. | ||
* @param precision the precision, 8 by default. | ||
* @param precision the precision, 8 by default (like L-BTC). | ||
*/ | ||
function toConfidentialAssetAmount(assetAmount, precision = 8) { | ||
const amount = Math.pow(10, precision) * assetAmount; | ||
return (0, confidential_1.satoshiToConfidentialValue)(amount); | ||
function amountWithPrecisionToSatoshis(assetAmount, precision = 8) { | ||
return Math.pow(10, precision) * assetAmount; | ||
} | ||
exports.toConfidentialAssetAmount = toConfidentialAssetAmount; | ||
/** | ||
* converts token amount to confidential value. | ||
* @param assetAmount the token amount. | ||
* @param precision the precision, 8 by default. | ||
*/ | ||
function toConfidentialTokenAmount(tokenAmount, precision = 8) { | ||
if (tokenAmount === 0) return Buffer.from('00', 'hex'); | ||
return toConfidentialAssetAmount(tokenAmount, precision); | ||
} | ||
exports.toConfidentialTokenAmount = toConfidentialTokenAmount; | ||
exports.amountWithPrecisionToSatoshis = amountWithPrecisionToSatoshis; |
@@ -11,7 +11,6 @@ /// <reference types="node" /> | ||
export interface AddIssuanceArgs { | ||
assetAmount: number; | ||
assetAddress: string; | ||
tokenAmount: number; | ||
assetSats: number; | ||
assetAddress?: string; | ||
tokenSats: number; | ||
tokenAddress?: string; | ||
precision: number; | ||
contract?: IssuanceContract; | ||
@@ -26,7 +25,6 @@ blindedIssuance?: boolean; | ||
entropy: Buffer; | ||
assetAmount: number; | ||
assetSats: number; | ||
assetAddress: string; | ||
tokenAmount: number; | ||
tokenSats: number; | ||
tokenAddress: string; | ||
precision: number; | ||
blindedIssuance?: boolean; | ||
@@ -33,0 +31,0 @@ } |
@@ -13,3 +13,3 @@ /// <reference types="node" /> | ||
export interface IssuanceBlindingKeys { | ||
assetKey: Buffer; | ||
assetKey?: Buffer; | ||
tokenKey?: Buffer; | ||
@@ -16,0 +16,0 @@ } |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
282634
8239