@stridge/kit 0.1.0-alpha.36 → 0.1.0-alpha.38
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/drivers/stridge/createStridgeDepositDriver.js +1 -1
- package/dist/drivers/stridge/createStridgeWithdrawDriver.js +1 -1
- package/dist/drivers/stridge/internal/supportedChains.js +1 -0
- package/dist/flows/deposit/driver/transformers/startToAddressesPayload.js +1 -1
- package/dist/flows/shared/transformers/testnets.js +1 -0
- package/dist/package.js +1 -1
- package/dist/shared/widgets/asset-picker/compound/components/Asset.d.ts +7 -1
- package/dist/shared/widgets/asset-picker/compound/components/Asset.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{pickRelevantSettlement as t}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{formatUsd as n}from"../../shared/format/formatUsd.js";import{balanceToBalancesPayload as r,buildRoutableAllowlist as i}from"../../flows/deposit/driver/transformers/balanceToBalancesPayload.js";import{quoteToPayload as a}from"../../flows/deposit/driver/transformers/quoteToPayload.js";import{settlementToPayload as o}from"../../flows/deposit/driver/transformers/settlementToPayload.js";import{startToAddressesPayload as s}from"../../flows/deposit/driver/transformers/startToAddressesPayload.js";import{startToBrandPayload as c}from"../../flows/deposit/driver/transformers/startToBrandPayload.js";import{startToTargetPayload as l}from"../../flows/deposit/driver/transformers/startToTargetPayload.js";import{walletAddressToWalletPayload as u}from"../../flows/deposit/driver/transformers/walletAddressToWalletPayload.js";import{defaultBlockExplorers as d}from"../../shared/utils/explorers.js";import{createEntityStore as f}from"../stridge-mock/store.js";import{NATIVE_QUOTE_ADDRESS as p,isStablecoinSymbol as m,toBaseUnits as h}from"./internal/encoding.js";import{resolveSdkEnv as g}from"./internal/env.js";import{buildKitMetadata as _}from"./internal/metadata.js";import{pollOnce as v}from"./internal/pollOnce.js";import{buildErc20OrNativeStep as y,signAndConfirm as
|
|
1
|
+
import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{pickRelevantSettlement as t}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{formatUsd as n}from"../../shared/format/formatUsd.js";import{balanceToBalancesPayload as r,buildRoutableAllowlist as i}from"../../flows/deposit/driver/transformers/balanceToBalancesPayload.js";import{quoteToPayload as a}from"../../flows/deposit/driver/transformers/quoteToPayload.js";import{settlementToPayload as o}from"../../flows/deposit/driver/transformers/settlementToPayload.js";import{startToAddressesPayload as s}from"../../flows/deposit/driver/transformers/startToAddressesPayload.js";import{startToBrandPayload as c}from"../../flows/deposit/driver/transformers/startToBrandPayload.js";import{startToTargetPayload as l}from"../../flows/deposit/driver/transformers/startToTargetPayload.js";import{walletAddressToWalletPayload as u}from"../../flows/deposit/driver/transformers/walletAddressToWalletPayload.js";import{defaultBlockExplorers as d}from"../../shared/utils/explorers.js";import{createEntityStore as f}from"../stridge-mock/store.js";import{NATIVE_QUOTE_ADDRESS as p,isStablecoinSymbol as m,toBaseUnits as h}from"./internal/encoding.js";import{resolveSdkEnv as g}from"./internal/env.js";import{buildKitMetadata as _}from"./internal/metadata.js";import{pollOnce as v}from"./internal/pollOnce.js";import{buildErc20OrNativeStep as y,signAndConfirm as b}from"./internal/signAndConfirm.js";import{buildEvmChainsParam as x}from"./internal/supportedChains.js";import{startPoll as S}from"./poll.js";import{createStridgeRpc as ee}from"./rpc.js";import{createWagmiSigner as te}from"./wagmiSigner.js";import{createApiClient as ne}from"@stridge/sdk";function C(C){let O=ne({projectKey:C.projectKey,env:g(C.environment)}),k=C.pollIntervals??{},A=k.detectionMs??2e3,j=k.processingMs??2e3,M=k.terminalMs??1e4,N=k.balancesMs??6e4,P=C.minAmountUsd,F=C.maxAmountUsd,I=C.getI18n??(()=>e),L={...d(),...C.explorers??{}},R=C.destination.network_id,z=C.destination.asset_symbol,B=C.destination.to_address??C.userAddress,V=C.wagmiConfig?te({wagmiConfig:C.wagmiConfig}):void 0,H=C.rpc??ee(),U={address:C.userAddress},W=f({brand:{status:`loading`},target:{status:`loading`},addresses:{status:`loading`},balances:{status:`loading`},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:u(U),raw:U,response:U}}),G,K,q,J;function Y(){if(K)return q??=i(K),q}let X=(async()=>{try{let[e,t]=await Promise.all([O.gateway.start({owner:C.userAddress,destination:{network_id:R,to_address:B,asset_symbol:z},metadata:_({flow:`deposit`,...C.metadata?{hostMetadata:C.metadata}:{},extras:{destination:{networkId:R,assetSymbol:z}}})}),O.uda.supportedAssets().catch(()=>null)]);G=e;let n=e.metadata?.brand_name;typeof n==`string`&&n.trim().length>0&&(J=n.trim());let r=I();if(t&&(K=t,q=void 0),W.update({brand:{status:`ready`,payload:c(e.metadata),raw:e.metadata,response:e},addresses:{status:`ready`,payload:s(e.deposit_addresses,{i18n:r,explorers:L,...t?{chainLogos:T(t)}:{},...t?{minAmountUsdByEip155Id:D(t,P),nativeAssetByEip155Id:E(t)}:{}}),raw:e.deposit_addresses,response:e}}),t){let e=l(t,{i18n:r,networkId:R,assetSymbol:z,minAmountUsd:P,...F===void 0?{}:{maxAmountUsd:F}}),n=t.assets.find(e=>String(e.network_id)===R);e&&n?W.update({target:{status:`ready`,payload:e,raw:n,response:t}}):W.update({target:{status:`error`,error:Error(`Destination not found in supportedAssets catalog.`)}})}else W.update({target:{status:`error`,error:Error(`supportedAssets fetch failed.`)}})}catch(e){let t=e instanceof Error?e:Error(String(e));W.update({brand:{status:`error`,error:t},target:{status:`error`,error:t},addresses:{status:`error`,error:t}})}})(),Z=!1,re=(async()=>{try{await X;let e=x(K),t=await O.balance.onchain(C.userAddress,{includeSpam:!1,includeZero:!1,...e?{chains:e}:{}}),n=Y();if(!n)return null;let i=r(t,{i18n:I(),routable:n,minAmountUsd:P,...C.resolveTokenIcon?{resolveTokenIcon:C.resolveTokenIcon}:{}});return W.update({balances:{status:`ready`,payload:i,raw:t,response:t},wallet:Q(i,I())}),t}catch(e){let t=e instanceof Error?e:Error(String(e));return W.update({balances:{status:`error`,error:t}}),null}})();function Q(e,t){let r=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{status:`ready`,payload:{...u(U),balanceTotalUsd:{value:r,formatted:n(r,t)}},raw:U,response:U}}return{getSnapshot(){return W.getSnapshot()},subscribe(e){return W.subscribe(e)},async requestQuote(e,t){W.update({quote:{status:`loading`}});let n=G;if(!n){W.update({quote:{status:`error`,error:Error(`gateway/start not yet resolved.`)}});return}try{let r=e.sourceChainId,i=e.sourceIsNative?p:e.sourceTokenAddress,o=h(e.amount,e.sourceTokenDecimals),s=await O.uda.quote({fromNetworkId:r,fromAsset:i,toNetworkId:Number(n.destination.eip155_id),toAsset:n.destination.asset_address||`0x0000000000000000000000000000000000000000`,amount:o,fromAddress:C.userAddress,toAddress:B},{signal:t});if(t.aborted)return;let c=I(),l={chainId:r,networkName:w(r),eip155Id:String(r),symbol:e.sourceTokenSymbol,decimals:e.sourceTokenDecimals,address:e.sourceTokenAddress,isNative:e.sourceIsNative},u={chainId:Number(n.destination.eip155_id),networkName:n.destination.network_name,eip155Id:n.destination.eip155_id,symbol:n.destination.asset_symbol,decimals:n.destination.asset_decimals,address:n.destination.asset_address,isNative:!n.destination.asset_address},d=m(n.destination.asset_symbol)?1:void 0,f=a(s,{i18n:c,sendSide:l,receiveSide:u,sourceAmount:e.amount,now:Date.now(),...e.sourcePriceUsd===void 0?{}:{sendPriceUsd:e.sourcePriceUsd},...d===void 0?{}:{receivePriceUsd:d}});W.update({quote:{status:`ready`,payload:f,raw:s,response:s}})}catch(e){if(t.aborted)return;let n=e instanceof Error?e:Error(String(e));W.update({quote:{status:`error`,error:n}})}},async submitDeposit(e,t){if(!V)throw Error(`Connect a wallet to sign and submit the deposit.`);let n=G;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 b({signer:V,rpc:H,step:y({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:L,...C.receiptConfirmations===void 0?{}:{receiptConfirmations:C.receiptConfirmations},...C.receiptPollingIntervalMs===void 0?{}:{receiptPollingIntervalMs:C.receiptPollingIntervalMs}})},watchBalances(e,t,n){S({signal:n,fetch:async e=>{if(!Z)return Z=!0,re;try{await X;let t=x(K),n=await O.balance.onchain(C.userAddress,{signal:e,includeSpam:!1,includeZero:!1,...t?{chains:t}:{}}),i=Y();if(!i)return null;let a=r(n,{i18n:I(),routable:i,minAmountUsd:P,...C.resolveTokenIcon?{resolveTokenIcon:C.resolveTokenIcon}:{}});return W.update({balances:{status:`ready`,payload:a,raw:n,response:n},wallet:Q(a,I())}),n}catch{return null}},listener:()=>{t(W.getSnapshot().balances)},nextIntervalMs:()=>N})},watchSourceTx(e,t,n){let r=new Set,i={current:!1},a=!1;S({signal:n,fetch:e=>v(O,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??``,...L[s]&&o.from?.tx_id?{explorerUrl:`${L[s].replace(/\/+$/,``)}/tx/${o.from.tx_id}`}:{}})},nextIntervalMs:()=>a?0:A})},watchSettlement(e,n,r){let i=e=>v(O,C.userAddress,$(),e),a=!1;S({signal:r,fetch:i,listener:r=>{if(!r)return;let i=t(r,{txHash:e.tx.hash});if(!i)return;let s=o(i,r,{i18n:I(),sourceWallet:{name:`Wallet`,address:C.userAddress},explorers:L,...J?{brandName:J}:{}});s.kind!==`pending`&&(a=!0);let c={status:`ready`,payload:s,raw:i,response:r};W.update({settlement:c}),n(c)},nextIntervalMs:()=>a?M:j})},async fetchActiveSettlement(e,n){let r=await v(O,C.userAddress,$(),n);if(!r)return null;let i=t(r);if(!i)return null;let a=o(i,r,{i18n:I(),sourceWallet:{name:`Wallet`,address:C.userAddress},explorers:L,...J?{brandName:J}:{}});return a.kind===`pending`?{payload:a,raw:i,response:r}:null}};function $(){return{network_id:R,asset_symbol:z,to_address:B}}}function w(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 T(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 E(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 D(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 +1 @@
|
|
|
1
|
-
"use client";import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{pickRelevantSettlement as t}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{formatUsd as n}from"../../shared/format/formatUsd.js";import{defaultBlockExplorers as r}from"../../shared/utils/explorers.js";import{createEntityStore as i}from"../stridge-mock/store.js";import{NATIVE_QUOTE_ADDRESS as a,isStablecoinSymbol as o,toBaseUnits as s}from"./internal/encoding.js";import{resolveSdkEnv as c}from"./internal/env.js";import{buildKitMetadata as l}from"./internal/metadata.js";import{pollOnce as u}from"./internal/pollOnce.js";import{
|
|
1
|
+
"use client";import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{pickRelevantSettlement as t}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{formatUsd as n}from"../../shared/format/formatUsd.js";import{defaultBlockExplorers as r}from"../../shared/utils/explorers.js";import{createEntityStore as i}from"../stridge-mock/store.js";import{NATIVE_QUOTE_ADDRESS as a,isStablecoinSymbol as o,toBaseUnits as s}from"./internal/encoding.js";import{resolveSdkEnv as c}from"./internal/env.js";import{buildKitMetadata as l}from"./internal/metadata.js";import{pollOnce as u}from"./internal/pollOnce.js";import{buildEvmChainsParam as d}from"./internal/supportedChains.js";import{startPoll as f}from"./poll.js";import{balanceToWithdrawableBalancesPayload as p}from"../../flows/withdraw/driver/transformers/balanceToWithdrawableBalancesPayload.js";import{quoteToWithdrawalPayload as m}from"../../flows/withdraw/driver/transformers/quoteToWithdrawalPayload.js";import{settlementToWithdrawalPayload as h}from"../../flows/withdraw/driver/transformers/settlementToWithdrawalPayload.js";import{supportedAssetsToReceiveOptionsPayload as g}from"../../flows/withdraw/driver/transformers/supportedAssetsToReceiveOptionsPayload.js";import{createApiClient as _}from"@stridge/sdk";function v(v){let y=_({projectKey:v.projectKey,env:c(v.environment)}),b=v.pollIntervals??{},x=b.processingMs??2e3,S=b.terminalMs??1e4,C=b.balancesMs??6e4,w=v.getI18n??(()=>e),T={...r(),...v.explorers??{}},E=w(),D=i({withdrawableBalances:{status:`loading`},receiveOptions:{status:`loading`},quote:{status:`idle`},settlement:{status:`idle`},...v.minAmountUsd===void 0?{}:{minAmountUsd:{value:v.minAmountUsd,formatted:n(v.minAmountUsd,E)}},...v.maxAmountUsd===void 0?{}:{maxAmountUsd:{value:v.maxAmountUsd,formatted:n(v.maxAmountUsd,E)}}}),O,k,A;function j(e){let t=e.assets.find(e=>e.network_id===v.currency.networkId);if(!t)return;let n=v.currency.assetSymbol.toUpperCase(),r=t.native_currency?.symbol?.toUpperCase()===n?t.native_currency:void 0,i=t.assets.find(e=>e.symbol?.toUpperCase()===n),a={networkId:t.network_id,eip155Id:t.eip155_id,networkName:t.network_name,...t.native_currency?.logo?{chainLogoUrl:t.native_currency.logo}:{},decimals:i?.decimals??r?.decimals??18,address:i?.address??``,isNative:!i&&!!r,...i?.logo?{assetLogoUrl:i.logo}:r?.logo?{assetLogoUrl:r.logo}:{}};return i||r?a:void 0}function M(e){let t=w(),n=k,r=p(e,{i18n:t,networkId:v.currency.networkId,assetSymbol:v.currency.assetSymbol,...n?{fallbackMeta:{decimals:n.decimals,address:n.address,isNative:n.isNative,eip155Id:String(n.eip155Id),networkName:n.networkName,...n.chainLogoUrl?{chainLogoUrl:n.chainLogoUrl}:{},...n.assetLogoUrl?{assetLogoUrl:n.assetLogoUrl}:{}}}:{}});D.update({withdrawableBalances:{status:`ready`,payload:r,raw:e,response:e}})}let N=(async()=>{let e=await y.uda.supportedAssets().catch(()=>null);if(e){O=e,k=j(e);let t=g(e);D.update({receiveOptions:{status:`ready`,payload:t,raw:e.assets,response:e}})}else D.update({receiveOptions:{status:`error`,error:Error(`supportedAssets fetch failed.`)}});let t=d(e??void 0),n=await y.balance.onchain(v.userAddress,{includeSpam:!1,includeZero:!1,...t?{chains:t}:{}}).catch(()=>null);n?M(n):k&&M({wallet_address:v.userAddress,fetched_at:new Date().toISOString(),total_usd:`0`,chains:[]})})();function P(){return l({flow:`withdraw`,...v.metadata?{hostMetadata:v.metadata}:{},extras:{source:{networkId:v.currency.networkId,assetSymbol:v.currency.assetSymbol}}})}function F(e,t){if(!O)return;let n=O.assets.find(t=>t.eip155_id===e);if(!n)return;let r=t.toUpperCase(),i=n.native_currency?.symbol?.toUpperCase()===r?n.native_currency:void 0,a=n.assets.find(e=>e.symbol?.toUpperCase()===r);if(!(!i&&!a))return{chainId:n.eip155_id,symbol:a?.symbol??i?.symbol??t,decimals:a?.decimals??i?.decimals??18,address:a?.address??``,isNative:!a&&!!i,...a?.logo?{assetLogoUrl:a.logo}:i?.logo?{assetLogoUrl:i.logo}:{},networkId:n.network_id,networkName:n.network_name,...i?.logo?{chainLogoUrl:i.logo}:{}}}function I(e){let t=D.getSnapshot().receiveOptions;if(!(t.status!==`ready`&&t.status!==`stale`))return t.payload.find(t=>t.eip155Id===e)}return{getSnapshot(){return D.getSnapshot()},subscribe(e){return D.subscribe(e)},async requestQuote(e,t){D.update({quote:{status:`loading`}});try{if(await N,t.aborted)return;let n=k;if(!n)throw Error(`Stridge withdraw driver: source currency ${v.currency.assetSymbol} not found on network ${v.currency.networkId} in supportedAssets.`);let r=F(e.receiveChainId,e.receiveTokenSymbol);if(!r)throw Error(`Stridge withdraw driver: receive asset ${e.receiveTokenSymbol} not found on chain ${e.receiveChainId} in supportedAssets.`);let i=s(e.amount,n.decimals),c=await y.uda.quote({fromNetworkId:n.eip155Id,fromAsset:n.isNative?a:n.address,toNetworkId:r.chainId,toAsset:r.isNative?a:r.address,amount:i,fromAddress:v.userAddress,toAddress:e.recipientAddress},{signal:t});if(t.aborted)return;let l=o(v.currency.assetSymbol)?1:void 0,u=o(r.symbol)?1:void 0,d=m(c,{i18n:w(),receiveSide:r,sourceAmount:e.amount,sendDecimals:n.decimals,sendSymbol:v.currency.assetSymbol,now:Date.now(),...l===void 0?{}:{sendPriceUsd:l},...u===void 0?{}:{receivePriceUsd:u}});D.update({quote:{status:`ready`,payload:d,raw:c,response:c}})}catch(e){if(t.aborted)return;let n=e instanceof Error?e:Error(String(e));D.update({quote:{status:`error`,error:n}})}},async prepareWithdrawal(e,t){if(await N,t.aborted)throw new DOMException(`Aborted`,`AbortError`);let n=k;if(!n)throw Error(`Stridge withdraw driver: source currency ${v.currency.assetSymbol} not found on network ${v.currency.networkId} in supportedAssets.`);let r=F(e.receiveChainId,e.receiveTokenSymbol);if(!r)throw Error(`Stridge withdraw driver: receive asset ${e.receiveTokenSymbol} not found on chain ${e.receiveChainId} in supportedAssets.`);let i=await y.gateway.start({owner:v.userAddress,destination:{network_id:r.networkId??String(e.receiveChainId),asset_symbol:r.symbol,to_address:e.recipientAddress},metadata:P()},{signal:t});if(t.aborted)throw new DOMException(`Aborted`,`AbortError`);let a=i.deposit_addresses.find(e=>Number(e.eip155_id)===n.eip155Id);if(!a)throw Error(`Stridge withdraw driver: no UDA deposit address provisioned on chain ${n.eip155Id} for the brand currency. Check that supportedAssets advertises this chain.`);return A={network_id:r.networkId??String(e.receiveChainId),asset_symbol:r.symbol,to_address:e.recipientAddress},{depositTarget:{address:a.address,chainId:n.eip155Id,tokenSymbol:v.currency.assetSymbol,tokenAddress:n.isNative?``:n.address,tokenDecimals:n.decimals,isNative:n.isNative,amount:e.amount},correlation:{owner:v.userAddress}}},watchSettlement(e,n,r){let i=e=>u(y,v.userAddress,A,e),a=!1;f({signal:r,fetch:i,listener:r=>{if(!r)return;let i=k?s(e.form.amount,k.decimals).toString():void 0,o=e.tx?.hash?t(r,{txHash:e.tx.hash}):t(r,{bestMatch:{destination:{chainId:e.form.receiveChainId,tokenSymbol:e.form.receiveTokenSymbol,recipientAddress:e.form.recipientAddress},submittedAt:e.submittedAt,...i?{sourceAmountBaseUnits:i}:{}}});if(!o)return;let c=w(),l=I(Number(r.destination.eip155_id)),u=l?.tokens.find(e=>e.symbol===r.destination.asset_symbol),d={...l?.chainLogoUrl?{chainLogoUrl:l.chainLogoUrl}:{},...u?.assetLogoUrl?{assetLogoUrl:u.assetLogoUrl}:{},...l?.networkName?{networkName:l.networkName}:{}},f=h(o,r,{i18n:c,explorers:T,...Object.keys(d).length>0?{receiveAssetEnrichment:d}:{},...u?.decimals===void 0?{}:{receiveAssetDecimals:u.decimals}});f.kind!==`pending`&&(a=!0);let p={status:`ready`,payload:f,raw:o,response:r};D.update({settlement:p}),n(p)},nextIntervalMs:()=>a?S:x})},watchWithdrawableBalances(e,t,n){f({signal:n,fetch:async e=>{try{if(await N,e.aborted)return null;let t=d(O);return await y.balance.onchain(v.userAddress,{signal:e,includeSpam:!1,includeZero:!1,...t?{chains:t}:{}})}catch{return null}},listener:e=>{e&&M(e),t(D.getSnapshot().withdrawableBalances)},nextIntervalMs:()=>C})}}}export{v as createStridgeWithdrawDriver};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{KNOWN_TESTNET_EIP155_IDS as e}from"../../../flows/shared/transformers/testnets.js";function t(t){if(!t)return;let n=new Set;for(let r of t.assets)r.chain_type===`EVM`&&(typeof r.eip155_id!=`number`||!Number.isFinite(r.eip155_id)||r.eip155_id<=0||e.has(r.eip155_id)||n.add(r.eip155_id));if(n.size!==0)return Array.from(n).join(`,`)}export{t as buildEvmChainsParam};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{KNOWN_TESTNET_EIP155_IDS as e}from"../../../shared/transformers/testnets.js";import{formatNetworkName as t}from"../../../../shared/format/formatNetworkName.js";import{formatUsd as n}from"../../../../shared/format/formatUsd.js";import{shortenAddress as r}from"../../../../shared/format/shortenAddress.js";function i(i,o={}){let s=o.includeTestnets??!1;return i.flatMap(i=>{let c=String(i.eip155_id??``),l=Number(c);if(!s&&Number.isFinite(l)&&e.has(l))return[];let u=o.explorers?.[l],d=o.i18n&&c?o.minAmountUsdByEip155Id?.[c]:void 0,f=a(i.accepted_assets,c?o.nativeAssetByEip155Id?.[c]:void 0);return[{networkName:t(i.network_name??``),...c?{eip155Id:c}:{},...o.chainLogos?.[c]?{chainLogoUrl:o.chainLogos[c]}:{},address:{value:i.address,formatted:r(i.address)},...u?{explorerUrl:`${u.replace(/\/+$/,``)}/address/${i.address}`}:{},...d!==void 0&&o.i18n?{minAmountUsd:{value:d,formatted:n(d,o.i18n)}}:{},...f.length>0?{acceptedAssets:f}:{}}]})}function a(e,t){let n=Array.isArray(e)?e.map(o):[];return!t||new Set(n.map(e=>e.symbol.toUpperCase())).has(t.symbol.toUpperCase())?n:[t,...n]}function o(e){let t=e.logo,n=!e.address;return{symbol:e.symbol,address:e.address,decimals:e.decimals,...typeof t==`string`&&t.length>0?{assetLogoUrl:t}:{},isNative:n}}export{i as startToAddressesPayload};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=new Set([11155111,5,80001,80002,84532,421614,11155420,97]);export{e as KNOWN_TESTNET_EIP155_IDS};
|
package/dist/package.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`0.1.0-alpha.
|
|
1
|
+
var e=`0.1.0-alpha.38`;export{e as version};
|
|
@@ -6,7 +6,13 @@ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
|
6
6
|
* A single row inside `AssetPicker.List`, laid out as:
|
|
7
7
|
*
|
|
8
8
|
* [icon + chain badge] [symbol] [low balance?] [fiat]
|
|
9
|
-
* [balance]
|
|
9
|
+
* [chain · balance]
|
|
10
|
+
*
|
|
11
|
+
* The chain prefix on the secondary line disambiguates same-symbol rows on multi-chain
|
|
12
|
+
* pickers (e.g. `BSC · 5.7166 USDC` next to `Ethereum · 4 USDC`) so sighted users don't
|
|
13
|
+
* have to decode the small chain badge on the token logo to tell rows apart. The screen-
|
|
14
|
+
* reader announcement still comes from the row's `aria-label` (`"USDC on BSC"`) because the
|
|
15
|
+
* native concat of icon `alt`s + dual symbol text + chain badge `alt` is verbose and stutters.
|
|
10
16
|
*
|
|
11
17
|
* Selection state is read from context, so consumers only manage a single `selectedId` on the root rather than
|
|
12
18
|
* threading `isSelected` onto each row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{useLingui as e}from"../../../../i18n/useLingui.js";import"../../../../../i18n/index.js";import{Badge as t}from"../../../../ui/Badge/Badge.js";import"../../../../ui/Badge/index.js";import{SelectableTile as n}from"../../../../ui/SelectableTile/SelectableTile.js";import"../../../../ui/SelectableTile/index.js";import{text as r}from"../../../../ui/Text/Text.js";import{TokenLogo as i}from"../../../../ui/TokenLogo/TokenLogo.js";import"../../../../ui/TokenLogo/index.js";import"../../../../../ui/index.js";import{styles as a}from"../AssetPicker.styles.js";import{useAssetPickerContext as o}from"../context.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import*as l from"@stylexjs/stylex";function u({id:u,symbol:d,chain:f,balanceFormatted:p,fiatFormatted:m,lowBalance:h=!1,disabled:g=!1,chainId:_,contractAddress:v,isNative:y,logoUrl:b,chainLogoUrl:x,pinnedLogoUrl:S}){let C=o(`AssetPicker.Asset`),{_:w}=e();return c(n,{shape:`card`,value:u,selected:C.selectedId===u,disabled:g,"aria-label":`${d} on ${f}`,"data-asset-id":u,"data-chain":f,...l.props(a.assetRow),children:[s(i,{size:36,symbol:d,..._===void 0?{}:{chainId:_},...v===void 0?{}:{address:v},...y===void 0?{}:{isNative:y},...b===void 0?{}:{logoUrl:b},...x===void 0?{}:{chainLogoUrl:x},...S===void 0?{}:{pinnedLogoUrl:S}}),c(`span`,{...l.props(a.textBlock),children:[s(r.span,{size:`callout`,fontWeight:`semibold`,leading:`tight`,tracking:`tight`,truncate:!0,children:d}),
|
|
1
|
+
"use client";import{useLingui as e}from"../../../../i18n/useLingui.js";import"../../../../../i18n/index.js";import{Badge as t}from"../../../../ui/Badge/Badge.js";import"../../../../ui/Badge/index.js";import{SelectableTile as n}from"../../../../ui/SelectableTile/SelectableTile.js";import"../../../../ui/SelectableTile/index.js";import{text as r}from"../../../../ui/Text/Text.js";import{TokenLogo as i}from"../../../../ui/TokenLogo/TokenLogo.js";import"../../../../ui/TokenLogo/index.js";import"../../../../../ui/index.js";import{styles as a}from"../AssetPicker.styles.js";import{useAssetPickerContext as o}from"../context.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import*as l from"@stylexjs/stylex";function u({id:u,symbol:d,chain:f,balanceFormatted:p,fiatFormatted:m,lowBalance:h=!1,disabled:g=!1,chainId:_,contractAddress:v,isNative:y,logoUrl:b,chainLogoUrl:x,pinnedLogoUrl:S}){let C=o(`AssetPicker.Asset`),{_:w}=e();return c(n,{shape:`card`,value:u,selected:C.selectedId===u,disabled:g,"aria-label":`${d} on ${f}`,"data-asset-id":u,"data-chain":f,...l.props(a.assetRow),children:[s(i,{size:36,symbol:d,..._===void 0?{}:{chainId:_},...v===void 0?{}:{address:v},...y===void 0?{}:{isNative:y},...b===void 0?{}:{logoUrl:b},...x===void 0?{}:{chainLogoUrl:x},...S===void 0?{}:{pinnedLogoUrl:S}}),c(`span`,{...l.props(a.textBlock),children:[s(r.span,{size:`callout`,fontWeight:`semibold`,leading:`tight`,tracking:`tight`,truncate:!0,children:d}),c(r.span,{size:`xs`,fontWeight:`medium`,leading:`tight`,color:`subdued`,truncate:!0,children:[f,` · `,p]})]}),h?s(t,{variant:`outline`,color:`secondary`,size:`sm`,roundness:`lg`,...l.props(a.lowBalanceBadge),children:w({id:`Wqz0SO`,message:`Low Balance`})}):null,s(r.span,{size:`callout`,fontWeight:`semibold`,leading:`tight`,tracking:`tight`,...l.props(a.fiat),children:m})]})}export{u as AssetPickerAsset};
|