@1llet.xyz/erc4337-gasless-sdk 0.4.22 → 0.4.23
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/index.js +89 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +89 -31
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,59 @@
|
|
|
1
|
+
import { optimism, gnosis, baseSepolia, base, avalanche, worldchain, monad, bsc, polygon, unichain, arbitrum } from 'viem/chains';
|
|
1
2
|
import { createPublicClient, http, createWalletClient, decodeErrorResult, parseSignature, maxUint256, encodeFunctionData, encodeAbiParameters, keccak256, padHex } from 'viem';
|
|
2
3
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
|
-
import { optimism, gnosis, baseSepolia, base, avalanche, worldchain, monad, bsc, polygon, unichain, arbitrum } from 'viem/chains';
|
|
4
4
|
import axios from 'axios';
|
|
5
5
|
import { Networks } from 'stellar-sdk';
|
|
6
6
|
import { OpenAPI, QuoteRequest, OneClickService } from '@defuse-protocol/one-click-sdk-typescript';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __esm = (fn, res) => function __init() {
|
|
11
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
|
+
};
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// src/constants/facilitator.ts
|
|
19
|
+
var facilitator_exports = {};
|
|
20
|
+
__export(facilitator_exports, {
|
|
21
|
+
FACILITATOR_NETWORKS: () => FACILITATOR_NETWORKS,
|
|
22
|
+
calculateFee: () => calculateFee
|
|
23
|
+
});
|
|
24
|
+
var calculateFee, FACILITATOR_NETWORKS;
|
|
25
|
+
var init_facilitator = __esm({
|
|
26
|
+
"src/constants/facilitator.ts"() {
|
|
27
|
+
calculateFee = () => {
|
|
28
|
+
return BigInt(1e4);
|
|
29
|
+
};
|
|
30
|
+
FACILITATOR_NETWORKS = {
|
|
31
|
+
Base: {
|
|
32
|
+
chainId: 8453,
|
|
33
|
+
chain: base,
|
|
34
|
+
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
35
|
+
usdcName: "USD Coin",
|
|
36
|
+
usdcVersion: "2",
|
|
37
|
+
domain: 6,
|
|
38
|
+
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
39
|
+
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
40
|
+
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
41
|
+
},
|
|
42
|
+
Optimism: {
|
|
43
|
+
chainId: 10,
|
|
44
|
+
chain: optimism,
|
|
45
|
+
usdc: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
|
46
|
+
usdcName: "USD Coin",
|
|
47
|
+
usdcVersion: "2",
|
|
48
|
+
domain: 2,
|
|
49
|
+
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
50
|
+
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
51
|
+
rpcUrl: "https://opt-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
52
|
+
// Assuming same key works or public
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
9
57
|
|
|
10
58
|
// src/constants.ts
|
|
11
59
|
var factoryAbi = [
|
|
@@ -812,34 +860,10 @@ var CHAIN_CONFIGS = {
|
|
|
812
860
|
[gnosis.id]: GNOSIS_MAINNET,
|
|
813
861
|
[optimism.id]: OPTIMISM_MAINNET
|
|
814
862
|
};
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
Base: {
|
|
820
|
-
chainId: 8453,
|
|
821
|
-
chain: base,
|
|
822
|
-
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
823
|
-
usdcName: "USD Coin",
|
|
824
|
-
usdcVersion: "2",
|
|
825
|
-
domain: 6,
|
|
826
|
-
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
827
|
-
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
828
|
-
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
829
|
-
},
|
|
830
|
-
Optimism: {
|
|
831
|
-
chainId: 10,
|
|
832
|
-
chain: optimism,
|
|
833
|
-
usdc: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
|
834
|
-
usdcName: "USD Coin",
|
|
835
|
-
usdcVersion: "2",
|
|
836
|
-
domain: 2,
|
|
837
|
-
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
838
|
-
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
839
|
-
rpcUrl: "https://opt-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
840
|
-
// Assuming same key works or public
|
|
841
|
-
}
|
|
842
|
-
};
|
|
863
|
+
|
|
864
|
+
// src/services/gasless.ts
|
|
865
|
+
init_facilitator();
|
|
866
|
+
init_facilitator();
|
|
843
867
|
|
|
844
868
|
// src/constants/abis.ts
|
|
845
869
|
var usdcErc3009Abi = [
|
|
@@ -1039,6 +1063,10 @@ async function processGaslessSettlement(paymentPayload, sourceChain, amount, fac
|
|
|
1039
1063
|
netAmount: amountBigInt.toString()
|
|
1040
1064
|
};
|
|
1041
1065
|
}
|
|
1066
|
+
|
|
1067
|
+
// src/services/cctp.ts
|
|
1068
|
+
init_facilitator();
|
|
1069
|
+
init_facilitator();
|
|
1042
1070
|
var createRetrieveAttestation = async (transactionHash, chainId, timeout = 6e4) => {
|
|
1043
1071
|
const baseUrl = "https://iris-api.circle.com";
|
|
1044
1072
|
const url = `${baseUrl}/v2/messages/${chainId}?transactionHash=${transactionHash}`;
|
|
@@ -2008,7 +2036,37 @@ var NearStrategy = class {
|
|
|
2008
2036
|
return !!(sourceNear && destNear);
|
|
2009
2037
|
}
|
|
2010
2038
|
async execute(context) {
|
|
2011
|
-
const { sourceChain, destChain, amount, recipient, destToken, sourceToken, senderAddress } = context;
|
|
2039
|
+
const { sourceChain, destChain, amount, recipient, destToken, sourceToken, senderAddress, depositTxHash } = context;
|
|
2040
|
+
if (depositTxHash) {
|
|
2041
|
+
console.log(`[NearStrategy] Verifying deposit hash: ${depositTxHash}`);
|
|
2042
|
+
const { createPublicClient: createPublicClient4, http: http4 } = await import('viem');
|
|
2043
|
+
const { FACILITATOR_NETWORKS: FACILITATOR_NETWORKS2 } = await Promise.resolve().then(() => (init_facilitator(), facilitator_exports));
|
|
2044
|
+
const networkConfig = FACILITATOR_NETWORKS2[sourceChain];
|
|
2045
|
+
if (!networkConfig) {
|
|
2046
|
+
return { success: false, errorReason: `Unsupported source chain for verification: ${sourceChain}` };
|
|
2047
|
+
}
|
|
2048
|
+
const publicClient = createPublicClient4({
|
|
2049
|
+
chain: networkConfig.chain,
|
|
2050
|
+
transport: http4(networkConfig.rpcUrl)
|
|
2051
|
+
});
|
|
2052
|
+
try {
|
|
2053
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash: depositTxHash });
|
|
2054
|
+
if (receipt.status === "success") {
|
|
2055
|
+
return {
|
|
2056
|
+
success: true,
|
|
2057
|
+
transactionHash: depositTxHash,
|
|
2058
|
+
netAmount: amount,
|
|
2059
|
+
// rough estimate or we can re-quote if needed
|
|
2060
|
+
data: {
|
|
2061
|
+
// Info for UI
|
|
2062
|
+
completed: true
|
|
2063
|
+
}
|
|
2064
|
+
};
|
|
2065
|
+
}
|
|
2066
|
+
} catch (e) {
|
|
2067
|
+
return { success: false, errorReason: `Invalid deposit transaction: ${e.message}` };
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2012
2070
|
try {
|
|
2013
2071
|
const quoteResult = await getNearQuote(
|
|
2014
2072
|
sourceChain,
|