@atxp/worldchain 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/spendPermissionShim.ts","../src/worldchainPaymentMaker.ts","../src/mainWalletPaymentMaker.ts","../src/cache.ts","../src/smartWalletHelpers.ts","../src/worldchainAccount.ts","../src/minikit.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["ERC20_ABI","USDC_DECIMALS"],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { WORLD_CHAIN_MAINNET, getWorldChainMainnetWithRPC, USDC_CONTRACT_ADDRESS_WORLD_MAINNET } from '@atxp/client';
2
+ import { ConsoleLogger } from '@atxp/common';
3
+ import { encodeFunctionData, createWalletClient, custom, createPublicClient, http } from 'viem';
4
+
5
+ const USDC_DECIMALS = 6;
6
+ // Minimal ERC20 ABI for transfer function
7
+ const ERC20_ABI = [
8
+ {
9
+ inputs: [
10
+ { name: 'to', type: 'address' },
11
+ { name: 'amount', type: 'uint256' }
12
+ ],
13
+ name: 'transfer',
14
+ outputs: [{ name: '', type: 'bool' }],
15
+ stateMutability: 'nonpayable',
16
+ type: 'function'
17
+ }
18
+ ];
19
+ class MainWalletPaymentMaker {
20
+ constructor(walletAddress, provider, logger, chainId = WORLD_CHAIN_MAINNET.id, customRpcUrl) {
21
+ this.walletAddress = walletAddress;
22
+ this.provider = provider;
23
+ this.logger = logger ?? new ConsoleLogger();
24
+ this.chainId = chainId;
25
+ this.customRpcUrl = customRpcUrl;
26
+ }
27
+ async generateJWT({ paymentRequestId, codeChallenge }) {
28
+ const timestamp = Math.floor(Date.now() / 1000);
29
+ // Create proper JWT header and payload for ES256K
30
+ const header = {
31
+ alg: 'ES256K',
32
+ typ: 'JWT'
33
+ };
34
+ const payload = {
35
+ sub: this.walletAddress,
36
+ iss: 'accounts.atxp.ai',
37
+ aud: 'https://auth.atxp.ai',
38
+ iat: timestamp,
39
+ exp: timestamp + 3600, // 1 hour expiration
40
+ payment_request_id: paymentRequestId,
41
+ code_challenge: codeChallenge,
42
+ chain_id: this.chainId
43
+ };
44
+ // Encode header and payload to base64url
45
+ const encodedHeader = Buffer.from(JSON.stringify(header)).toString('base64url');
46
+ const encodedPayload = Buffer.from(JSON.stringify(payload)).toString('base64url');
47
+ // Create the message that ES256K should actually sign (header.payload)
48
+ const messageToSign = `${encodedHeader}.${encodedPayload}`;
49
+ // Sign the actual JWT header.payload string using personal_sign
50
+ const signature = await this.provider.request({
51
+ method: 'personal_sign',
52
+ params: [messageToSign, this.walletAddress]
53
+ });
54
+ // Use the legacy format (base64url of hex string with 0x prefix)
55
+ // This matches what the ES256K verification expects
56
+ const encodedSignature = Buffer.from(signature).toString('base64url');
57
+ const jwt = `${encodedHeader}.${encodedPayload}.${encodedSignature}`;
58
+ this.logger.info(`Generated ES256K JWT for main wallet: ${this.walletAddress}`);
59
+ return jwt;
60
+ }
61
+ async makePayment(amount, currency, receiver, memo) {
62
+ if (currency !== 'USDC') {
63
+ throw new Error('Only USDC currency is supported; received ' + currency);
64
+ }
65
+ // Use World Chain Mainnet configuration
66
+ const usdcAddress = USDC_CONTRACT_ADDRESS_WORLD_MAINNET;
67
+ const chainConfig = this.customRpcUrl
68
+ ? getWorldChainMainnetWithRPC(this.customRpcUrl)
69
+ : WORLD_CHAIN_MAINNET;
70
+ const chainName = chainConfig.name;
71
+ this.logger.info(`Making direct wallet payment of ${amount} ${currency} to ${receiver} on ${chainName} with memo: ${memo}`);
72
+ // Convert amount to USDC units (6 decimals)
73
+ const amountInUSDCUnits = BigInt(amount.multipliedBy(10 ** USDC_DECIMALS).toFixed(0));
74
+ // Prepare transfer call data
75
+ let transferCallData = encodeFunctionData({
76
+ abi: ERC20_ABI,
77
+ functionName: 'transfer',
78
+ args: [receiver, amountInUSDCUnits]
79
+ });
80
+ // Append memo to call data if present
81
+ if (memo && memo.trim()) {
82
+ const memoHex = Buffer.from(memo.trim(), 'utf8').toString('hex');
83
+ transferCallData = (transferCallData + memoHex);
84
+ this.logger.info(`Added memo "${memo.trim()}" to transfer call`);
85
+ }
86
+ // Create wallet client
87
+ const walletClient = createWalletClient({
88
+ chain: chainConfig,
89
+ transport: custom(this.provider)
90
+ });
91
+ // Send transaction directly from main wallet
92
+ const txHash = await walletClient.sendTransaction({
93
+ account: this.walletAddress,
94
+ to: usdcAddress,
95
+ data: transferCallData,
96
+ value: 0n,
97
+ chain: chainConfig
98
+ });
99
+ this.logger.info(`Payment sent successfully. TxHash: ${txHash}`);
100
+ this.logger.info(`Transaction URL: https://worldscan.org/tx/${txHash}`);
101
+ // Wait for transaction confirmation to ensure it's mined
102
+ // This prevents "Transaction receipt could not be found" errors
103
+ try {
104
+ this.logger.info(`Waiting for transaction confirmation...`);
105
+ // Create a public client to wait for the transaction receipt
106
+ // Use custom RPC URL if provided for better consistency with auth server
107
+ const rpcUrl = this.customRpcUrl || chainConfig.rpcUrls.default.http[0];
108
+ const publicClient = createPublicClient({
109
+ chain: chainConfig,
110
+ transport: http(rpcUrl, {
111
+ timeout: 30000, // 30 second timeout for individual RPC calls
112
+ retryCount: 3, // Retry failed requests
113
+ retryDelay: 1000 // 1 second delay between retries
114
+ })
115
+ });
116
+ await publicClient.waitForTransactionReceipt({
117
+ hash: txHash,
118
+ confirmations: 1, // Reduce to 1 confirmation to speed up
119
+ timeout: 120000 // 2 minute timeout - World Chain can be slow
120
+ });
121
+ this.logger.info(`Transaction confirmed with 1 confirmation`);
122
+ // Add extra delay to ensure the transaction is well propagated across network
123
+ await new Promise(resolve => setTimeout(resolve, 5000));
124
+ }
125
+ catch (error) {
126
+ this.logger.warn(`Could not wait for confirmations: ${error}`);
127
+ // Add a much longer delay if confirmation failed - World Chain can be slow
128
+ this.logger.info('Confirmation failed, adding delay for transaction to propagate...');
129
+ await new Promise(resolve => setTimeout(resolve, 30000));
130
+ }
131
+ return txHash;
132
+ }
133
+ }
134
+
135
+ export { MainWalletPaymentMaker };
136
+ //# sourceMappingURL=mainWalletPaymentMaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainWalletPaymentMaker.js","sources":["../src/mainWalletPaymentMaker.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAWA,MAAM,aAAa,GAAG,CAAC;AAMvB;AACA,MAAM,SAAS,GAAG;AAChB,IAAA;AACE,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;AAC/B,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS;AAClC,SAAA;AACD,QAAA,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACrC,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,IAAI,EAAE;AACP;CACO;MAEG,sBAAsB,CAAA;IAOjC,WAAA,CACE,aAAqB,EACrB,QAA4B,EAC5B,MAAe,EACf,OAAA,GAAkB,mBAAmB,CAAC,EAAE,EACxC,YAAqB,EAAA;AAErB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,aAAa,EAAE;AAC3C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC;AAEA,IAAA,MAAM,WAAW,CAAC,EAChB,gBAAgB,EAChB,aAAa,EAId,EAAA;AACC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;;AAG/C,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,GAAG,EAAE;SACN;AAED,QAAA,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,aAAa;AACvB,YAAA,GAAG,EAAE,kBAAkB;AACvB,YAAA,GAAG,EAAE,sBAAsB;AAC3B,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS,GAAG,IAAI;AACrB,YAAA,kBAAkB,EAAE,gBAAgB;AACpC,YAAA,cAAc,EAAE,aAAa;YAC7B,QAAQ,EAAE,IAAI,CAAC;SAChB;;AAGD,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC/E,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;;AAGjF,QAAA,MAAM,aAAa,GAAG,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,cAAc,EAAE;;QAG1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5C,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,MAAM,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa;AAC3C,SAAA,CAAC;;;AAIF,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAmB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAE/E,MAAM,GAAG,GAAG,CAAA,EAAG,aAAa,IAAI,cAAc,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE;QAEpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAAC,aAAa,CAAA,CAAE,CAAC;AAE/E,QAAA,OAAO,GAAG;IACZ;IAEA,MAAM,WAAW,CACf,MAAiB,EACjB,QAAkB,EAClB,QAAgB,EAChB,IAAY,EAAA;AAEZ,QAAA,IAAI,QAAQ,KAAK,MAAM,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,QAAQ,CAAC;QAC1E;;QAGA,MAAM,WAAW,GAAG,mCAAmC;AAEvD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC;AACvB,cAAE,2BAA2B,CAAC,IAAI,CAAC,YAAY;cAC7C,mBAAmB;AAEvB,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI;AAElC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mCAAmC,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,IAAA,EAAO,QAAQ,CAAA,IAAA,EAAO,SAAS,eAAe,IAAI,CAAA,CAAE,CAC1G;;AAGD,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;QAGrF,IAAI,gBAAgB,GAAG,kBAAkB,CAAC;AACxC,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,IAAI,EAAE,CAAC,QAAyB,EAAE,iBAAiB;AACpD,SAAA,CAAC;;AAGF,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChE,YAAA,gBAAgB,IAAI,gBAAgB,GAAG,OAAO,CAAQ;AACtD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,EAAE,CAAA,kBAAA,CAAoB,CAAC;QAClE;;QAGA,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACtC,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;AAChC,SAAA,CAAC;;AAGF,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC;YAChD,OAAO,EAAE,IAAI,CAAC,aAA8B;AAC5C,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,KAAK,EAAE;AACR,SAAA,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAA,CAAE,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,0CAAA,EAA6C,MAAM,CAAA,CAAE,CAAC;;;AAIvE,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,uCAAA,CAAyC,CAAC;;;AAI3D,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACtC,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;oBACtB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,IAAI;iBACjB;AACF,aAAA,CAAC;YAEF,MAAM,YAAY,CAAC,yBAAyB,CAAC;AAC3C,gBAAA,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,CAAC;gBAChB,OAAO,EAAE,MAAM;AAChB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,yCAAA,CAA2C,CAAC;;AAG7D,YAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzD;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAE,CAAC;;AAE9D,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC;AACrF,YAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D;AAEA,QAAA,OAAO,MAAM;IACf;AACD;;;;"}
@@ -0,0 +1,254 @@
1
+ import { parseUnits } from 'viem';
2
+ import { ConsoleLogger } from '@atxp/common';
3
+ import { WorldchainAccount } from './worldchainAccount.js';
4
+ import { DEFAULT_WORLD_CHAIN_RPC } from './smartWalletHelpers.js';
5
+
6
+ /**
7
+ * Loads and initializes a Worldchain account with MiniKit integration
8
+ *
9
+ * This function creates a Worldchain account that can interact with the World Chain network
10
+ * using MiniKit for transaction signing and wallet operations. It sets up a custom provider
11
+ * that handles various Ethereum JSON-RPC methods through MiniKit's interface.
12
+ *
13
+ * @param walletAddress - The wallet address to use for the account
14
+ * @param logger - Optional logger instance for debugging and monitoring
15
+ * @param customRpcUrl - Optional custom RPC URL for Worldchain. If not provided, uses the public RPC endpoint
16
+ * @param miniKit - The MiniKit instance to use for transactions and signing
17
+ * @returns Promise that resolves to an initialized WorldchainAccount instance
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Using public RPC endpoint
22
+ * const account = await createMiniKitWorldchainAccount({
23
+ * walletAddress: "0x1234...",
24
+ * logger: new ConsoleLogger(),
25
+ * miniKit: MiniKit
26
+ * });
27
+ *
28
+ * // Using custom RPC endpoint
29
+ * const account = await createMiniKitWorldchainAccount({
30
+ * walletAddress: "0x1234...",
31
+ * logger: new ConsoleLogger(),
32
+ * customRpcUrl: "https://your-custom-rpc-endpoint.com",
33
+ * miniKit: MiniKit
34
+ * });
35
+ * ```
36
+ *
37
+ * @remarks
38
+ * The function creates a custom provider that supports:
39
+ * - `eth_accounts`: Returns the wallet address
40
+ * - `eth_chainId`: Returns Worldchain chain ID (0x1e0 / 480)
41
+ * - `eth_requestAccounts`: Returns the wallet address
42
+ * - `eth_sendTransaction`: Handles USDC transfers and other transactions via MiniKit
43
+ * - `personal_sign`: Signs messages using MiniKit
44
+ *
45
+ * The account is configured with:
46
+ * - 10 USDC allowance
47
+ * - 30-day period for permissions
48
+ * - Worldchain mainnet RPC endpoint (public or custom)
49
+ * - Regular wallet mode (no ephemeral wallet)
50
+ *
51
+ * @throws {Error} When MiniKit operations fail or unsupported transaction types are encountered
52
+ */
53
+ const createMiniKitWorldchainAccount = async ({ walletAddress, logger: loggerParam, customRpcUrl, miniKit }) => {
54
+ const logger = loggerParam || new ConsoleLogger();
55
+ // If no connector client from wagmi, create a simple MiniKit provider
56
+ const provider = {
57
+ request: async (args) => {
58
+ const { method, params } = args;
59
+ switch (method) {
60
+ case 'eth_accounts':
61
+ return [walletAddress];
62
+ case 'eth_chainId':
63
+ return '0x1e0'; // Worldchain chain ID (480)
64
+ case 'eth_requestAccounts':
65
+ return [walletAddress];
66
+ case 'eth_sendTransaction':
67
+ return await handleSendTransaction(params, logger, miniKit);
68
+ case 'personal_sign':
69
+ return await signMessageWithMiniKit(params, miniKit);
70
+ default:
71
+ throw new Error(`Method ${method} not supported in MiniKit context`);
72
+ }
73
+ },
74
+ };
75
+ const worldchainAccount = await WorldchainAccount.initialize({
76
+ walletAddress,
77
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
78
+ provider: provider, // Type cast needed for client compatibility
79
+ allowance: parseUnits("10", 6), // 10 USDC
80
+ useEphemeralWallet: false, // Regular wallet mode (smart wallet infrastructure not available on World Chain)
81
+ periodInDays: 30,
82
+ customRpcUrl: customRpcUrl || DEFAULT_WORLD_CHAIN_RPC // Public RPC URL as default
83
+ });
84
+ return worldchainAccount;
85
+ };
86
+ /**
87
+ * Handles eth_sendTransaction requests by processing different transaction types
88
+ * @param params Array containing the transaction object
89
+ * @param logger Logger instance for debugging
90
+ * @returns Transaction hash or throws error
91
+ */
92
+ async function handleSendTransaction(params, logger, miniKit) {
93
+ const transaction = params[0];
94
+ // Handle USDC transfer (ERC20 transfer function)
95
+ if (transaction.data && transaction.data.startsWith('0xa9059cbb')) {
96
+ // This is a transfer(address,uint256) call - decode the parameters
97
+ const data = transaction.data.slice(10); // Remove function selector
98
+ // Extract recipient address (first 32 bytes, last 20 bytes are the address)
99
+ const recipientHex = '0x' + data.slice(24, 64);
100
+ // Extract amount (next 32 bytes)
101
+ const amountHex = '0x' + data.slice(64, 128);
102
+ const amount = BigInt(amountHex).toString();
103
+ // Validate transaction parameter
104
+ // Check for memo data (any data after the standard 128 characters)
105
+ let memo = '';
106
+ if (data.length > 128) {
107
+ const memoHex = data.slice(128);
108
+ try {
109
+ memo = Buffer.from(memoHex, 'hex').toString('utf8');
110
+ }
111
+ catch (e) {
112
+ logger.warn(`[MiniKit] Failed to decode memo data: ${e}`);
113
+ }
114
+ }
115
+ // ERC20 ABI for transfer function
116
+ const ERC20_ABI = [
117
+ {
118
+ inputs: [
119
+ { name: 'to', type: 'address' },
120
+ { name: 'amount', type: 'uint256' }
121
+ ],
122
+ name: 'transfer',
123
+ outputs: [{ name: '', type: 'bool' }],
124
+ stateMutability: 'nonpayable',
125
+ type: 'function'
126
+ }
127
+ ];
128
+ const input = {
129
+ transaction: [
130
+ {
131
+ address: transaction.to, // USDC contract address
132
+ abi: ERC20_ABI,
133
+ functionName: 'transfer',
134
+ args: [recipientHex, amount],
135
+ value: transaction.value || "0"
136
+ }
137
+ ]
138
+ };
139
+ // TODO: MiniKit doesn't have a standard way to include memo data in ERC20 transfers
140
+ // The memo is extracted and logged but not included in the transaction
141
+ if (memo) {
142
+ logger.debug(`[MiniKit] Memo "${memo}" will be lost in MiniKit transaction - consider alternative approach`);
143
+ }
144
+ const sentResult = await miniKit.commandsAsync.sendTransaction(input);
145
+ if (sentResult.finalPayload?.status === 'success') {
146
+ const transactionId = sentResult.finalPayload.transaction_id;
147
+ // Wait for the transaction to be confirmed and get the actual transaction hash
148
+ const confirmed = await waitForTransactionConfirmation(transactionId, logger, 120000); // 2 minute timeout
149
+ if (confirmed && confirmed.transactionHash) {
150
+ logger.debug(`[MiniKit] Transaction confirmed with hash: ${confirmed.transactionHash}`);
151
+ return confirmed.transactionHash; // Return the actual blockchain transaction hash
152
+ }
153
+ else {
154
+ logger.error(`[MiniKit] Transaction confirmation failed for ID: ${transactionId}`);
155
+ throw new Error(`Transaction confirmation failed. Transaction may still be pending.`);
156
+ }
157
+ }
158
+ // Enhanced error logging for debugging
159
+ const errorCode = sentResult.finalPayload?.error_code;
160
+ const simulationError = sentResult.finalPayload?.details?.simulationError;
161
+ logger.error(`[MiniKit] Transaction failed: ${JSON.stringify({
162
+ errorCode,
163
+ simulationError,
164
+ fullPayload: sentResult.finalPayload
165
+ })}`);
166
+ // Provide more user-friendly error messages
167
+ let userFriendlyError = `MiniKit sendTransaction failed: ${errorCode}`;
168
+ if (simulationError?.includes('transfer amount exceeds balance')) {
169
+ const amountUSDC = (Number(amount) / 1000000).toFixed(6);
170
+ userFriendlyError = `💳 Insufficient USDC Balance\n\n` +
171
+ `You're trying to send ${amountUSDC} USDC, but your wallet doesn't have enough funds.\n\n` +
172
+ `To complete this payment:\n` +
173
+ `• Add USDC to your World App wallet\n` +
174
+ `• Bridge USDC from another chain\n` +
175
+ `• Buy USDC directly in World App\n\n` +
176
+ `Wallet: ${transaction.from?.slice(0, 6)}...${transaction.from?.slice(-4)}`;
177
+ }
178
+ else if (simulationError) {
179
+ userFriendlyError += ` - ${simulationError}`;
180
+ }
181
+ throw new Error(userFriendlyError);
182
+ }
183
+ // Handle simple ETH transfers (no data or empty data)
184
+ if (!transaction.data || transaction.data === '0x') {
185
+ // For ETH transfers, you'd need to use the Forward contract
186
+ throw new Error('ETH transfers require Forward contract - not implemented yet');
187
+ }
188
+ // For other transaction types
189
+ throw new Error(`Unsupported transaction type. Data: ${transaction.data.slice(0, 10)}`);
190
+ }
191
+ /**
192
+ * Signs a message using MiniKit
193
+ * @param params Array containing the message to sign
194
+ * @returns The signature string
195
+ * @throws Error if signing fails
196
+ */
197
+ async function signMessageWithMiniKit(params, miniKit) {
198
+ const [message] = params;
199
+ const signResult = await miniKit.commandsAsync.signMessage({ message: message });
200
+ if (signResult?.finalPayload?.status === 'success') {
201
+ return signResult.finalPayload.signature;
202
+ }
203
+ throw new Error(`MiniKit signing failed: ${signResult?.finalPayload?.error_code}`);
204
+ }
205
+ /**
206
+ * Resolves a MiniKit transaction ID to the actual blockchain transaction hash
207
+ * using the World API
208
+ */
209
+ async function resolveTransactionHash(transactionId, logger) {
210
+ try {
211
+ const response = await fetch('/api/resolve-transaction', {
212
+ method: 'POST',
213
+ headers: {
214
+ 'Content-Type': 'application/json',
215
+ },
216
+ body: JSON.stringify({ transactionId })
217
+ });
218
+ if (!response.ok) {
219
+ const error = await response.text();
220
+ logger.error(`[WorldTransaction] API error: ${response.status} ${error}`);
221
+ return null;
222
+ }
223
+ const transaction = await response.json();
224
+ return {
225
+ transactionHash: transaction.transactionHash,
226
+ status: transaction.transactionStatus
227
+ };
228
+ }
229
+ catch (error) {
230
+ logger.error(`[WorldTransaction] Error resolving transaction: ${error}`);
231
+ return null;
232
+ }
233
+ }
234
+ /**
235
+ * Waits for a MiniKit transaction to be confirmed and returns the transaction hash
236
+ * Polls the World API until the transaction is confirmed or times out
237
+ */
238
+ async function waitForTransactionConfirmation(transactionId, logger, timeoutMs = 120000, // 2 minutes
239
+ pollIntervalMs = 2000) {
240
+ const startTime = Date.now();
241
+ while (Date.now() - startTime < timeoutMs) {
242
+ const result = await resolveTransactionHash(transactionId, logger);
243
+ if (result && result.transactionHash && result.status !== 'pending') {
244
+ return result;
245
+ }
246
+ // Wait before next poll
247
+ await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
248
+ }
249
+ logger.warn(`[WorldTransaction] Timeout waiting for transaction confirmation: ${transactionId}`);
250
+ return null;
251
+ }
252
+
253
+ export { createMiniKitWorldchainAccount, resolveTransactionHash, waitForTransactionConfirmation };
254
+ //# sourceMappingURL=minikit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minikit.js","sources":["../src/minikit.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { createPublicClient, http } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { toCoinbaseSmartAccount, createBundlerClient } from 'viem/account-abstraction';
4
+ import { WORLD_CHAIN_MAINNET } from '@atxp/client';
5
+
6
+ // For now, we'll use a generic approach for World Chain
7
+ // This may need to be updated when World Chain provides specific infrastructure
8
+ const DEFAULT_WORLD_CHAIN_RPC = 'https://worldchain-mainnet.g.alchemy.com/public';
9
+ /**
10
+ * Creates an ephemeral smart wallet for World Chain
11
+ * Note: This implementation uses Coinbase's smart wallet infrastructure
12
+ * adapted for World Chain. This may need updates when World Chain
13
+ * provides their own account abstraction infrastructure.
14
+ */
15
+ async function toEphemeralSmartWallet(privateKey, rpcUrl) {
16
+ const signer = privateKeyToAccount(privateKey);
17
+ const publicClient = createPublicClient({
18
+ chain: WORLD_CHAIN_MAINNET,
19
+ transport: http(DEFAULT_WORLD_CHAIN_RPC)
20
+ });
21
+ // Create the smart wallet using Coinbase's smart account SDK
22
+ // This will need to be adapted when World Chain provides their own solution
23
+ const account = await toCoinbaseSmartAccount({
24
+ client: publicClient,
25
+ owners: [signer],
26
+ version: '1'
27
+ });
28
+ // Create bundler client
29
+ // Note: World Chain may not have paymaster support initially
30
+ const bundlerClient = createBundlerClient({
31
+ account,
32
+ client: publicClient,
33
+ transport: http(DEFAULT_WORLD_CHAIN_RPC),
34
+ chain: WORLD_CHAIN_MAINNET
35
+ // Paymaster omitted - World Chain infrastructure may not support it yet
36
+ });
37
+ return {
38
+ address: account.address,
39
+ client: bundlerClient,
40
+ account,
41
+ signer,
42
+ };
43
+ }
44
+
45
+ export { DEFAULT_WORLD_CHAIN_RPC, toEphemeralSmartWallet };
46
+ //# sourceMappingURL=smartWalletHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartWalletHelpers.js","sources":["../src/smartWalletHelpers.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAgBA;AACA;AACO,MAAM,uBAAuB,GAAG;AASvC;;;;;AAKG;AACI,eAAe,sBAAsB,CAC1C,UAAe,EACf,MAAe,EAAA;AAEf,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC;IAE9C,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACtC,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,SAAS,EAAE,IAAI,CAAW,uBAAuB;AAClD,KAAA,CAAC;;;AAIF,IAAA,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAC3C,QAAA,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,CAAC,MAAM,CAAC;AAChB,QAAA,OAAO,EAAE;AACV,KAAA,CAAC;;;IAIF,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,OAAO;AACP,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,SAAS,EAAE,IAAI,CAAW,uBAAuB,CAAC;AAClD,QAAA,KAAK,EAAE;;AAER,KAAA,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;AACxB,QAAA,MAAM,EAAE,aAAa;QACrB,OAAO;QACP,MAAM;KACP;AACH;;;;"}
@@ -0,0 +1,119 @@
1
+ import { createWalletClient, custom, encodeFunctionData } from 'viem';
2
+ import { WORLD_CHAIN_MAINNET } from '@atxp/client';
3
+
4
+ /*
5
+ This shim replaces spend permission functionality with ERC20 approvals for World Chain.
6
+ This approach will work with any World Chain wallet/connector that supports ERC20 approvals.
7
+
8
+ The implementation is based on the Base shim but adapted for World Chain networks.
9
+ */
10
+ // Minimal ERC20 ABI for approve and transferFrom functions
11
+ const ERC20_ABI = [
12
+ {
13
+ "constant": false,
14
+ "inputs": [
15
+ {
16
+ "name": "_spender",
17
+ "type": "address"
18
+ },
19
+ {
20
+ "name": "_value",
21
+ "type": "uint256"
22
+ }
23
+ ],
24
+ "name": "approve",
25
+ "outputs": [
26
+ {
27
+ "name": "",
28
+ "type": "bool"
29
+ }
30
+ ],
31
+ "payable": false,
32
+ "stateMutability": "nonpayable",
33
+ "type": "function"
34
+ },
35
+ {
36
+ "constant": false,
37
+ "inputs": [
38
+ {
39
+ "name": "_from",
40
+ "type": "address"
41
+ },
42
+ {
43
+ "name": "_to",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "name": "_value",
48
+ "type": "uint256"
49
+ }
50
+ ],
51
+ "name": "transferFrom",
52
+ "outputs": [
53
+ {
54
+ "name": "",
55
+ "type": "bool"
56
+ }
57
+ ],
58
+ "payable": false,
59
+ "stateMutability": "nonpayable",
60
+ "type": "function"
61
+ }
62
+ ];
63
+ async function requestSpendPermission(params) {
64
+ // Support World Chain mainnet only
65
+ if (params.chainId !== WORLD_CHAIN_MAINNET.id) {
66
+ throw new Error(`Chain ID ${params.chainId} is not supported. Only World Chain mainnet (${WORLD_CHAIN_MAINNET.id}) is supported.`);
67
+ }
68
+ // Use World Chain mainnet config
69
+ const chainConfig = WORLD_CHAIN_MAINNET;
70
+ const client = createWalletClient({
71
+ chain: chainConfig,
72
+ transport: custom(params.provider)
73
+ });
74
+ // Send ERC20 approve transaction
75
+ const hash = await client.sendTransaction({
76
+ account: params.account,
77
+ to: params.token,
78
+ data: encodeFunctionData({
79
+ abi: ERC20_ABI,
80
+ functionName: "approve",
81
+ args: [params.spender, params.allowance]
82
+ })
83
+ });
84
+ return {
85
+ permission: {
86
+ account: params.account,
87
+ spender: params.spender,
88
+ token: params.token,
89
+ allowance: params.allowance.toString(),
90
+ period: params.periodInDays * 24 * 60 * 60,
91
+ start: Math.floor(Date.now() / 1000),
92
+ end: Math.floor(Date.now() / 1000) + params.periodInDays * 24 * 60 * 60,
93
+ salt: '0x0',
94
+ extraData: '0x0'
95
+ },
96
+ signature: hash
97
+ };
98
+ }
99
+ async function prepareSpendCallData(params) {
100
+ // Creates transferFrom call data to move tokens from user wallet to ephemeral wallet
101
+ return [
102
+ {
103
+ to: params.permission.permission.token,
104
+ data: encodeFunctionData({
105
+ abi: ERC20_ABI,
106
+ functionName: 'transferFrom',
107
+ args: [
108
+ params.permission.permission.account,
109
+ params.permission.permission.spender,
110
+ params.amount
111
+ ]
112
+ }),
113
+ value: BigInt(0)
114
+ }
115
+ ];
116
+ }
117
+
118
+ export { prepareSpendCallData, requestSpendPermission };
119
+ //# sourceMappingURL=spendPermissionShim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spendPermissionShim.js","sources":["../src/spendPermissionShim.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}