@kapa123456789/sdk 0.0.68 → 0.0.70
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/common/src/constants/vite.constants.cjs +1 -1
- package/common/src/constants/vite.constants.mjs +6 -2
- package/common/src/crypto/BabyJubRN.cjs +1 -0
- package/common/src/crypto/BabyJubRN.d.ts +18 -0
- package/common/src/crypto/BabyJubRN.mjs +33 -0
- package/common/src/crypto/babyJub.cjs +1 -1
- package/common/src/crypto/babyJub.mjs +6 -34
- package/common/src/crypto/poseidon.cjs +1 -1
- package/common/src/crypto/poseidon.mjs +13 -14
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +2 -35
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +10 -10
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +9 -49
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +12 -59
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +13 -58
- package/common/src/error-handling/logger.cjs +1 -1
- package/common/src/error-handling/logger.mjs +15 -7
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +1 -0
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +48 -161
- package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/generateZkProof.mjs +1 -6
- package/common/src/functions/utils/bigint-math.utils.cjs +1 -0
- package/common/src/functions/utils/bigint-math.utils.d.ts +2 -0
- package/common/src/functions/utils/bigint-math.utils.mjs +12 -0
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +1 -0
- package/common/src/functions/utils/index.mjs +1 -0
- package/common/src/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
- package/common/src/functions/web3/functionCalls/constructBatchCall.mjs +27 -6
- package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +42 -145
- package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
- package/common/src/providers/WagmiProviderAdapter.mjs +7 -30
- package/common/src/webworker/{logError-DlIdq8zv.js → logError-D7JCP4vy.js} +5 -5
- package/common/src/webworker/package.json +2 -2
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/utxoWorkerNode.cjs +1 -1
- package/common/src/webworker/viteWorkerURL.constant.cjs +4 -4
- package/common/src/webworker/viteWorkerURL.constant.mjs +4 -4
- package/common/src/webworker/workerFactory.cjs +1 -1
- package/common/src/webworker/workerFactory.mjs +1 -1
- package/common/src/webworker/{workerProxy-Cr4zT_SW.js → workerProxy-C1ojG-04.js} +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/package.json +2 -2
- package/react-native/HinkalWebViewWorker.cjs +3 -3
- package/react-native/HinkalWebViewWorker.mjs +46 -68
- package/react-native/bridge/HinkalRNWorker.cjs +1 -0
- package/react-native/bridge/HinkalRNWorker.d.ts +13 -0
- package/react-native/bridge/HinkalRNWorker.mjs +26 -0
- package/react-native/bridge/serialization.utils.cjs +1 -0
- package/react-native/bridge/serialization.utils.d.ts +3 -0
- package/react-native/bridge/serialization.utils.mjs +13 -0
- package/react-native/metro-config.js +4 -8
- package/react-native/shims/circomlibjs-hinkal-fork.js +1 -1
- package/react-native/shims/crypto.js +23 -16
- package/react-native/shims/globals.js +6 -4
- package/react-native/shims/idb-keyval.js +13 -5
- package/react-native/shims/path.js +20 -7
- package/react-native/shims/snarkjs.js +7 -6
- package/react-native/workerCDNUrls.cjs +1 -1
- package/react-native/workerCDNUrls.mjs +2 -4
- package/sdk/package.json.cjs +1 -1
- package/sdk/package.json.mjs +2 -2
- package/react-native/shims/circomlibjs.js +0 -16
|
@@ -4,160 +4,57 @@ import { waitLittle as n } from "../../utils/time.utils.mjs";
|
|
|
4
4
|
import { getContractAddress as r } from "../../utils/getContractAddress.mjs";
|
|
5
5
|
import { recoverTransactionFromError as i } from "./recoverTransactionFromError.mjs";
|
|
6
6
|
import { approveTokensToHinkal as a } from "./approveTokensToHinkal.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { buildApproveAndTransactCalls as o } from "./constructBatchCall.mjs";
|
|
8
|
+
import { waitForErc20Approvals as s } from "./waitForErc20Approvals.mjs";
|
|
9
|
+
import { ethers as c } from "ethers";
|
|
9
10
|
//#region libs/shared/common/src/functions/web3/functionCalls/transactCallDirect.ts
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
inputNullifierGroupCount: e.inputNullifiers?.length,
|
|
21
|
-
inputNullifierSizes: e.inputNullifiers?.map((e) => e.length),
|
|
22
|
-
outCommitmentGroupCount: e.outCommitments?.length,
|
|
23
|
-
outCommitmentSizes: e.outCommitments?.map((e) => e.length),
|
|
24
|
-
encryptedOutputGroupCount: e.encryptedOutputs?.length,
|
|
25
|
-
encryptedOutputSizes: e.encryptedOutputs?.map((e) => e.length),
|
|
26
|
-
rootHashHinkal: l(e.rootHashHinkal),
|
|
27
|
-
rootHashAccessToken: l(e.rootHashAccessToken),
|
|
28
|
-
relay: e.relay,
|
|
29
|
-
externalAddress: e.externalAddress,
|
|
30
|
-
externalActionId: l(e.externalActionId),
|
|
31
|
-
calldataHash: l(e.calldataHash),
|
|
32
|
-
publicSignalCount: e.publicSignalCount,
|
|
33
|
-
originalSender: e.originalSender
|
|
34
|
-
}), f = (e) => ({
|
|
35
|
-
hash: "hash" in e ? e.hash : void 0,
|
|
36
|
-
to: e.to,
|
|
37
|
-
from: e.from,
|
|
38
|
-
nonce: e.nonce,
|
|
39
|
-
value: typeof e.value == "bigint" ? e.value.toString() : e.value,
|
|
40
|
-
gasLimit: typeof e.gasLimit == "bigint" ? e.gasLimit.toString() : e.gasLimit,
|
|
41
|
-
dataLength: typeof e.data == "string" ? e.data.length : void 0
|
|
42
|
-
}), p = async (l, p, m, h, g, _, v, y, b, x = !0, S = !1) => {
|
|
43
|
-
console.log(`${c} start`, {
|
|
44
|
-
chainId: p,
|
|
45
|
-
preEstimateGas: x,
|
|
46
|
-
returnTxData: S,
|
|
47
|
-
amountIsArray: Array.isArray(m),
|
|
48
|
-
tokenIsArray: Array.isArray(h),
|
|
49
|
-
zkCallData: u(g),
|
|
50
|
-
dimData: v,
|
|
51
|
-
circomData: d(_)
|
|
52
|
-
});
|
|
53
|
-
let C = Array.isArray(m) ? m : [m], w = Array.isArray(h) ? h : [h];
|
|
54
|
-
if (console.log(`${c} normalized inputs`, {
|
|
55
|
-
amounts: C.map((e) => e.toString()),
|
|
56
|
-
tokenAddresses: w.map(({ erc20TokenAddress: e }) => e),
|
|
57
|
-
tokenSymbols: w.map(({ symbol: e }) => e)
|
|
58
|
-
}), C.length !== w.length) throw Error("token and amount length mismatch");
|
|
59
|
-
console.log(`${c} fetching signer contract`);
|
|
60
|
-
let T = l.getContractWithSigner(p, t.HinkalContract);
|
|
61
|
-
console.log(`${c} signer contract ready`, { hinkalContractAddress: r(T) }), console.log(`${c} fetching ethereum address`);
|
|
62
|
-
let E = await l.getEthereumAddressByChain(p);
|
|
63
|
-
console.log(`${c} ethereum address ready`, { ethereumAddress: E });
|
|
64
|
-
let D = y ?? T, O = b ?? T;
|
|
65
|
-
console.log(`${c} contracts resolved`, {
|
|
66
|
-
approvalContractAddress: r(D),
|
|
67
|
-
transactionContractAddress: r(O),
|
|
68
|
-
usedCustomApprovalContract: !!y,
|
|
69
|
-
usedCustomTransactionContract: !!b
|
|
70
|
-
});
|
|
71
|
-
let k = "transact", A = w.findIndex(({ erc20TokenAddress: t }) => t === e), j = w.some(({ erc20TokenAddress: t }) => t !== e), M = A === -1 ? 0n : C[A];
|
|
72
|
-
console.log(`${c} token analysis`, {
|
|
73
|
-
ethIndex: A,
|
|
74
|
-
needsApproval: j,
|
|
75
|
-
ethAmount: M.toString()
|
|
76
|
-
}), console.log(`${c} fetching provider adapter`);
|
|
77
|
-
let N = l.getProviderAdapter(p);
|
|
78
|
-
if (console.log(`${c} provider adapter ready`, { providerAdapterType: N?.constructor?.name }), console.log(`${c} checking batch support`), !S && (console.log(`${c} approving tokens start`), await a(l, p, D, w, C), console.log(`${c} approving tokens complete`), j)) {
|
|
79
|
-
let e = w.map(({ erc20TokenAddress: e }, t) => ({
|
|
11
|
+
var l = async (l, u, d, f, p, m, h, g, _, v = !0, y = !1) => {
|
|
12
|
+
let b = Array.isArray(d) ? d : [d], x = Array.isArray(f) ? f : [f];
|
|
13
|
+
if (b.length !== x.length) throw Error("token and amount length mismatch");
|
|
14
|
+
let S = l.getContractWithSigner(u, t.HinkalContract), C = await l.getEthereumAddressByChain(u), w = g ?? S, T = _ ?? S, E = "transact", D = x.findIndex(({ erc20TokenAddress: t }) => t === e), O = x.some(({ erc20TokenAddress: t }) => t !== e), k = D === -1 ? 0n : b[D], A = l.getProviderAdapter(u), j = await A.supportsBatchCall?.(u);
|
|
15
|
+
if (!y && O && j && A.sendBatchCallsTransaction) {
|
|
16
|
+
let e = o(x.map((e) => e.erc20TokenAddress), b, r(w), T, p, h, m, k);
|
|
17
|
+
return await A.sendBatchCallsTransaction(u, e);
|
|
18
|
+
}
|
|
19
|
+
if (!y && (await a(l, u, w, x, b), O)) {
|
|
20
|
+
let e = x.map(({ erc20TokenAddress: e }, t) => ({
|
|
80
21
|
tokenAddress: e,
|
|
81
|
-
requiredAmount:
|
|
22
|
+
requiredAmount: b[t]
|
|
82
23
|
}));
|
|
83
|
-
|
|
84
|
-
ownerAddress: E,
|
|
85
|
-
spenderAddress: r(D),
|
|
86
|
-
requirements: e.map(({ tokenAddress: e, requiredAmount: t }) => ({
|
|
87
|
-
tokenAddress: e,
|
|
88
|
-
requiredAmount: t.toString()
|
|
89
|
-
}))
|
|
90
|
-
}), await o(l, p, E, r(D), e), console.log(`${c} waiting for approvals complete`);
|
|
24
|
+
await s(l, u, C, r(w), e);
|
|
91
25
|
}
|
|
92
|
-
let
|
|
93
|
-
value:
|
|
26
|
+
let M = {
|
|
27
|
+
value: k > 0n ? BigInt(k).toString() : void 0,
|
|
94
28
|
gasLimit: void 0
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
v,
|
|
102
|
-
_,
|
|
29
|
+
}, N, P = [
|
|
30
|
+
p[0],
|
|
31
|
+
p[1],
|
|
32
|
+
p[2],
|
|
33
|
+
h,
|
|
34
|
+
m,
|
|
103
35
|
{
|
|
104
|
-
...
|
|
105
|
-
from:
|
|
106
|
-
}
|
|
107
|
-
];
|
|
108
|
-
console.log(`${c} call data prepared`, {
|
|
109
|
-
method: k,
|
|
110
|
-
dimData: v,
|
|
111
|
-
transactionContractAddress: r(O),
|
|
112
|
-
from: E,
|
|
113
|
-
value: P.value,
|
|
114
|
-
zkCallData: u(g)
|
|
115
|
-
});
|
|
116
|
-
let { runner: L } = O;
|
|
117
|
-
if (console.log(`${c} runner resolved`, {
|
|
118
|
-
runnerType: L?.constructor?.name,
|
|
119
|
-
hasProvider: !!L?.provider
|
|
120
|
-
}), !(L instanceof s.AbstractSigner)) throw console.log(`${c} runner is not a signer`, { runnerType: L?.constructor?.name }), Error("expected signer");
|
|
121
|
-
if (x) {
|
|
122
|
-
console.log(`${c} estimateGas start`);
|
|
123
|
-
try {
|
|
124
|
-
F = Number(await O[k].estimateGas(...I)), console.log(`${c} estimateGas success`, { gasCosts: F });
|
|
125
|
-
} catch (e) {
|
|
126
|
-
console.log(`${c} estimateGas error`, {
|
|
127
|
-
message: e?.message,
|
|
128
|
-
code: e?.code,
|
|
129
|
-
shortMessage: e?.shortMessage,
|
|
130
|
-
reason: e?.reason,
|
|
131
|
-
data: e?.data,
|
|
132
|
-
error: e
|
|
133
|
-
});
|
|
36
|
+
...M,
|
|
37
|
+
from: C
|
|
134
38
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
let
|
|
39
|
+
], { runner: F } = T;
|
|
40
|
+
if (!(F instanceof c.AbstractSigner)) throw Error("expected signer");
|
|
41
|
+
if (v) try {
|
|
42
|
+
N = Number(await T[E].estimateGas(...P));
|
|
43
|
+
} catch (e) {
|
|
44
|
+
console.log("hinkalDeposit: gas estimation error", { err: e });
|
|
45
|
+
}
|
|
46
|
+
let I = N && N >= 0 ? Math.ceil(N * 12 / 10) : void 0;
|
|
47
|
+
I && (P[5].gasLimit = I), await n();
|
|
48
|
+
let L;
|
|
143
49
|
try {
|
|
144
|
-
|
|
50
|
+
L = y ? await T[E].populateTransaction(...P) : await T[E](...P);
|
|
145
51
|
} catch (e) {
|
|
146
|
-
if (
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
reason: e?.reason,
|
|
151
|
-
transactionHash: e?.transactionHash,
|
|
152
|
-
data: e?.data,
|
|
153
|
-
error: e
|
|
154
|
-
}), !e?.transactionHash) throw e;
|
|
155
|
-
console.log(`${c} recoverTransactionFromError start`, { transactionHash: e.transactionHash });
|
|
156
|
-
let t = await i(L.provider, e.transactionHash);
|
|
157
|
-
if (!t) throw console.log(`${c} recoverTransactionFromError failed`), e;
|
|
158
|
-
console.log(`${c} recoverTransactionFromError success`, f(t)), z = t;
|
|
52
|
+
if (!e?.transactionHash) throw e;
|
|
53
|
+
let t = await i(F.provider, e.transactionHash);
|
|
54
|
+
if (!t) throw e;
|
|
55
|
+
L = t;
|
|
159
56
|
}
|
|
160
|
-
return
|
|
57
|
+
return L;
|
|
161
58
|
};
|
|
162
59
|
//#endregion
|
|
163
|
-
export {
|
|
60
|
+
export { l as transactCallDirect };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../types/eip5792.types.cjs`),n=require(`../error-handling/error-codes.constants.cjs`),r=require(`../error-handling/logger.cjs`),i=require(`../functions/utils/create-provider.cjs`),a=require(`../functions/web3/getContractMetadata.cjs`);let o=require(`ethers`),s=require(`wagmi`),c=require(`wagmi/actions`);var l=class{connector;chainId;originalProvider;fetchProviders={};signer;chainEventListener;config;unsubscribeFns=[];constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{if(e.isSolanaLike(t))return;let{fetchRpcUrl:n}=e.networkRegistry[t];if(!n)throw Error(`No Fetch RPC URL In Provider Adapter`);this.fetchProviders[t]=n.includes(`wss`)?new o.ethers.WebSocketProvider(n):i.createJsonRpcProvider(t)})}initConnector(e){this.connector=e}initConfig(e){this.config=e}async init(e){if(!this.connector)throw Error(`No Connector In Provider Adapter`);if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`);let t=await this.connector.getProvider();this.originalProvider=new o.ethers.BrowserProvider(t);let n=(await this.connector.getAccounts())?.[0];if(!n){this.chainEventListener&&this.chainEventListener.onChainChanged();return}this.signer=await this.walletClientToSigner({transport:t,account:n},this.chainId)}async disconnectFromConnector(){if(!this.config)throw Error(`No Config In Provider Adapter`);this.release(),await(0,c.disconnect)(this.config)}async connectToConnector(e){if(!this.config)throw Error(`No Config In Provider Adapter`);if(e.id===`walletConnect`)try{await(0,c.reconnect)(this.config,{connectors:[e]}),await(0,c.disconnect)(this.config)}catch{}try{return(await(0,c.connect)(this.config,{connector:e})).chainId}catch(t){if(t instanceof s.ConnectorAlreadyConnectedError)return e.getChainId();let r=n.transactionErrorCodes.CONNECTION_FAILED;throw t?.code===4001&&(r=n.UserFriendlyErrorCodes.YOU_CANCELED_REQUEST),Error(r)}}getChainId(){return this.chainId}async waitForTransaction(e,t,r){if((await this.fetchProviders[e]?.waitForTransaction(t,r))?.status)return!0;throw Error(n.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let t=await(0,c.signMessage)(this.config,{message:e});if(!t)throw Error(n.transactionErrorCodes.SIGNING_FAILED);if(t.includes(`error`))throw Error(n.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return t}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(e){if(!this.config)throw Error(`No Config In Provider Adapter`);return(0,c.switchChain)(this.config,{chainId:e.chainId})}async getAddress(){if(!this.config)throw Error(`No Config In Provider Adapter`);let{address:e}=(0,c.getAccount)(this.config);if(!e)throw Error(`IllegalState`);return o.ethers.getAddress(e)}setChainEventListener(e){if(!this.config)throw Error(`No Config In Provider Adapter`);this.chainEventListener=e,this.chainEventListener&&(this.unsubscribeFns.push((0,c.watchAccount)(this.config,{onChange:({address:e},{address:t})=>{this.chainEventListener&&e!==t&&this.chainEventListener.onAccountChanged()}})),this.unsubscribeFns.push((0,c.watchChainId)(this.config,{onChange:e=>{this.chainEventListener&&this.chainEventListener.onChainChanged(e)}})))}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}getContract(e,t,n=void 0,r){return a.getContract(t,e,n,r)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){let r=this.fetchProviders[e];if(!r)throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,r)}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(e){return await this.connectToConnector(e)}isPermitterAvailable(){if(!this.chainId)throw Error(`Illegal state: no chainId`);return!!e.networkRegistry[this.chainId]?.contractData?.permitterAddress}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}async walletClientToSigner(e,t){let{account:n,transport:r}=e;return new o.ethers.BrowserProvider(r).getSigner(n)}async supportsBatchCall(e){
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../types/eip5792.types.cjs`),n=require(`../error-handling/error-codes.constants.cjs`),r=require(`../error-handling/logger.cjs`),i=require(`../functions/utils/create-provider.cjs`),a=require(`../functions/web3/getContractMetadata.cjs`);let o=require(`ethers`),s=require(`wagmi`),c=require(`wagmi/actions`);var l=class{connector;chainId;originalProvider;fetchProviders={};signer;chainEventListener;config;unsubscribeFns=[];constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{if(e.isSolanaLike(t))return;let{fetchRpcUrl:n}=e.networkRegistry[t];if(!n)throw Error(`No Fetch RPC URL In Provider Adapter`);this.fetchProviders[t]=n.includes(`wss`)?new o.ethers.WebSocketProvider(n):i.createJsonRpcProvider(t)})}initConnector(e){this.connector=e}initConfig(e){this.config=e}async init(e){if(!this.connector)throw Error(`No Connector In Provider Adapter`);if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`);let t=await this.connector.getProvider();this.originalProvider=new o.ethers.BrowserProvider(t);let n=(await this.connector.getAccounts())?.[0];if(!n){this.chainEventListener&&this.chainEventListener.onChainChanged();return}this.signer=await this.walletClientToSigner({transport:t,account:n},this.chainId)}async disconnectFromConnector(){if(!this.config)throw Error(`No Config In Provider Adapter`);this.release(),await(0,c.disconnect)(this.config)}async connectToConnector(e){if(!this.config)throw Error(`No Config In Provider Adapter`);if(e.id===`walletConnect`)try{await(0,c.reconnect)(this.config,{connectors:[e]}),await(0,c.disconnect)(this.config)}catch{}try{return(await(0,c.connect)(this.config,{connector:e})).chainId}catch(t){if(t instanceof s.ConnectorAlreadyConnectedError)return e.getChainId();let r=n.transactionErrorCodes.CONNECTION_FAILED;throw t?.code===4001&&(r=n.UserFriendlyErrorCodes.YOU_CANCELED_REQUEST),Error(r)}}getChainId(){return this.chainId}async waitForTransaction(e,t,r){if((await this.fetchProviders[e]?.waitForTransaction(t,r))?.status)return!0;throw Error(n.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let t=await(0,c.signMessage)(this.config,{message:e});if(!t)throw Error(n.transactionErrorCodes.SIGNING_FAILED);if(t.includes(`error`))throw Error(n.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return t}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(e){if(!this.config)throw Error(`No Config In Provider Adapter`);return(0,c.switchChain)(this.config,{chainId:e.chainId})}async getAddress(){if(!this.config)throw Error(`No Config In Provider Adapter`);let{address:e}=(0,c.getAccount)(this.config);if(!e)throw Error(`IllegalState`);return o.ethers.getAddress(e)}setChainEventListener(e){if(!this.config)throw Error(`No Config In Provider Adapter`);this.chainEventListener=e,this.chainEventListener&&(this.unsubscribeFns.push((0,c.watchAccount)(this.config,{onChange:({address:e},{address:t})=>{this.chainEventListener&&e!==t&&this.chainEventListener.onAccountChanged()}})),this.unsubscribeFns.push((0,c.watchChainId)(this.config,{onChange:e=>{this.chainEventListener&&this.chainEventListener.onChainChanged(e)}})))}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}getContract(e,t,n=void 0,r){return a.getContract(t,e,n,r)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){let r=this.fetchProviders[e];if(!r)throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,r)}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(e){return await this.connectToConnector(e)}isPermitterAvailable(){if(!this.chainId)throw Error(`Illegal state: no chainId`);return!!e.networkRegistry[this.chainId]?.contractData?.permitterAddress}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}async walletClientToSigner(e,t){let{account:n,transport:r}=e;return new o.ethers.BrowserProvider(r).getSigner(n)}async supportsBatchCall(e){if(!this.originalProvider)return!1;try{let t=await this.getAddress(),n=`0x${e.toString(16)}`,r=await this.originalProvider.send(`wallet_getCapabilities`,[t,[n]]),i=r?.[n]||r?.[`0x0`];if(!i?.atomic)return!1;let a=typeof i.atomic==`string`?i.atomic:i.atomic?.status;return a===`supported`||a===`ready`}catch{return!1}}async waitForBatchTransactionStatus(e){if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);for(let n=0;n<60;n+=1){await new Promise(e=>{setTimeout(()=>e(),1e3)});try{let n=await this.originalProvider.send(`wallet_getCallsStatus`,[e]);if(n.status===t.CallsStatus.Confirmed&&n.receipts?.[0]?.transactionHash)return n.receipts[0].transactionHash;if(n.status===t.CallsStatus.OffchainFailure||n.status===t.CallsStatus.ChainFailure||n.status===t.CallsStatus.PartialFailure)break}catch(e){r.Logger.log(`waitForBatchTransactionStatus:`,e)}}throw Error(`Batch transaction timed out or failed`)}async sendBatchCallsTransaction(e,t){if(!this.fetchProviders[e])throw Error(`WagmiProviderAdapter: fetchProvider not initialized`);if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);let n=await this.getAddress(),r={version:`2.0.0`,chainId:`0x${e.toString(16)}`,from:n,atomicRequired:!0,calls:t},i=await this.originalProvider.send(`wallet_sendCalls`,[r]),a=i?.id||i;if(!a||typeof a!=`string`)throw Error(`Invalid batch ID received from wallet_sendCalls`);let o=await this.waitForBatchTransactionStatus(a),s=await this.fetchProviders[e].getTransaction(o);if(!s)throw Error(`Transaction not found`);return s}},u=new l,d=()=>new l;exports.default=d,exports.wagmiProviderAdapter=u;
|
|
@@ -143,37 +143,14 @@ var y = class {
|
|
|
143
143
|
return new l.BrowserProvider(r).getSigner(n);
|
|
144
144
|
}
|
|
145
145
|
async supportsBatchCall(e) {
|
|
146
|
-
|
|
147
|
-
if (o.log(`${t} start`, {
|
|
148
|
-
chainId: e,
|
|
149
|
-
hasOriginalProvider: !!this.originalProvider,
|
|
150
|
-
adapterChainId: this.chainId
|
|
151
|
-
}), !this.originalProvider) return o.log(`${t} no original provider`), !1;
|
|
146
|
+
if (!this.originalProvider) return !1;
|
|
152
147
|
try {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
o.log(`${t} wallet_getCapabilities success`, {
|
|
160
|
-
capabilityKeys: i ? Object.keys(i) : void 0,
|
|
161
|
-
capabilities: i
|
|
162
|
-
});
|
|
163
|
-
let a = i?.[r] || i?.["0x0"];
|
|
164
|
-
if (o.log(`${t} chain capabilities resolved`, { chainCapabilities: a }), !a?.atomic) return o.log(`${t} atomic capability missing or falsy`), !1;
|
|
165
|
-
let s = typeof a.atomic == "string" ? a.atomic : a.atomic?.status;
|
|
166
|
-
o.log(`${t} atomic capability parsed`, { atomicValue: s });
|
|
167
|
-
let c = s === "supported" || s === "ready";
|
|
168
|
-
return o.log(`${t} complete`, { isSupported: c }), c;
|
|
169
|
-
} catch (e) {
|
|
170
|
-
return o.log(`${t} error`, {
|
|
171
|
-
message: e?.message,
|
|
172
|
-
code: e?.code,
|
|
173
|
-
shortMessage: e?.shortMessage,
|
|
174
|
-
data: e?.data,
|
|
175
|
-
error: e
|
|
176
|
-
}), !1;
|
|
148
|
+
let t = await this.getAddress(), n = `0x${e.toString(16)}`, r = await this.originalProvider.send("wallet_getCapabilities", [t, [n]]), i = r?.[n] || r?.["0x0"];
|
|
149
|
+
if (!i?.atomic) return !1;
|
|
150
|
+
let a = typeof i.atomic == "string" ? i.atomic : i.atomic?.status;
|
|
151
|
+
return a === "supported" || a === "ready";
|
|
152
|
+
} catch {
|
|
153
|
+
return !1;
|
|
177
154
|
}
|
|
178
155
|
}
|
|
179
156
|
async waitForBatchTransactionStatus(e) {
|