@meshconnect/uwc-types 0.2.0 → 0.2.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/dist/connector.d.ts +2 -1
- package/dist/connector.d.ts.map +1 -1
- package/dist/react-hooks.d.ts +9 -1
- package/dist/react-hooks.d.ts.map +1 -1
- package/dist/session.d.ts +3 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/transactions.d.ts +45 -26
- package/dist/transactions.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/connector.ts +7 -1
- package/src/network-rpc.ts +1 -1
- package/src/react-hooks.ts +10 -1
- package/src/session.ts +3 -0
- package/src/signature.ts +1 -1
- package/src/transactions.ts +60 -27
package/dist/connector.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Network, NetworkId, Namespace } from './networks';
|
|
2
2
|
import type { AvailableAddress } from './session';
|
|
3
3
|
import type { DetectedEIP6963WalletInfo, DetectedSolanaWalletInfo, ExtensionInjectedProvider, IntegratedBrowserInjectedProvider, WalletConnectProvider } from './UWC-state';
|
|
4
|
-
import type { TransactionRequest, TransactionResult } from './transactions';
|
|
4
|
+
import type { EVMCapabilities, TransactionRequest, TransactionResult } from './transactions';
|
|
5
5
|
/**
|
|
6
6
|
* Result interface for connect operations
|
|
7
7
|
*/
|
|
@@ -72,5 +72,6 @@ export interface Connector {
|
|
|
72
72
|
* @returns A promise that resolves to the transaction result
|
|
73
73
|
*/
|
|
74
74
|
sendTransaction?(request: TransactionRequest, provider?: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider | WalletConnectProvider): Promise<TransactionResult>;
|
|
75
|
+
getWalletCapabilities?(from: string): Promise<Record<string, EVMCapabilities>>;
|
|
75
76
|
}
|
|
76
77
|
//# sourceMappingURL=connector.d.ts.map
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,iCAAiC,EACjC,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,iCAAiC,EACjC,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AAEvB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IAEH,OAAO,CACL,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EACL,yBAAyB,GACzB,iCAAiC,GACjC,qBAAqB,GACxB,OAAO,CAAC,eAAe,CAAC,CAAA;IAE3B;;;;;;;OAOG;IACH,gBAAgB,CAAC,IAAI,MAAM,CAAA;IAE3B;;;;OAIG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B;;;;;OAKG;IAEH,aAAa,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EACL,yBAAyB,GACzB,iCAAiC,GACjC,qBAAqB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAE/B;;;;;OAKG;IACH,mBAAmB,CAAC,CAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,yBAAyB,EAAE,GAAG,wBAAwB,EAAE,CAAC,CAAA;IAEpE;;;;;OAKG;IACH,WAAW,CAAC,CACV,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EACL,yBAAyB,GACzB,iCAAiC,GACjC,qBAAqB,GACxB,OAAO,CAAC,MAAM,CAAC,CAAA;IAElB;;;;;OAKG;IACH,eAAe,CAAC,CACd,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EACL,yBAAyB,GACzB,iCAAiC,GACjC,qBAAqB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAE7B,qBAAqB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;CAC/E"}
|
package/dist/react-hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NetworkId, Network, ConnectionMode, Session, AvailableAddress, TransactionRequest, TransactionResult, WalletError } from './index';
|
|
1
|
+
import type { NetworkId, Network, ConnectionMode, Session, AvailableAddress, TransactionRequest, TransactionResult, WalletError, EVMCapabilities } from './index';
|
|
2
2
|
/**
|
|
3
3
|
* WalletConnect connection interface for the useConnection hook
|
|
4
4
|
*/
|
|
@@ -104,6 +104,14 @@ export interface UseSessionReturn {
|
|
|
104
104
|
* The currently selected network, or null if not connected
|
|
105
105
|
*/
|
|
106
106
|
activeNetwork: Network | null;
|
|
107
|
+
/**
|
|
108
|
+
* The capabilities of the currently connected wallet, or null if not connected
|
|
109
|
+
*/
|
|
110
|
+
activeWalletCapabilities: Record<string, EVMCapabilities> | null;
|
|
111
|
+
/**
|
|
112
|
+
* The capabilities of the currently connected wallet on the active network, or null if not connected
|
|
113
|
+
*/
|
|
114
|
+
activeNetworkWalletCapabilities: EVMCapabilities | null;
|
|
107
115
|
/**
|
|
108
116
|
* List of networks available for the connected wallet
|
|
109
117
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../src/react-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,
|
|
1
|
+
{"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../src/react-hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ConnectionMode } from './connection-mode';
|
|
2
2
|
import type { Network, NetworkId } from './networks';
|
|
3
|
+
import type { EVMCapabilities } from './transactions';
|
|
3
4
|
import type { WalletMetadata } from './UWC-state';
|
|
4
5
|
export interface AvailableAddress {
|
|
5
6
|
address: string;
|
|
@@ -8,6 +9,8 @@ export interface AvailableAddress {
|
|
|
8
9
|
export interface Session {
|
|
9
10
|
connectionMode: ConnectionMode | null;
|
|
10
11
|
activeNetwork: Network | null;
|
|
12
|
+
activeWalletCapabilities: Record<string, EVMCapabilities> | null;
|
|
13
|
+
activeNetworkWalletCapabilities: EVMCapabilities | null;
|
|
11
14
|
activeAddress: string | null;
|
|
12
15
|
availableNetworks: Network[];
|
|
13
16
|
activeWallet: WalletMetadata | null;
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IACrC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B,YAAY,EAAE,cAAc,GAAG,IAAI,CAAA;IACnC,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;CACvC"}
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IACrC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7B,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAAA;IAChE,+BAA+B,EAAE,eAAe,GAAG,IAAI,CAAA;IACvD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B,YAAY,EAAE,cAAc,GAAG,IAAI,CAAA;IACnC,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;CACvC"}
|
package/dist/transactions.d.ts
CHANGED
|
@@ -30,14 +30,6 @@ export interface EVMContractCallRequest {
|
|
|
30
30
|
value?: string;
|
|
31
31
|
gasConfig?: EVMGasConfig;
|
|
32
32
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Single call in a batch transaction
|
|
35
|
-
*/
|
|
36
|
-
export interface EVMBatchCall {
|
|
37
|
-
to: string;
|
|
38
|
-
value: string;
|
|
39
|
-
data?: string;
|
|
40
|
-
}
|
|
41
33
|
/**
|
|
42
34
|
* Request for batch EVM transactions (EIP-5792)
|
|
43
35
|
*/
|
|
@@ -46,19 +38,20 @@ export interface EVMBatchTransactionRequest {
|
|
|
46
38
|
from: string;
|
|
47
39
|
chainId: string;
|
|
48
40
|
atomicRequired: boolean;
|
|
49
|
-
calls:
|
|
41
|
+
calls: (EVMNativeTransferRequest | EVMContractCallRequest)[];
|
|
50
42
|
}
|
|
51
43
|
/**
|
|
52
44
|
* EVM wallet capabilities
|
|
53
45
|
*/
|
|
54
46
|
export interface EVMCapabilities {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
paymasterService?: {
|
|
59
|
-
supported: boolean;
|
|
60
|
-
};
|
|
47
|
+
alternateGasFees?: EVMCapability;
|
|
48
|
+
atomic?: EVMCapability;
|
|
49
|
+
paymasterService?: EVMCapability;
|
|
61
50
|
}
|
|
51
|
+
export type EVMCapability = {
|
|
52
|
+
status: EVMCapabilityStatus;
|
|
53
|
+
};
|
|
54
|
+
export type EVMCapabilityStatus = 'supported' | 'ready' | 'unsupported';
|
|
62
55
|
/**
|
|
63
56
|
* Solana Transaction Types
|
|
64
57
|
*/
|
|
@@ -72,17 +65,41 @@ export interface SolanaNativeTransferRequest {
|
|
|
72
65
|
blockhash: string;
|
|
73
66
|
}
|
|
74
67
|
/**
|
|
75
|
-
*
|
|
68
|
+
* Request for SPL token transfer
|
|
76
69
|
*/
|
|
77
|
-
export interface
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
amount: string | number;
|
|
81
|
-
blockhash: string;
|
|
82
|
-
tokenMint?: string;
|
|
83
|
-
tokenDecimals?: number;
|
|
70
|
+
export interface SolanaTokenTransferRequest extends SolanaNativeTransferRequest {
|
|
71
|
+
tokenMint: string;
|
|
72
|
+
tokenDecimals: number;
|
|
84
73
|
tokenProgram?: string;
|
|
85
|
-
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Request for Solana transfers with instructions
|
|
77
|
+
*/
|
|
78
|
+
export interface SolanaGenericTransferRequest {
|
|
79
|
+
feePayer: string;
|
|
80
|
+
blockhash: string;
|
|
81
|
+
instructions: SolanaTransactionInstruction[];
|
|
82
|
+
states?: SolanaAddressLookupTable[];
|
|
83
|
+
additionalRequests?: (SolanaNativeTransferRequest | SolanaTokenTransferRequest)[];
|
|
84
|
+
}
|
|
85
|
+
export interface SolanaAddressLookupTable {
|
|
86
|
+
deactivationSlot: bigint;
|
|
87
|
+
lastExtendedSlot: number;
|
|
88
|
+
lastExtendedStartIndex: number;
|
|
89
|
+
key: string;
|
|
90
|
+
authority?: string;
|
|
91
|
+
addresses: string[];
|
|
92
|
+
}
|
|
93
|
+
export interface SolanaTransactionInstruction {
|
|
94
|
+
programId: string;
|
|
95
|
+
accounts: SolanaAccountMeta[];
|
|
96
|
+
data: string;
|
|
97
|
+
}
|
|
98
|
+
export interface SolanaAccountMeta {
|
|
99
|
+
shouldFillPubkey: boolean;
|
|
100
|
+
pubKey: string | null;
|
|
101
|
+
isWritable: boolean;
|
|
102
|
+
isSigner: boolean;
|
|
86
103
|
}
|
|
87
104
|
/**
|
|
88
105
|
* Common Transaction Types
|
|
@@ -99,11 +116,13 @@ export interface BatchTransactionResult {
|
|
|
99
116
|
status: number;
|
|
100
117
|
atomic: boolean;
|
|
101
118
|
receipts: Array<{
|
|
102
|
-
transactionHash:
|
|
119
|
+
transactionHash: TransactionResult;
|
|
103
120
|
}>;
|
|
104
121
|
}
|
|
105
122
|
/**
|
|
106
123
|
* Generic transaction request that can be either EVM or Solana
|
|
107
124
|
*/
|
|
108
|
-
export type TransactionRequest =
|
|
125
|
+
export type TransactionRequest = EthereumTransactionRequest | SolanaTransactionRequest;
|
|
126
|
+
export type EthereumTransactionRequest = EVMNativeTransferRequest | EVMContractCallRequest | EVMBatchTransactionRequest;
|
|
127
|
+
export type SolanaTransactionRequest = SolanaNativeTransferRequest | SolanaTokenTransferRequest | SolanaGenericTransferRequest;
|
|
109
128
|
//# sourceMappingURL=transactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAA;IAEvB,GAAG,EAAE,GAAG,EAAE,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,YAAY,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/connector.ts
CHANGED
|
@@ -7,7 +7,11 @@ import type {
|
|
|
7
7
|
IntegratedBrowserInjectedProvider,
|
|
8
8
|
WalletConnectProvider
|
|
9
9
|
} from './UWC-state'
|
|
10
|
-
import type {
|
|
10
|
+
import type {
|
|
11
|
+
EVMCapabilities,
|
|
12
|
+
TransactionRequest,
|
|
13
|
+
TransactionResult
|
|
14
|
+
} from './transactions'
|
|
11
15
|
|
|
12
16
|
/**
|
|
13
17
|
* Result interface for connect operations
|
|
@@ -115,4 +119,6 @@ export interface Connector {
|
|
|
115
119
|
| IntegratedBrowserInjectedProvider
|
|
116
120
|
| WalletConnectProvider
|
|
117
121
|
): Promise<TransactionResult>
|
|
122
|
+
|
|
123
|
+
getWalletCapabilities?(from: string): Promise<Record<string, EVMCapabilities>>
|
|
118
124
|
}
|
package/src/network-rpc.ts
CHANGED
package/src/react-hooks.ts
CHANGED
|
@@ -6,7 +6,8 @@ import type {
|
|
|
6
6
|
AvailableAddress,
|
|
7
7
|
TransactionRequest,
|
|
8
8
|
TransactionResult,
|
|
9
|
-
WalletError
|
|
9
|
+
WalletError,
|
|
10
|
+
EVMCapabilities
|
|
10
11
|
} from './index'
|
|
11
12
|
|
|
12
13
|
// useConnection hook types
|
|
@@ -121,6 +122,14 @@ export interface UseSessionReturn {
|
|
|
121
122
|
* The currently selected network, or null if not connected
|
|
122
123
|
*/
|
|
123
124
|
activeNetwork: Network | null
|
|
125
|
+
/**
|
|
126
|
+
* The capabilities of the currently connected wallet, or null if not connected
|
|
127
|
+
*/
|
|
128
|
+
activeWalletCapabilities: Record<string, EVMCapabilities> | null
|
|
129
|
+
/**
|
|
130
|
+
* The capabilities of the currently connected wallet on the active network, or null if not connected
|
|
131
|
+
*/
|
|
132
|
+
activeNetworkWalletCapabilities: EVMCapabilities | null
|
|
124
133
|
/**
|
|
125
134
|
* List of networks available for the connected wallet
|
|
126
135
|
*/
|
package/src/session.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ConnectionMode } from './connection-mode'
|
|
2
2
|
import type { Network, NetworkId } from './networks'
|
|
3
|
+
import type { EVMCapabilities } from './transactions'
|
|
3
4
|
import type { WalletMetadata } from './UWC-state'
|
|
4
5
|
|
|
5
6
|
export interface AvailableAddress {
|
|
@@ -10,6 +11,8 @@ export interface AvailableAddress {
|
|
|
10
11
|
export interface Session {
|
|
11
12
|
connectionMode: ConnectionMode | null
|
|
12
13
|
activeNetwork: Network | null
|
|
14
|
+
activeWalletCapabilities: Record<string, EVMCapabilities> | null
|
|
15
|
+
activeNetworkWalletCapabilities: EVMCapabilities | null
|
|
13
16
|
activeAddress: string | null
|
|
14
17
|
availableNetworks: Network[]
|
|
15
18
|
activeWallet: WalletMetadata | null
|
package/src/signature.ts
CHANGED
package/src/transactions.ts
CHANGED
|
@@ -35,15 +35,6 @@ export interface EVMContractCallRequest {
|
|
|
35
35
|
gasConfig?: EVMGasConfig
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
/**
|
|
39
|
-
* Single call in a batch transaction
|
|
40
|
-
*/
|
|
41
|
-
export interface EVMBatchCall {
|
|
42
|
-
to: string
|
|
43
|
-
value: string
|
|
44
|
-
data?: string
|
|
45
|
-
}
|
|
46
|
-
|
|
47
38
|
/**
|
|
48
39
|
* Request for batch EVM transactions (EIP-5792)
|
|
49
40
|
*/
|
|
@@ -52,21 +43,24 @@ export interface EVMBatchTransactionRequest {
|
|
|
52
43
|
from: string
|
|
53
44
|
chainId: string
|
|
54
45
|
atomicRequired: boolean
|
|
55
|
-
calls:
|
|
46
|
+
calls: (EVMNativeTransferRequest | EVMContractCallRequest)[]
|
|
56
47
|
}
|
|
57
48
|
|
|
58
49
|
/**
|
|
59
50
|
* EVM wallet capabilities
|
|
60
51
|
*/
|
|
61
52
|
export interface EVMCapabilities {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
paymasterService?: {
|
|
66
|
-
supported: boolean
|
|
67
|
-
}
|
|
53
|
+
alternateGasFees?: EVMCapability
|
|
54
|
+
atomic?: EVMCapability
|
|
55
|
+
paymasterService?: EVMCapability
|
|
68
56
|
}
|
|
69
57
|
|
|
58
|
+
export type EVMCapability = {
|
|
59
|
+
status: EVMCapabilityStatus
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export type EVMCapabilityStatus = 'supported' | 'ready' | 'unsupported'
|
|
63
|
+
|
|
70
64
|
/**
|
|
71
65
|
* Solana Transaction Types
|
|
72
66
|
*/
|
|
@@ -82,18 +76,49 @@ export interface SolanaNativeTransferRequest {
|
|
|
82
76
|
}
|
|
83
77
|
|
|
84
78
|
/**
|
|
85
|
-
*
|
|
79
|
+
* Request for SPL token transfer
|
|
86
80
|
*/
|
|
87
|
-
export interface
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
blockhash: string
|
|
92
|
-
// Token-specific
|
|
93
|
-
tokenMint?: string
|
|
94
|
-
tokenDecimals?: number
|
|
81
|
+
export interface SolanaTokenTransferRequest
|
|
82
|
+
extends SolanaNativeTransferRequest {
|
|
83
|
+
tokenMint: string
|
|
84
|
+
tokenDecimals: number
|
|
95
85
|
tokenProgram?: string
|
|
96
|
-
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Request for Solana transfers with instructions
|
|
90
|
+
*/
|
|
91
|
+
export interface SolanaGenericTransferRequest {
|
|
92
|
+
feePayer: string
|
|
93
|
+
blockhash: string
|
|
94
|
+
instructions: SolanaTransactionInstruction[]
|
|
95
|
+
states?: SolanaAddressLookupTable[]
|
|
96
|
+
additionalRequests?: (
|
|
97
|
+
| SolanaNativeTransferRequest
|
|
98
|
+
| SolanaTokenTransferRequest
|
|
99
|
+
)[]
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface SolanaAddressLookupTable {
|
|
103
|
+
deactivationSlot: bigint
|
|
104
|
+
lastExtendedSlot: number
|
|
105
|
+
lastExtendedStartIndex: number
|
|
106
|
+
key: string
|
|
107
|
+
authority?: string
|
|
108
|
+
addresses: string[]
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface SolanaTransactionInstruction {
|
|
112
|
+
programId: string
|
|
113
|
+
accounts: SolanaAccountMeta[]
|
|
114
|
+
data: string
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface SolanaAccountMeta {
|
|
118
|
+
shouldFillPubkey: boolean
|
|
119
|
+
pubKey: string | null
|
|
120
|
+
isWritable: boolean
|
|
121
|
+
isSigner: boolean
|
|
97
122
|
}
|
|
98
123
|
|
|
99
124
|
/**
|
|
@@ -113,7 +138,7 @@ export interface BatchTransactionResult {
|
|
|
113
138
|
status: number
|
|
114
139
|
atomic: boolean
|
|
115
140
|
receipts: Array<{
|
|
116
|
-
transactionHash:
|
|
141
|
+
transactionHash: TransactionResult
|
|
117
142
|
}>
|
|
118
143
|
}
|
|
119
144
|
|
|
@@ -121,7 +146,15 @@ export interface BatchTransactionResult {
|
|
|
121
146
|
* Generic transaction request that can be either EVM or Solana
|
|
122
147
|
*/
|
|
123
148
|
export type TransactionRequest =
|
|
149
|
+
| EthereumTransactionRequest
|
|
150
|
+
| SolanaTransactionRequest
|
|
151
|
+
|
|
152
|
+
export type EthereumTransactionRequest =
|
|
124
153
|
| EVMNativeTransferRequest
|
|
125
154
|
| EVMContractCallRequest
|
|
126
155
|
| EVMBatchTransactionRequest
|
|
156
|
+
|
|
157
|
+
export type SolanaTransactionRequest =
|
|
127
158
|
| SolanaNativeTransferRequest
|
|
159
|
+
| SolanaTokenTransferRequest
|
|
160
|
+
| SolanaGenericTransferRequest
|