@ckb-ccc/eip6963 0.0.2-alpha.3 → 0.0.2
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/advanced.d.ts +2 -40
- package/dist/advanced.d.ts.map +1 -1
- package/dist/advanced.js +2 -2
- package/dist/barrel.d.ts +3 -0
- package/dist/barrel.d.ts.map +1 -0
- package/dist/barrel.js +2 -0
- package/dist/eip1193.advanced.d.ts +28 -0
- package/dist/eip1193.advanced.d.ts.map +1 -0
- package/dist/eip1193.advanced.js +1 -0
- package/dist/eip6963.advanced.d.ts +15 -0
- package/dist/eip6963.advanced.d.ts.map +1 -0
- package/dist/eip6963.advanced.js +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -18
- package/dist/signer.d.ts +2 -2
- package/dist/signer.d.ts.map +1 -1
- package/dist/signer.js +9 -13
- package/dist/signersFactory.d.ts +8 -0
- package/dist/signersFactory.d.ts.map +1 -0
- package/dist/signersFactory.js +15 -0
- package/package.json +3 -3
- package/src/advanced.ts +2 -46
- package/src/barrel.ts +2 -0
- package/src/eip1193.advanced.ts +27 -0
- package/src/eip6963.advanced.ts +17 -0
- package/src/index.ts +1 -2
- package/src/signer.ts +2 -2
- package/src/signersFactory.ts +22 -0
- package/dist/signersManager.d.ts +0 -10
- package/dist/signersManager.d.ts.map +0 -1
- package/dist/signersManager.js +0 -27
- package/src/signersManager.ts +0 -36
package/dist/advanced.d.ts
CHANGED
|
@@ -1,41 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
detail: EIP6963ProviderDetail;
|
|
4
|
-
}
|
|
5
|
-
export interface EIP6963ProviderDetail {
|
|
6
|
-
info: EIP6963ProviderInfo;
|
|
7
|
-
provider: EIP1193Provider;
|
|
8
|
-
}
|
|
9
|
-
export interface EIP6963ProviderInfo {
|
|
10
|
-
rdns: string;
|
|
11
|
-
uuid: string;
|
|
12
|
-
name: string;
|
|
13
|
-
icon: string;
|
|
14
|
-
}
|
|
15
|
-
export interface EIP1193Provider {
|
|
16
|
-
request: EIP1193RequestMethod;
|
|
17
|
-
on: EIP1193OnMethod;
|
|
18
|
-
removeListener(eventName: string, listener: (...args: unknown[]) => unknown): EIP1193Provider;
|
|
19
|
-
}
|
|
20
|
-
export interface EIP1193RequestMethod {
|
|
21
|
-
(request: {
|
|
22
|
-
method: "personal_sign";
|
|
23
|
-
params: [string, Hex];
|
|
24
|
-
}): Promise<Hex>;
|
|
25
|
-
(request: {
|
|
26
|
-
method: "eth_requestAccounts";
|
|
27
|
-
params?: undefined;
|
|
28
|
-
}): Promise<Hex[]>;
|
|
29
|
-
(request: {
|
|
30
|
-
method: "eth_accounts";
|
|
31
|
-
params?: undefined;
|
|
32
|
-
}): Promise<Hex[]>;
|
|
33
|
-
(request: {
|
|
34
|
-
method: string;
|
|
35
|
-
params?: Array<unknown> | Record<string, unknown>;
|
|
36
|
-
}): Promise<unknown>;
|
|
37
|
-
}
|
|
38
|
-
export interface EIP1193OnMethod {
|
|
39
|
-
(eventName: string, listener: (...args: unknown[]) => unknown): EIP1193Provider;
|
|
40
|
-
}
|
|
1
|
+
export * as Eip1193 from "./eip1193.advanced";
|
|
2
|
+
export * as Eip6963 from "./eip6963.advanced";
|
|
41
3
|
//# sourceMappingURL=advanced.d.ts.map
|
package/dist/advanced.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../src/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../src/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC"}
|
package/dist/advanced.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export * as Eip1193 from "./eip1193.advanced";
|
|
2
|
+
export * as Eip6963 from "./eip6963.advanced";
|
package/dist/barrel.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
|
package/dist/barrel.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Hex } from "@ckb-ccc/core";
|
|
2
|
+
export interface Provider {
|
|
3
|
+
request: RequestMethod;
|
|
4
|
+
on: OnMethod;
|
|
5
|
+
removeListener(eventName: string, listener: (...args: unknown[]) => unknown): Provider;
|
|
6
|
+
}
|
|
7
|
+
export interface RequestMethod {
|
|
8
|
+
(request: {
|
|
9
|
+
method: "personal_sign";
|
|
10
|
+
params: [string, Hex];
|
|
11
|
+
}): Promise<Hex>;
|
|
12
|
+
(request: {
|
|
13
|
+
method: "eth_requestAccounts";
|
|
14
|
+
params?: undefined;
|
|
15
|
+
}): Promise<Hex[]>;
|
|
16
|
+
(request: {
|
|
17
|
+
method: "eth_accounts";
|
|
18
|
+
params?: undefined;
|
|
19
|
+
}): Promise<Hex[]>;
|
|
20
|
+
(request: {
|
|
21
|
+
method: string;
|
|
22
|
+
params?: Array<unknown> | Record<string, unknown>;
|
|
23
|
+
}): Promise<unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface OnMethod {
|
|
26
|
+
(eventName: string, listener: (...args: unknown[]) => unknown): Provider;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=eip1193.advanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip1193.advanced.d.ts","sourceRoot":"","sources":["../src/eip1193.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,QAAQ,CAAC;IACb,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GACxC,QAAQ,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5E,CAAC,OAAO,EAAE;QACR,MAAM,EAAE,qBAAqB,CAAC;QAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;KACpB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC,OAAO,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnD,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,QAAQ,CAAC;CAC1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Provider as EIP1193Provider } from "./eip1193.advanced";
|
|
2
|
+
export interface AnnounceProviderEvent {
|
|
3
|
+
detail: ProviderDetail;
|
|
4
|
+
}
|
|
5
|
+
export interface ProviderDetail {
|
|
6
|
+
info: ProviderInfo;
|
|
7
|
+
provider: EIP1193Provider;
|
|
8
|
+
}
|
|
9
|
+
export interface ProviderInfo {
|
|
10
|
+
rdns: string;
|
|
11
|
+
uuid: string;
|
|
12
|
+
name: string;
|
|
13
|
+
icon: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=eip6963.advanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip6963.advanced.d.ts","sourceRoot":"","sources":["../src/eip6963.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./signer"), exports);
|
|
18
|
-
__exportStar(require("./signersManager"), exports);
|
|
1
|
+
export * as Eip6963 from "./barrel";
|
package/dist/signer.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/core";
|
|
2
|
-
import { EIP6963ProviderDetail } from "./advanced";
|
|
3
|
-
export declare class
|
|
2
|
+
import { ProviderDetail as EIP6963ProviderDetail } from "./eip6963.advanced";
|
|
3
|
+
export declare class Signer extends ccc.Signer {
|
|
4
4
|
readonly detail: EIP6963ProviderDetail;
|
|
5
5
|
constructor(client: ccc.Client, detail: EIP6963ProviderDetail);
|
|
6
6
|
getEVMAccounts(): Promise<`0x${string}`[]>;
|
package/dist/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,qBAAa,MAAO,SAAQ,GAAG,CAAC,MAAM;aAGlB,MAAM,EAAE,qBAAqB;gBAD7C,MAAM,EAAE,GAAG,CAAC,MAAM,EACF,MAAM,EAAE,qBAAqB;IAKzC,cAAc;IAId,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAaxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAW9D,mBAAmB,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;CA8BzE"}
|
package/dist/signer.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.EIP6963Signer = void 0;
|
|
4
|
-
const core_1 = require("@ckb-ccc/core");
|
|
5
|
-
class EIP6963Signer extends core_1.ccc.Signer {
|
|
1
|
+
import { ccc } from "@ckb-ccc/core";
|
|
2
|
+
export class Signer extends ccc.Signer {
|
|
6
3
|
constructor(client, detail) {
|
|
7
4
|
super(client);
|
|
8
5
|
this.detail = detail;
|
|
@@ -15,13 +12,13 @@ class EIP6963Signer extends core_1.ccc.Signer {
|
|
|
15
12
|
}
|
|
16
13
|
async getAddressObjs() {
|
|
17
14
|
const accounts = await this.getEVMAccounts();
|
|
18
|
-
return Promise.all(accounts.map((account) =>
|
|
15
|
+
return Promise.all(accounts.map((account) => ccc.Address.fromKnownScript(ccc.KnownScript.OmniLock, ccc.hexFrom([0x12, ...ccc.bytesFrom(account), 0x00]), this.client)));
|
|
19
16
|
}
|
|
20
17
|
async connect() {
|
|
21
18
|
await this.detail.provider.request({ method: "eth_requestAccounts" });
|
|
22
19
|
}
|
|
23
20
|
async signMessage(message) {
|
|
24
|
-
const challenge = typeof message === "string" ? message :
|
|
21
|
+
const challenge = typeof message === "string" ? message : ccc.hexFrom(message);
|
|
25
22
|
const [address] = await this.getEVMAccounts();
|
|
26
23
|
return this.detail.provider.request({
|
|
27
24
|
method: "personal_sign",
|
|
@@ -30,18 +27,17 @@ class EIP6963Signer extends core_1.ccc.Signer {
|
|
|
30
27
|
}
|
|
31
28
|
async signOnlyTransaction(tx) {
|
|
32
29
|
const { script } = await this.getRecommendedAddressObj();
|
|
33
|
-
const info = await
|
|
30
|
+
const info = await ccc.getSignHashInfo(tx, script);
|
|
34
31
|
if (!info) {
|
|
35
32
|
return tx;
|
|
36
33
|
}
|
|
37
|
-
const signature =
|
|
34
|
+
const signature = ccc.bytesFrom(await this.signMessage(`CKB transaction: ${info.message}`));
|
|
38
35
|
if (signature[signature.length - 1] >= 27) {
|
|
39
36
|
signature[signature.length - 1] -= 27;
|
|
40
37
|
}
|
|
41
|
-
const witness =
|
|
42
|
-
witness.lock =
|
|
43
|
-
tx.witnesses[info.position] =
|
|
38
|
+
const witness = ccc.WitnessArgs.fromBytes(tx.witnesses[info.position]);
|
|
39
|
+
witness.lock = ccc.hexFrom(ccc.bytesConcat(ccc.numToBytes(5 * 4 + signature.length, 4), ccc.numToBytes(4 * 4, 4), ccc.numToBytes(5 * 4 + signature.length, 4), ccc.numToBytes(5 * 4 + signature.length, 4), ccc.numToBytes(signature.length, 4), signature));
|
|
40
|
+
tx.witnesses[info.position] = ccc.hexFrom(witness.toBytes());
|
|
44
41
|
return tx;
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
|
-
exports.EIP6963Signer = EIP6963Signer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/core";
|
|
2
|
+
import { Signer as EIP6963Signer } from "./signer";
|
|
3
|
+
export declare class SignerFactory {
|
|
4
|
+
private readonly client;
|
|
5
|
+
constructor(client: ccc.Client);
|
|
6
|
+
subscribeSigners(callback: (newSigner: EIP6963Signer) => unknown): () => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=signersFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signersFactory.d.ts","sourceRoot":"","sources":["../src/signersFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnD,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,GAAG,CAAC,MAAM;IAE/C,gBAAgB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,OAAO;CAcjE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Signer as EIP6963Signer } from "./signer";
|
|
2
|
+
export class SignerFactory {
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
subscribeSigners(callback) {
|
|
7
|
+
const onNewProvider = (event) => {
|
|
8
|
+
const signer = new EIP6963Signer(this.client, event.detail);
|
|
9
|
+
callback(signer);
|
|
10
|
+
};
|
|
11
|
+
window.addEventListener("eip6963:announceProvider", onNewProvider);
|
|
12
|
+
window.dispatchEvent(new Event("eip6963:requestProvider"));
|
|
13
|
+
return () => window.removeEventListener("eip6963:announceProvider", onNewProvider);
|
|
14
|
+
}
|
|
15
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/eip6963",
|
|
3
|
-
"version": "0.0.2
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Common Chains Connector's support for EIP6963",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@ckb-ccc/core": "0.0.2
|
|
33
|
+
"@ckb-ccc/core": "0.0.2"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "34b7f8d8443258188d47aad71246e787b544300b"
|
|
36
36
|
}
|
package/src/advanced.ts
CHANGED
|
@@ -1,46 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export interface EIP6963AnnounceProviderEvent {
|
|
4
|
-
detail: EIP6963ProviderDetail;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export interface EIP6963ProviderDetail {
|
|
8
|
-
info: EIP6963ProviderInfo;
|
|
9
|
-
provider: EIP1193Provider;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface EIP6963ProviderInfo {
|
|
13
|
-
rdns: string;
|
|
14
|
-
uuid: string;
|
|
15
|
-
name: string;
|
|
16
|
-
icon: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface EIP1193Provider {
|
|
20
|
-
request: EIP1193RequestMethod;
|
|
21
|
-
on: EIP1193OnMethod;
|
|
22
|
-
removeListener(
|
|
23
|
-
eventName: string,
|
|
24
|
-
listener: (...args: unknown[]) => unknown,
|
|
25
|
-
): EIP1193Provider;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface EIP1193RequestMethod {
|
|
29
|
-
(request: { method: "personal_sign"; params: [string, Hex] }): Promise<Hex>;
|
|
30
|
-
(request: {
|
|
31
|
-
method: "eth_requestAccounts";
|
|
32
|
-
params?: undefined;
|
|
33
|
-
}): Promise<Hex[]>;
|
|
34
|
-
(request: { method: "eth_accounts"; params?: undefined }): Promise<Hex[]>;
|
|
35
|
-
(request: {
|
|
36
|
-
method: string;
|
|
37
|
-
params?: Array<unknown> | Record<string, unknown>;
|
|
38
|
-
}): Promise<unknown>;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface EIP1193OnMethod {
|
|
42
|
-
(
|
|
43
|
-
eventName: string,
|
|
44
|
-
listener: (...args: unknown[]) => unknown,
|
|
45
|
-
): EIP1193Provider;
|
|
46
|
-
}
|
|
1
|
+
export * as Eip1193 from "./eip1193.advanced";
|
|
2
|
+
export * as Eip6963 from "./eip6963.advanced";
|
package/src/barrel.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Hex } from "@ckb-ccc/core";
|
|
2
|
+
|
|
3
|
+
export interface Provider {
|
|
4
|
+
request: RequestMethod;
|
|
5
|
+
on: OnMethod;
|
|
6
|
+
removeListener(
|
|
7
|
+
eventName: string,
|
|
8
|
+
listener: (...args: unknown[]) => unknown,
|
|
9
|
+
): Provider;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface RequestMethod {
|
|
13
|
+
(request: { method: "personal_sign"; params: [string, Hex] }): Promise<Hex>;
|
|
14
|
+
(request: {
|
|
15
|
+
method: "eth_requestAccounts";
|
|
16
|
+
params?: undefined;
|
|
17
|
+
}): Promise<Hex[]>;
|
|
18
|
+
(request: { method: "eth_accounts"; params?: undefined }): Promise<Hex[]>;
|
|
19
|
+
(request: {
|
|
20
|
+
method: string;
|
|
21
|
+
params?: Array<unknown> | Record<string, unknown>;
|
|
22
|
+
}): Promise<unknown>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface OnMethod {
|
|
26
|
+
(eventName: string, listener: (...args: unknown[]) => unknown): Provider;
|
|
27
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Provider as EIP1193Provider } from "./eip1193.advanced";
|
|
2
|
+
|
|
3
|
+
export interface AnnounceProviderEvent {
|
|
4
|
+
detail: ProviderDetail;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface ProviderDetail {
|
|
8
|
+
info: ProviderInfo;
|
|
9
|
+
provider: EIP1193Provider;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ProviderInfo {
|
|
13
|
+
rdns: string;
|
|
14
|
+
uuid: string;
|
|
15
|
+
name: string;
|
|
16
|
+
icon: string;
|
|
17
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./signersManager";
|
|
1
|
+
export * as Eip6963 from "./barrel";
|
package/src/signer.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/core";
|
|
2
|
-
import { EIP6963ProviderDetail } from "./advanced";
|
|
2
|
+
import { ProviderDetail as EIP6963ProviderDetail } from "./eip6963.advanced";
|
|
3
3
|
|
|
4
|
-
export class
|
|
4
|
+
export class Signer extends ccc.Signer {
|
|
5
5
|
constructor(
|
|
6
6
|
client: ccc.Client,
|
|
7
7
|
public readonly detail: EIP6963ProviderDetail,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/core";
|
|
2
|
+
import { AnnounceProviderEvent as EIP6963AnnounceProviderEvent } from "./eip6963.advanced";
|
|
3
|
+
import { Signer as EIP6963Signer } from "./signer";
|
|
4
|
+
|
|
5
|
+
export class SignerFactory {
|
|
6
|
+
constructor(private readonly client: ccc.Client) {}
|
|
7
|
+
|
|
8
|
+
subscribeSigners(callback: (newSigner: EIP6963Signer) => unknown) {
|
|
9
|
+
const onNewProvider = (event: Event) => {
|
|
10
|
+
const signer = new EIP6963Signer(
|
|
11
|
+
this.client,
|
|
12
|
+
(event as unknown as EIP6963AnnounceProviderEvent).detail,
|
|
13
|
+
);
|
|
14
|
+
callback(signer);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
window.addEventListener("eip6963:announceProvider", onNewProvider);
|
|
18
|
+
window.dispatchEvent(new Event("eip6963:requestProvider"));
|
|
19
|
+
return () =>
|
|
20
|
+
window.removeEventListener("eip6963:announceProvider", onNewProvider);
|
|
21
|
+
}
|
|
22
|
+
}
|
package/dist/signersManager.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ccc } from "@ckb-ccc/core";
|
|
2
|
-
import { EIP6963Signer } from "./signer";
|
|
3
|
-
export declare class EIP6963Manager {
|
|
4
|
-
private readonly client;
|
|
5
|
-
private signers;
|
|
6
|
-
constructor(client: ccc.Client);
|
|
7
|
-
getSigners(): EIP6963Signer[];
|
|
8
|
-
subscribeEIP6963Signers(callback: (signers: EIP6963Signer[], newProvider: EIP6963Signer) => unknown): () => void;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=signersManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signersManager.d.ts","sourceRoot":"","sources":["../src/signersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,OAAO,CAAuB;gBAET,MAAM,EAAE,GAAG,CAAC,MAAM;IAE/C,UAAU;IAIV,uBAAuB,CACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,aAAa,KAAK,OAAO;CAqB9E"}
|
package/dist/signersManager.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EIP6963Manager = void 0;
|
|
4
|
-
const signer_1 = require("./signer");
|
|
5
|
-
class EIP6963Manager {
|
|
6
|
-
constructor(client) {
|
|
7
|
-
this.client = client;
|
|
8
|
-
this.signers = [];
|
|
9
|
-
}
|
|
10
|
-
getSigners() {
|
|
11
|
-
return this.signers;
|
|
12
|
-
}
|
|
13
|
-
subscribeEIP6963Signers(callback) {
|
|
14
|
-
const onNewProvider = (event) => {
|
|
15
|
-
const signer = new signer_1.EIP6963Signer(this.client, event.detail);
|
|
16
|
-
if (this.signers.some((p) => p.detail.info.uuid === signer.detail.info.uuid)) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
this.signers = [...this.signers, signer];
|
|
20
|
-
callback(this.signers, signer);
|
|
21
|
-
};
|
|
22
|
-
window.addEventListener("eip6963:announceProvider", onNewProvider);
|
|
23
|
-
window.dispatchEvent(new Event("eip6963:requestProvider"));
|
|
24
|
-
return () => window.removeEventListener("eip6963:announceProvider", onNewProvider);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.EIP6963Manager = EIP6963Manager;
|
package/src/signersManager.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ccc } from "@ckb-ccc/core";
|
|
2
|
-
import { EIP6963AnnounceProviderEvent } from "./advanced";
|
|
3
|
-
import { EIP6963Signer } from "./signer";
|
|
4
|
-
|
|
5
|
-
export class EIP6963Manager {
|
|
6
|
-
private signers: EIP6963Signer[] = [];
|
|
7
|
-
|
|
8
|
-
constructor(private readonly client: ccc.Client) {}
|
|
9
|
-
|
|
10
|
-
getSigners() {
|
|
11
|
-
return this.signers;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
subscribeEIP6963Signers(
|
|
15
|
-
callback: (signers: EIP6963Signer[], newProvider: EIP6963Signer) => unknown,
|
|
16
|
-
) {
|
|
17
|
-
const onNewProvider = (event: Event) => {
|
|
18
|
-
const signer = new EIP6963Signer(
|
|
19
|
-
this.client,
|
|
20
|
-
(event as unknown as EIP6963AnnounceProviderEvent).detail,
|
|
21
|
-
);
|
|
22
|
-
if (
|
|
23
|
-
this.signers.some((p) => p.detail.info.uuid === signer.detail.info.uuid)
|
|
24
|
-
) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
this.signers = [...this.signers, signer];
|
|
28
|
-
callback(this.signers, signer);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
window.addEventListener("eip6963:announceProvider", onNewProvider);
|
|
32
|
-
window.dispatchEvent(new Event("eip6963:requestProvider"));
|
|
33
|
-
return () =>
|
|
34
|
-
window.removeEventListener("eip6963:announceProvider", onNewProvider);
|
|
35
|
-
}
|
|
36
|
-
}
|