@defichain/jellyfish-transaction
Advanced tools
Comparing version 0.26.0 to 0.27.0
@@ -209,3 +209,10 @@ import BigNumber from 'bignumber.js'; | ||
static uBool32(getter: () => boolean, setter: (data: boolean) => void): BufferComposer; | ||
/** | ||
* maxPrice as BigNumber, first 8 bytes for integer, last 8 bytes for fraction | ||
* | ||
* @param getter to read from to buffer | ||
* @param setter to set to from buffer | ||
*/ | ||
static maxPriceAsBigNumber(getter: () => BigNumber, setter: (data: BigNumber) => void): BufferComposer; | ||
} | ||
//# sourceMappingURL=buffer_composer.d.ts.map |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ComposableBuffer = void 0; | ||
const bignumber_js_1 = __importDefault(require("bignumber.js")); | ||
const smart_buffer_1 = require("smart-buffer"); | ||
@@ -478,4 +482,33 @@ const buffer_varuint_1 = require("./buffer_varuint"); | ||
} | ||
/** | ||
* maxPrice as BigNumber, first 8 bytes for integer, last 8 bytes for fraction | ||
* | ||
* @param getter to read from to buffer | ||
* @param setter to set to from buffer | ||
*/ | ||
static maxPriceAsBigNumber(getter, setter) { | ||
return { | ||
fromBuffer: (buffer) => { | ||
const integer = buffer_bignumber_1.readBigNumberUInt64(buffer); | ||
const fraction = buffer_bignumber_1.readBigNumberUInt64(buffer); | ||
if (fraction.gt(new bignumber_js_1.default('99999999'))) { | ||
throw new Error('Too many decimals read from buffer. Will lose precision with more than 8 decimals'); | ||
} | ||
setter(integer.plus(fraction.dividedBy(buffer_bignumber_1.ONE_HUNDRED_MILLION))); | ||
}, | ||
toBuffer: (buffer) => { | ||
if (getter().decimalPlaces() > 8) { | ||
throw new Error('Too many decimals to be correctly represented. Will lose precision with more than 8 decimals'); | ||
} | ||
const n = getter() | ||
.multipliedBy(buffer_bignumber_1.ONE_HUNDRED_MILLION); | ||
const fraction = n.mod(buffer_bignumber_1.ONE_HUNDRED_MILLION); | ||
const integer = n.minus(fraction).dividedBy(buffer_bignumber_1.ONE_HUNDRED_MILLION); | ||
buffer_bignumber_1.writeBigNumberUInt64(integer, buffer); | ||
buffer_bignumber_1.writeBigNumberUInt64(fraction, buffer); | ||
} | ||
}; | ||
} | ||
} | ||
exports.ComposableBuffer = ComposableBuffer; | ||
//# sourceMappingURL=buffer_composer.js.map |
@@ -14,6 +14,3 @@ import BigNumber from 'bignumber.js'; | ||
toTokenId: number; | ||
maxPrice: { | ||
integer: BigNumber; | ||
fraction: BigNumber; | ||
}; | ||
maxPrice: BigNumber; | ||
} | ||
@@ -23,2 +20,3 @@ /** | ||
* Immutable by design, bi-directional fromBuffer, toBuffer deep composer. | ||
* @throws Error if more than 8 decimals | ||
*/ | ||
@@ -25,0 +23,0 @@ export declare class CPoolSwap extends ComposableBuffer<PoolSwap> { |
@@ -6,3 +6,2 @@ "use strict"; | ||
const tx_composer_1 = require("../../tx_composer"); | ||
const buffer_bignumber_1 = require("../../buffer/buffer_bignumber"); | ||
const dftx_balance_1 = require("./dftx_balance"); | ||
@@ -13,2 +12,3 @@ const buffer_varuint_1 = require("../../buffer/buffer_varuint"); | ||
* Immutable by design, bi-directional fromBuffer, toBuffer deep composer. | ||
* @throws Error if more than 8 decimals | ||
*/ | ||
@@ -23,14 +23,3 @@ class CPoolSwap extends buffer_composer_1.ComposableBuffer { | ||
buffer_composer_1.ComposableBuffer.varUInt(() => ps.toTokenId, v => ps.toTokenId = v), | ||
{ | ||
fromBuffer(buffer) { | ||
const integer = buffer_bignumber_1.readBigNumberUInt64(buffer); | ||
const fraction = buffer_bignumber_1.readBigNumberUInt64(buffer); | ||
ps.maxPrice = { integer, fraction }; | ||
}, | ||
toBuffer(buffer) { | ||
const { integer, fraction } = ps.maxPrice; | ||
buffer_bignumber_1.writeBigNumberUInt64(integer, buffer); | ||
buffer_bignumber_1.writeBigNumberUInt64(fraction, buffer); | ||
} | ||
} | ||
buffer_composer_1.ComposableBuffer.maxPriceAsBigNumber(() => ps.maxPrice, v => ps.maxPrice = v) | ||
]; | ||
@@ -37,0 +26,0 @@ } |
{ | ||
"private": false, | ||
"name": "@defichain/jellyfish-transaction", | ||
"version": "0.26.0", | ||
"version": "0.27.0", | ||
"description": "A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance on Bitcoin", | ||
@@ -41,5 +41,5 @@ "keywords": [ | ||
"dependencies": { | ||
"@defichain/jellyfish-crypto": "^0.26.0", | ||
"@defichain/jellyfish-crypto": "^0.27.0", | ||
"smart-buffer": "^4.1.0" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
284742
5136
+ Added@defichain/jellyfish-crypto@0.27.0(transitive)
- Removed@defichain/jellyfish-crypto@0.26.0(transitive)