@ckb-ccc/core 0.0.10-alpha.0 → 0.0.10-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ckb/transaction.d.ts +19 -15
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +44 -11
- package/dist/client/client.d.ts +1 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.advanced.js +30 -2
- package/dist/client/clientPublicTestnet.advanced.js +3 -3
- package/dist/client/clientTypes.advanced.d.ts +8 -8
- package/dist/client/clientTypes.advanced.d.ts.map +1 -1
- package/dist/client/clientTypes.d.ts +2 -2
- package/dist/client/clientTypes.d.ts.map +1 -1
- package/dist/client/clientTypes.js +2 -2
- package/dist/signer/ckb/index.d.ts +2 -0
- package/dist/signer/ckb/index.d.ts.map +1 -1
- package/dist/signer/ckb/index.js +2 -0
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts +4 -13
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -1
- package/dist/signer/ckb/signerCkbPrivateKey.js +10 -37
- package/dist/signer/ckb/signerCkbPublicKey.d.ts +18 -0
- package/dist/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
- package/dist/signer/ckb/signerCkbPublicKey.js +44 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.d.ts +5 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.js +14 -0
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +2 -0
- package/dist/utils/index.d.ts +18 -9
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist.commonjs/ckb/transaction.d.ts +19 -15
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +43 -10
- package/dist.commonjs/client/client.d.ts +1 -1
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +30 -2
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +3 -3
- package/dist.commonjs/client/clientTypes.advanced.d.ts +8 -8
- package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.d.ts +2 -2
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.js +2 -2
- package/dist.commonjs/signer/ckb/index.d.ts +2 -0
- package/dist.commonjs/signer/ckb/index.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/index.js +2 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +4 -13
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +10 -37
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts +18 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +48 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts +5 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +19 -0
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +2 -0
- package/dist.commonjs/utils/index.d.ts +18 -9
- package/dist.commonjs/utils/index.d.ts.map +1 -1
- package/dist.commonjs/utils/index.js +2 -2
- package/package.json +3 -3
- package/src/ckb/transaction.ts +87 -33
- package/src/client/client.ts +1 -1
- package/src/client/clientPublicMainnet.advanced.ts +34 -2
- package/src/client/clientPublicTestnet.advanced.ts +3 -3
- package/src/client/clientTypes.advanced.ts +8 -8
- package/src/client/clientTypes.ts +4 -4
- package/src/signer/ckb/index.ts +2 -0
- package/src/signer/ckb/signerCkbPrivateKey.ts +14 -54
- package/src/signer/ckb/signerCkbPublicKey.ts +63 -0
- package/src/signer/ckb/verifyCkbSecp256k1.ts +27 -0
- package/src/signer/signer/index.ts +6 -0
- package/src/utils/index.ts +24 -12
|
@@ -136,7 +136,7 @@ export declare class OutPoint {
|
|
|
136
136
|
export type CellOutputLike = {
|
|
137
137
|
capacity: NumLike;
|
|
138
138
|
lock: ScriptLike;
|
|
139
|
-
type?: ScriptLike;
|
|
139
|
+
type?: ScriptLike | null;
|
|
140
140
|
};
|
|
141
141
|
export declare class CellOutput {
|
|
142
142
|
capacity: Num;
|
|
@@ -258,9 +258,9 @@ export declare class Cell {
|
|
|
258
258
|
}
|
|
259
259
|
export type CellInputLike = {
|
|
260
260
|
previousOutput: OutPointLike;
|
|
261
|
-
since?: NumLike;
|
|
262
|
-
cellOutput?: CellOutputLike;
|
|
263
|
-
outputData?: HexLike;
|
|
261
|
+
since?: NumLike | null;
|
|
262
|
+
cellOutput?: CellOutputLike | null;
|
|
263
|
+
outputData?: HexLike | null;
|
|
264
264
|
};
|
|
265
265
|
export declare class CellInput {
|
|
266
266
|
previousOutput: OutPoint;
|
|
@@ -438,9 +438,9 @@ export declare class CellDep {
|
|
|
438
438
|
eq(val: CellDepLike): boolean;
|
|
439
439
|
}
|
|
440
440
|
export type WitnessArgsLike = {
|
|
441
|
-
lock?: HexLike;
|
|
442
|
-
inputType?: HexLike;
|
|
443
|
-
outputType?: HexLike;
|
|
441
|
+
lock?: HexLike | null;
|
|
442
|
+
inputType?: HexLike | null;
|
|
443
|
+
outputType?: HexLike | null;
|
|
444
444
|
};
|
|
445
445
|
export declare class WitnessArgs {
|
|
446
446
|
lock?: `0x${string}` | undefined;
|
|
@@ -506,13 +506,13 @@ export declare class WitnessArgs {
|
|
|
506
506
|
}
|
|
507
507
|
export declare function udtBalanceFrom(dataLike: BytesLike): bigint;
|
|
508
508
|
export type TransactionLike = {
|
|
509
|
-
version?: NumLike;
|
|
510
|
-
cellDeps?: CellDepLike[];
|
|
511
|
-
headerDeps?: HexLike[];
|
|
512
|
-
inputs?: CellInputLike[];
|
|
513
|
-
outputs?: (Omit<CellOutputLike, "capacity"> & Partial<Pick<CellOutputLike, "capacity">>)[];
|
|
514
|
-
outputsData?: HexLike[];
|
|
515
|
-
witnesses?: HexLike[];
|
|
509
|
+
version?: NumLike | null;
|
|
510
|
+
cellDeps?: CellDepLike[] | null;
|
|
511
|
+
headerDeps?: HexLike[] | null;
|
|
512
|
+
inputs?: CellInputLike[] | null;
|
|
513
|
+
outputs?: (Omit<CellOutputLike, "capacity"> & Partial<Pick<CellOutputLike, "capacity">>)[] | null;
|
|
514
|
+
outputsData?: HexLike[] | null;
|
|
515
|
+
witnesses?: HexLike[] | null;
|
|
516
516
|
};
|
|
517
517
|
export declare class Transaction {
|
|
518
518
|
version: Num;
|
|
@@ -793,8 +793,12 @@ export declare class Transaction {
|
|
|
793
793
|
getOutputsCapacity(): Num;
|
|
794
794
|
getInputsUdtBalance(client: Client, type: ScriptLike): Promise<Num>;
|
|
795
795
|
getOutputsUdtBalance(type: ScriptLike): Num;
|
|
796
|
-
completeInputs<T>(from: Signer, filter: ClientCollectableSearchKeyFilterLike, accumulator: (acc: T, v: Cell, i: number, array: Cell[]) => Promise<T | undefined> | T | undefined, init: T): Promise<
|
|
796
|
+
completeInputs<T>(from: Signer, filter: ClientCollectableSearchKeyFilterLike, accumulator: (acc: T, v: Cell, i: number, array: Cell[]) => Promise<T | undefined> | T | undefined, init: T): Promise<{
|
|
797
|
+
addedCount: number;
|
|
798
|
+
accumulated?: T;
|
|
799
|
+
}>;
|
|
797
800
|
completeInputsByCapacity(from: Signer, capacityTweak?: NumLike, filter?: ClientCollectableSearchKeyFilterLike): Promise<number>;
|
|
801
|
+
completeInputsAll(from: Signer, filter?: ClientCollectableSearchKeyFilterLike): Promise<number>;
|
|
798
802
|
completeInputsByUdt(from: Signer, type: ScriptLike): Promise<number>;
|
|
799
803
|
estimateFee(feeRate: NumLike): Num;
|
|
800
804
|
completeFee(from: Signer, change: (tx: Transaction, capacity: Num) => Promise<NumLike> | NumLike, feeRate: NumLike, filter?: ClientCollectableSearchKeyFilterLike): Promise<[number, boolean]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAW,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAC/C,OAAO,EACL,GAAG,EACH,OAAO,EAKR,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAgBrD;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAE1D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,qBAAa,QAAQ;IASV,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IATnB;;;;;OAKG;gBAGM,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG;IAGnB;;;;;;;;;OASG;IACH,KAAK,IAAI,QAAQ;IAIjB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ;IAO7C;;;;OAIG;IAEH,UAAU;;;;IAOV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,QAAQ;IAY3D;;;;;;;;;;OAUG;IACH,EAAE,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;CAI/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAW,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAC/C,OAAO,EACL,GAAG,EACH,OAAO,EAKR,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAgBrD;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAE1D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,qBAAa,QAAQ;IASV,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IATnB;;;;;OAKG;gBAGM,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG;IAGnB;;;;;;;;;OASG;IACH,KAAK,IAAI,QAAQ;IAIjB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ;IAO7C;;;;OAIG;IAEH,UAAU;;;;IAOV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,QAAQ;IAY3D;;;;;;;;;;OAUG;IACH,EAAE,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;CAI/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B,CAAC;AACF,qBAAa,UAAU;IAUZ,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,CAAC;IAXd;;;;;;OAMG;gBAGM,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,oBAAQ;IAGtB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;;;;OASG;IACH,KAAK,IAAI,UAAU;IAInB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,UAAU;IAYnD;;;;OAIG;IAEH,UAAU;;;;;;;;;;;;;IAQV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,UAAU,GAAG,UAAU;CAYhE;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AACF,qBAAa,IAAI;IAUN,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,GAAG;IAXxB;;;;;;OAMG;gBAGM,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,GAAG;IAGxB;;;;;OAKG;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAYjC;;;;;;;;;OASG;IACH,KAAK,IAAI,IAAI;CAOd;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B,CAAC;AACF,qBAAa,SAAS;IAWX,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,GAAG;IACV,UAAU,CAAC;IACX,UAAU,CAAC;IAbpB;;;;;;;OAOG;gBAGM,cAAc,EAAE,QAAQ,EACxB,KAAK,EAAE,GAAG,EACV,UAAU,CAAC,wBAAY,EACvB,UAAU,CAAC,2BAAK;IAGzB;;;;;;;;;OASG;IACH,KAAK,IAAI,SAAS;IASlB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS;IAahD;;;;;;;;;OASG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD;;;;OAIG;IAEH,UAAU;;;;;;;IAOV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,SAAS;CAW9D;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AACF,qBAAa,OAAO;IAST,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,OAAO;IATzB;;;;;OAKG;gBAGM,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAGzB;;;;;;;;;OASG;IAEH,KAAK,IAAI,OAAO;IAIhB;;;;;;;;;;;;;OAaG;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAW1C;;;;OAIG;IAEH,UAAU;;;;;;;IAOV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,OAAO;IAUlD;;;;;;;;;;OAUG;IACH,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;CAM9B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B,CAAC;AACF,qBAAa,WAAW;IAUb,IAAI,CAAC;IACL,SAAS,CAAC;IACV,UAAU,CAAC;IAXpB;;;;;;OAMG;gBAGM,IAAI,CAAC,2BAAK,EACV,SAAS,CAAC,2BAAK,EACf,UAAU,CAAC,2BAAK;IAGzB;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,WAAW;IAYtD;;;;OAIG;IAEH,UAAU;;;;;IAQV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,WAAW,GAAG,WAAW;CAYlE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,UAOjD;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EACJ,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAC9C,IAAI,CAAC;IACT,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC9B,CAAC;AACF,qBAAa,WAAW;IAcb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,OAAO,EAAE;IACnB,UAAU,EAAE,GAAG,EAAE;IACjB,MAAM,EAAE,SAAS,EAAE;IACnB,OAAO,EAAE,UAAU,EAAE;IACrB,WAAW,EAAE,GAAG,EAAE;IAClB,SAAS,EAAE,GAAG,EAAE;IAnBzB;;;;;;;;;;OAUG;gBAGM,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,GAAG,EAAE,EACjB,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,WAAW,EAAE,GAAG,EAAE,EAClB,SAAS,EAAE,GAAG,EAAE;IAGzB;;;;;;;;;OASG;IACH,MAAM,CAAC,OAAO,IAAI,WAAW;IAI7B;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,eAAe;IAW5B;;;;;;;;;OASG;IACH,KAAK,IAAI,WAAW;IAYpB;;;;;;;;;;;;;;;;;;OAkBG;IAEH,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,GAAG,WAAW;IAsC7C;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,WAAW;IAuBxE,SAAS,IAAI,MAAM;IASnB;;;;;;;;;OASG;IACH,UAAU,IAAI,KAAK;IAanB;;;;;;;;;OASG;IACH,OAAO,IAAI,KAAK;IAgBhB;;;;;;;;;OASG;IAEH,IAAI;IAIJ;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAM3D;;;;;;;;;;;;;;;;OAgBG;IACG,eAAe,CACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAyC1D;;;;;;;;;;;OAWG;IACG,oBAAoB,CACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB9B;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB9B;;;;;;;;;OASG;IACH,WAAW,CAAC,GAAG,YAAY,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI;IAWnE;;;;;;;;;;OAUG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,gBAAgB,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC3D,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;;;;;OAUG;IACG,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,GAAG,OAAO,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,GAC1C,OAAO,CAAC,IAAI,CAAC;IAahB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAanD;;;;;;;;;;OAUG;IACH,SAAS,CACP,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,EAC3C,UAAU,GAAE,OAAc,GACzB,IAAI;IAcP;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAOxD;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAa3D;;;;;;;;;;;;OAYG;IACG,wBAAwB,CAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAWV,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAcrD,kBAAkB,IAAI,GAAG;IAOnB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBzE,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG;IAUrC,cAAc,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oCAAoC,EAC5C,WAAW,EAAE,CACX,GAAG,EAAE,CAAC,EACN,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,IAAI,EAAE,KACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,EAC3C,IAAI,EAAE,CAAC,GACN,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,CAAC,CAAC;KACjB,CAAC;IAiDI,wBAAwB,CAC5B,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,EACvB,MAAM,CAAC,EAAE,oCAAoC,GAC5C,OAAO,CAAC,MAAM,CAAC;IA8BZ,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,oCAAoC,GAC5C,OAAO,CAAC,MAAM,CAAC;IAcZ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B1E,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG;IAK5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EACtE,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,oCAAoC,GAC5C,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA2E7B,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,oCAAoC,GAC5C,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAoBvB,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,oCAAoC,GAC5C,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM7B,yBAAyB,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,oCAAoC,GAC5C,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAe9B"}
|
package/dist/ckb/transaction.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { bytesFrom } from "../bytes";
|
|
2
|
-
import { Zero, fixedPointFrom } from "../fixedPoint";
|
|
2
|
+
import { Zero, fixedPointFrom, fixedPointToString } from "../fixedPoint";
|
|
3
3
|
import { Hasher, hashCkb } from "../hasher";
|
|
4
4
|
import { hexFrom } from "../hex";
|
|
5
5
|
import { numFrom, numFromBytes, numToBytes, numToHex, } from "../num";
|
|
@@ -690,8 +690,7 @@ export class Transaction {
|
|
|
690
690
|
return o;
|
|
691
691
|
}) ?? [];
|
|
692
692
|
const outputsData = outputs.map((_, i) => hexFrom(tx.outputsData?.[i] ?? "0x"));
|
|
693
|
-
if (tx.outputsData
|
|
694
|
-
outputsData.length < tx.outputsData.length) {
|
|
693
|
+
if (tx.outputsData != null && outputsData.length < tx.outputsData.length) {
|
|
695
694
|
outputsData.push(...tx.outputsData.slice(outputsData.length).map((d) => hexFrom(d)));
|
|
696
695
|
}
|
|
697
696
|
return new Transaction(numFrom(tx.version ?? 0), tx.cellDeps?.map((cellDep) => CellDep.from(cellDep)) ?? [], tx.headerDeps?.map(hexFrom) ?? [], tx.inputs?.map((input) => CellInput.from(input)) ?? [], outputs, outputsData, tx.witnesses?.map(hexFrom) ?? []);
|
|
@@ -1109,12 +1108,17 @@ export class Transaction {
|
|
|
1109
1108
|
outputData,
|
|
1110
1109
|
cellOutput,
|
|
1111
1110
|
})));
|
|
1112
|
-
return
|
|
1111
|
+
return {
|
|
1112
|
+
addedCount: collectedCells.length,
|
|
1113
|
+
};
|
|
1113
1114
|
}
|
|
1114
1115
|
acc = next;
|
|
1115
1116
|
}
|
|
1116
1117
|
}
|
|
1117
|
-
|
|
1118
|
+
return {
|
|
1119
|
+
addedCount: collectedCells.length,
|
|
1120
|
+
accumulated: acc,
|
|
1121
|
+
};
|
|
1118
1122
|
}
|
|
1119
1123
|
async completeInputsByCapacity(from, capacityTweak, filter) {
|
|
1120
1124
|
const exceptedCapacity = this.getOutputsCapacity() + numFrom(capacityTweak ?? 0);
|
|
@@ -1122,13 +1126,24 @@ export class Transaction {
|
|
|
1122
1126
|
if (inputsCapacity >= exceptedCapacity) {
|
|
1123
1127
|
return 0;
|
|
1124
1128
|
}
|
|
1125
|
-
|
|
1129
|
+
const { addedCount, accumulated } = await this.completeInputs(from, filter ?? {
|
|
1126
1130
|
scriptLenRange: [0, 1],
|
|
1127
1131
|
outputDataLenRange: [0, 1],
|
|
1128
1132
|
}, (acc, { cellOutput: { capacity } }) => {
|
|
1129
1133
|
const sum = acc + capacity;
|
|
1130
|
-
return sum
|
|
1134
|
+
return sum >= exceptedCapacity ? undefined : sum;
|
|
1131
1135
|
}, inputsCapacity);
|
|
1136
|
+
if (accumulated === undefined) {
|
|
1137
|
+
return addedCount;
|
|
1138
|
+
}
|
|
1139
|
+
throw new Error(`Insufficient CKB, need ${fixedPointToString(exceptedCapacity - accumulated)} extra CKB`);
|
|
1140
|
+
}
|
|
1141
|
+
async completeInputsAll(from, filter) {
|
|
1142
|
+
const { addedCount } = await this.completeInputs(from, filter ?? {
|
|
1143
|
+
scriptLenRange: [0, 1],
|
|
1144
|
+
outputDataLenRange: [0, 1],
|
|
1145
|
+
}, (acc, { cellOutput: { capacity } }) => acc + capacity, Zero);
|
|
1146
|
+
return addedCount;
|
|
1132
1147
|
}
|
|
1133
1148
|
async completeInputsByUdt(from, type) {
|
|
1134
1149
|
const exceptedBalance = this.getOutputsUdtBalance(type);
|
|
@@ -1136,14 +1151,18 @@ export class Transaction {
|
|
|
1136
1151
|
if (inputsBalance >= exceptedBalance) {
|
|
1137
1152
|
return 0;
|
|
1138
1153
|
}
|
|
1139
|
-
|
|
1154
|
+
const { addedCount, accumulated } = await this.completeInputs(from, {
|
|
1140
1155
|
script: type,
|
|
1141
1156
|
outputDataLenRange: [16, numFrom("0xffffffff")],
|
|
1142
1157
|
}, (acc, { outputData }) => {
|
|
1143
1158
|
const balance = udtBalanceFrom(outputData);
|
|
1144
1159
|
const sum = acc + balance;
|
|
1145
|
-
return sum
|
|
1160
|
+
return sum >= exceptedBalance ? undefined : sum;
|
|
1146
1161
|
}, inputsBalance);
|
|
1162
|
+
if (accumulated === undefined) {
|
|
1163
|
+
return addedCount;
|
|
1164
|
+
}
|
|
1165
|
+
throw new Error(`Insufficient coin, need ${exceptedBalance - accumulated} extra coin`);
|
|
1147
1166
|
}
|
|
1148
1167
|
estimateFee(feeRate) {
|
|
1149
1168
|
const txSize = this.toBytes().length + 4;
|
|
@@ -1152,11 +1171,25 @@ export class Transaction {
|
|
|
1152
1171
|
async completeFee(from, change, feeRate, filter) {
|
|
1153
1172
|
// Complete all inputs extra infos for cache
|
|
1154
1173
|
await this.getInputsCapacity(from.client);
|
|
1155
|
-
let leastFee =
|
|
1174
|
+
let leastFee = Zero;
|
|
1156
1175
|
let leastExtraCapacity = Zero;
|
|
1157
1176
|
while (true) {
|
|
1158
1177
|
const prepared = await from.prepareTransaction(this.clone());
|
|
1159
|
-
const collected = await
|
|
1178
|
+
const collected = await (async () => {
|
|
1179
|
+
try {
|
|
1180
|
+
return await prepared.completeInputsByCapacity(from, leastFee + leastExtraCapacity, filter);
|
|
1181
|
+
}
|
|
1182
|
+
catch (err) {
|
|
1183
|
+
if (leastExtraCapacity !== Zero) {
|
|
1184
|
+
throw new Error("Not enough capacity for the change cell");
|
|
1185
|
+
}
|
|
1186
|
+
throw err;
|
|
1187
|
+
}
|
|
1188
|
+
})();
|
|
1189
|
+
if (leastFee === Zero) {
|
|
1190
|
+
// The initial fee is calculated based on prepared transaction
|
|
1191
|
+
leastFee = prepared.estimateFee(feeRate);
|
|
1192
|
+
}
|
|
1160
1193
|
const extraCapacity = (await prepared.getInputsCapacity(from.client)) -
|
|
1161
1194
|
prepared.getOutputsCapacity();
|
|
1162
1195
|
// The extra capacity paid the fee without a change
|
package/dist/client/client.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,QAAQ,EAER,YAAY,EACZ,MAAM,EACN,UAAU,EAEV,eAAe,EAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAG/C,OAAO,EACL,uBAAuB,EAEvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,oBAAY,WAAW;IACrB,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;CAC5C;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,
|
|
1
|
+
{"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyNZ,CAAC"}
|
|
@@ -159,6 +159,34 @@ export const MAINNET_SCRIPTS = {
|
|
|
159
159
|
},
|
|
160
160
|
],
|
|
161
161
|
},
|
|
162
|
-
[KnownScript.SingleUseLock]:
|
|
163
|
-
|
|
162
|
+
[KnownScript.SingleUseLock]: {
|
|
163
|
+
codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
|
|
164
|
+
hashType: "data1",
|
|
165
|
+
cellDeps: [
|
|
166
|
+
{
|
|
167
|
+
cellDep: {
|
|
168
|
+
outPoint: {
|
|
169
|
+
txHash: "0x10d63a996157d32c01078058000052674ca58d15f921bec7f1dcdac2160eb66b",
|
|
170
|
+
index: 4,
|
|
171
|
+
},
|
|
172
|
+
depType: "code",
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
},
|
|
177
|
+
[KnownScript.OutputTypeProxyLock]: {
|
|
178
|
+
codeHash: "0x2df53b592db3ae3685b7787adcfef0332a611edb83ca3feca435809964c3aff2",
|
|
179
|
+
hashType: "data1",
|
|
180
|
+
cellDeps: [
|
|
181
|
+
{
|
|
182
|
+
cellDep: {
|
|
183
|
+
outPoint: {
|
|
184
|
+
txHash: "0x10d63a996157d32c01078058000052674ca58d15f921bec7f1dcdac2160eb66b",
|
|
185
|
+
index: 2,
|
|
186
|
+
},
|
|
187
|
+
depType: "code",
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
},
|
|
164
192
|
};
|
|
@@ -176,7 +176,7 @@ export const TESTNET_SCRIPTS = {
|
|
|
176
176
|
{
|
|
177
177
|
cellDep: {
|
|
178
178
|
outPoint: {
|
|
179
|
-
txHash: "
|
|
179
|
+
txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
|
|
180
180
|
index: 4,
|
|
181
181
|
},
|
|
182
182
|
depType: "code",
|
|
@@ -185,13 +185,13 @@ export const TESTNET_SCRIPTS = {
|
|
|
185
185
|
],
|
|
186
186
|
},
|
|
187
187
|
[KnownScript.OutputTypeProxyLock]: {
|
|
188
|
-
codeHash: "
|
|
188
|
+
codeHash: "0x2df53b592db3ae3685b7787adcfef0332a611edb83ca3feca435809964c3aff2",
|
|
189
189
|
hashType: "data1",
|
|
190
190
|
cellDeps: [
|
|
191
191
|
{
|
|
192
192
|
cellDep: {
|
|
193
193
|
outPoint: {
|
|
194
|
-
txHash: "
|
|
194
|
+
txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
|
|
195
195
|
index: 2,
|
|
196
196
|
},
|
|
197
197
|
depType: "code",
|
|
@@ -6,18 +6,18 @@ export declare function clientSearchKeyRangeFrom([a, b]: [NumLike, NumLike]): [
|
|
|
6
6
|
Num
|
|
7
7
|
];
|
|
8
8
|
export type ClientCollectableSearchKeyFilterLike = {
|
|
9
|
-
script?: ScriptLike;
|
|
10
|
-
scriptLenRange?: [NumLike, NumLike];
|
|
11
|
-
outputData?: HexLike;
|
|
12
|
-
outputDataSearchMode?: "prefix" | "exact" | "partial";
|
|
13
|
-
outputDataLenRange?: [NumLike, NumLike];
|
|
14
|
-
outputCapacityRange?: [NumLike, NumLike];
|
|
9
|
+
script?: ScriptLike | null;
|
|
10
|
+
scriptLenRange?: [NumLike, NumLike] | null;
|
|
11
|
+
outputData?: HexLike | null;
|
|
12
|
+
outputDataSearchMode?: "prefix" | "exact" | "partial" | null;
|
|
13
|
+
outputDataLenRange?: [NumLike, NumLike] | null;
|
|
14
|
+
outputCapacityRange?: [NumLike, NumLike] | null;
|
|
15
15
|
};
|
|
16
16
|
export type ClientCollectableSearchKeyLike = {
|
|
17
17
|
script: ScriptLike;
|
|
18
18
|
scriptType: "lock" | "type";
|
|
19
19
|
scriptSearchMode: "prefix" | "exact" | "partial";
|
|
20
|
-
filter?: ClientCollectableSearchKeyFilterLike;
|
|
21
|
-
withData?: boolean;
|
|
20
|
+
filter?: ClientCollectableSearchKeyFilterLike | null;
|
|
21
|
+
withData?: boolean | null;
|
|
22
22
|
};
|
|
23
23
|
//# sourceMappingURL=clientTypes.advanced.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientTypes.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE/C,wBAAgB,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG;IACpE,GAAG;IACH,GAAG;CACJ,CAEA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,CAAC,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"clientTypes.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE/C,wBAAgB,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG;IACpE,GAAG;IACH,GAAG;CACJ,CAEA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjD,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,oCAAoC,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B,CAAC"}
|
|
@@ -9,7 +9,7 @@ export type ClientTransactionResponse = {
|
|
|
9
9
|
status: TransactionStatus;
|
|
10
10
|
};
|
|
11
11
|
export type ClientIndexerSearchKeyFilterLike = ClientCollectableSearchKeyFilterLike & {
|
|
12
|
-
blockRange?: [NumLike, NumLike];
|
|
12
|
+
blockRange?: [NumLike, NumLike] | null;
|
|
13
13
|
};
|
|
14
14
|
export declare class ClientIndexerSearchKeyFilter {
|
|
15
15
|
script: Script | undefined;
|
|
@@ -23,7 +23,7 @@ export declare class ClientIndexerSearchKeyFilter {
|
|
|
23
23
|
static from(filterLike: ClientIndexerSearchKeyFilterLike): ClientIndexerSearchKeyFilter;
|
|
24
24
|
}
|
|
25
25
|
export type ClientIndexerSearchKeyLike = ClientCollectableSearchKeyLike & {
|
|
26
|
-
filter?: ClientIndexerSearchKeyFilterLike;
|
|
26
|
+
filter?: ClientIndexerSearchKeyFilterLike | null;
|
|
27
27
|
};
|
|
28
28
|
export declare class ClientIndexerSearchKey {
|
|
29
29
|
script: Script;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,GAAG,EAAW,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,oCAAoC,EACpC,8BAA8B,EAE/B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,yBAAyB,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,WAAW,GACX,SAAS,GACT,UAAU,CAAC;AACf,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAC1C,oCAAoC,GAAG;IACrC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,GAAG,EAAW,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,oCAAoC,EACpC,8BAA8B,EAE/B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,yBAAyB,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,WAAW,GACX,SAAS,GACT,UAAU,CAAC;AACf,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAC1C,oCAAoC,GAAG;IACrC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC,CAAC;AACJ,qBAAa,4BAA4B;IAE9B,MAAM,EAAE,MAAM,GAAG,SAAS;IAC1B,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IACtC,UAAU,EAAE,GAAG,GAAG,SAAS;IAC3B,oBAAoB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAC1C,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAC3C,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;gBANlC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EACtC,UAAU,EAAE,GAAG,GAAG,SAAS,EAC3B,oBAAoB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,EAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAC1C,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAC3C,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAG3C,MAAM,CAAC,IAAI,CACT,UAAU,EAAE,gCAAgC,GAC3C,4BAA4B;CAWhC;AAED,MAAM,MAAM,0BAA0B,GAAG,8BAA8B,GAAG;IACxE,MAAM,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,qBAAa,sBAAsB;IAExB,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM,GAAG,MAAM;IAC3B,gBAAgB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAChD,MAAM,EAAE,4BAA4B,GAAG,SAAS;IAChD,QAAQ,EAAE,OAAO,GAAG,SAAS;gBAJ7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,gBAAgB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,EAChD,MAAM,EAAE,4BAA4B,GAAG,SAAS,EAChD,QAAQ,EAAE,OAAO,GAAG,SAAS;IAGtC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB;CASzE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC"}
|
|
@@ -13,7 +13,7 @@ export class ClientIndexerSearchKeyFilter {
|
|
|
13
13
|
this.blockRange = blockRange;
|
|
14
14
|
}
|
|
15
15
|
static from(filterLike) {
|
|
16
|
-
return new ClientIndexerSearchKeyFilter(apply(Script.from, filterLike.script), apply(clientSearchKeyRangeFrom, filterLike.scriptLenRange), apply(hexFrom, filterLike.outputData), filterLike.outputDataSearchMode, apply(clientSearchKeyRangeFrom, filterLike.outputDataLenRange), apply(clientSearchKeyRangeFrom, filterLike.outputCapacityRange), apply(clientSearchKeyRangeFrom, filterLike.blockRange));
|
|
16
|
+
return new ClientIndexerSearchKeyFilter(apply(Script.from, filterLike.script), apply(clientSearchKeyRangeFrom, filterLike.scriptLenRange), apply(hexFrom, filterLike.outputData), filterLike.outputDataSearchMode ?? undefined, apply(clientSearchKeyRangeFrom, filterLike.outputDataLenRange), apply(clientSearchKeyRangeFrom, filterLike.outputCapacityRange), apply(clientSearchKeyRangeFrom, filterLike.blockRange));
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
export class ClientIndexerSearchKey {
|
|
@@ -25,6 +25,6 @@ export class ClientIndexerSearchKey {
|
|
|
25
25
|
this.withData = withData;
|
|
26
26
|
}
|
|
27
27
|
static from(keyLike) {
|
|
28
|
-
return new ClientIndexerSearchKey(Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, apply(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.withData);
|
|
28
|
+
return new ClientIndexerSearchKey(Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, apply(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.withData ?? undefined);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
|
package/dist/signer/ckb/index.js
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Bytes, BytesLike } from "../../bytes";
|
|
1
|
+
import { BytesLike } from "../../bytes";
|
|
3
2
|
import { Transaction, TransactionLike } from "../../ckb";
|
|
4
3
|
import { Client } from "../../client";
|
|
5
4
|
import { Hex, HexLike } from "../../hex";
|
|
6
|
-
import {
|
|
7
|
-
export declare class SignerCkbPrivateKey extends
|
|
8
|
-
|
|
9
|
-
get signType(): SignerSignType;
|
|
10
|
-
private readonly privateKey;
|
|
5
|
+
import { SignerCkbPublicKey } from "./signerCkbPublicKey";
|
|
6
|
+
export declare class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
7
|
+
readonly privateKey: Hex;
|
|
11
8
|
constructor(client: Client, privateKey: HexLike);
|
|
12
|
-
connect(): Promise<void>;
|
|
13
|
-
isConnected(): Promise<boolean>;
|
|
14
|
-
getInternalAddress(): Promise<string>;
|
|
15
|
-
getAddressObjs(): Promise<Address[]>;
|
|
16
9
|
signMessageRaw(message: string | BytesLike): Promise<Hex>;
|
|
17
|
-
getPublicKey(): Bytes;
|
|
18
|
-
prepareTransaction(txLike: TransactionLike): Promise<Transaction>;
|
|
19
10
|
signOnlyTransaction(txLike: TransactionLike): Promise<Transaction>;
|
|
20
11
|
}
|
|
21
12
|
//# sourceMappingURL=signerCkbPrivateKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signerCkbPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"signerCkbPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,SAAgB,UAAU,EAAE,GAAG,CAAC;gBAEpB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IAUzC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAoBzD,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAezE"}
|
|
@@ -1,54 +1,27 @@
|
|
|
1
1
|
import { secp256k1 } from "@noble/curves/secp256k1";
|
|
2
|
-
import { Address } from "../../address";
|
|
3
2
|
import { bytesConcat, bytesFrom } from "../../bytes";
|
|
4
3
|
import { Transaction, WitnessArgs } from "../../ckb";
|
|
5
|
-
import { KnownScript } from "../../client";
|
|
6
4
|
import { hashCkb } from "../../hasher";
|
|
7
5
|
import { hexFrom } from "../../hex";
|
|
8
6
|
import { numBeToBytes } from "../../num";
|
|
9
|
-
import {
|
|
10
|
-
export class SignerCkbPrivateKey extends
|
|
11
|
-
get type() {
|
|
12
|
-
return SignerType.CKB;
|
|
13
|
-
}
|
|
14
|
-
get signType() {
|
|
15
|
-
return SignerSignType.CkbSecp256k1;
|
|
16
|
-
}
|
|
7
|
+
import { SignerCkbPublicKey } from "./signerCkbPublicKey";
|
|
8
|
+
export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
17
9
|
constructor(client, privateKey) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (bytesFrom(this.privateKey).length !== 32) {
|
|
10
|
+
const pk = hexFrom(privateKey);
|
|
11
|
+
if (bytesFrom(pk).length !== 32) {
|
|
21
12
|
throw new Error("Private key must be 32 bytes!");
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
async isConnected() {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
async getInternalAddress() {
|
|
29
|
-
return this.getRecommendedAddress();
|
|
30
|
-
}
|
|
31
|
-
async getAddressObjs() {
|
|
32
|
-
const publicKey = this.getPublicKey();
|
|
33
|
-
return [
|
|
34
|
-
await Address.fromKnownScript(this.client, KnownScript.Secp256k1Blake160, bytesFrom(hashCkb(publicKey)).slice(0, 20)),
|
|
35
|
-
];
|
|
14
|
+
super(client, secp256k1.getPublicKey(bytesFrom(pk), true));
|
|
15
|
+
this.privateKey = pk;
|
|
36
16
|
}
|
|
37
17
|
async signMessageRaw(message) {
|
|
38
|
-
const
|
|
18
|
+
const msg = typeof message === "string" ? message : hexFrom(message);
|
|
19
|
+
const buffer = bytesFrom(`Nervos Message:${msg}`, "utf8");
|
|
20
|
+
const hash = hashCkb(buffer);
|
|
21
|
+
const signature = secp256k1.sign(bytesFrom(hash), bytesFrom(this.privateKey));
|
|
39
22
|
const { r, s, recovery } = signature;
|
|
40
23
|
return hexFrom(bytesConcat(numBeToBytes(r, 32), numBeToBytes(s, 32), numBeToBytes(recovery, 1)));
|
|
41
24
|
}
|
|
42
|
-
getPublicKey() {
|
|
43
|
-
return secp256k1.getPublicKey(bytesFrom(this.privateKey), true);
|
|
44
|
-
}
|
|
45
|
-
async prepareTransaction(txLike) {
|
|
46
|
-
const tx = Transaction.from(txLike);
|
|
47
|
-
const { script } = await this.getRecommendedAddressObj();
|
|
48
|
-
await tx.addCellDepsOfKnownScripts(this.client, KnownScript.Secp256k1Blake160);
|
|
49
|
-
await tx.prepareSighashAllWitness(script, 65, this.client);
|
|
50
|
-
return tx;
|
|
51
|
-
}
|
|
52
25
|
async signOnlyTransaction(txLike) {
|
|
53
26
|
const tx = Transaction.from(txLike);
|
|
54
27
|
const { script } = await this.getRecommendedAddressObj();
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Address } from "../../address";
|
|
2
|
+
import { Transaction, TransactionLike } from "../../ckb";
|
|
3
|
+
import { Client } from "../../client";
|
|
4
|
+
import { Hex, HexLike } from "../../hex";
|
|
5
|
+
import { Signer, SignerSignType, SignerType } from "../signer";
|
|
6
|
+
export declare class SignerCkbPublicKey extends Signer {
|
|
7
|
+
get type(): SignerType;
|
|
8
|
+
get signType(): SignerSignType;
|
|
9
|
+
readonly publicKey: Hex;
|
|
10
|
+
constructor(client: Client, publicKey: HexLike);
|
|
11
|
+
connect(): Promise<void>;
|
|
12
|
+
isConnected(): Promise<boolean>;
|
|
13
|
+
getInternalAddress(): Promise<string>;
|
|
14
|
+
getIdentity(): Promise<string>;
|
|
15
|
+
getAddressObjs(): Promise<Address[]>;
|
|
16
|
+
prepareTransaction(txLike: TransactionLike): Promise<Transaction>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=signerCkbPublicKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signerCkbPublicKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,MAAM,EAAe,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/D,qBAAa,kBAAmB,SAAQ,MAAM;IAC5C,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,SAAgB,SAAS,EAAE,GAAG,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IASxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAExB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAUpC,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAUxE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Address } from "../../address";
|
|
2
|
+
import { bytesFrom } from "../../bytes";
|
|
3
|
+
import { Transaction } from "../../ckb";
|
|
4
|
+
import { KnownScript } from "../../client";
|
|
5
|
+
import { hashCkb } from "../../hasher";
|
|
6
|
+
import { hexFrom } from "../../hex";
|
|
7
|
+
import { Signer, SignerSignType, SignerType } from "../signer";
|
|
8
|
+
export class SignerCkbPublicKey extends Signer {
|
|
9
|
+
get type() {
|
|
10
|
+
return SignerType.CKB;
|
|
11
|
+
}
|
|
12
|
+
get signType() {
|
|
13
|
+
return SignerSignType.CkbSecp256k1;
|
|
14
|
+
}
|
|
15
|
+
constructor(client, publicKey) {
|
|
16
|
+
super(client);
|
|
17
|
+
this.publicKey = hexFrom(publicKey);
|
|
18
|
+
if (bytesFrom(this.publicKey).length !== 33) {
|
|
19
|
+
throw new Error("Public key must be 33 bytes!");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async connect() { }
|
|
23
|
+
async isConnected() {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
async getInternalAddress() {
|
|
27
|
+
return this.getRecommendedAddress();
|
|
28
|
+
}
|
|
29
|
+
async getIdentity() {
|
|
30
|
+
return this.publicKey;
|
|
31
|
+
}
|
|
32
|
+
async getAddressObjs() {
|
|
33
|
+
return [
|
|
34
|
+
await Address.fromKnownScript(this.client, KnownScript.Secp256k1Blake160, bytesFrom(hashCkb(this.publicKey)).slice(0, 20)),
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
async prepareTransaction(txLike) {
|
|
38
|
+
const tx = Transaction.from(txLike);
|
|
39
|
+
const { script } = await this.getRecommendedAddressObj();
|
|
40
|
+
await tx.addCellDepsOfKnownScripts(this.client, KnownScript.Secp256k1Blake160);
|
|
41
|
+
await tx.prepareSighashAllWitness(script, 65, this.client);
|
|
42
|
+
return tx;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BytesLike } from "../../bytes";
|
|
2
|
+
import { Hex } from "../../hex";
|
|
3
|
+
export declare function messageHashCkbSecp256k1(message: string | BytesLike): Hex;
|
|
4
|
+
export declare function verifyMessageCkbSecp256k1(message: string | BytesLike, signature: string, publicKey: string): boolean;
|
|
5
|
+
//# sourceMappingURL=verifyCkbSecp256k1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyCkbSecp256k1.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/verifyCkbSecp256k1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAW,MAAM,WAAW,CAAC;AAGzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAIxE;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAUT"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { secp256k1 } from "@noble/curves/secp256k1";
|
|
2
|
+
import { bytesFrom } from "../../bytes";
|
|
3
|
+
import { hashCkb } from "../../hasher";
|
|
4
|
+
import { hexFrom } from "../../hex";
|
|
5
|
+
import { numFrom } from "../../num";
|
|
6
|
+
export function messageHashCkbSecp256k1(message) {
|
|
7
|
+
const msg = typeof message === "string" ? message : hexFrom(message);
|
|
8
|
+
const buffer = bytesFrom(`Nervos Message:${msg}`, "utf8");
|
|
9
|
+
return hashCkb(buffer);
|
|
10
|
+
}
|
|
11
|
+
export function verifyMessageCkbSecp256k1(message, signature, publicKey) {
|
|
12
|
+
const signatureBytes = bytesFrom(signature);
|
|
13
|
+
return secp256k1.verify(new secp256k1.Signature(numFrom(signatureBytes.slice(0, 32)), numFrom(signatureBytes.slice(32, 64))).addRecoveryBit(Number(numFrom(signatureBytes.slice(64, 65)))), bytesFrom(messageHashCkbSecp256k1(message)), bytesFrom(publicKey));
|
|
14
|
+
}
|