@reown/appkit-common-react-native 2.0.0-alpha.0 → 2.0.0-alpha.1
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/lib/commonjs/adapters/BlockchainAdapter.js +79 -0
- package/lib/commonjs/adapters/BlockchainAdapter.js.map +1 -0
- package/lib/commonjs/adapters/EvmAdapter.js +83 -0
- package/lib/commonjs/adapters/EvmAdapter.js.map +1 -0
- package/lib/commonjs/adapters/SolanaBaseAdapter.js +12 -0
- package/lib/commonjs/adapters/SolanaBaseAdapter.js.map +1 -0
- package/lib/commonjs/index.js +62 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/networks/bitcoin.js +40 -0
- package/lib/commonjs/networks/bitcoin.js.map +1 -0
- package/lib/commonjs/networks/solana.js +78 -0
- package/lib/commonjs/networks/solana.js.map +1 -0
- package/lib/commonjs/utils/ConstantsUtil.js +1 -1
- package/lib/commonjs/utils/NumberUtil.js +52 -11
- package/lib/commonjs/utils/NumberUtil.js.map +1 -1
- package/lib/commonjs/utils/TypeUtil.js +9 -79
- package/lib/commonjs/utils/TypeUtil.js.map +1 -1
- package/lib/module/adapters/BlockchainAdapter.js +72 -0
- package/lib/module/adapters/BlockchainAdapter.js.map +1 -0
- package/lib/module/adapters/EvmAdapter.js +76 -0
- package/lib/module/adapters/EvmAdapter.js.map +1 -0
- package/lib/module/adapters/SolanaBaseAdapter.js +5 -0
- package/lib/module/adapters/SolanaBaseAdapter.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/networks/bitcoin.js +34 -0
- package/lib/module/networks/bitcoin.js.map +1 -0
- package/lib/module/networks/solana.js +72 -0
- package/lib/module/networks/solana.js.map +1 -0
- package/lib/module/utils/ConstantsUtil.js +1 -1
- package/lib/module/utils/NumberUtil.js +52 -11
- package/lib/module/utils/NumberUtil.js.map +1 -1
- package/lib/module/utils/TypeUtil.js +7 -75
- package/lib/module/utils/TypeUtil.js.map +1 -1
- package/lib/typescript/adapters/BlockchainAdapter.d.ts +27 -0
- package/lib/typescript/adapters/BlockchainAdapter.d.ts.map +1 -0
- package/lib/typescript/adapters/EvmAdapter.d.ts +6 -0
- package/lib/typescript/adapters/EvmAdapter.d.ts.map +1 -0
- package/lib/typescript/adapters/SolanaBaseAdapter.d.ts +4 -0
- package/lib/typescript/adapters/SolanaBaseAdapter.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/networks/bitcoin.d.ts +4 -0
- package/lib/typescript/networks/bitcoin.d.ts.map +1 -0
- package/lib/typescript/networks/solana.d.ts +5 -0
- package/lib/typescript/networks/solana.d.ts.map +1 -0
- package/lib/typescript/utils/NumberUtil.d.ts +39 -11
- package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +59 -42
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/BlockchainAdapter.ts +109 -0
- package/src/adapters/EvmAdapter.ts +79 -0
- package/src/adapters/SolanaBaseAdapter.ts +5 -0
- package/src/index.ts +5 -0
- package/src/networks/bitcoin.ts +32 -0
- package/src/networks/solana.ts +44 -0
- package/src/utils/ConstantsUtil.ts +1 -1
- package/src/utils/NumberUtil.ts +54 -11
- package/src/utils/TypeUtil.ts +72 -113
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","
|
|
1
|
+
{"version":3,"names":["EventEmitter","WalletConnector","constructor","type","init","ops","storage","metadata","setProvider","provider"],"sourceRoot":"../../../src","sources":["utils/TypeUtil.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,QAAQ;;AAgKrC;;AAoBA;;AAsBA;;AA6BA,OAAO,MAAeC,eAAe,SAASD,YAAY,CAAC;EAQzDE,WAAWA,CAAC;IAAEC;EAAkC,CAAC,EAAE;IACjD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEA,MAAaC,IAAIA,CAACC,GAAyB,EAAE;IAC3C,IAAI,CAACC,OAAO,GAAGD,GAAG,CAACC,OAAO;IAC1B,IAAI,CAACC,QAAQ,GAAGF,GAAG,CAACE,QAAQ;EAC9B;EAEOC,WAAWA,CAACC,QAAkB,EAAE;IACrC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;AASF;;AAEA;;AAmBA;;AAGA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import type { AdapterEvents, AppKitNetwork, CaipAddress, ChainNamespace, GetBalanceParams, GetBalanceResponse, Provider, WalletConnector } from '../utils/TypeUtil';
|
|
4
|
+
export declare abstract class BlockchainAdapter extends EventEmitter {
|
|
5
|
+
projectId: string;
|
|
6
|
+
connector?: WalletConnector;
|
|
7
|
+
supportedNamespace: ChainNamespace;
|
|
8
|
+
emit<K extends keyof AdapterEvents>(event: K, payload: Parameters<AdapterEvents[K]>[0]): boolean;
|
|
9
|
+
constructor({ projectId, supportedNamespace }: {
|
|
10
|
+
projectId: string;
|
|
11
|
+
supportedNamespace: ChainNamespace;
|
|
12
|
+
});
|
|
13
|
+
setConnector(connector: WalletConnector): void;
|
|
14
|
+
removeConnector(): void;
|
|
15
|
+
getProvider(): Provider;
|
|
16
|
+
subscribeToEvents(): void;
|
|
17
|
+
onChainChanged(chainId: string): void;
|
|
18
|
+
onAccountsChanged(accounts: string[]): void;
|
|
19
|
+
onDisconnect(): void;
|
|
20
|
+
parseUnits(value: string, decimals: number): bigint;
|
|
21
|
+
abstract disconnect(): Promise<void>;
|
|
22
|
+
abstract getSupportedNamespace(): ChainNamespace;
|
|
23
|
+
abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
|
|
24
|
+
abstract getAccounts(): CaipAddress[] | undefined;
|
|
25
|
+
abstract switchNetwork(network: AppKitNetwork): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=BlockchainAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockchainAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/BlockchainAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B,8BAAsB,iBAAkB,SAAQ,YAAY;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,kBAAkB,EAAE,cAAc,CAAC;IAGjC,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EACzC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,OAAO;gBAIE,EACV,SAAS,EACT,kBAAkB,EACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,cAAc,CAAC;KACpC;IAMD,YAAY,CAAC,SAAS,EAAE,eAAe;IAKvC,eAAe;IAIf,WAAW,IAAI,QAAQ;IAMvB,iBAAiB,IAAI,IAAI;IASzB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAa3C,YAAY,IAAI,IAAI;IAapB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOnD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,qBAAqB,IAAI,cAAc;IAChD,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAC1E,QAAQ,CAAC,WAAW,IAAI,WAAW,EAAE,GAAG,SAAS;IACjD,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAC9D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BlockchainAdapter } from './BlockchainAdapter';
|
|
2
|
+
export declare abstract class EVMAdapter extends BlockchainAdapter {
|
|
3
|
+
estimateGas({ address, to, data, chainNamespace }: any): Promise<bigint>;
|
|
4
|
+
sendTransaction(data: any): Promise<`0x${string}` | null>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=EvmAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/EvmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,8BAAsB,UAAW,SAAQ,iBAAiB;IAClD,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCxE,eAAe,CAAC,IAAI,EAAE,GAAG;CAwChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolanaBaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/SolanaBaseAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,8BAAsB,iBAAkB,SAAQ,iBAAiB;CAEhE"}
|
|
@@ -8,5 +8,10 @@ export { PresetsUtil } from './utils/PresetsUtil';
|
|
|
8
8
|
export { StringUtil } from './utils/StringUtil';
|
|
9
9
|
export { ErrorUtil } from './utils/ErrorUtil';
|
|
10
10
|
export { erc20ABI } from './contracts/erc20';
|
|
11
|
+
export { solana, solanaDevnet, solanaTestnet } from './networks/solana';
|
|
12
|
+
export { bitcoin, bitcoinTestnet } from './networks/bitcoin';
|
|
13
|
+
export { BlockchainAdapter } from './adapters/BlockchainAdapter';
|
|
14
|
+
export { EVMAdapter } from './adapters/EvmAdapter';
|
|
15
|
+
export { SolanaBaseAdapter } from './adapters/SolanaBaseAdapter';
|
|
11
16
|
export * from './utils/TypeUtil';
|
|
12
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitcoin.d.ts","sourceRoot":"","sources":["../../../src/networks/bitcoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,OAAO,EAAE,aAarB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAc5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/networks/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,MAAM,EAAE,aAcpB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,aAY1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAW3B,CAAC"}
|
|
@@ -1,27 +1,55 @@
|
|
|
1
1
|
import * as BigNumber from 'bignumber.js';
|
|
2
2
|
export declare const NumberUtil: {
|
|
3
|
+
/**
|
|
4
|
+
* Creates a BigNumber instance from a given value.
|
|
5
|
+
* If the value is a string, commas are removed before conversion.
|
|
6
|
+
* @param value - The input value (string, number, or BigNumber) to convert to a BigNumber.
|
|
7
|
+
* @returns A BigNumber instance.
|
|
8
|
+
*/
|
|
3
9
|
bigNumber(value: BigNumber.BigNumber.Value): BigNumber.BigNumber;
|
|
4
10
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* @param
|
|
8
|
-
* @
|
|
11
|
+
* Multiplies two numbers using BigNumber for precision, especially with decimals.
|
|
12
|
+
* Handles undefined inputs by returning BigNumber(0).
|
|
13
|
+
* @param a - The first multiplicand (string, number, or BigNumber). Commas are removed if it's a string.
|
|
14
|
+
* @param b - The second multiplicand (string, number, or BigNumber). Commas are removed if it's a string.
|
|
15
|
+
* @returns The product as a BigNumber instance, or BigNumber(0) if either input is undefined.
|
|
9
16
|
*/
|
|
10
17
|
multiply(a: BigNumber.BigNumber.Value | undefined, b: BigNumber.BigNumber.Value | undefined): BigNumber.BigNumber;
|
|
18
|
+
/**
|
|
19
|
+
* Rounds a number to a specified number of decimal places if its string representation meets a certain length threshold.
|
|
20
|
+
* @param number - The number to potentially round.
|
|
21
|
+
* @param threshold - The minimum string length of the number to trigger rounding.
|
|
22
|
+
* @param fixed - The number of decimal places to round to.
|
|
23
|
+
* @returns The rounded number (as a string if rounded, otherwise the original number) or the original number.
|
|
24
|
+
*/
|
|
11
25
|
roundNumber(number: number, threshold: number, fixed: number): string | number;
|
|
26
|
+
/**
|
|
27
|
+
* Calculates the next multiple of ten greater than or equal to the given amount.
|
|
28
|
+
* Defaults to 10 if no amount is provided or if the calculated multiple is less than 10.
|
|
29
|
+
* @param amount - The number for which to find the next multiple of ten. Optional.
|
|
30
|
+
* @returns The next multiple of ten, at least 10.
|
|
31
|
+
*/
|
|
12
32
|
nextMultipleOfTen(amount?: number): number;
|
|
13
33
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @param value - The value to format
|
|
16
|
-
* @param decimals - number of
|
|
17
|
-
* @returns
|
|
34
|
+
* Formats a number or string to a human-readable string with a specified number of decimal places, using US locale formatting.
|
|
35
|
+
* @param value - The value to format (string, number, or undefined). If undefined, returns '0.00'.
|
|
36
|
+
* @param decimals - The number of decimal places to display. Defaults to 2.
|
|
37
|
+
* @returns A locale-formatted string representation of the number.
|
|
18
38
|
*/
|
|
19
39
|
formatNumberToLocalString(value: string | number | undefined, decimals?: number): string;
|
|
20
40
|
/**
|
|
21
|
-
*
|
|
22
|
-
* @param value - The formatted string to parse
|
|
23
|
-
* @returns
|
|
41
|
+
* Parses a locale-formatted numeric string (e.g., with commas) back into a number.
|
|
42
|
+
* @param value - The formatted string to parse. If undefined, returns 0.
|
|
43
|
+
* @returns The parsed number, or 0 if the input is undefined.
|
|
24
44
|
*/
|
|
25
45
|
parseLocalStringToNumber(value: string | undefined): number;
|
|
46
|
+
/**
|
|
47
|
+
* Converts a numeric value (BigInt, number, or string representation of a number) to a 0x-prefixed hexadecimal string.
|
|
48
|
+
* This is often required for Ethereum RPC parameters like value, gas, gasPrice.
|
|
49
|
+
* @param value - The value to convert. Can be BigInt, number, or a string (decimal or hex).
|
|
50
|
+
* @returns A 0x-prefixed hexadecimal string, or undefined if the input is undefined or null.
|
|
51
|
+
* @throws Error if the value cannot be converted to BigInt.
|
|
52
|
+
*/
|
|
53
|
+
convertNumericToHexString: (value: any) => string | undefined;
|
|
26
54
|
};
|
|
27
55
|
//# sourceMappingURL=NumberUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU;
|
|
1
|
+
{"version":3,"file":"NumberUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU;IACrB;;;;;OAKG;qBACc,mBAAmB,CAAC,KAAK;IAQ1C;;;;;;OAMG;gBACS,mBAAmB,CAAC,KAAK,GAAG,SAAS,KAAK,mBAAmB,CAAC,KAAK,GAAG,SAAS;IAW3F;;;;;;OAMG;wBACiB,MAAM,aAAa,MAAM,SAAS,MAAM;IAO5D;;;;;OAKG;+BACwB,MAAM;IAMjC;;;;;OAKG;qCAC8B,MAAM,GAAG,MAAM,GAAG,SAAS;IAkB5D;;;;OAIG;oCAC6B,MAAM,GAAG,SAAS;IASlD;;;;;;OAMG;uCACgC,GAAG,KAAG,MAAM,GAAG,SAAS;CAc5D,CAAC"}
|
|
@@ -50,7 +50,7 @@ export interface Balance {
|
|
|
50
50
|
name: string;
|
|
51
51
|
symbol: string;
|
|
52
52
|
chainId: string;
|
|
53
|
-
address?:
|
|
53
|
+
address?: CaipAddress;
|
|
54
54
|
value?: number;
|
|
55
55
|
price: number;
|
|
56
56
|
quantity: BalanceQuantity;
|
|
@@ -133,19 +133,25 @@ export interface Token {
|
|
|
133
133
|
}
|
|
134
134
|
export type Tokens = Record<CaipNetworkId, Token>;
|
|
135
135
|
export type ConnectorType = 'WALLET_CONNECT' | 'COINBASE' | 'AUTH' | 'EXTERNAL';
|
|
136
|
+
export type Metadata = {
|
|
137
|
+
name: string;
|
|
138
|
+
description: string;
|
|
139
|
+
url: string;
|
|
140
|
+
icons: string[];
|
|
141
|
+
redirect?: {
|
|
142
|
+
native?: string;
|
|
143
|
+
universal?: string;
|
|
144
|
+
linkMode?: boolean;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
136
147
|
export type AccountsChangedEvent = {
|
|
137
148
|
accounts: string[];
|
|
138
|
-
namespace: ChainNamespace;
|
|
139
149
|
};
|
|
140
150
|
export type ChainChangedEvent = {
|
|
141
151
|
chainId: string;
|
|
142
|
-
namespace: ChainNamespace;
|
|
143
|
-
};
|
|
144
|
-
export type DisconnectEvent = {
|
|
145
|
-
namespace: ChainNamespace;
|
|
146
152
|
};
|
|
153
|
+
export type DisconnectEvent = {};
|
|
147
154
|
export type BalanceChangedEvent = {
|
|
148
|
-
namespace: ChainNamespace;
|
|
149
155
|
address: CaipAddress;
|
|
150
156
|
balance: {
|
|
151
157
|
amount: string;
|
|
@@ -159,32 +165,6 @@ export interface AdapterEvents {
|
|
|
159
165
|
disconnect: (event: DisconnectEvent) => void;
|
|
160
166
|
balanceChanged: (event: BalanceChangedEvent) => void;
|
|
161
167
|
}
|
|
162
|
-
export declare abstract class BlockchainAdapter extends EventEmitter {
|
|
163
|
-
projectId: string;
|
|
164
|
-
connector?: WalletConnector;
|
|
165
|
-
supportedNamespace: ChainNamespace;
|
|
166
|
-
emit<K extends keyof AdapterEvents>(event: K, payload: Parameters<AdapterEvents[K]>[0]): boolean;
|
|
167
|
-
constructor({ projectId, supportedNamespace }: {
|
|
168
|
-
projectId: string;
|
|
169
|
-
supportedNamespace: ChainNamespace;
|
|
170
|
-
});
|
|
171
|
-
setConnector(connector: WalletConnector): void;
|
|
172
|
-
removeConnector(): void;
|
|
173
|
-
getProvider(): Provider;
|
|
174
|
-
subscribeToEvents(): void;
|
|
175
|
-
onChainChanged(chainId: string): void;
|
|
176
|
-
onAccountsChanged(accounts: string[]): void;
|
|
177
|
-
onDisconnect(): void;
|
|
178
|
-
abstract disconnect(): Promise<void>;
|
|
179
|
-
abstract getSupportedNamespace(): ChainNamespace;
|
|
180
|
-
abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
|
|
181
|
-
abstract getAccounts(): CaipAddress[] | undefined;
|
|
182
|
-
abstract switchNetwork(network: AppKitNetwork): Promise<void>;
|
|
183
|
-
}
|
|
184
|
-
export declare abstract class EVMAdapter extends BlockchainAdapter {
|
|
185
|
-
}
|
|
186
|
-
export declare abstract class SolanaBaseAdapter extends BlockchainAdapter {
|
|
187
|
-
}
|
|
188
168
|
export interface GetBalanceParams {
|
|
189
169
|
address?: CaipAddress;
|
|
190
170
|
network?: AppKitNetwork;
|
|
@@ -204,20 +184,31 @@ interface BaseNamespace {
|
|
|
204
184
|
}
|
|
205
185
|
type Namespace = BaseNamespace;
|
|
206
186
|
export type Namespaces = Record<string, Namespace>;
|
|
207
|
-
export type ProposalNamespaces = Record<string, Omit<Namespace, 'accounts'> & Required<Pick<Namespace, 'chains'
|
|
187
|
+
export type ProposalNamespaces = Record<string, Omit<Namespace, 'accounts'> & Required<Pick<Namespace, 'chains'>> & {
|
|
188
|
+
rpcMap: Record<string, string>;
|
|
189
|
+
}>;
|
|
190
|
+
export type ConnectOptions = {
|
|
191
|
+
namespaces?: ProposalNamespaces;
|
|
192
|
+
defaultChain?: CaipNetworkId;
|
|
193
|
+
universalLink?: string;
|
|
194
|
+
};
|
|
195
|
+
export type ConnectorInitOptions = {
|
|
196
|
+
storage: Storage;
|
|
197
|
+
metadata: Metadata;
|
|
198
|
+
};
|
|
208
199
|
export declare abstract class WalletConnector extends EventEmitter {
|
|
209
200
|
type: New_ConnectorType;
|
|
210
|
-
protected provider
|
|
201
|
+
protected provider?: Provider;
|
|
211
202
|
protected namespaces?: Namespaces;
|
|
212
203
|
protected wallet?: WalletInfo;
|
|
213
|
-
|
|
204
|
+
protected storage?: Storage;
|
|
205
|
+
protected metadata?: Metadata;
|
|
206
|
+
constructor({ type }: {
|
|
214
207
|
type: New_ConnectorType;
|
|
215
|
-
provider: Provider;
|
|
216
208
|
});
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}): Promise<Namespaces | undefined>;
|
|
209
|
+
init(ops: ConnectorInitOptions): Promise<void>;
|
|
210
|
+
setProvider(provider: Provider): void;
|
|
211
|
+
abstract connect(opts: ConnectOptions): Promise<Namespaces | undefined>;
|
|
221
212
|
abstract disconnect(): Promise<void>;
|
|
222
213
|
abstract getProvider(): Provider;
|
|
223
214
|
abstract getNamespaces(): Namespaces;
|
|
@@ -236,7 +227,7 @@ export interface RequestArguments {
|
|
|
236
227
|
method: string;
|
|
237
228
|
params?: unknown[] | Record<string, unknown> | object | undefined;
|
|
238
229
|
}
|
|
239
|
-
export type New_ConnectorType = 'walletconnect' | 'coinbase' | 'auth';
|
|
230
|
+
export type New_ConnectorType = 'walletconnect' | 'coinbase' | 'auth' | 'phantom';
|
|
240
231
|
export interface ConnectionResponse {
|
|
241
232
|
accounts: string[];
|
|
242
233
|
chainId: string;
|
|
@@ -255,5 +246,31 @@ export interface WalletInfo {
|
|
|
255
246
|
};
|
|
256
247
|
[key: string]: unknown;
|
|
257
248
|
}
|
|
249
|
+
export interface Storage {
|
|
250
|
+
/**
|
|
251
|
+
* Returns all keys in storage.
|
|
252
|
+
*/
|
|
253
|
+
getKeys(): Promise<string[]>;
|
|
254
|
+
/**
|
|
255
|
+
* Returns all key-value entries in storage.
|
|
256
|
+
*/
|
|
257
|
+
getEntries<T = any>(): Promise<[string, T][]>;
|
|
258
|
+
/**
|
|
259
|
+
* Get an item from storage for a given key.
|
|
260
|
+
* @param key The key to retrieve.
|
|
261
|
+
*/
|
|
262
|
+
getItem<T = any>(key: string): Promise<T | undefined>;
|
|
263
|
+
/**
|
|
264
|
+
* Set an item in storage for a given key.
|
|
265
|
+
* @param key The key to set.
|
|
266
|
+
* @param value The value to set.
|
|
267
|
+
*/
|
|
268
|
+
setItem<T = any>(key: string, value: T): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Remove an item from storage for a given key.
|
|
271
|
+
* @param key The key to remove.
|
|
272
|
+
*/
|
|
273
|
+
removeItem(key: string): Promise<void>;
|
|
274
|
+
}
|
|
258
275
|
export {};
|
|
259
276
|
//# sourceMappingURL=TypeUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzE,MAAM,MAAM,OAAO,GAAG;IAEpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE;QACP,OAAO,EAAE;YAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAC;QACrC,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,GAAG,SAAS,CAAC;KACxD,CAAC;IACF,cAAc,CAAC,EAAE;QACf,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KAC1D,CAAC;IAGF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,aAAa,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,aAAa,CAAC;CACzC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,aAAa,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import type {
|
|
3
|
+
AdapterEvents,
|
|
4
|
+
AppKitNetwork,
|
|
5
|
+
CaipAddress,
|
|
6
|
+
ChainNamespace,
|
|
7
|
+
GetBalanceParams,
|
|
8
|
+
GetBalanceResponse,
|
|
9
|
+
Provider,
|
|
10
|
+
WalletConnector
|
|
11
|
+
} from '../utils/TypeUtil';
|
|
12
|
+
|
|
13
|
+
export abstract class BlockchainAdapter extends EventEmitter {
|
|
14
|
+
public projectId: string;
|
|
15
|
+
public connector?: WalletConnector;
|
|
16
|
+
public supportedNamespace: ChainNamespace;
|
|
17
|
+
|
|
18
|
+
// Typed emit method
|
|
19
|
+
override emit<K extends keyof AdapterEvents>(
|
|
20
|
+
event: K,
|
|
21
|
+
payload: Parameters<AdapterEvents[K]>[0]
|
|
22
|
+
): boolean {
|
|
23
|
+
return super.emit(event, payload);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
constructor({
|
|
27
|
+
projectId,
|
|
28
|
+
supportedNamespace
|
|
29
|
+
}: {
|
|
30
|
+
projectId: string;
|
|
31
|
+
supportedNamespace: ChainNamespace;
|
|
32
|
+
}) {
|
|
33
|
+
super();
|
|
34
|
+
this.projectId = projectId;
|
|
35
|
+
this.supportedNamespace = supportedNamespace;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
setConnector(connector: WalletConnector) {
|
|
39
|
+
this.connector = connector;
|
|
40
|
+
this.subscribeToEvents();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
removeConnector() {
|
|
44
|
+
this.connector = undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getProvider(): Provider {
|
|
48
|
+
if (!this.connector) throw new Error('No active connector');
|
|
49
|
+
|
|
50
|
+
return this.connector.getProvider();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
subscribeToEvents(): void {
|
|
54
|
+
const provider = this.connector?.getProvider();
|
|
55
|
+
if (!provider) return;
|
|
56
|
+
|
|
57
|
+
provider.on('chainChanged', this.onChainChanged.bind(this));
|
|
58
|
+
provider.on('accountsChanged', this.onAccountsChanged.bind(this));
|
|
59
|
+
provider.on('disconnect', this.onDisconnect.bind(this));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
onChainChanged(chainId: string): void {
|
|
63
|
+
const _chains = this.getAccounts()?.map(account => account.split(':')[1]);
|
|
64
|
+
const shouldEmit = _chains?.some(chain => chain === chainId);
|
|
65
|
+
|
|
66
|
+
if (shouldEmit) {
|
|
67
|
+
this.emit('chainChanged', { chainId });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
onAccountsChanged(accounts: string[]): void {
|
|
72
|
+
const _accounts = this.getAccounts();
|
|
73
|
+
const shouldEmit = _accounts?.some(account => {
|
|
74
|
+
const accountAddress = account.split(':')[2];
|
|
75
|
+
|
|
76
|
+
return accountAddress !== undefined && accounts.includes(accountAddress);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
if (shouldEmit) {
|
|
80
|
+
this.emit('accountsChanged', { accounts });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
onDisconnect(): void {
|
|
85
|
+
this.emit('disconnect', { namespace: this.getSupportedNamespace() });
|
|
86
|
+
|
|
87
|
+
const provider = this.connector?.getProvider();
|
|
88
|
+
if (provider) {
|
|
89
|
+
provider.off('chainChanged', this.onChainChanged.bind(this));
|
|
90
|
+
provider.off('accountsChanged', this.onAccountsChanged.bind(this));
|
|
91
|
+
provider.off('disconnect', this.onDisconnect.bind(this));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
this.connector = undefined;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
parseUnits(value: string, decimals: number): bigint {
|
|
98
|
+
const [whole, fraction = ''] = value.split('.');
|
|
99
|
+
const paddedFraction = (fraction + '0'.repeat(decimals)).slice(0, decimals);
|
|
100
|
+
|
|
101
|
+
return BigInt(whole + paddedFraction);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
abstract disconnect(): Promise<void>;
|
|
105
|
+
abstract getSupportedNamespace(): ChainNamespace;
|
|
106
|
+
abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
|
|
107
|
+
abstract getAccounts(): CaipAddress[] | undefined;
|
|
108
|
+
abstract switchNetwork(network: AppKitNetwork): Promise<void>;
|
|
109
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { BlockchainAdapter } from './BlockchainAdapter';
|
|
2
|
+
import { NumberUtil } from '../utils/NumberUtil';
|
|
3
|
+
|
|
4
|
+
export abstract class EVMAdapter extends BlockchainAdapter {
|
|
5
|
+
async estimateGas({ address, to, data, chainNamespace }: any): Promise<bigint> {
|
|
6
|
+
const provider = this.getProvider();
|
|
7
|
+
|
|
8
|
+
if (!provider) {
|
|
9
|
+
throw new Error('EVMAdapter:estimateGas - provider is undefined');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (!address) {
|
|
13
|
+
throw new Error('EVMAdapter:estimateGas - from address is undefined');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (chainNamespace && chainNamespace !== 'eip155') {
|
|
17
|
+
throw new Error('EVMAdapter:estimateGas - chainNamespace is not eip155');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
const txParams = {
|
|
22
|
+
from: address,
|
|
23
|
+
to,
|
|
24
|
+
data,
|
|
25
|
+
type: '0x0' // optional, legacy type
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const estimatedGasHex = await provider.request({
|
|
29
|
+
method: 'eth_estimateGas',
|
|
30
|
+
params: [txParams]
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
return BigInt(estimatedGasHex as string);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
throw new Error('EVMAdapter:estimateGas - eth_estimateGas RPC failed');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async sendTransaction(data: any) {
|
|
40
|
+
const { address } = data || {};
|
|
41
|
+
|
|
42
|
+
if (!this.getProvider()) {
|
|
43
|
+
throw new Error('EVMAdapter:sendTransaction - provider is undefined');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (!address) {
|
|
47
|
+
throw new Error('EVMAdapter:sendTransaction - address is undefined');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const txParams = {
|
|
51
|
+
from: address,
|
|
52
|
+
to: data.to,
|
|
53
|
+
value: NumberUtil.convertNumericToHexString(data.value),
|
|
54
|
+
gas: NumberUtil.convertNumericToHexString(data.gas),
|
|
55
|
+
gasPrice: NumberUtil.convertNumericToHexString(data.gasPrice),
|
|
56
|
+
data: data.data, // hex-encoded bytecode
|
|
57
|
+
type: '0x0' // optional: legacy transaction type
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const txHash = await this.getProvider().request({
|
|
61
|
+
method: 'eth_sendTransaction',
|
|
62
|
+
params: [txParams]
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
let receipt = null;
|
|
66
|
+
while (!receipt) {
|
|
67
|
+
receipt = (await this.getProvider().request({
|
|
68
|
+
method: 'eth_getTransactionReceipt',
|
|
69
|
+
params: [txHash]
|
|
70
|
+
})) as { blockHash?: `0x${string}` };
|
|
71
|
+
|
|
72
|
+
if (!receipt) {
|
|
73
|
+
await new Promise(r => setTimeout(r, 1000)); // wait 1s
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return receipt?.blockHash || null;
|
|
78
|
+
}
|
|
79
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -8,4 +8,9 @@ export { PresetsUtil } from './utils/PresetsUtil';
|
|
|
8
8
|
export { StringUtil } from './utils/StringUtil';
|
|
9
9
|
export { ErrorUtil } from './utils/ErrorUtil';
|
|
10
10
|
export { erc20ABI } from './contracts/erc20';
|
|
11
|
+
export { solana, solanaDevnet, solanaTestnet } from './networks/solana';
|
|
12
|
+
export { bitcoin, bitcoinTestnet } from './networks/bitcoin';
|
|
13
|
+
export { BlockchainAdapter } from './adapters/BlockchainAdapter';
|
|
14
|
+
export { EVMAdapter } from './adapters/EvmAdapter';
|
|
15
|
+
export { SolanaBaseAdapter } from './adapters/SolanaBaseAdapter';
|
|
11
16
|
export * from './utils/TypeUtil';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AppKitNetwork } from '../utils/TypeUtil';
|
|
2
|
+
|
|
3
|
+
export const bitcoin: AppKitNetwork = {
|
|
4
|
+
id: '000000000019d6689c085ae165831e93',
|
|
5
|
+
caipNetworkId: 'bip122:000000000019d6689c085ae165831e93',
|
|
6
|
+
chainNamespace: 'bip122',
|
|
7
|
+
name: 'Bitcoin',
|
|
8
|
+
nativeCurrency: {
|
|
9
|
+
name: 'Bitcoin',
|
|
10
|
+
symbol: 'BTC',
|
|
11
|
+
decimals: 8
|
|
12
|
+
},
|
|
13
|
+
rpcUrls: {
|
|
14
|
+
default: { http: ['https://rpc.walletconnect.org/v1'] }
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const bitcoinTestnet: AppKitNetwork = {
|
|
19
|
+
id: '000000000933ea01ad0ee984209779ba',
|
|
20
|
+
caipNetworkId: 'bip122:000000000933ea01ad0ee984209779ba',
|
|
21
|
+
chainNamespace: 'bip122',
|
|
22
|
+
name: 'Bitcoin Testnet',
|
|
23
|
+
nativeCurrency: {
|
|
24
|
+
name: 'Bitcoin',
|
|
25
|
+
symbol: 'BTC',
|
|
26
|
+
decimals: 8
|
|
27
|
+
},
|
|
28
|
+
rpcUrls: {
|
|
29
|
+
default: { http: ['https://rpc.walletconnect.org/v1'] }
|
|
30
|
+
},
|
|
31
|
+
testnet: true
|
|
32
|
+
};
|