@stridge/kit 0.1.0-alpha.40 → 0.1.0-alpha.42

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.
@@ -1 +1 @@
1
- import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{NATIVE_QUOTE_ADDRESS as t,isStablecoinSymbol as n,toBaseUnits as r}from"./internal/encoding.js";import{resolveSdkEnv as i}from"./internal/env.js";import{buildKitMetadata as a}from"./internal/metadata.js";import{pollOnce as o}from"./internal/pollOnce.js";import{buildErc20OrNativeStep as s,signAndConfirm as c}from"./internal/signAndConfirm.js";import{buildEvmChainsParam as l}from"./internal/supportedChains.js";import{withOneShotRetry as u}from"./internal/retry.js";import{pickRelevantSettlement as d}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{formatUsd as f}from"../../shared/format/formatUsd.js";import{balanceToBalancesPayload as p,buildRoutableAllowlist as m}from"../../flows/deposit/driver/transformers/balanceToBalancesPayload.js";import{quoteToPayload as h}from"../../flows/deposit/driver/transformers/quoteToPayload.js";import{settlementToPayload as g}from"../../flows/deposit/driver/transformers/settlementToPayload.js";import{startToAddressesPayload as _}from"../../flows/deposit/driver/transformers/startToAddressesPayload.js";import{startToBrandPayload as v}from"../../flows/deposit/driver/transformers/startToBrandPayload.js";import{startToTargetPayload as y}from"../../flows/deposit/driver/transformers/startToTargetPayload.js";import{walletAddressToWalletPayload as b}from"../../flows/deposit/driver/transformers/walletAddressToWalletPayload.js";import{defaultBlockExplorers as x}from"../../shared/utils/explorers.js";import{createEntityStore as ee}from"../stridge-mock/store.js";import{startPoll as S}from"./poll.js";import{createStridgeRpc as te}from"./rpc.js";import{createWagmiSigner as ne}from"./wagmiSigner.js";import{createApiClient as re}from"@stridge/sdk";function C(C){let w=re({projectKey:C.projectKey,env:i(C.environment)}),T=C.pollIntervals??{},E=T.detectionMs??2e3,D=T.processingMs??2e3,O=T.terminalMs??1e4,k=T.balancesMs??6e4,A=C.minAmountUsd,j=C.maxAmountUsd,M=C.getI18n??(()=>e),N={...x(),...C.explorers??{}},P=C.destination.network_id,F=C.destination.asset_symbol,I=C.destination.to_address??C.userAddress,L=C.wagmiConfig?ne({wagmiConfig:C.wagmiConfig}):void 0,R=C.rpc??te(),z={address:C.userAddress},B=ee({brand:{status:`idle`},target:{status:`idle`},addresses:{status:`idle`},balances:{status:`idle`},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:b(z),raw:z,response:z}}),V,H,U,W;function G(){if(H)return U??=m(H),U}let K=!1,q=Promise.resolve(),J=!1,Y=Promise.resolve(null),X=null;function Z(){K||(K=!0,q=ce(),Y=le())}async function ce(){B.update({brand:{status:`loading`},target:{status:`loading`},addresses:{status:`loading`},balances:{status:`loading`}});try{let[e,t]=await Promise.all([u(()=>w.gateway.start({owner:C.userAddress,destination:{network_id:P,to_address:I,asset_symbol:F},metadata:a({flow:`deposit`,...C.metadata?{hostMetadata:C.metadata}:{},extras:{destination:{networkId:P,assetSymbol:F}}})})),C.catalog?C.catalog.getSupportedAssets():u(()=>w.uda.supportedAssets()).catch(()=>null)]);V=e;let n=e.metadata?.brand_name;typeof n==`string`&&n.trim().length>0&&(W=n.trim());let r=M();if(t&&(H=t,U=void 0),B.update({brand:{status:`ready`,payload:v(e.metadata),raw:e.metadata,response:e},addresses:{status:`ready`,payload:_(e.deposit_addresses,{i18n:r,explorers:N,...t?{chainLogos:ae(t)}:{},...t?{minAmountUsdByEip155Id:se(t,A),nativeAssetByEip155Id:oe(t)}:{}}),raw:e.deposit_addresses,response:e}}),t){let e=y(t,{i18n:r,networkId:P,assetSymbol:F,minAmountUsd:A,...j===void 0?{}:{maxAmountUsd:j}}),n=t.assets.find(e=>String(e.network_id)===P);e&&n?B.update({target:{status:`ready`,payload:e,raw:n,response:t}}):B.update({target:{status:`error`,error:Error(`Destination not found in supportedAssets catalog.`)}})}else B.update({target:{status:`error`,error:Error(`supportedAssets fetch failed.`)}})}catch(e){let t=e instanceof Error?e:Error(String(e));B.update({brand:{status:`error`,error:t},target:{status:`error`,error:t},addresses:{status:`error`,error:t}})}}async function le(){try{await q;let e=l(H),t=await u(()=>w.balance.onchain(C.userAddress,{includeSpam:!1,includeZero:!1,...e?{chains:e}:{}}));X=Date.now();let n=G();if(!n)return B.update({balances:{status:`ready`,payload:[],raw:t,response:t}}),t;let r=p(t,{i18n:M(),routable:n,minAmountUsd:A,...C.resolveTokenIcon?{resolveTokenIcon:C.resolveTokenIcon}:{}});return B.update({balances:{status:`ready`,payload:r,raw:t,response:t},wallet:Q(r,M())}),t}catch(e){let t=e instanceof Error?e:Error(String(e));return B.update({balances:{status:`error`,error:t}}),null}}function Q(e,t){let n=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{status:`ready`,payload:{...b(z),balanceTotalUsd:{value:n,formatted:f(n,t)}},raw:z,response:z}}return{getSnapshot(){return B.getSnapshot()},subscribe(e){return B.subscribe(e)},arm:Z,async requestQuote(e,i){if(Z(),B.update({quote:{status:`loading`}}),await q,i.aborted)return;let a=V;if(!a){B.update({quote:{status:`error`,error:Error(`gateway/start not yet resolved.`)}});return}try{let o=e.sourceChainId,s=e.sourceIsNative?t:e.sourceTokenAddress,c=r(e.amount,e.sourceTokenDecimals),l=await w.uda.quote({fromNetworkId:o,fromAsset:s,toNetworkId:Number(a.destination.eip155_id),toAsset:a.destination.asset_address||`0x0000000000000000000000000000000000000000`,amount:c,fromAddress:C.userAddress,toAddress:I},{signal:i});if(i.aborted)return;let u=M(),d={chainId:o,networkName:ie(o),eip155Id:String(o),symbol:e.sourceTokenSymbol,decimals:e.sourceTokenDecimals,address:e.sourceTokenAddress,isNative:e.sourceIsNative},f={chainId:Number(a.destination.eip155_id),networkName:a.destination.network_name,eip155Id:a.destination.eip155_id,symbol:a.destination.asset_symbol,decimals:a.destination.asset_decimals,address:a.destination.asset_address,isNative:!a.destination.asset_address},p=n(a.destination.asset_symbol)?1:void 0,m=h(l,{i18n:u,sendSide:d,receiveSide:f,sourceAmount:e.amount,now:Date.now(),...e.sourcePriceUsd===void 0?{}:{sendPriceUsd:e.sourcePriceUsd},...p===void 0?{}:{receivePriceUsd:p}});B.update({quote:{status:`ready`,payload:m,raw:l,response:l}})}catch(e){if(i.aborted)return;let t=e instanceof Error?e:Error(String(e));B.update({quote:{status:`error`,error:t}})}},async submitDeposit(e,t){if(!L)throw Error(`Connect a wallet to sign and submit the deposit.`);if(Z(),await q,t.aborted)throw new DOMException(`Aborted`,`AbortError`);let n=V;if(!n)throw Error(`gateway/start not yet resolved.`);let r=n.deposit_addresses.find(t=>Number(t.eip155_id)===Number(e.sourceChainId));if(!r)throw Error(`No Stridge deposit address provisioned on chain ${e.sourceChainId}. Pick a supported source chain.`);return c({signer:L,rpc:R,step:s({chainId:e.sourceChainId,from:C.userAddress,udaDepositAddress:r.address,amount:e.amount,decimals:e.sourceTokenDecimals,isNative:e.sourceIsNative,...e.sourceIsNative?{}:{sourceTokenAddress:e.sourceTokenAddress}}),signal:t,explorers:N,...C.receiptConfirmations===void 0?{}:{receiptConfirmations:C.receiptConfirmations},...C.receiptPollingIntervalMs===void 0?{}:{receiptPollingIntervalMs:C.receiptPollingIntervalMs}})},watchBalances(e,t,n){Z(),S({signal:n,fetch:async e=>{if(!J)return J=!0,Y;if(X!==null&&Date.now()-X<3e4)return B.getSnapshot().balances;try{await q;let t=l(H),n=await w.balance.onchain(C.userAddress,{signal:e,includeSpam:!1,includeZero:!1,...t?{chains:t}:{}});X=Date.now();let r=G();if(!r)return B.update({balances:{status:`ready`,payload:[],raw:n,response:n}}),null;let i=p(n,{i18n:M(),routable:r,minAmountUsd:A,...C.resolveTokenIcon?{resolveTokenIcon:C.resolveTokenIcon}:{}});return B.update({balances:{status:`ready`,payload:i,raw:n,response:n},wallet:Q(i,M())}),n}catch{return null}},listener:()=>{t(B.getSnapshot().balances)},nextIntervalMs:()=>k})},watchSourceTx(e,t,n){Z();let r=new Set,i={current:!1},a=!1;S({signal:n,fetch:e=>o(w,C.userAddress,$(),e),listener:e=>{if(a||!e)return;let n=e.settlements??[];if(!i.current){for(let e of n)r.add(e.id);i.current=!0;return}let o=n.find(e=>!r.has(e.id));if(!o)return;a=!0;let s=Number(o.from?.eip155_id??`0`);t({hash:o.from?.tx_id??``,...N[s]&&o.from?.tx_id?{explorerUrl:`${N[s].replace(/\/+$/,``)}/tx/${o.from.tx_id}`}:{}})},nextIntervalMs:()=>a?0:E})},watchSettlement(e,t,n){let r=e=>o(w,C.userAddress,$(),e),i=!1;S({signal:n,fetch:r,listener:n=>{if(!n)return;let r=d(n,{txHash:e.tx.hash});if(!r)return;let a=g(r,n,{i18n:M(),sourceWallet:{name:`Wallet`,address:C.userAddress},explorers:N,...W?{brandName:W}:{}});a.kind!==`pending`&&(i=!0);let o={status:`ready`,payload:a,raw:r,response:n};B.update({settlement:o}),t(o)},nextIntervalMs:()=>i?O:D})},async fetchActiveSettlement(e,t){let n=await o(w,C.userAddress,$(),t);if(!n)return null;let r=d(n);if(!r)return null;let i=g(r,n,{i18n:M(),sourceWallet:{name:`Wallet`,address:C.userAddress},explorers:N,...W?{brandName:W}:{}});return i.kind===`pending`?{payload:i,raw:r,response:n}:null}};function $(){return{network_id:P,asset_symbol:F,to_address:I}}}function ie(e){switch(e){case 1:return`Ethereum`;case 56:return`BSC`;case 137:return`Polygon`;case 42161:return`Arbitrum`;case 10:return`Optimism`;case 8453:return`Base`;default:return`Chain ${e}`}}function ae(e){let t={};for(let n of e.assets){let e=String(n.eip155_id),r=n.native_currency?.logo;r&&(t[e]=r)}return t}function oe(e){let t={};for(let n of e.assets){let e=n.native_currency;if(!e?.symbol)continue;let r=String(n.eip155_id);t[r]={symbol:e.symbol,address:``,decimals:typeof e.decimals==`number`?e.decimals:18,isNative:!0,...e.logo?{assetLogoUrl:e.logo}:{}}}return t}function se(e,t){let n={};for(let r of e.assets){let e=String(r.eip155_id),i=r.native_currency?.min_deposit_usd,a=typeof i==`string`&&i.trim().length>0?Number.parseFloat(i):NaN;n[e]=Number.isFinite(a)?a:t}return n}export{C as createStridgeDepositDriver};
1
+ import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{NATIVE_QUOTE_ADDRESS as t,isStablecoinSymbol as n,toBaseUnits as r}from"./internal/encoding.js";import{resolveSdkEnv as i}from"./internal/env.js";import{buildKitMetadata as a}from"./internal/metadata.js";import{pollOnce as o}from"./internal/pollOnce.js";import{buildErc20OrNativeStep as s,signAndConfirm as c}from"./internal/signAndConfirm.js";import{buildEvmChainsParam as l}from"./internal/supportedChains.js";import{withOneShotRetry as u}from"./internal/retry.js";import{pickRelevantSettlement as d}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{formatUsd as f}from"../../shared/format/formatUsd.js";import{balanceToBalancesPayload as p,buildRoutableAllowlist as m}from"../../flows/deposit/driver/transformers/balanceToBalancesPayload.js";import{quoteToPayload as h}from"../../flows/deposit/driver/transformers/quoteToPayload.js";import{settlementToPayload as g}from"../../flows/deposit/driver/transformers/settlementToPayload.js";import{startToAddressesPayload as _}from"../../flows/deposit/driver/transformers/startToAddressesPayload.js";import{startToBrandPayload as v}from"../../flows/deposit/driver/transformers/startToBrandPayload.js";import{startToTargetPayload as y}from"../../flows/deposit/driver/transformers/startToTargetPayload.js";import{walletAddressToWalletPayload as b}from"../../flows/deposit/driver/transformers/walletAddressToWalletPayload.js";import{defaultBlockExplorers as x}from"../../shared/utils/explorers.js";import{createEntityStore as ee}from"../stridge-mock/store.js";import{startPoll as S}from"./poll.js";import{createStridgeRpc as te}from"./rpc.js";import{createWagmiSigner as ne}from"./wagmiSigner.js";import{createApiClient as re}from"@stridge/sdk";function C(C){let w=re({projectKey:C.projectKey,env:i(C.environment)}),T=C.pollIntervals??{},E=T.detectionMs??2e3,D=T.processingMs??2e3,O=T.terminalMs??1e4,k=T.balancesMs??6e4,A=C.minAmountUsd,j=C.maxAmountUsd,M=C.getI18n??(()=>e),N={...x(),...C.explorers??{}},P=C.destination.network_id,F=C.destination.asset_symbol,I=C.destination.to_address??C.userAddress,L=C.rpc??te(),R={address:C.userAddress},z=ee({brand:{status:`idle`},target:{status:`idle`},addresses:{status:`idle`},balances:{status:`idle`},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:b(R),raw:R,response:R}}),B,V,H,U,W=C.wagmiConfig?ne({wagmiConfig:C.wagmiConfig,getSupportedAssets:()=>V,explorers:N}):void 0;function G(){if(V)return H??=m(V),H}let K=!1,q=Promise.resolve(),J=!1,Y=Promise.resolve(null),X=null;function Z(){K||(K=!0,q=ce(),Y=le())}async function ce(){z.update({brand:{status:`loading`},target:{status:`loading`},addresses:{status:`loading`},balances:{status:`loading`}});try{let[e,t]=await Promise.all([u(()=>w.gateway.start({owner:C.userAddress,destination:{network_id:P,to_address:I,asset_symbol:F},metadata:a({flow:`deposit`,...C.metadata?{hostMetadata:C.metadata}:{},extras:{destination:{networkId:P,assetSymbol:F}}})})),C.catalog?C.catalog.getSupportedAssets():u(()=>w.uda.supportedAssets()).catch(()=>null)]);B=e;let n=e.metadata?.brand_name;typeof n==`string`&&n.trim().length>0&&(U=n.trim());let r=M();if(t&&(V=t,H=void 0),z.update({brand:{status:`ready`,payload:v(e.metadata),raw:e.metadata,response:e},addresses:{status:`ready`,payload:_(e.deposit_addresses,{i18n:r,explorers:N,...t?{chainLogos:ae(t)}:{},...t?{minAmountUsdByEip155Id:se(t,A),nativeAssetByEip155Id:oe(t)}:{}}),raw:e.deposit_addresses,response:e}}),t){let e=y(t,{i18n:r,networkId:P,assetSymbol:F,minAmountUsd:A,...j===void 0?{}:{maxAmountUsd:j}}),n=t.assets.find(e=>String(e.network_id)===P);e&&n?z.update({target:{status:`ready`,payload:e,raw:n,response:t}}):z.update({target:{status:`error`,error:Error(`Destination not found in supportedAssets catalog.`)}})}else z.update({target:{status:`error`,error:Error(`supportedAssets fetch failed.`)}})}catch(e){let t=e instanceof Error?e:Error(String(e));z.update({brand:{status:`error`,error:t},target:{status:`error`,error:t},addresses:{status:`error`,error:t}})}}async function le(){try{await q;let e=l(V),t=await u(()=>w.balance.onchain(C.userAddress,{includeSpam:!1,includeZero:!1,...e?{chains:e}:{}}));X=Date.now();let n=G();if(!n)return z.update({balances:{status:`ready`,payload:[],raw:t,response:t}}),t;let r=p(t,{i18n:M(),routable:n,minAmountUsd:A,...C.resolveTokenIcon?{resolveTokenIcon:C.resolveTokenIcon}:{}});return z.update({balances:{status:`ready`,payload:r,raw:t,response:t},wallet:Q(r,M())}),t}catch(e){let t=e instanceof Error?e:Error(String(e));return z.update({balances:{status:`error`,error:t}}),null}}function Q(e,t){let n=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{status:`ready`,payload:{...b(R),balanceTotalUsd:{value:n,formatted:f(n,t)}},raw:R,response:R}}return{getSnapshot(){return z.getSnapshot()},subscribe(e){return z.subscribe(e)},arm:Z,async requestQuote(e,i){if(Z(),z.update({quote:{status:`loading`}}),await q,i.aborted)return;let a=B;if(!a){z.update({quote:{status:`error`,error:Error(`gateway/start not yet resolved.`)}});return}try{let o=e.sourceChainId,s=e.sourceIsNative?t:e.sourceTokenAddress,c=r(e.amount,e.sourceTokenDecimals),l=await w.uda.quote({fromNetworkId:o,fromAsset:s,toNetworkId:Number(a.destination.eip155_id),toAsset:a.destination.asset_address||`0x0000000000000000000000000000000000000000`,amount:c,fromAddress:C.userAddress,toAddress:I},{signal:i});if(i.aborted)return;let u=M(),d={chainId:o,networkName:ie(o),eip155Id:String(o),symbol:e.sourceTokenSymbol,decimals:e.sourceTokenDecimals,address:e.sourceTokenAddress,isNative:e.sourceIsNative},f={chainId:Number(a.destination.eip155_id),networkName:a.destination.network_name,eip155Id:a.destination.eip155_id,symbol:a.destination.asset_symbol,decimals:a.destination.asset_decimals,address:a.destination.asset_address,isNative:!a.destination.asset_address},p=n(a.destination.asset_symbol)?1:void 0,m=h(l,{i18n:u,sendSide:d,receiveSide:f,sourceAmount:e.amount,now:Date.now(),...e.sourcePriceUsd===void 0?{}:{sendPriceUsd:e.sourcePriceUsd},...p===void 0?{}:{receivePriceUsd:p}});z.update({quote:{status:`ready`,payload:m,raw:l,response:l}})}catch(e){if(i.aborted)return;let t=e instanceof Error?e:Error(String(e));z.update({quote:{status:`error`,error:t}})}},async submitDeposit(e,t){if(!W)throw Error(`Connect a wallet to sign and submit the deposit.`);if(Z(),await q,t.aborted)throw new DOMException(`Aborted`,`AbortError`);let n=B;if(!n)throw Error(`gateway/start not yet resolved.`);let r=n.deposit_addresses.find(t=>Number(t.eip155_id)===Number(e.sourceChainId));if(!r)throw Error(`No Stridge deposit address provisioned on chain ${e.sourceChainId}. Pick a supported source chain.`);return c({signer:W,rpc:L,step:s({chainId:e.sourceChainId,from:C.userAddress,udaDepositAddress:r.address,amount:e.amount,decimals:e.sourceTokenDecimals,isNative:e.sourceIsNative,...e.sourceIsNative?{}:{sourceTokenAddress:e.sourceTokenAddress}}),signal:t,explorers:N,...C.receiptConfirmations===void 0?{}:{receiptConfirmations:C.receiptConfirmations},...C.receiptPollingIntervalMs===void 0?{}:{receiptPollingIntervalMs:C.receiptPollingIntervalMs}})},watchBalances(e,t,n){Z(),S({signal:n,fetch:async e=>{if(!J)return J=!0,Y;if(X!==null&&Date.now()-X<3e4)return z.getSnapshot().balances;try{await q;let t=l(V),n=await w.balance.onchain(C.userAddress,{signal:e,includeSpam:!1,includeZero:!1,...t?{chains:t}:{}});X=Date.now();let r=G();if(!r)return z.update({balances:{status:`ready`,payload:[],raw:n,response:n}}),null;let i=p(n,{i18n:M(),routable:r,minAmountUsd:A,...C.resolveTokenIcon?{resolveTokenIcon:C.resolveTokenIcon}:{}});return z.update({balances:{status:`ready`,payload:i,raw:n,response:n},wallet:Q(i,M())}),n}catch{return null}},listener:()=>{t(z.getSnapshot().balances)},nextIntervalMs:()=>k})},watchSourceTx(e,t,n){Z();let r=new Set,i={current:!1},a=!1;S({signal:n,fetch:e=>o(w,C.userAddress,$(),e),listener:e=>{if(a||!e)return;let n=e.settlements??[];if(!i.current){for(let e of n)r.add(e.id);i.current=!0;return}let o=n.find(e=>!r.has(e.id));if(!o)return;a=!0;let s=Number(o.from?.eip155_id??`0`);t({hash:o.from?.tx_id??``,...N[s]&&o.from?.tx_id?{explorerUrl:`${N[s].replace(/\/+$/,``)}/tx/${o.from.tx_id}`}:{}})},nextIntervalMs:()=>a?0:E})},watchSettlement(e,t,n){let r=e=>o(w,C.userAddress,$(),e),i=!1;S({signal:n,fetch:r,listener:n=>{if(!n)return;let r=d(n,{txHash:e.tx.hash});if(!r)return;let a=g(r,n,{i18n:M(),sourceWallet:{name:`Wallet`,address:C.userAddress},explorers:N,...U?{brandName:U}:{}});a.kind!==`pending`&&(i=!0);let o={status:`ready`,payload:a,raw:r,response:n};z.update({settlement:o}),t(o)},nextIntervalMs:()=>i?O:D})},async fetchActiveSettlement(e,t){let n=await o(w,C.userAddress,$(),t);if(!n)return null;let r=d(n);if(!r)return null;let i=g(r,n,{i18n:M(),sourceWallet:{name:`Wallet`,address:C.userAddress},explorers:N,...U?{brandName:U}:{}});return i.kind===`pending`?{payload:i,raw:r,response:n}:null}};function $(){return{network_id:P,asset_symbol:F,to_address:I}}}function ie(e){switch(e){case 1:return`Ethereum`;case 56:return`BSC`;case 137:return`Polygon`;case 42161:return`Arbitrum`;case 10:return`Optimism`;case 8453:return`Base`;default:return`Chain ${e}`}}function ae(e){let t={};for(let n of e.assets){let e=String(n.eip155_id),r=n.native_currency?.logo;r&&(t[e]=r)}return t}function oe(e){let t={};for(let n of e.assets){let e=n.native_currency;if(!e?.symbol)continue;let r=String(n.eip155_id);t[r]={symbol:e.symbol,address:``,decimals:typeof e.decimals==`number`?e.decimals:18,isNative:!0,...e.logo?{assetLogoUrl:e.logo}:{}}}return t}function se(e,t){let n={};for(let r of e.assets){let e=String(r.eip155_id),i=r.native_currency?.min_deposit_usd,a=typeof i==`string`&&i.trim().length>0?Number.parseFloat(i):NaN;n[e]=Number.isFinite(a)?a:t}return n}export{C as createStridgeDepositDriver};
@@ -0,0 +1 @@
1
+ import{resolveAddEthereumChain as e}from"./resolveAddEthereumChain.js";import{numberToHex as t}from"viem";import{getAccount as n,switchChain as r}from"wagmi/actions";function i(e){let t=e,n=new Set;for(;t&&!n.has(t);){if(n.add(t),t instanceof Error&&t.name===`ChainNotConfiguredError`)return!0;t=t.cause}return!1}function a(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===4902||t.data?.originalError?.code===4902}async function o(o,s){let c=n(s.wagmiConfig);if(c.chainId===o)return;if(!c.connector)throw Error(`Connect a wallet to sign and submit the deposit.`);try{await r(s.wagmiConfig,{chainId:o});return}catch(e){if(!i(e))throw e}let l=e(o,{wagmiConfig:s.wagmiConfig,supportedAssets:s.getSupportedAssets(),explorers:s.explorers});if(!l)throw Error(`Unable to add chain ${o} to your wallet automatically. Add it manually in your wallet and try again.`);let u=await c.connector.getProvider({chainId:o}),d=t(o);try{await u.request({method:`wallet_switchEthereumChain`,params:[{chainId:d}]})}catch(e){if(!a(e))throw e;await u.request({method:`wallet_addEthereumChain`,params:[l]})}let f=await u.request({method:`eth_chainId`});if(Number.parseInt(f,16)!==o){let e=Error(`User rejected the chain switch after adding the network.`);throw e.name=`UserRejectedRequestError`,Object.assign(e,{code:4001}),e}}export{o as ensureWalletChain};
@@ -0,0 +1 @@
1
+ import{numberToHex as e}from"viem";const t=e=>`https://${e}.nodes.stridge.com`;function n(n,r){let i=r.wagmiConfig.chains.find(e=>e.id===n),a=r.supportedAssets?.assets.find(e=>e.chain_type===`EVM`&&e.eip155_id===n),o=i?.name??a?.network_name,s=i?.nativeCurrency.symbol??a?.native_currency.symbol,c=typeof a?.native_currency.decimals==`number`?a.native_currency.decimals:void 0,l=i?.nativeCurrency.decimals??c??18,u=i?.nativeCurrency.name??a?.native_currency.name??s;if(!o||!s||!u)return;let d=i?.rpcUrls.default?.http[0],f=[d&&d.length>0?d:t(n)],p=i?.blockExplorers?.default?.url??r.explorers[n];return{chainId:e(n),chainName:o,nativeCurrency:{name:u,symbol:s,decimals:l},rpcUrls:f,...p?{blockExplorerUrls:[p]}:{}}}export{n as resolveAddEthereumChain};
@@ -1 +1 @@
1
- import{numberToHex as e}from"viem";import{getAccount as t,getConnectorClient as n,switchChain as r}from"wagmi/actions";function i(i){return{async signAndBroadcastStep(o,s){a(s);let c=t(i.wagmiConfig);if(!c.address)throw Error(`Connect a wallet to sign and submit the deposit.`);c.chainId!==o.chainId&&await r(i.wagmiConfig,{chainId:o.chainId}),a(s);let l=o.from??c.address;if(!l)throw Error(`Stridge driver: no connected wallet address available to broadcast the deposit tx.`);return await(await n(i.wagmiConfig,{chainId:o.chainId})).request({method:`eth_sendTransaction`,params:[{from:l,to:o.to,data:o.data,value:e(o.value),chainId:e(o.chainId)}]})}}}function a(e){if(e.aborted)throw new DOMException(`Aborted`,`AbortError`)}export{i as createWagmiSigner};
1
+ import{ensureWalletChain as e}from"./internal/ensureWalletChain.js";import{numberToHex as t}from"viem";import{getAccount as n,getConnectorClient as r}from"wagmi/actions";function i(i){return{async signAndBroadcastStep(o,s){a(s);let c=n(i.wagmiConfig);if(!c.address)throw Error(`Connect a wallet to sign and submit the deposit.`);await e(o.chainId,{wagmiConfig:i.wagmiConfig,getSupportedAssets:i.getSupportedAssets,explorers:i.explorers}),a(s);let l=o.from??c.address;if(!l)throw Error(`Stridge driver: no connected wallet address available to broadcast the deposit tx.`);return await(await r(i.wagmiConfig,{chainId:o.chainId})).request({method:`eth_sendTransaction`,params:[{from:l,to:o.to,data:o.data,value:t(o.value),chainId:t(o.chainId)}]})}}}function a(e){if(e.aborted)throw new DOMException(`Aborted`,`AbortError`)}export{i as createWagmiSigner};
package/dist/package.js CHANGED
@@ -1 +1 @@
1
- var e=`0.1.0-alpha.40`;export{e as version};
1
+ var e=`0.1.0-alpha.42`;export{e as version};
@@ -1 +1 @@
1
- "use client";import{useKitConfig as e}from"../../scope/context.js";function t(t){let{direction:n}=e(),r=n===`rtl`;return t?r?`scaleX(-1) rotate(-90deg)`:`rotate(90deg)`:r?`scaleX(-1)`:void 0}export{t as useDirectionalChevronTransform};
1
+ "use client";function e(e){return e?`rotate(90deg)`:void 0}export{e as useDirectionalChevronTransform};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stridge/kit",
3
- "version": "0.1.0-alpha.40",
3
+ "version": "0.1.0-alpha.42",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [