@ckb-lumos/helpers
Advanced tools
Comparing version 0.13.3 to 0.14.0
import { HexString, Cell, Script, CellDep, Address, CellProvider, Hash, PackedSince, Transaction } from "@ckb-lumos/base"; | ||
import { List, Record, Map } from "immutable"; | ||
import { List, Record, Map as ImmutableMap } from "immutable"; | ||
import { Config } from "@ckb-lumos/config-manager"; | ||
@@ -31,3 +31,3 @@ export interface Options { | ||
}>; | ||
inputSinces: Map<number, PackedSince>; | ||
inputSinces: ImmutableMap<number, PackedSince>; | ||
} | ||
@@ -40,1 +40,31 @@ export declare type TransactionSkeletonType = Record<TransactionSkeletonInterface> & Readonly<TransactionSkeletonInterface>; | ||
export declare function sealTransaction(txSkeleton: TransactionSkeletonType, sealingContents: HexString[]): Transaction; | ||
export interface TransactionSkeletonObject { | ||
cellProvider: CellProvider | null; | ||
cellDeps: CellDep[]; | ||
headerDeps: Hash[]; | ||
inputs: Cell[]; | ||
outputs: Cell[]; | ||
witnesses: HexString[]; | ||
fixedEntries: Array<{ | ||
field: string; | ||
index: number; | ||
}>; | ||
signingEntries: Array<{ | ||
type: string; | ||
index: number; | ||
message: string; | ||
}>; | ||
inputSinces: Map<number, PackedSince>; | ||
} | ||
/** | ||
* Convert TransactionSkeleton to js object | ||
* | ||
* @param txSkelton | ||
*/ | ||
export declare function transactionSkeletonToObject(txSkelton: TransactionSkeletonType): TransactionSkeletonObject; | ||
/** | ||
* Convert js object to TransactionSkeleton | ||
* | ||
* @param obj | ||
*/ | ||
export declare function objectToTransactionSkeleton(obj: TransactionSkeletonObject): TransactionSkeletonType; |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.sealTransaction = exports.createTransactionFromSkeleton = exports.TransactionSkeleton = exports.addressToScript = exports.parseAddress = exports.scriptToAddress = exports.generateAddress = exports.locateCellDep = exports.minimalCellCapacity = void 0; | ||
exports.objectToTransactionSkeleton = exports.transactionSkeletonToObject = exports.sealTransaction = exports.createTransactionFromSkeleton = exports.TransactionSkeleton = exports.addressToScript = exports.parseAddress = exports.scriptToAddress = exports.generateAddress = exports.locateCellDep = exports.minimalCellCapacity = void 0; | ||
const base_1 = require("@ckb-lumos/base"); | ||
@@ -217,2 +217,35 @@ const bech32 = __importStar(require("bech32")); | ||
exports.sealTransaction = sealTransaction; | ||
/** | ||
* Convert TransactionSkeleton to js object | ||
* | ||
* @param txSkelton | ||
*/ | ||
function transactionSkeletonToObject(txSkelton) { | ||
return txSkelton.toJS(); | ||
} | ||
exports.transactionSkeletonToObject = transactionSkeletonToObject; | ||
/** | ||
* Convert js object to TransactionSkeleton | ||
* | ||
* @param obj | ||
*/ | ||
function objectToTransactionSkeleton(obj) { | ||
let inputSinces = immutable_1.Map(); | ||
for (const [key, value] of Object.entries(obj.inputSinces)) { | ||
inputSinces = inputSinces.set(+key, value); | ||
} | ||
const txSkeleton = exports.TransactionSkeleton({ | ||
cellProvider: obj.cellProvider, | ||
cellDeps: immutable_1.List(obj.cellDeps), | ||
headerDeps: immutable_1.List(obj.headerDeps), | ||
inputs: immutable_1.List(obj.inputs), | ||
outputs: immutable_1.List(obj.outputs), | ||
witnesses: immutable_1.List(obj.witnesses), | ||
fixedEntries: immutable_1.List(obj.fixedEntries), | ||
signingEntries: immutable_1.List(obj.signingEntries), | ||
inputSinces, | ||
}); | ||
return txSkeleton; | ||
} | ||
exports.objectToTransactionSkeleton = objectToTransactionSkeleton; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@ckb-lumos/helpers", | ||
"version": "0.13.3", | ||
"version": "0.14.0", | ||
"description": "Helper functions for working with CKB", | ||
@@ -49,4 +49,4 @@ "author": "Xuejie Xiao <xxuejie@gmail.com>", | ||
"dependencies": { | ||
"@ckb-lumos/base": "^0.13.3", | ||
"@ckb-lumos/config-manager": "^0.13.3", | ||
"@ckb-lumos/base": "^0.14.0", | ||
"@ckb-lumos/config-manager": "^0.14.0", | ||
"bech32": "^1.1.4", | ||
@@ -53,0 +53,0 @@ "ckb-js-toolkit": "^0.9.2", |
@@ -54,2 +54,13 @@ # `@ckb-lumos/helpers` | ||
const script = parseAddress("ckb1qyqrdsefa43s6m882pcj53m4gdnj4k440axqdt9rtd") | ||
// TransactionSkeleton <=> Object | ||
// Convert TransactionSkeleton to js object | ||
const obj = transactionSkeletonToObject(txSkeleton) | ||
// then your can write to json file | ||
fs.writeFileSync("your file", JSON.stringify(obj)) | ||
// Or convert js object to TransactionSkeleton | ||
// If your object is from json file, make sure `cellProvider` is working properly. | ||
const txSkeleton = objectToTransactionSkeleton(obj) | ||
``` |
Sorry, the diff of this file is not supported yet
24613
317
66
+ Added@ckb-lumos/base@0.14.1(transitive)
+ Added@ckb-lumos/config-manager@0.14.1(transitive)
- Removed@ckb-lumos/base@0.13.3(transitive)
- Removed@ckb-lumos/config-manager@0.13.3(transitive)
Updated@ckb-lumos/base@^0.14.0