@ckb-ccc/core 0.0.4-alpha.8 → 0.0.4
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/signer/btc/signerBtcPublicKeyReadonly.d.ts +12 -0
- package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
- package/dist/signer/btc/signerBtcPublicKeyReadonly.js +16 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +12 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
- package/dist/signer/ckb/signerCkbScriptReadonly.js +16 -0
- package/dist/signer/evm/signerEvm.d.ts +5 -1
- package/dist/signer/evm/signerEvm.d.ts.map +1 -1
- package/dist/signer/evm/signerEvm.js +20 -6
- package/dist/signer/evm/signerEvmAddressReadonly.d.ts +13 -1
- package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
- package/dist/signer/evm/signerEvmAddressReadonly.js +16 -0
- package/dist/signer/helpers.d.ts.map +1 -1
- package/dist/signer/helpers.js +3 -2
- package/dist/signer/signer.d.ts +16 -4
- package/dist/signer/signer.d.ts.map +1 -1
- package/dist/signer/signer.js +5 -2
- package/dist.commonjs/address/address.advanced.d.ts +65 -0
- package/dist.commonjs/address/address.advanced.d.ts.map +1 -0
- package/dist.commonjs/address/address.advanced.js +149 -0
- package/dist.commonjs/address/advanced.d.ts +2 -0
- package/dist.commonjs/address/advanced.d.ts.map +1 -0
- package/dist.commonjs/address/advanced.js +17 -0
- package/dist.commonjs/address/index.d.ts +54 -0
- package/dist.commonjs/address/index.d.ts.map +1 -0
- package/dist.commonjs/address/index.js +84 -0
- package/dist.commonjs/advanced.d.ts +3 -0
- package/dist.commonjs/advanced.d.ts.map +1 -0
- package/dist.commonjs/advanced.js +31 -0
- package/dist.commonjs/advancedBarrel.d.ts +5 -0
- package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
- package/dist.commonjs/advancedBarrel.js +20 -0
- package/dist.commonjs/barrel.d.ts +11 -0
- package/dist.commonjs/barrel.d.ts.map +1 -0
- package/dist.commonjs/barrel.js +26 -0
- package/dist.commonjs/bytes/advanced.d.ts +5 -0
- package/dist.commonjs/bytes/advanced.d.ts.map +1 -0
- package/dist.commonjs/bytes/advanced.js +2 -0
- package/dist.commonjs/bytes/index.d.ts +64 -0
- package/dist.commonjs/bytes/index.d.ts.map +1 -0
- package/dist.commonjs/bytes/index.js +97 -0
- package/dist.commonjs/ckb/advanced.d.ts +4 -0
- package/dist.commonjs/ckb/advanced.d.ts.map +1 -0
- package/dist.commonjs/ckb/advanced.js +32 -0
- package/dist.commonjs/ckb/index.d.ts +3 -0
- package/dist.commonjs/ckb/index.d.ts.map +1 -0
- package/dist.commonjs/ckb/index.js +18 -0
- package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +355 -0
- package/dist.commonjs/ckb/molecule.advanced/generated.d.ts.map +1 -0
- package/dist.commonjs/ckb/molecule.advanced/generated.js +1536 -0
- package/dist.commonjs/ckb/molecule.advanced/index.d.ts +6 -0
- package/dist.commonjs/ckb/molecule.advanced/index.d.ts.map +1 -0
- package/dist.commonjs/ckb/molecule.advanced/index.js +25 -0
- package/dist.commonjs/ckb/script.advanced.d.ts +5 -0
- package/dist.commonjs/ckb/script.advanced.d.ts.map +1 -0
- package/dist.commonjs/ckb/script.advanced.js +16 -0
- package/dist.commonjs/ckb/script.d.ts +126 -0
- package/dist.commonjs/ckb/script.d.ts.map +1 -0
- package/dist.commonjs/ckb/script.js +188 -0
- package/dist.commonjs/ckb/transaction.advanced.d.ts +5 -0
- package/dist.commonjs/ckb/transaction.advanced.d.ts.map +1 -0
- package/dist.commonjs/ckb/transaction.advanced.js +12 -0
- package/dist.commonjs/ckb/transaction.d.ts +533 -0
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -0
- package/dist.commonjs/ckb/transaction.js +665 -0
- package/dist.commonjs/client/advanced.d.ts +4 -0
- package/dist.commonjs/client/advanced.d.ts.map +1 -0
- package/dist.commonjs/client/advanced.js +19 -0
- package/dist.commonjs/client/client.d.ts +19 -0
- package/dist.commonjs/client/client.d.ts.map +1 -0
- package/dist.commonjs/client/client.js +30 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +4 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +26 -0
- package/dist.commonjs/client/clientPublicMainnet.d.ts +9 -0
- package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicMainnet.js +17 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +4 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +26 -0
- package/dist.commonjs/client/clientPublicTestnet.d.ts +9 -0
- package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicTestnet.js +17 -0
- package/dist.commonjs/client/clientTypes.d.ts +8 -0
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -0
- package/dist.commonjs/client/clientTypes.js +2 -0
- package/dist.commonjs/client/index.d.ts +6 -0
- package/dist.commonjs/client/index.d.ts.map +1 -0
- package/dist.commonjs/client/index.js +21 -0
- package/dist.commonjs/client/jsonRpc/advanced.d.ts +3 -0
- package/dist.commonjs/client/jsonRpc/advanced.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/advanced.js +18 -0
- package/dist.commonjs/client/jsonRpc/index.d.ts +68 -0
- package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/index.js +128 -0
- package/dist.commonjs/client/jsonRpc/transformers.d.ts +28 -0
- package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/transformers.js +126 -0
- package/dist.commonjs/client/jsonRpc/types.d.ts +41 -0
- package/dist.commonjs/client/jsonRpc/types.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/types.js +2 -0
- package/dist.commonjs/fixedPoint/index.d.ts +49 -0
- package/dist.commonjs/fixedPoint/index.d.ts.map +1 -0
- package/dist.commonjs/fixedPoint/index.js +65 -0
- package/dist.commonjs/hasher/advanced.d.ts +2 -0
- package/dist.commonjs/hasher/advanced.d.ts.map +1 -0
- package/dist.commonjs/hasher/advanced.js +4 -0
- package/dist.commonjs/hasher/index.d.ts +52 -0
- package/dist.commonjs/hasher/index.d.ts.map +1 -0
- package/dist.commonjs/hasher/index.js +68 -0
- package/dist.commonjs/hex/index.d.ts +24 -0
- package/dist.commonjs/hex/index.d.ts.map +1 -0
- package/dist.commonjs/hex/index.js +20 -0
- package/dist.commonjs/index.d.ts +3 -0
- package/dist.commonjs/index.d.ts.map +1 -0
- package/dist.commonjs/index.js +31 -0
- package/dist.commonjs/num/index.d.ts +112 -0
- package/dist.commonjs/num/index.d.ts.map +1 -0
- package/dist.commonjs/num/index.js +139 -0
- package/dist.commonjs/signer/btc/index.d.ts +3 -0
- package/dist.commonjs/signer/btc/index.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/index.js +18 -0
- package/dist.commonjs/signer/btc/signerBtc.d.ts +50 -0
- package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/signerBtc.js +71 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +60 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +72 -0
- package/dist.commonjs/signer/ckb/index.d.ts +2 -0
- package/dist.commonjs/signer/ckb/index.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/index.js +17 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +59 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +71 -0
- package/dist.commonjs/signer/evm/index.d.ts +3 -0
- package/dist.commonjs/signer/evm/index.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/index.js +18 -0
- package/dist.commonjs/signer/evm/signerEvm.d.ts +46 -0
- package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/signerEvm.js +83 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +52 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +62 -0
- package/dist.commonjs/signer/helpers.d.ts +40 -0
- package/dist.commonjs/signer/helpers.d.ts.map +1 -0
- package/dist.commonjs/signer/helpers.js +96 -0
- package/dist.commonjs/signer/index.d.ts +6 -0
- package/dist.commonjs/signer/index.d.ts.map +1 -0
- package/dist.commonjs/signer/index.js +21 -0
- package/dist.commonjs/signer/signer.d.ts +125 -0
- package/dist.commonjs/signer/signer.d.ts.map +1 -0
- package/dist.commonjs/signer/signer.js +109 -0
- package/dist.commonjs/tsconfig.commonjs.tsbuildinfo +1 -0
- package/dist.commonjs/utils/index.d.ts +7 -0
- package/dist.commonjs/utils/index.d.ts.map +1 -0
- package/dist.commonjs/utils/index.js +10 -0
- package/package.json +20 -7
- package/src/signer/btc/signerBtcPublicKeyReadonly.ts +18 -0
- package/src/signer/ckb/signerCkbScriptReadonly.ts +18 -0
- package/src/signer/evm/signerEvm.ts +55 -12
- package/src/signer/evm/signerEvmAddressReadonly.ts +19 -1
- package/src/signer/helpers.ts +5 -3
- package/src/signer/signer.ts +20 -3
- package/tsconfig.base.json +21 -0
- package/tsconfig.commonjs.json +8 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/core",
|
|
3
|
-
"version": "0.0.4
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Common Chains Connector Core",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,14 +11,27 @@
|
|
|
11
11
|
"url": "git://github.com/ckb-ecofund/ccc.git"
|
|
12
12
|
},
|
|
13
13
|
"main": "dist/index.js",
|
|
14
|
+
"module": "dist.commonjs/index.js",
|
|
14
15
|
"exports": {
|
|
15
|
-
".":
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"default": "./dist.commonjs/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./barrel": {
|
|
21
|
+
"import": "./dist/barrel.js",
|
|
22
|
+
"default": "./dist.commonjs/barrel.js"
|
|
23
|
+
},
|
|
24
|
+
"./advancedBarrel": {
|
|
25
|
+
"import": "./dist/advancedBarrel.js",
|
|
26
|
+
"default": "./dist.commonjs/advancedBarrel.js"
|
|
27
|
+
},
|
|
28
|
+
"./advanced": {
|
|
29
|
+
"import": "./dist/advanced.js",
|
|
30
|
+
"default": "./dist.commonjs/advanced.js"
|
|
31
|
+
}
|
|
19
32
|
},
|
|
20
33
|
"scripts": {
|
|
21
|
-
"build": "rimraf ./dist && tsc",
|
|
34
|
+
"build": "rimraf ./dist && rimraf ./dist.commonjs && tsc && tsc --project tsconfig.commonjs.json",
|
|
22
35
|
"lint": "eslint",
|
|
23
36
|
"format": "prettier --write . && eslint --fix"
|
|
24
37
|
},
|
|
@@ -47,5 +60,5 @@
|
|
|
47
60
|
"buffer": "^6.0.3",
|
|
48
61
|
"cross-fetch": "^4.0.0"
|
|
49
62
|
},
|
|
50
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "76485b6b76ce3c97d5acebd42decbafd546aa433"
|
|
51
64
|
}
|
|
@@ -26,6 +26,15 @@ export class SignerBtcPublicKeyReadonly extends SignerBtc {
|
|
|
26
26
|
this.publicKey = hexFrom(publicKey);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Construct a new signer with the client replaced.
|
|
31
|
+
*
|
|
32
|
+
* @returns A promise that resolves the new Signer.
|
|
33
|
+
*/
|
|
34
|
+
async replaceClient(client: Client): Promise<SignerBtcPublicKeyReadonly> {
|
|
35
|
+
return new SignerBtcPublicKeyReadonly(client, this.account, this.publicKey);
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
/**
|
|
30
39
|
* Connects to the client. This implementation does nothing as the class is read-only.
|
|
31
40
|
*
|
|
@@ -33,6 +42,15 @@ export class SignerBtcPublicKeyReadonly extends SignerBtc {
|
|
|
33
42
|
*/
|
|
34
43
|
async connect(): Promise<void> {}
|
|
35
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Check if the signer is connected.
|
|
47
|
+
*
|
|
48
|
+
* @returns A promise that resolves the connection status.
|
|
49
|
+
*/
|
|
50
|
+
async isConnected(): Promise<boolean> {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
|
|
36
54
|
/**
|
|
37
55
|
* Gets the Bitcoin account associated with the signer.
|
|
38
56
|
*
|
|
@@ -22,6 +22,15 @@ export class SignerCkbScriptReadonly extends Signer {
|
|
|
22
22
|
this.script = Script.from(script);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Construct a new signer with the client replaced.
|
|
27
|
+
*
|
|
28
|
+
* @returns A promise that resolves the new Signer.
|
|
29
|
+
*/
|
|
30
|
+
async replaceClient(client: Client): Promise<SignerCkbScriptReadonly> {
|
|
31
|
+
return new SignerCkbScriptReadonly(client, this.script);
|
|
32
|
+
}
|
|
33
|
+
|
|
25
34
|
/**
|
|
26
35
|
* Connects to the client. This implementation does nothing as the class is read-only.
|
|
27
36
|
*
|
|
@@ -29,6 +38,15 @@ export class SignerCkbScriptReadonly extends Signer {
|
|
|
29
38
|
*/
|
|
30
39
|
async connect(): Promise<void> {}
|
|
31
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Check if the signer is connected.
|
|
43
|
+
*
|
|
44
|
+
* @returns A promise that resolves the connection status.
|
|
45
|
+
*/
|
|
46
|
+
async isConnected(): Promise<boolean> {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
|
|
32
50
|
/**
|
|
33
51
|
* Gets the internal address for the script.
|
|
34
52
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Address } from "../../address";
|
|
2
|
-
import { bytesConcat, bytesFrom } from "../../bytes";
|
|
3
|
-
import { Transaction, TransactionLike, WitnessArgs } from "../../ckb";
|
|
2
|
+
import { BytesLike, bytesConcat, bytesFrom } from "../../bytes";
|
|
3
|
+
import { Script, Transaction, TransactionLike, WitnessArgs } from "../../ckb";
|
|
4
4
|
import { KnownScript } from "../../client";
|
|
5
5
|
import { hexFrom } from "../../hex";
|
|
6
6
|
import { numToBytes } from "../../num";
|
|
@@ -36,14 +36,27 @@ export abstract class SignerEvm extends Signer {
|
|
|
36
36
|
async getAddressObjs(): Promise<Address[]> {
|
|
37
37
|
const account = await this.getEvmAccount();
|
|
38
38
|
return [
|
|
39
|
-
await
|
|
40
|
-
|
|
41
|
-
hexFrom([0x12, ...bytesFrom(account), 0x00]),
|
|
42
|
-
this.client,
|
|
43
|
-
),
|
|
39
|
+
await this._getOmniLockEvmAddressObj(account),
|
|
40
|
+
await this._getOmniLockOldEvmAddressObj(account),
|
|
44
41
|
];
|
|
45
42
|
}
|
|
46
43
|
|
|
44
|
+
async _getOmniLockEvmAddressObj(account: string): Promise<Address> {
|
|
45
|
+
return Address.fromKnownScript(
|
|
46
|
+
KnownScript.OmniLock,
|
|
47
|
+
hexFrom([0x12, ...bytesFrom(account), 0x00]),
|
|
48
|
+
this.client,
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async _getOmniLockOldEvmAddressObj(account: string): Promise<Address> {
|
|
53
|
+
return Address.fromKnownScript(
|
|
54
|
+
KnownScript.OmniLock,
|
|
55
|
+
hexFrom([0x1, ...bytesFrom(account), 0x00]),
|
|
56
|
+
this.client,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
47
60
|
/**
|
|
48
61
|
* prepare a transaction before signing. This method is not implemented and should be overridden by subclasses.
|
|
49
62
|
*
|
|
@@ -51,8 +64,15 @@ export abstract class SignerEvm extends Signer {
|
|
|
51
64
|
* @returns A promise that resolves to the prepared Transaction object.
|
|
52
65
|
*/
|
|
53
66
|
async prepareTransaction(txLike: TransactionLike): Promise<Transaction> {
|
|
54
|
-
const
|
|
55
|
-
|
|
67
|
+
const addresses = await this.getAddressObjs();
|
|
68
|
+
|
|
69
|
+
return addresses.reduce(
|
|
70
|
+
(txPromise, { script }) =>
|
|
71
|
+
txPromise.then((tx) =>
|
|
72
|
+
prepareSighashAllWitness(tx, script, 85, this.client),
|
|
73
|
+
),
|
|
74
|
+
Promise.resolve(Transaction.from(txLike)),
|
|
75
|
+
);
|
|
56
76
|
}
|
|
57
77
|
|
|
58
78
|
/**
|
|
@@ -62,16 +82,39 @@ export abstract class SignerEvm extends Signer {
|
|
|
62
82
|
* @returns A promise that resolves to a signed Transaction object.
|
|
63
83
|
*/
|
|
64
84
|
async signOnlyTransaction(txLike: TransactionLike): Promise<Transaction> {
|
|
65
|
-
|
|
85
|
+
let tx = Transaction.from(txLike);
|
|
86
|
+
|
|
87
|
+
const account = await this.getEvmAccount();
|
|
88
|
+
const { script: evmScript } = await this._getOmniLockEvmAddressObj(account);
|
|
89
|
+
const { script: oldEvmScript } =
|
|
90
|
+
await this._getOmniLockOldEvmAddressObj(account);
|
|
91
|
+
|
|
92
|
+
tx = await this._signOmniLockScriptForTransaction(
|
|
93
|
+
tx,
|
|
94
|
+
evmScript,
|
|
95
|
+
(hash) => `CKB transaction: ${hash}`,
|
|
96
|
+
);
|
|
97
|
+
tx = await this._signOmniLockScriptForTransaction(
|
|
98
|
+
tx,
|
|
99
|
+
oldEvmScript,
|
|
100
|
+
(hash) => bytesFrom(hash),
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
return tx;
|
|
104
|
+
}
|
|
66
105
|
|
|
67
|
-
|
|
106
|
+
async _signOmniLockScriptForTransaction(
|
|
107
|
+
tx: Transaction,
|
|
108
|
+
script: Script,
|
|
109
|
+
messageTransformer: (hash: string) => BytesLike,
|
|
110
|
+
): Promise<Transaction> {
|
|
68
111
|
const info = await getSignHashInfo(tx, script, this.client);
|
|
69
112
|
if (!info) {
|
|
70
113
|
return tx;
|
|
71
114
|
}
|
|
72
115
|
|
|
73
116
|
const signature = bytesFrom(
|
|
74
|
-
await this.signMessage(
|
|
117
|
+
await this.signMessage(messageTransformer(info.message)),
|
|
75
118
|
);
|
|
76
119
|
if (signature[signature.length - 1] >= 27) {
|
|
77
120
|
signature[signature.length - 1] -= 27;
|
|
@@ -6,7 +6,7 @@ import { SignerEvm } from "./signerEvm";
|
|
|
6
6
|
* A class extending SignerEvm that provides read-only access to an EVM address.
|
|
7
7
|
* This class does not support signing operations.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export class SignerEvmAddressReadonly extends SignerEvm {
|
|
10
10
|
private readonly address: Hex;
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -21,6 +21,15 @@ export abstract class SignerEvmAddressReadonly extends SignerEvm {
|
|
|
21
21
|
this.address = hexFrom(address);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Construct a new signer with the client replaced.
|
|
26
|
+
*
|
|
27
|
+
* @returns A promise that resolves the new Signer.
|
|
28
|
+
*/
|
|
29
|
+
async replaceClient(client: Client): Promise<SignerEvmAddressReadonly> {
|
|
30
|
+
return new SignerEvmAddressReadonly(client, this.address);
|
|
31
|
+
}
|
|
32
|
+
|
|
24
33
|
/**
|
|
25
34
|
* Connects to the client. This implementation does nothing as the class is read-only.
|
|
26
35
|
*
|
|
@@ -34,6 +43,15 @@ export abstract class SignerEvmAddressReadonly extends SignerEvm {
|
|
|
34
43
|
|
|
35
44
|
async connect(): Promise<void> {}
|
|
36
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Check if the signer is connected.
|
|
48
|
+
*
|
|
49
|
+
* @returns A promise that resolves the connection status.
|
|
50
|
+
*/
|
|
51
|
+
async isConnected(): Promise<boolean> {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
|
|
37
55
|
/**
|
|
38
56
|
* Gets the EVM account associated with the signer.
|
|
39
57
|
*
|
package/src/signer/helpers.ts
CHANGED
|
@@ -112,9 +112,11 @@ export async function prepareSighashAllWitness(
|
|
|
112
112
|
return tx;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
const rawWitness = tx.witnesses[position];
|
|
116
|
+
const witness =
|
|
117
|
+
(rawWitness ?? "0x") !== "0x"
|
|
118
|
+
? WitnessArgs.fromBytes(rawWitness)
|
|
119
|
+
: WitnessArgs.from({});
|
|
118
120
|
witness.lock = hexFrom(Array.from(new Array(lockLen), () => 0));
|
|
119
121
|
tx.witnesses[position] = hexFrom(witness.toBytes());
|
|
120
122
|
|
package/src/signer/signer.ts
CHANGED
|
@@ -9,15 +9,33 @@ import { Hex } from "../hex";
|
|
|
9
9
|
* This class provides methods to connect, get addresses, and sign transactions.
|
|
10
10
|
*/
|
|
11
11
|
export abstract class Signer {
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(protected client_: Client) {}
|
|
13
|
+
|
|
14
|
+
get client(): Client {
|
|
15
|
+
return this.client_;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Construct a new signer with the client replaced.
|
|
20
|
+
*
|
|
21
|
+
* @returns A promise that resolves the new Signer.
|
|
22
|
+
*/
|
|
23
|
+
abstract replaceClient(client: Client): Promise<Signer>;
|
|
13
24
|
|
|
14
25
|
/**
|
|
15
|
-
* Connects to the
|
|
26
|
+
* Connects to the signer.
|
|
16
27
|
*
|
|
17
28
|
* @returns A promise that resolves when the connection is complete.
|
|
18
29
|
*/
|
|
19
30
|
abstract connect(): Promise<void>;
|
|
20
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Check if the signer is connected.
|
|
34
|
+
*
|
|
35
|
+
* @returns A promise that resolves the connection status.
|
|
36
|
+
*/
|
|
37
|
+
abstract isConnected(): Promise<boolean>;
|
|
38
|
+
|
|
21
39
|
/**
|
|
22
40
|
* Gets the internal address associated with the signer.
|
|
23
41
|
*
|
|
@@ -142,5 +160,4 @@ export class SignerInfo {
|
|
|
142
160
|
export type Wallet = {
|
|
143
161
|
name: string;
|
|
144
162
|
icon: string;
|
|
145
|
-
signers: SignerInfo[];
|
|
146
163
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2020",
|
|
4
|
+
"incremental": true,
|
|
5
|
+
"allowJs": true,
|
|
6
|
+
"importHelpers": false,
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"declarationMap": true,
|
|
9
|
+
"experimentalDecorators": true,
|
|
10
|
+
"useDefineForClassFields": false,
|
|
11
|
+
"esModuleInterop": true,
|
|
12
|
+
"strict": true,
|
|
13
|
+
"noImplicitAny": true,
|
|
14
|
+
"strictBindCallApply": true,
|
|
15
|
+
"strictNullChecks": true,
|
|
16
|
+
"alwaysStrict": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
"forceConsistentCasingInFileNames": true
|
|
19
|
+
},
|
|
20
|
+
"include": ["src/**/*"]
|
|
21
|
+
}
|