@1llet.xyz/erc4337-gasless-sdk 0.4.21 → 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 +93 -33
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +93 -33
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chains = require('viem/chains');
|
|
3
4
|
var viem = require('viem');
|
|
4
5
|
var accounts = require('viem/accounts');
|
|
5
|
-
var chains = require('viem/chains');
|
|
6
6
|
var axios = require('axios');
|
|
7
7
|
var stellarSdk = require('stellar-sdk');
|
|
8
8
|
var oneClickSdkTypescript = require('@defuse-protocol/one-click-sdk-typescript');
|
|
@@ -11,7 +11,55 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
11
11
|
|
|
12
12
|
var axios__default = /*#__PURE__*/_interopDefault(axios);
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
16
|
+
var __esm = (fn, res) => function __init() {
|
|
17
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
18
|
+
};
|
|
19
|
+
var __export = (target, all) => {
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// src/constants/facilitator.ts
|
|
25
|
+
var facilitator_exports = {};
|
|
26
|
+
__export(facilitator_exports, {
|
|
27
|
+
FACILITATOR_NETWORKS: () => FACILITATOR_NETWORKS,
|
|
28
|
+
calculateFee: () => calculateFee
|
|
29
|
+
});
|
|
30
|
+
var calculateFee, FACILITATOR_NETWORKS;
|
|
31
|
+
var init_facilitator = __esm({
|
|
32
|
+
"src/constants/facilitator.ts"() {
|
|
33
|
+
calculateFee = () => {
|
|
34
|
+
return BigInt(1e4);
|
|
35
|
+
};
|
|
36
|
+
FACILITATOR_NETWORKS = {
|
|
37
|
+
Base: {
|
|
38
|
+
chainId: 8453,
|
|
39
|
+
chain: chains.base,
|
|
40
|
+
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
41
|
+
usdcName: "USD Coin",
|
|
42
|
+
usdcVersion: "2",
|
|
43
|
+
domain: 6,
|
|
44
|
+
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
45
|
+
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
46
|
+
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
47
|
+
},
|
|
48
|
+
Optimism: {
|
|
49
|
+
chainId: 10,
|
|
50
|
+
chain: chains.optimism,
|
|
51
|
+
usdc: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
|
52
|
+
usdcName: "USD Coin",
|
|
53
|
+
usdcVersion: "2",
|
|
54
|
+
domain: 2,
|
|
55
|
+
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
56
|
+
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
57
|
+
rpcUrl: "https://opt-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
58
|
+
// Assuming same key works or public
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
});
|
|
15
63
|
|
|
16
64
|
// src/constants.ts
|
|
17
65
|
var factoryAbi = [
|
|
@@ -818,34 +866,10 @@ var CHAIN_CONFIGS = {
|
|
|
818
866
|
[chains.gnosis.id]: GNOSIS_MAINNET,
|
|
819
867
|
[chains.optimism.id]: OPTIMISM_MAINNET
|
|
820
868
|
};
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
Base: {
|
|
826
|
-
chainId: 8453,
|
|
827
|
-
chain: chains.base,
|
|
828
|
-
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
829
|
-
usdcName: "USD Coin",
|
|
830
|
-
usdcVersion: "2",
|
|
831
|
-
domain: 6,
|
|
832
|
-
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
833
|
-
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
834
|
-
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
835
|
-
},
|
|
836
|
-
Optimism: {
|
|
837
|
-
chainId: 10,
|
|
838
|
-
chain: chains.optimism,
|
|
839
|
-
usdc: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
|
840
|
-
usdcName: "USD Coin",
|
|
841
|
-
usdcVersion: "2",
|
|
842
|
-
domain: 2,
|
|
843
|
-
tokenMessenger: "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
|
|
844
|
-
messageTransmitter: "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
|
|
845
|
-
rpcUrl: "https://opt-mainnet.g.alchemy.com/v2/49fUGmuW05ynCui0VEvDN"
|
|
846
|
-
// Assuming same key works or public
|
|
847
|
-
}
|
|
848
|
-
};
|
|
869
|
+
|
|
870
|
+
// src/services/gasless.ts
|
|
871
|
+
init_facilitator();
|
|
872
|
+
init_facilitator();
|
|
849
873
|
|
|
850
874
|
// src/constants/abis.ts
|
|
851
875
|
var usdcErc3009Abi = [
|
|
@@ -1045,6 +1069,10 @@ async function processGaslessSettlement(paymentPayload, sourceChain, amount, fac
|
|
|
1045
1069
|
netAmount: amountBigInt.toString()
|
|
1046
1070
|
};
|
|
1047
1071
|
}
|
|
1072
|
+
|
|
1073
|
+
// src/services/cctp.ts
|
|
1074
|
+
init_facilitator();
|
|
1075
|
+
init_facilitator();
|
|
1048
1076
|
var createRetrieveAttestation = async (transactionHash, chainId, timeout = 6e4) => {
|
|
1049
1077
|
const baseUrl = "https://iris-api.circle.com";
|
|
1050
1078
|
const url = `${baseUrl}/v2/messages/${chainId}?transactionHash=${transactionHash}`;
|
|
@@ -1755,6 +1783,7 @@ var CCTPStrategy = class {
|
|
|
1755
1783
|
};
|
|
1756
1784
|
async function processCCTPSettlement(context, crossChainConfig) {
|
|
1757
1785
|
const { paymentPayload, sourceChain, amount, recipient, facilitatorPrivateKey, depositTxHash } = context;
|
|
1786
|
+
console.log(`[SDK v0.4.22] Processing CCTP. DepositHash: ${depositTxHash} (${typeof depositTxHash})`);
|
|
1758
1787
|
if (!facilitatorPrivateKey) {
|
|
1759
1788
|
return {
|
|
1760
1789
|
success: false,
|
|
@@ -1808,6 +1837,7 @@ async function processCCTPSettlement(context, crossChainConfig) {
|
|
|
1808
1837
|
};
|
|
1809
1838
|
}
|
|
1810
1839
|
} else {
|
|
1840
|
+
console.log("[SDK v0.4.22] No deposit hash. Returning PENDING_USER_DEPOSIT.");
|
|
1811
1841
|
return {
|
|
1812
1842
|
success: true,
|
|
1813
1843
|
data: {
|
|
@@ -1816,10 +1846,10 @@ async function processCCTPSettlement(context, crossChainConfig) {
|
|
|
1816
1846
|
chainId: networkConfig.chainId
|
|
1817
1847
|
},
|
|
1818
1848
|
attestation: {
|
|
1819
|
-
message: "
|
|
1849
|
+
message: "PENDING_USER_DEPOSIT_v22",
|
|
1820
1850
|
attestation: "0x"
|
|
1821
1851
|
},
|
|
1822
|
-
transactionHash: "
|
|
1852
|
+
transactionHash: "PENDING_USER_DEPOSIT_v22"
|
|
1823
1853
|
};
|
|
1824
1854
|
}
|
|
1825
1855
|
const transferHash = depositTxHash || "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
@@ -2012,7 +2042,37 @@ var NearStrategy = class {
|
|
|
2012
2042
|
return !!(sourceNear && destNear);
|
|
2013
2043
|
}
|
|
2014
2044
|
async execute(context) {
|
|
2015
|
-
const { sourceChain, destChain, amount, recipient, destToken, sourceToken, senderAddress } = context;
|
|
2045
|
+
const { sourceChain, destChain, amount, recipient, destToken, sourceToken, senderAddress, depositTxHash } = context;
|
|
2046
|
+
if (depositTxHash) {
|
|
2047
|
+
console.log(`[NearStrategy] Verifying deposit hash: ${depositTxHash}`);
|
|
2048
|
+
const { createPublicClient: createPublicClient4, http: http4 } = await import('viem');
|
|
2049
|
+
const { FACILITATOR_NETWORKS: FACILITATOR_NETWORKS2 } = await Promise.resolve().then(() => (init_facilitator(), facilitator_exports));
|
|
2050
|
+
const networkConfig = FACILITATOR_NETWORKS2[sourceChain];
|
|
2051
|
+
if (!networkConfig) {
|
|
2052
|
+
return { success: false, errorReason: `Unsupported source chain for verification: ${sourceChain}` };
|
|
2053
|
+
}
|
|
2054
|
+
const publicClient = createPublicClient4({
|
|
2055
|
+
chain: networkConfig.chain,
|
|
2056
|
+
transport: http4(networkConfig.rpcUrl)
|
|
2057
|
+
});
|
|
2058
|
+
try {
|
|
2059
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash: depositTxHash });
|
|
2060
|
+
if (receipt.status === "success") {
|
|
2061
|
+
return {
|
|
2062
|
+
success: true,
|
|
2063
|
+
transactionHash: depositTxHash,
|
|
2064
|
+
netAmount: amount,
|
|
2065
|
+
// rough estimate or we can re-quote if needed
|
|
2066
|
+
data: {
|
|
2067
|
+
// Info for UI
|
|
2068
|
+
completed: true
|
|
2069
|
+
}
|
|
2070
|
+
};
|
|
2071
|
+
}
|
|
2072
|
+
} catch (e) {
|
|
2073
|
+
return { success: false, errorReason: `Invalid deposit transaction: ${e.message}` };
|
|
2074
|
+
}
|
|
2075
|
+
}
|
|
2016
2076
|
try {
|
|
2017
2077
|
const quoteResult = await getNearQuote(
|
|
2018
2078
|
sourceChain,
|