@reown/appkit-common-react-native 0.0.0-feat-multi-social-20250701185040 → 0.0.0-feat-multi-social-20250708154835

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.
@@ -6,6 +6,44 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.EVMAdapter = void 0;
7
7
  var _BlockchainAdapter = require("./BlockchainAdapter");
8
8
  var _NumberUtil = require("../utils/NumberUtil");
9
+ // Type definitions for writeContract
10
+
11
+ // Simple ABI encoder for ERC20 functions
12
+ function encodeERC20Function(method, params) {
13
+ const functionSelectors = {
14
+ transfer: '0xa9059cbb',
15
+ // transfer(address,uint256)
16
+ transferFrom: '0x23b872dd',
17
+ // transferFrom(address,address,uint256)
18
+ approve: '0x095ea7b3' // approve(address,uint256)
19
+ };
20
+
21
+ const selector = functionSelectors[method];
22
+ if (!selector) {
23
+ throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
24
+ }
25
+ let encodedParams = '';
26
+ switch (method) {
27
+ case 'transfer':
28
+ if (params.length !== 2) throw new Error('transfer requires 2 parameters: to, amount');
29
+ const [to, amount] = params;
30
+ encodedParams = to.toLowerCase().slice(2).padStart(64, '0') + amount.toString(16).padStart(64, '0');
31
+ break;
32
+ case 'transferFrom':
33
+ if (params.length !== 3) throw new Error('transferFrom requires 3 parameters: from, to, amount');
34
+ const [from, toTransferFrom, amountTransferFrom] = params;
35
+ encodedParams = from.toLowerCase().slice(2).padStart(64, '0') + toTransferFrom.toLowerCase().slice(2).padStart(64, '0') + amountTransferFrom.toString(16).padStart(64, '0');
36
+ break;
37
+ case 'approve':
38
+ if (params.length !== 2) throw new Error('approve requires 2 parameters: spender, amount');
39
+ const [spender, amountApprove] = params;
40
+ encodedParams = spender.toLowerCase().slice(2).padStart(64, '0') + amountApprove.toString(16).padStart(64, '0');
41
+ break;
42
+ default:
43
+ throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
44
+ }
45
+ return selector + encodedParams;
46
+ }
9
47
  class EVMAdapter extends _BlockchainAdapter.BlockchainAdapter {
10
48
  async signMessage(address, message, chain) {
11
49
  const provider = this.getProvider();
@@ -89,6 +127,141 @@ class EVMAdapter extends _BlockchainAdapter.BlockchainAdapter {
89
127
 
90
128
  return receipt?.blockHash || null;
91
129
  }
130
+
131
+ /**
132
+ * Executes a write operation on an ERC20 smart contract.
133
+ * This function is library-agnostic and uses only the provider for blockchain interactions.
134
+ *
135
+ * @param data - The contract interaction data
136
+ * @param data.tokenAddress - The ERC20 token contract address
137
+ * @param data.receiverAddress - The recipient address (required for transfer method)
138
+ * @param data.tokenAmount - The amount of tokens to transfer/approve
139
+ * @param data.fromAddress - The sender's address
140
+ * @param data.method - The ERC20 method to call: 'transfer', 'transferFrom', or 'approve'
141
+ * @param data.spenderAddress - The spender address (required for transferFrom and approve methods)
142
+ * @param data.abi - Optional ABI for future extensibility
143
+ *
144
+ * @returns Promise resolving to the transaction block hash or null if failed
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * // Transfer tokens
149
+ * const result = await adapter.writeContract({
150
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
151
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
152
+ * tokenAmount: BigInt(1000000000000000000), // 1 token with 18 decimals
153
+ * fromAddress: '0x1234567890123456789012345678901234567890',
154
+ * method: 'transfer'
155
+ * });
156
+ *
157
+ * // Approve tokens
158
+ * const result = await adapter.writeContract({
159
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
160
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
161
+ * tokenAmount: BigInt(1000000000000000000),
162
+ * fromAddress: '0x1234567890123456789012345678901234567890',
163
+ * method: 'approve',
164
+ * spenderAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd'
165
+ * });
166
+ * ```
167
+ */
168
+ async writeContract(data) {
169
+ const {
170
+ tokenAddress,
171
+ receiverAddress,
172
+ tokenAmount,
173
+ method,
174
+ fromAddress,
175
+ spenderAddress
176
+ } = data;
177
+ if (!this.getProvider()) {
178
+ throw new Error('EVMAdapter:writeContract - provider is undefined');
179
+ }
180
+ if (!fromAddress) {
181
+ throw new Error('EVMAdapter:writeContract - fromAddress is undefined');
182
+ }
183
+ if (!tokenAddress) {
184
+ throw new Error('EVMAdapter:writeContract - tokenAddress is undefined');
185
+ }
186
+ if (!tokenAmount) {
187
+ throw new Error('EVMAdapter:writeContract - tokenAmount is undefined');
188
+ }
189
+ if (!method) {
190
+ throw new Error('EVMAdapter:writeContract - method is undefined');
191
+ }
192
+
193
+ // Validate method-specific parameters
194
+ if (method === 'transfer' && !receiverAddress) {
195
+ throw new Error('EVMAdapter:writeContract - receiverAddress is required for transfer method');
196
+ }
197
+ if ((method === 'transferFrom' || method === 'approve') && !spenderAddress) {
198
+ throw new Error(`EVMAdapter:writeContract - spenderAddress is required for ${method} method`);
199
+ }
200
+
201
+ // Encode the function call data based on method
202
+ let encodedData;
203
+ switch (method) {
204
+ case 'transfer':
205
+ encodedData = encodeERC20Function('transfer', [receiverAddress, tokenAmount]);
206
+ break;
207
+ case 'transferFrom':
208
+ encodedData = encodeERC20Function('transferFrom', [fromAddress, receiverAddress, tokenAmount]);
209
+ break;
210
+ case 'approve':
211
+ encodedData = encodeERC20Function('approve', [spenderAddress, tokenAmount]);
212
+ break;
213
+ default:
214
+ throw new Error(`EVMAdapter:writeContract - method '${method}' is not supported`);
215
+ }
216
+
217
+ // Create transaction parameters
218
+ const txParams = {
219
+ from: fromAddress,
220
+ to: tokenAddress,
221
+ data: encodedData,
222
+ value: '0x0',
223
+ // No ETH value for token operations
224
+ type: '0x0' // legacy transaction type
225
+ };
226
+
227
+ try {
228
+ // Send the transaction
229
+ const txHash = await this.getProvider().request({
230
+ method: 'eth_sendTransaction',
231
+ params: [txParams]
232
+ });
233
+
234
+ // Wait for transaction receipt
235
+ let receipt = null;
236
+ let attempts = 0;
237
+ const maxAttempts = 60; // 60 seconds timeout
238
+
239
+ while (!receipt && attempts < maxAttempts) {
240
+ receipt = await this.getProvider().request({
241
+ method: 'eth_getTransactionReceipt',
242
+ params: [txHash]
243
+ });
244
+ if (!receipt) {
245
+ await new Promise(r => setTimeout(r, 1000)); // wait 1s
246
+ attempts++;
247
+ }
248
+ }
249
+ if (!receipt) {
250
+ throw new Error('EVMAdapter:writeContract - transaction timeout');
251
+ }
252
+
253
+ // Check if transaction was successful
254
+ if (receipt.status === '0x0') {
255
+ throw new Error('EVMAdapter:writeContract - transaction failed');
256
+ }
257
+ return receipt?.blockHash || null;
258
+ } catch (error) {
259
+ if (error instanceof Error) {
260
+ throw new Error(`EVMAdapter:writeContract - ${error.message}`);
261
+ }
262
+ throw new Error('EVMAdapter:writeContract - unknown error occurred');
263
+ }
264
+ }
92
265
  }
93
266
  exports.EVMAdapter = EVMAdapter;
94
267
  //# sourceMappingURL=EvmAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_BlockchainAdapter","require","_NumberUtil","EVMAdapter","BlockchainAdapter","signMessage","address","message","chain","provider","getProvider","Error","signature","request","method","params","estimateGas","to","data","chainNamespace","txParams","from","type","estimatedGasHex","BigInt","error","sendTransaction","value","NumberUtil","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash","exports"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_BlockchainAdapter","require","_NumberUtil","encodeERC20Function","method","params","functionSelectors","transfer","transferFrom","approve","selector","Error","encodedParams","length","to","amount","toLowerCase","slice","padStart","toString","from","toTransferFrom","amountTransferFrom","spender","amountApprove","EVMAdapter","BlockchainAdapter","signMessage","address","message","chain","provider","getProvider","signature","request","estimateGas","data","chainNamespace","txParams","type","estimatedGasHex","BigInt","error","sendTransaction","value","NumberUtil","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash","writeContract","tokenAddress","receiverAddress","tokenAmount","fromAddress","spenderAddress","encodedData","attempts","maxAttempts","status","exports"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"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"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ConstantsUtil = void 0;
7
7
  const ConstantsUtil = exports.ConstantsUtil = {
8
- VERSION: '0.0.0-feat-multi-social-20250701185040',
8
+ VERSION: '0.0.0-feat-multi-social-20250708154835',
9
9
  EIP155: 'eip155',
10
10
  ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
11
11
  WC_NAME_SUFFIX: '.reown.id',
@@ -25,6 +25,12 @@ class WalletConnector extends _events.EventEmitter {
25
25
  setProvider(provider) {
26
26
  this.provider = provider;
27
27
  }
28
+ async disconnect() {
29
+ await this.provider?.disconnect();
30
+ this.namespaces = undefined;
31
+ this.wallet = undefined;
32
+ this.properties = undefined;
33
+ }
28
34
  }
29
35
 
30
36
  //********** Provider Types **********//
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","WalletConnector","EventEmitter","constructor","type","init","ops","storage","metadata","setProvider","provider","exports"],"sourceRoot":"../../../src","sources":["utils/TypeUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AA6KA;;AAoBA;;AAsBA;;AA8BO,MAAeC,eAAe,SAASC,oBAAY,CAAC;EASzDC,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;AAUF;;AAEA;;AAmBA;;AAGA;;AA2DA;;AA8BA;AAAAC,OAAA,CAAAV,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["_events","require","WalletConnector","EventEmitter","constructor","type","init","ops","storage","metadata","setProvider","provider","disconnect","namespaces","undefined","wallet","properties","exports"],"sourceRoot":"../../../src","sources":["utils/TypeUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AA4KA;;AAgBA;;AAgBA;;AA8BO,MAAeC,eAAe,SAASC,oBAAY,CAAC;EASzDC,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;EAEA,MAAaC,UAAUA,CAAA,EAAG;IACxB,MAAM,IAAI,CAACD,QAAQ,EAAEC,UAAU,CAAC,CAAC;IACjC,IAAI,CAACC,UAAU,GAAGC,SAAS;IAC3B,IAAI,CAACC,MAAM,GAAGD,SAAS;IACvB,IAAI,CAACE,UAAU,GAAGF,SAAS;EAC7B;AAUF;;AAEA;;AAmBA;;AAGA;;AA8DA;;AA8BA;AAAAG,OAAA,CAAAf,eAAA,GAAAA,eAAA"}
@@ -1,5 +1,44 @@
1
1
  import { BlockchainAdapter } from './BlockchainAdapter';
2
2
  import { NumberUtil } from '../utils/NumberUtil';
3
+
4
+ // Type definitions for writeContract
5
+
6
+ // Simple ABI encoder for ERC20 functions
7
+ function encodeERC20Function(method, params) {
8
+ const functionSelectors = {
9
+ transfer: '0xa9059cbb',
10
+ // transfer(address,uint256)
11
+ transferFrom: '0x23b872dd',
12
+ // transferFrom(address,address,uint256)
13
+ approve: '0x095ea7b3' // approve(address,uint256)
14
+ };
15
+
16
+ const selector = functionSelectors[method];
17
+ if (!selector) {
18
+ throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
19
+ }
20
+ let encodedParams = '';
21
+ switch (method) {
22
+ case 'transfer':
23
+ if (params.length !== 2) throw new Error('transfer requires 2 parameters: to, amount');
24
+ const [to, amount] = params;
25
+ encodedParams = to.toLowerCase().slice(2).padStart(64, '0') + amount.toString(16).padStart(64, '0');
26
+ break;
27
+ case 'transferFrom':
28
+ if (params.length !== 3) throw new Error('transferFrom requires 3 parameters: from, to, amount');
29
+ const [from, toTransferFrom, amountTransferFrom] = params;
30
+ encodedParams = from.toLowerCase().slice(2).padStart(64, '0') + toTransferFrom.toLowerCase().slice(2).padStart(64, '0') + amountTransferFrom.toString(16).padStart(64, '0');
31
+ break;
32
+ case 'approve':
33
+ if (params.length !== 2) throw new Error('approve requires 2 parameters: spender, amount');
34
+ const [spender, amountApprove] = params;
35
+ encodedParams = spender.toLowerCase().slice(2).padStart(64, '0') + amountApprove.toString(16).padStart(64, '0');
36
+ break;
37
+ default:
38
+ throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
39
+ }
40
+ return selector + encodedParams;
41
+ }
3
42
  export class EVMAdapter extends BlockchainAdapter {
4
43
  async signMessage(address, message, chain) {
5
44
  const provider = this.getProvider();
@@ -83,5 +122,140 @@ export class EVMAdapter extends BlockchainAdapter {
83
122
 
84
123
  return receipt?.blockHash || null;
85
124
  }
125
+
126
+ /**
127
+ * Executes a write operation on an ERC20 smart contract.
128
+ * This function is library-agnostic and uses only the provider for blockchain interactions.
129
+ *
130
+ * @param data - The contract interaction data
131
+ * @param data.tokenAddress - The ERC20 token contract address
132
+ * @param data.receiverAddress - The recipient address (required for transfer method)
133
+ * @param data.tokenAmount - The amount of tokens to transfer/approve
134
+ * @param data.fromAddress - The sender's address
135
+ * @param data.method - The ERC20 method to call: 'transfer', 'transferFrom', or 'approve'
136
+ * @param data.spenderAddress - The spender address (required for transferFrom and approve methods)
137
+ * @param data.abi - Optional ABI for future extensibility
138
+ *
139
+ * @returns Promise resolving to the transaction block hash or null if failed
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * // Transfer tokens
144
+ * const result = await adapter.writeContract({
145
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
146
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
147
+ * tokenAmount: BigInt(1000000000000000000), // 1 token with 18 decimals
148
+ * fromAddress: '0x1234567890123456789012345678901234567890',
149
+ * method: 'transfer'
150
+ * });
151
+ *
152
+ * // Approve tokens
153
+ * const result = await adapter.writeContract({
154
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
155
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
156
+ * tokenAmount: BigInt(1000000000000000000),
157
+ * fromAddress: '0x1234567890123456789012345678901234567890',
158
+ * method: 'approve',
159
+ * spenderAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd'
160
+ * });
161
+ * ```
162
+ */
163
+ async writeContract(data) {
164
+ const {
165
+ tokenAddress,
166
+ receiverAddress,
167
+ tokenAmount,
168
+ method,
169
+ fromAddress,
170
+ spenderAddress
171
+ } = data;
172
+ if (!this.getProvider()) {
173
+ throw new Error('EVMAdapter:writeContract - provider is undefined');
174
+ }
175
+ if (!fromAddress) {
176
+ throw new Error('EVMAdapter:writeContract - fromAddress is undefined');
177
+ }
178
+ if (!tokenAddress) {
179
+ throw new Error('EVMAdapter:writeContract - tokenAddress is undefined');
180
+ }
181
+ if (!tokenAmount) {
182
+ throw new Error('EVMAdapter:writeContract - tokenAmount is undefined');
183
+ }
184
+ if (!method) {
185
+ throw new Error('EVMAdapter:writeContract - method is undefined');
186
+ }
187
+
188
+ // Validate method-specific parameters
189
+ if (method === 'transfer' && !receiverAddress) {
190
+ throw new Error('EVMAdapter:writeContract - receiverAddress is required for transfer method');
191
+ }
192
+ if ((method === 'transferFrom' || method === 'approve') && !spenderAddress) {
193
+ throw new Error(`EVMAdapter:writeContract - spenderAddress is required for ${method} method`);
194
+ }
195
+
196
+ // Encode the function call data based on method
197
+ let encodedData;
198
+ switch (method) {
199
+ case 'transfer':
200
+ encodedData = encodeERC20Function('transfer', [receiverAddress, tokenAmount]);
201
+ break;
202
+ case 'transferFrom':
203
+ encodedData = encodeERC20Function('transferFrom', [fromAddress, receiverAddress, tokenAmount]);
204
+ break;
205
+ case 'approve':
206
+ encodedData = encodeERC20Function('approve', [spenderAddress, tokenAmount]);
207
+ break;
208
+ default:
209
+ throw new Error(`EVMAdapter:writeContract - method '${method}' is not supported`);
210
+ }
211
+
212
+ // Create transaction parameters
213
+ const txParams = {
214
+ from: fromAddress,
215
+ to: tokenAddress,
216
+ data: encodedData,
217
+ value: '0x0',
218
+ // No ETH value for token operations
219
+ type: '0x0' // legacy transaction type
220
+ };
221
+
222
+ try {
223
+ // Send the transaction
224
+ const txHash = await this.getProvider().request({
225
+ method: 'eth_sendTransaction',
226
+ params: [txParams]
227
+ });
228
+
229
+ // Wait for transaction receipt
230
+ let receipt = null;
231
+ let attempts = 0;
232
+ const maxAttempts = 60; // 60 seconds timeout
233
+
234
+ while (!receipt && attempts < maxAttempts) {
235
+ receipt = await this.getProvider().request({
236
+ method: 'eth_getTransactionReceipt',
237
+ params: [txHash]
238
+ });
239
+ if (!receipt) {
240
+ await new Promise(r => setTimeout(r, 1000)); // wait 1s
241
+ attempts++;
242
+ }
243
+ }
244
+ if (!receipt) {
245
+ throw new Error('EVMAdapter:writeContract - transaction timeout');
246
+ }
247
+
248
+ // Check if transaction was successful
249
+ if (receipt.status === '0x0') {
250
+ throw new Error('EVMAdapter:writeContract - transaction failed');
251
+ }
252
+ return receipt?.blockHash || null;
253
+ } catch (error) {
254
+ if (error instanceof Error) {
255
+ throw new Error(`EVMAdapter:writeContract - ${error.message}`);
256
+ }
257
+ throw new Error('EVMAdapter:writeContract - unknown error occurred');
258
+ }
259
+ }
86
260
  }
87
261
  //# sourceMappingURL=EvmAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BlockchainAdapter","NumberUtil","EVMAdapter","signMessage","address","message","chain","provider","getProvider","Error","signature","request","method","params","estimateGas","to","data","chainNamespace","txParams","from","type","estimatedGasHex","BigInt","error","sendTransaction","value","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"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"}
1
+ {"version":3,"names":["BlockchainAdapter","NumberUtil","encodeERC20Function","method","params","functionSelectors","transfer","transferFrom","approve","selector","Error","encodedParams","length","to","amount","toLowerCase","slice","padStart","toString","from","toTransferFrom","amountTransferFrom","spender","amountApprove","EVMAdapter","signMessage","address","message","chain","provider","getProvider","signature","request","estimateGas","data","chainNamespace","txParams","type","estimatedGasHex","BigInt","error","sendTransaction","value","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash","writeContract","tokenAddress","receiverAddress","tokenAmount","fromAddress","spenderAddress","encodedData","attempts","maxAttempts","status"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export const ConstantsUtil = {
2
- VERSION: '0.0.0-feat-multi-social-20250701185040',
2
+ VERSION: '0.0.0-feat-multi-social-20250708154835',
3
3
  EIP155: 'eip155',
4
4
  ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
5
5
  WC_NAME_SUFFIX: '.reown.id',
@@ -20,6 +20,12 @@ export class WalletConnector extends EventEmitter {
20
20
  setProvider(provider) {
21
21
  this.provider = provider;
22
22
  }
23
+ async disconnect() {
24
+ await this.provider?.disconnect();
25
+ this.namespaces = undefined;
26
+ this.wallet = undefined;
27
+ this.properties = undefined;
28
+ }
23
29
  }
24
30
 
25
31
  //********** Provider Types **********//
@@ -1 +1 @@
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;;AA6KrC;;AAoBA;;AAsBA;;AA8BA,OAAO,MAAeC,eAAe,SAASD,YAAY,CAAC;EASzDE,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;AAUF;;AAEA;;AAmBA;;AAGA;;AA2DA;;AA8BA"}
1
+ {"version":3,"names":["EventEmitter","WalletConnector","constructor","type","init","ops","storage","metadata","setProvider","provider","disconnect","namespaces","undefined","wallet","properties"],"sourceRoot":"../../../src","sources":["utils/TypeUtil.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,QAAQ;;AA4KrC;;AAgBA;;AAgBA;;AA8BA,OAAO,MAAeC,eAAe,SAASD,YAAY,CAAC;EASzDE,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;EAEA,MAAaC,UAAUA,CAAA,EAAG;IACxB,MAAM,IAAI,CAACD,QAAQ,EAAEC,UAAU,CAAC,CAAC;IACjC,IAAI,CAACC,UAAU,GAAGC,SAAS;IAC3B,IAAI,CAACC,MAAM,GAAGD,SAAS;IACvB,IAAI,CAACE,UAAU,GAAGF,SAAS;EAC7B;AAUF;;AAEA;;AAmBA;;AAGA;;AA8DA;;AA8BA"}
@@ -1,7 +1,54 @@
1
1
  import { BlockchainAdapter } from './BlockchainAdapter';
2
+ export interface WriteContractData {
3
+ tokenAddress: `0x${string}`;
4
+ receiverAddress: `0x${string}`;
5
+ tokenAmount: bigint;
6
+ fromAddress: `0x${string}`;
7
+ method: 'transfer' | 'transferFrom' | 'approve';
8
+ abi?: any;
9
+ spenderAddress?: `0x${string}`;
10
+ }
2
11
  export declare abstract class EVMAdapter extends BlockchainAdapter {
3
12
  signMessage(address: string, message: string, chain?: string): Promise<string>;
4
13
  estimateGas({ address, to, data, chainNamespace }: any): Promise<bigint>;
5
14
  sendTransaction(data: any): Promise<`0x${string}` | null>;
15
+ /**
16
+ * Executes a write operation on an ERC20 smart contract.
17
+ * This function is library-agnostic and uses only the provider for blockchain interactions.
18
+ *
19
+ * @param data - The contract interaction data
20
+ * @param data.tokenAddress - The ERC20 token contract address
21
+ * @param data.receiverAddress - The recipient address (required for transfer method)
22
+ * @param data.tokenAmount - The amount of tokens to transfer/approve
23
+ * @param data.fromAddress - The sender's address
24
+ * @param data.method - The ERC20 method to call: 'transfer', 'transferFrom', or 'approve'
25
+ * @param data.spenderAddress - The spender address (required for transferFrom and approve methods)
26
+ * @param data.abi - Optional ABI for future extensibility
27
+ *
28
+ * @returns Promise resolving to the transaction block hash or null if failed
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // Transfer tokens
33
+ * const result = await adapter.writeContract({
34
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
35
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
36
+ * tokenAmount: BigInt(1000000000000000000), // 1 token with 18 decimals
37
+ * fromAddress: '0x1234567890123456789012345678901234567890',
38
+ * method: 'transfer'
39
+ * });
40
+ *
41
+ * // Approve tokens
42
+ * const result = await adapter.writeContract({
43
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
44
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
45
+ * tokenAmount: BigInt(1000000000000000000),
46
+ * fromAddress: '0x1234567890123456789012345678901234567890',
47
+ * method: 'approve',
48
+ * spenderAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd'
49
+ * });
50
+ * ```
51
+ */
52
+ writeContract(data: WriteContractData): Promise<`0x${string}` | null>;
6
53
  }
7
54
  //# sourceMappingURL=EvmAdapter.d.ts.map
@@ -1 +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,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB9E,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"}
1
+ {"version":3,"file":"EvmAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/EvmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;IAChD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAChC;AAkDD,8BAAsB,UAAW,SAAQ,iBAAiB;IAClD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB9E,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCxE,eAAe,CAAC,IAAI,EAAE,GAAG;IAyC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;CAwG5E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EvmAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmAdapter.test.d.ts","sourceRoot":"","sources":["../../../../src/adapters/__tests__/EvmAdapter.test.ts"],"names":[],"mappings":""}
@@ -48,19 +48,19 @@ export interface CaipNetwork {
48
48
  imageUrl?: string;
49
49
  }
50
50
  export interface Balance {
51
- name: string;
51
+ name?: string;
52
+ amount: string;
52
53
  symbol: string;
53
- chainId: string;
54
+ quantity?: {
55
+ decimals: string;
56
+ numeric: string;
57
+ };
58
+ chainId?: string;
54
59
  address?: CaipAddress;
55
60
  value?: number;
56
- price: number;
57
- quantity: BalanceQuantity;
58
- iconUrl: string;
61
+ price?: number;
62
+ iconUrl?: string;
59
63
  }
60
- type BalanceQuantity = {
61
- decimals: string;
62
- numeric: string;
63
- };
64
64
  export type TransactionStatus = 'confirmed' | 'failed' | 'pending';
65
65
  export type TransactionDirection = 'in' | 'out' | 'self';
66
66
  export type TransactionImage = {
@@ -154,11 +154,7 @@ export type ChainChangedEvent = {
154
154
  export type DisconnectEvent = {};
155
155
  export type BalanceChangedEvent = {
156
156
  address: CaipAddress;
157
- balance: {
158
- amount: string;
159
- symbol: string;
160
- contractAddress?: ContractAddress;
161
- };
157
+ balance: Balance;
162
158
  };
163
159
  export interface AdapterEvents {
164
160
  accountsChanged: (event: AccountsChangedEvent) => void;
@@ -167,16 +163,11 @@ export interface AdapterEvents {
167
163
  balanceChanged: (event: BalanceChangedEvent) => void;
168
164
  }
169
165
  export interface GetBalanceParams {
166
+ network: AppKitNetwork;
170
167
  address?: CaipAddress;
171
- network?: AppKitNetwork;
172
168
  tokens?: Tokens;
173
169
  }
174
- type ContractAddress = CaipAddress;
175
- export interface GetBalanceResponse {
176
- amount: string;
177
- symbol: string;
178
- contractAddress?: ContractAddress;
179
- }
170
+ export type GetBalanceResponse = Balance;
180
171
  interface BaseNamespace {
181
172
  chains?: CaipNetworkId[];
182
173
  accounts: CaipAddress[];
@@ -211,14 +202,15 @@ export declare abstract class WalletConnector extends EventEmitter {
211
202
  });
212
203
  init(ops: ConnectorInitOptions): Promise<void>;
213
204
  setProvider(provider: Provider): void;
205
+ disconnect(): Promise<void>;
214
206
  abstract connect(opts: ConnectOptions): Promise<Namespaces | undefined>;
215
- abstract disconnect(): Promise<void>;
216
207
  abstract getProvider(): Provider;
217
208
  abstract getNamespaces(): Namespaces;
218
209
  abstract getChainId(namespace: ChainNamespace): CaipNetworkId | undefined;
219
210
  abstract getWalletInfo(): WalletInfo | undefined;
220
211
  abstract getProperties(): ConnectionProperties | undefined;
221
212
  abstract switchNetwork(network: AppKitNetwork): Promise<void>;
213
+ abstract restoreSession(): Promise<boolean>;
222
214
  }
223
215
  export interface Provider {
224
216
  connect<T>(params?: any): Promise<T>;
@@ -254,7 +246,9 @@ export interface ConnectionProperties {
254
246
  email?: string;
255
247
  username?: string;
256
248
  smartAccounts?: CaipAddress[];
249
+ provider?: SocialProvider;
257
250
  }
251
+ export type AccountType = 'eoa' | 'smartAccount';
258
252
  export interface Storage {
259
253
  /**
260
254
  * Returns all keys in storage.
@@ -1 +1 @@
1
- {"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-common-react-native",
3
- "version": "0.0.0-feat-multi-social-20250701185040",
3
+ "version": "0.0.0-feat-multi-social-20250708154835",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -1,6 +1,65 @@
1
1
  import { BlockchainAdapter } from './BlockchainAdapter';
2
2
  import { NumberUtil } from '../utils/NumberUtil';
3
3
 
4
+ // Type definitions for writeContract
5
+ export interface WriteContractData {
6
+ tokenAddress: `0x${string}`;
7
+ receiverAddress: `0x${string}`;
8
+ tokenAmount: bigint;
9
+ fromAddress: `0x${string}`;
10
+ method: 'transfer' | 'transferFrom' | 'approve';
11
+ abi?: any; // Optional ABI for future extensibility
12
+ spenderAddress?: `0x${string}`; // Required for transferFrom and approve
13
+ }
14
+
15
+ // Simple ABI encoder for ERC20 functions
16
+ function encodeERC20Function(method: string, params: any[]): string {
17
+ const functionSelectors = {
18
+ transfer: '0xa9059cbb', // transfer(address,uint256)
19
+ transferFrom: '0x23b872dd', // transferFrom(address,address,uint256)
20
+ approve: '0x095ea7b3' // approve(address,uint256)
21
+ };
22
+
23
+ const selector = functionSelectors[method as keyof typeof functionSelectors];
24
+ if (!selector) {
25
+ throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
26
+ }
27
+
28
+ let encodedParams = '';
29
+
30
+ switch (method) {
31
+ case 'transfer':
32
+ if (params.length !== 2) throw new Error('transfer requires 2 parameters: to, amount');
33
+ const [to, amount] = params;
34
+ encodedParams =
35
+ to.toLowerCase().slice(2).padStart(64, '0') + amount.toString(16).padStart(64, '0');
36
+ break;
37
+
38
+ case 'transferFrom':
39
+ if (params.length !== 3)
40
+ throw new Error('transferFrom requires 3 parameters: from, to, amount');
41
+ const [from, toTransferFrom, amountTransferFrom] = params;
42
+ encodedParams =
43
+ from.toLowerCase().slice(2).padStart(64, '0') +
44
+ toTransferFrom.toLowerCase().slice(2).padStart(64, '0') +
45
+ amountTransferFrom.toString(16).padStart(64, '0');
46
+ break;
47
+
48
+ case 'approve':
49
+ if (params.length !== 2) throw new Error('approve requires 2 parameters: spender, amount');
50
+ const [spender, amountApprove] = params;
51
+ encodedParams =
52
+ spender.toLowerCase().slice(2).padStart(64, '0') +
53
+ amountApprove.toString(16).padStart(64, '0');
54
+ break;
55
+
56
+ default:
57
+ throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
58
+ }
59
+
60
+ return selector + encodedParams;
61
+ }
62
+
4
63
  export abstract class EVMAdapter extends BlockchainAdapter {
5
64
  async signMessage(address: string, message: string, chain?: string): Promise<string> {
6
65
  const provider = this.getProvider();
@@ -93,4 +152,146 @@ export abstract class EVMAdapter extends BlockchainAdapter {
93
152
 
94
153
  return receipt?.blockHash || null;
95
154
  }
155
+
156
+ /**
157
+ * Executes a write operation on an ERC20 smart contract.
158
+ * This function is library-agnostic and uses only the provider for blockchain interactions.
159
+ *
160
+ * @param data - The contract interaction data
161
+ * @param data.tokenAddress - The ERC20 token contract address
162
+ * @param data.receiverAddress - The recipient address (required for transfer method)
163
+ * @param data.tokenAmount - The amount of tokens to transfer/approve
164
+ * @param data.fromAddress - The sender's address
165
+ * @param data.method - The ERC20 method to call: 'transfer', 'transferFrom', or 'approve'
166
+ * @param data.spenderAddress - The spender address (required for transferFrom and approve methods)
167
+ * @param data.abi - Optional ABI for future extensibility
168
+ *
169
+ * @returns Promise resolving to the transaction block hash or null if failed
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * // Transfer tokens
174
+ * const result = await adapter.writeContract({
175
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
176
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
177
+ * tokenAmount: BigInt(1000000000000000000), // 1 token with 18 decimals
178
+ * fromAddress: '0x1234567890123456789012345678901234567890',
179
+ * method: 'transfer'
180
+ * });
181
+ *
182
+ * // Approve tokens
183
+ * const result = await adapter.writeContract({
184
+ * tokenAddress: '0x1234567890123456789012345678901234567890',
185
+ * receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
186
+ * tokenAmount: BigInt(1000000000000000000),
187
+ * fromAddress: '0x1234567890123456789012345678901234567890',
188
+ * method: 'approve',
189
+ * spenderAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd'
190
+ * });
191
+ * ```
192
+ */
193
+ async writeContract(data: WriteContractData): Promise<`0x${string}` | null> {
194
+ const { tokenAddress, receiverAddress, tokenAmount, method, fromAddress, spenderAddress } =
195
+ data;
196
+
197
+ if (!this.getProvider()) {
198
+ throw new Error('EVMAdapter:writeContract - provider is undefined');
199
+ }
200
+
201
+ if (!fromAddress) {
202
+ throw new Error('EVMAdapter:writeContract - fromAddress is undefined');
203
+ }
204
+
205
+ if (!tokenAddress) {
206
+ throw new Error('EVMAdapter:writeContract - tokenAddress is undefined');
207
+ }
208
+
209
+ if (!tokenAmount) {
210
+ throw new Error('EVMAdapter:writeContract - tokenAmount is undefined');
211
+ }
212
+
213
+ if (!method) {
214
+ throw new Error('EVMAdapter:writeContract - method is undefined');
215
+ }
216
+
217
+ // Validate method-specific parameters
218
+ if (method === 'transfer' && !receiverAddress) {
219
+ throw new Error('EVMAdapter:writeContract - receiverAddress is required for transfer method');
220
+ }
221
+
222
+ if ((method === 'transferFrom' || method === 'approve') && !spenderAddress) {
223
+ throw new Error(`EVMAdapter:writeContract - spenderAddress is required for ${method} method`);
224
+ }
225
+
226
+ // Encode the function call data based on method
227
+ let encodedData: string;
228
+
229
+ switch (method) {
230
+ case 'transfer':
231
+ encodedData = encodeERC20Function('transfer', [receiverAddress, tokenAmount]);
232
+ break;
233
+ case 'transferFrom':
234
+ encodedData = encodeERC20Function('transferFrom', [
235
+ fromAddress,
236
+ receiverAddress,
237
+ tokenAmount
238
+ ]);
239
+ break;
240
+ case 'approve':
241
+ encodedData = encodeERC20Function('approve', [spenderAddress, tokenAmount]);
242
+ break;
243
+ default:
244
+ throw new Error(`EVMAdapter:writeContract - method '${method}' is not supported`);
245
+ }
246
+
247
+ // Create transaction parameters
248
+ const txParams = {
249
+ from: fromAddress,
250
+ to: tokenAddress,
251
+ data: encodedData,
252
+ value: '0x0', // No ETH value for token operations
253
+ type: '0x0' // legacy transaction type
254
+ };
255
+
256
+ try {
257
+ // Send the transaction
258
+ const txHash = await this.getProvider().request({
259
+ method: 'eth_sendTransaction',
260
+ params: [txParams]
261
+ });
262
+
263
+ // Wait for transaction receipt
264
+ let receipt = null;
265
+ let attempts = 0;
266
+ const maxAttempts = 60; // 60 seconds timeout
267
+
268
+ while (!receipt && attempts < maxAttempts) {
269
+ receipt = (await this.getProvider().request({
270
+ method: 'eth_getTransactionReceipt',
271
+ params: [txHash]
272
+ })) as { blockHash?: `0x${string}`; status?: string };
273
+
274
+ if (!receipt) {
275
+ await new Promise(r => setTimeout(r, 1000)); // wait 1s
276
+ attempts++;
277
+ }
278
+ }
279
+
280
+ if (!receipt) {
281
+ throw new Error('EVMAdapter:writeContract - transaction timeout');
282
+ }
283
+
284
+ // Check if transaction was successful
285
+ if (receipt.status === '0x0') {
286
+ throw new Error('EVMAdapter:writeContract - transaction failed');
287
+ }
288
+
289
+ return receipt?.blockHash || null;
290
+ } catch (error) {
291
+ if (error instanceof Error) {
292
+ throw new Error(`EVMAdapter:writeContract - ${error.message}`);
293
+ }
294
+ throw new Error('EVMAdapter:writeContract - unknown error occurred');
295
+ }
296
+ }
96
297
  }
@@ -0,0 +1,104 @@
1
+ import { EVMAdapter } from '../EvmAdapter';
2
+ import type { CaipAddress } from '../../utils/TypeUtil';
3
+
4
+ // Mock implementation for testing
5
+ class MockEVMAdapter extends EVMAdapter {
6
+ private mockProvider: any;
7
+
8
+ constructor() {
9
+ super({ projectId: 'test', supportedNamespace: 'eip155' });
10
+ this.mockProvider = {
11
+ request: jest.fn(),
12
+ on: jest.fn(),
13
+ off: jest.fn()
14
+ };
15
+ }
16
+
17
+ setMockProvider(provider: any) {
18
+ this.mockProvider = provider;
19
+ }
20
+
21
+ override getProvider() {
22
+ return this.mockProvider;
23
+ }
24
+
25
+ async disconnect(): Promise<void> {}
26
+ getSupportedNamespace() {
27
+ return 'eip155' as const;
28
+ }
29
+ async getBalance() {
30
+ return { amount: '0', symbol: 'ETH' };
31
+ }
32
+ getAccounts(): CaipAddress[] | undefined {
33
+ return ['eip155:1:0x1234567890123456789012345678901234567890'];
34
+ }
35
+ async switchNetwork() {}
36
+ }
37
+
38
+ describe('EVMAdapter', () => {
39
+ let adapter: MockEVMAdapter;
40
+
41
+ beforeEach(() => {
42
+ adapter = new MockEVMAdapter();
43
+ });
44
+
45
+ describe('writeContract', () => {
46
+ it('should encode transfer function correctly', async () => {
47
+ const mockProvider = {
48
+ request: jest
49
+ .fn()
50
+ .mockResolvedValueOnce('0x1234567890abcdef') // eth_sendTransaction
51
+ .mockResolvedValueOnce({ blockHash: '0xabcdef1234567890', status: '0x1' }) // eth_getTransactionReceipt
52
+ };
53
+ adapter.setMockProvider(mockProvider);
54
+
55
+ const result = await adapter.writeContract({
56
+ tokenAddress: '0x1234567890123456789012345678901234567890',
57
+ receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
58
+ tokenAmount: BigInt(1000000000000000000), // 1 token with 18 decimals
59
+ fromAddress: '0x1234567890123456789012345678901234567890',
60
+ method: 'transfer'
61
+ });
62
+
63
+ expect(result).toBe('0xabcdef1234567890');
64
+ expect(mockProvider.request).toHaveBeenCalledWith({
65
+ method: 'eth_sendTransaction',
66
+ params: [
67
+ {
68
+ from: '0x1234567890123456789012345678901234567890',
69
+ to: '0x1234567890123456789012345678901234567890',
70
+ data: '0xa9059cbb000000000000000000000000abcdefabcdefabcdefabcdefabcdefabcdefabcd0000000000000000000000000000000000000000000000000de0b6b3a7640000',
71
+ value: '0x0',
72
+ type: '0x0'
73
+ }
74
+ ]
75
+ });
76
+ });
77
+
78
+ it('should throw error for unsupported method', async () => {
79
+ await expect(
80
+ adapter.writeContract({
81
+ tokenAddress: '0x1234567890123456789012345678901234567890',
82
+ receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
83
+ tokenAmount: BigInt(1000000000000000000),
84
+ fromAddress: '0x1234567890123456789012345678901234567890',
85
+ method: 'unsupported' as any
86
+ })
87
+ ).rejects.toThrow("method 'unsupported' is not supported");
88
+ });
89
+
90
+ it('should throw error when provider is undefined', async () => {
91
+ adapter.setMockProvider(undefined);
92
+
93
+ await expect(
94
+ adapter.writeContract({
95
+ tokenAddress: '0x1234567890123456789012345678901234567890',
96
+ receiverAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
97
+ tokenAmount: BigInt(1000000000000000000),
98
+ fromAddress: '0x1234567890123456789012345678901234567890',
99
+ method: 'transfer'
100
+ })
101
+ ).rejects.toThrow('provider is undefined');
102
+ });
103
+ });
104
+ });
@@ -1,5 +1,5 @@
1
1
  export const ConstantsUtil = {
2
- VERSION: '0.0.0-feat-multi-social-20250701185040',
2
+ VERSION: '0.0.0-feat-multi-social-20250708154835',
3
3
 
4
4
  EIP155: 'eip155',
5
5
  ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
@@ -47,21 +47,20 @@ export interface CaipNetwork {
47
47
  }
48
48
 
49
49
  export interface Balance {
50
- name: string;
50
+ name?: string;
51
+ amount: string;
51
52
  symbol: string;
52
- chainId: string;
53
- address?: CaipAddress;
54
- value?: number;
55
- price: number;
56
- quantity: BalanceQuantity;
57
- iconUrl: string;
53
+ quantity?: {
54
+ decimals: string;
55
+ numeric: string;
56
+ };
57
+ chainId?: string;
58
+ address?: CaipAddress; // contract address
59
+ value?: number; //total value of the amount in currency
60
+ price?: number; //price of the token in currency
61
+ iconUrl?: string;
58
62
  }
59
63
 
60
- type BalanceQuantity = {
61
- decimals: string;
62
- numeric: string;
63
- };
64
-
65
64
  export type TransactionStatus = 'confirmed' | 'failed' | 'pending';
66
65
  export type TransactionDirection = 'in' | 'out' | 'self';
67
66
  export type TransactionImage = {
@@ -184,11 +183,7 @@ export type DisconnectEvent = {};
184
183
 
185
184
  export type BalanceChangedEvent = {
186
185
  address: CaipAddress;
187
- balance: {
188
- amount: string;
189
- symbol: string;
190
- contractAddress?: ContractAddress;
191
- };
186
+ balance: Balance;
192
187
  };
193
188
 
194
189
  //********** Adapter Event Map **********//
@@ -200,18 +195,12 @@ export interface AdapterEvents {
200
195
  }
201
196
 
202
197
  export interface GetBalanceParams {
198
+ network: AppKitNetwork;
203
199
  address?: CaipAddress;
204
- network?: AppKitNetwork;
205
200
  tokens?: Tokens;
206
201
  }
207
202
 
208
- type ContractAddress = CaipAddress;
209
-
210
- export interface GetBalanceResponse {
211
- amount: string;
212
- symbol: string;
213
- contractAddress?: ContractAddress;
214
- }
203
+ export type GetBalanceResponse = Balance;
215
204
 
216
205
  //********** Connector Types **********//
217
206
  interface BaseNamespace {
@@ -266,14 +255,21 @@ export abstract class WalletConnector extends EventEmitter {
266
255
  this.provider = provider;
267
256
  }
268
257
 
258
+ public async disconnect() {
259
+ await this.provider?.disconnect();
260
+ this.namespaces = undefined;
261
+ this.wallet = undefined;
262
+ this.properties = undefined;
263
+ }
264
+
269
265
  abstract connect(opts: ConnectOptions): Promise<Namespaces | undefined>;
270
- abstract disconnect(): Promise<void>;
271
266
  abstract getProvider(): Provider;
272
267
  abstract getNamespaces(): Namespaces;
273
268
  abstract getChainId(namespace: ChainNamespace): CaipNetworkId | undefined;
274
269
  abstract getWalletInfo(): WalletInfo | undefined;
275
270
  abstract getProperties(): ConnectionProperties | undefined;
276
271
  abstract switchNetwork(network: AppKitNetwork): Promise<void>;
272
+ abstract restoreSession(): Promise<boolean>;
277
273
  }
278
274
 
279
275
  //********** Provider Types **********//
@@ -324,8 +320,11 @@ export interface ConnectionProperties {
324
320
  email?: string;
325
321
  username?: string;
326
322
  smartAccounts?: CaipAddress[];
323
+ provider?: SocialProvider;
327
324
  }
328
325
 
326
+ export type AccountType = 'eoa' | 'smartAccount';
327
+
329
328
  export interface Storage {
330
329
  /**
331
330
  * Returns all keys in storage.