@decentro-dev/polkadot-sufficient-assets 0.0.1
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/LICENSE +201 -0
- package/README.md +60 -0
- package/package.json +99 -0
- package/packages/client/README.md +333 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.mjs +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/index.d.mts +106 -0
- package/packages/client/dist/index.d.ts +106 -0
- package/packages/client/dist/index.js +2 -0
- package/packages/client/dist/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/index.d.mts +14 -0
- package/packages/client/dist/smoldot/index.d.ts +14 -0
- package/packages/client/dist/smoldot/index.js +2 -0
- package/packages/client/dist/smoldot/index.mjs +2 -0
- package/packages/client/dist/smoldot/worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/worker/index.js +2 -0
- package/packages/client/dist/smoldot/worker/index.mjs +2 -0
- package/packages/core/.papi/descriptors/dist/common-types.d.ts +21274 -0
- package/packages/core/.papi/descriptors/dist/descriptors-EQXQJ7SL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/descriptors.d.ts +11 -0
- package/packages/core/.papi/descriptors/dist/hdx.d.ts +366 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata-XH2Y6EGQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/index.d.mts +24579 -0
- package/packages/core/.papi/descriptors/dist/index.d.ts +23 -0
- package/packages/core/.papi/descriptors/dist/index.js +1 -0
- package/packages/core/.papi/descriptors/dist/index.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata-OCBL5LAN.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/kusama.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata-TGJ43LLG.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes-MIM6CGSL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/pah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata-JG7F7QDO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata-5VVMOYKO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseoah.d.ts +242 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata-KVQKFE5R.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/polkadot.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata-ASE5745E.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata-FL7L2MWD.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rococo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata-CHYQZIV5.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/wah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata-M2H6IX7C.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/westend.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata-IAM3KHRQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/package.json +24 -0
- package/packages/core/.papi/metadata/hdx.scale +0 -0
- package/packages/core/.papi/metadata/kah.scale +0 -0
- package/packages/core/.papi/metadata/kusama.scale +0 -0
- package/packages/core/.papi/metadata/pah.scale +0 -0
- package/packages/core/.papi/metadata/paseo.scale +0 -0
- package/packages/core/.papi/metadata/paseoah.scale +0 -0
- package/packages/core/.papi/metadata/polkadot.scale +0 -0
- package/packages/core/.papi/metadata/rah.scale +0 -0
- package/packages/core/.papi/metadata/rococo.scale +0 -0
- package/packages/core/.papi/metadata/wah.scale +0 -0
- package/packages/core/.papi/metadata/westend.scale +0 -0
- package/packages/core/.papi/polkadot-api.json +50 -0
- package/packages/core/dist/index.d.mts +676 -0
- package/packages/core/dist/index.d.ts +676 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.mjs +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var L=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var De=Object.prototype.hasOwnProperty;var re=(e,t)=>{for(var s in t)L(e,s,{get:t[s],enumerable:!0})},K=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Xe(t))!De.call(e,r)&&r!==s&&L(e,r,{get:()=>t[r],enumerable:!(n=_e(t,r))||n.enumerable});return e},k=(e,t,s)=>(K(e,t,"default"),s&&K(s,t,"default"));var Ee=e=>K(L({},"__esModule",{value:!0}),e);var b={};re(b,{CLIENTS_CACHE:()=>N,DESCRIPTORS_ALL:()=>M,Wallet:()=>B,chainDestIsBridge:()=>W,chains:()=>J,createChain:()=>m,createConfig:()=>He,createToken:()=>h,formatBalance:()=>Ge,formatDecimals:()=>fe,formatUnits:()=>ge,getApi:()=>Fe,getApiInner:()=>ye,getAssetConvertPlancks:()=>Se,getAssetIdByChain:()=>y,getAssetPalletByChain:()=>A,getChainById:()=>P,getClient:()=>Q,getClientCacheId:()=>pe,getDescriptors:()=>j,getExistentialDeposit:()=>et,getFeeAssetLocation:()=>xe,getParaChainClient:()=>ue,getRelayChainClient:()=>de,getTokenBalance:()=>st,getTokenIdFromXcmV3Multilocation:()=>V,getTransferExtrinsic:()=>rt,getXcmTransferExtrinsic:()=>lt,isApiAssetHub:()=>U,isApiRelay:()=>Je,isChainIdAssetHub:()=>T,isChainIdRelay:()=>q,isNumber:()=>Ye,isParachain:()=>C,isRelayChain:()=>g,isSystemChain:()=>I,isValidAddress:()=>Ze,parseLocationStrToLocation:()=>oe,parseUnits:()=>_,subscribeTokenBalance:()=>tt,tokens:()=>nt,wallet:()=>pt});module.exports=Ee(b);k(b,require("@polkadot-api/descriptors"),module.exports);var He=e=>e;var me=require("@polkadot-api/descriptors"),he=require("rxjs");var g=e=>e.type==="relay",I=e=>{if(e.type==="system"&&e.chainId){let t=Number(e.chainId);return t>0&&t<2e3}return!1},C=e=>e.type==="para"&&e.chainId?Number(e.chainId)>2e3:!1,oe=e=>{try{return JSON.parse(e)}catch{throw new Error(`Unable to parse ${e} as a valid location`)}},W=e=>{let t=oe(e),s=!1;return t?.interior&&(s=t.interior.X1?JSON.stringify(t.interior.X1).toLowerCase().includes("globalconsensus"):t.interior.X2?JSON.stringify(t.interior.X2).toLowerCase().includes("globalconsensus"):!1),s};var d=require("@polkadot-api/descriptors"),ae={polkadot:d.polkadot,kusama:d.kusama,rococo:d.rococo,westend:d.westend,paseo:d.paseo},ie={pah:d.pah,kah:d.kah,rah:d.rah,wah:d.wah,paseoah:d.paseoah},Ne={hdx:d.hdx},M={...ae,...ie,...Ne},T=e=>typeof e=="string"&&!!ie[e],q=e=>typeof e=="string"&&!!ae[e],j=e=>{if(M[e])return M[e]},P=(e,t)=>{let s=t.find(n=>n.id===e);if(!s)throw new Error(`Could not find chain ${e}`);return s};var m=e=>e;var J={};re(J,{hydration:()=>je,kusamaAssetHubChain:()=>Oe,kusamaChain:()=>Be,paseoAssetHubChain:()=>qe,paseoChain:()=>Me,polkadotAssetHubChain:()=>Ve,polkadotChain:()=>Ue,rococoAssetHubChain:()=>Ke,rococoChain:()=>$e,westendAssetHubChain:()=>We,westendChain:()=>Le});var Ue=m({id:"polkadot",name:"Polkadot",specName:"polkadot",wsUrls:["wss://polkadot-rpc.dwellir.com"],relay:"polkadot",type:"relay",chainId:null,logo:"./chains/dot.svg",blockExplorerUrl:"https://polkadot.subscan.io"}),Ve=m({id:"pah",name:"Polkadot Asset Hub",specName:"asset-hub-polkadot",wsUrls:["wss://polkadot-asset-hub-rpc.polkadot.io/"],relay:"polkadot",type:"system",chainId:1e3,logo:"./chains/pah.svg",blockExplorerUrl:"https://assethub-polkadot.subscan.io"}),Be=m({id:"kusama",name:"Kusama",specName:"kusama",wsUrls:["wss://kusama-rpc.polkadot.io"],relay:"kusama",type:"relay",chainId:null,logo:"./chains/ksm.svg",blockExplorerUrl:"https://kusama.subscan.io"}),Oe=m({id:"kah",name:"Kusama Asset Hub",specName:"asset-hub-kusama",wsUrls:["wss://kusama-asset-hub-rpc.polkadot.io"],relay:"kusama",type:"system",chainId:1e3,logo:"./chains/kah.svg",blockExplorerUrl:"https://assethub-kusama.subscan.io"}),$e=m({id:"rococo",name:"Rococo",specName:"rococo",wsUrls:["wss://rococo-rpc.polkadot.io"],relay:"rococo",type:"relay",chainId:null,logo:"./chains/roc.svg",blockExplorerUrl:"https://rococo.subscan.io"}),Ke=m({id:"rah",name:"Rococo Asset Hub",specName:"asset-hub-rococo",wsUrls:["wss://rococo-asset-hub-rpc.polkadot.io"],relay:"rococo",type:"system",chainId:1e3,logo:"./chains/rah.svg",blockExplorerUrl:"https://assethub-rococo.subscan.io"}),Le=m({id:"westend",name:"Westend",specName:"westend",wsUrls:["wss://westend-rpc.polkadot.io"],relay:"westend",type:"relay",chainId:null,logo:"./chains/wnd.svg",blockExplorerUrl:"https://westend.subscan.io",xcmExtrinsic:"limited_teleport_assets"}),We=m({id:"wah",name:"Westend Asset Hub",specName:"asset-hub-westend",wsUrls:["wss://westend-asset-hub-rpc.polkadot.io"],relay:"westend",type:"system",chainId:1e3,logo:"./chains/wah.svg",blockExplorerUrl:"https://assethub-westend.subscan.io"}),Me=m({id:"paseo",name:"Paseo",specName:"paseo-testnet",wsUrls:["wss://paseo.dotters.network"],relay:"paseo",type:"relay",chainId:null,logo:"./chains/pas.svg",blockExplorerUrl:"https://paseo.subscan.io"}),qe=m({id:"paseoah",name:"Paseo Asset Hub",specName:"asset-hub-paseo",wsUrls:["wss://asset-hub-paseo-rpc.dwellir.com"],relay:"paseo",type:"system",chainId:1e3,logo:"./chains/pah.svg",blockExplorerUrl:"https://assethub-paseo.subscan.io"}),je=m({id:"hdx",name:"Hydration",specName:"hydradx",wsUrls:["wss://hydration-rpc.n.dwellir.com/","wss://rpc.hydradx.cloud","wss://hydradx-rpc.dwellir.com","wss://rpc.helikon.io/hydradx","wss://hydration.dotters.network"],relay:"polkadot",chainId:2034,logo:"./chains/pah.svg",blockExplorerUrl:"https://hydration.subscan.io",type:"para"});var R=require("polkadot-api"),Y=require("polkadot-api/ws-provider/web");var v=(e,t)=>t?t[e]!==void 0:!1,z=new Map,H=(e,t)=>{if(!t)throw new Error("chainSpecs is not provided in lightClients config");if(!v(e,t))throw new Error(`Unknown chain: ${e}`);return!z.has(e)&&t?.[e]&&z.set(e,t?.[e]),z.get(e)};var le=require("polkadot-api/sm-provider"),F=new Map,ce=async(e,{chainId:t,chainSpec:s},n)=>{let r=e.addChain({chainSpec:s,potentialRelayChains:n?[n]:void 0});return F.has(t)||F.set(t,r),F.get(t)},G=async(e,t,s)=>{let n=s?await ce(e,s):void 0,r=await ce(e,t,n);return(0,le.getSmProvider)(r)};var pe=(e,{lightClients:t})=>`${e}-${t?.enable??"false"}`,N=new Map,Q=(e,t,s)=>{let n=pe(e,s);if(!N.has(n)){let r=P(e,t);N.set(n,g(r)?de(r,s):ue(r,s))}return N.get(n)},de=async(e,t)=>{if(!t.lightClients||!t.lightClients.enable||!v(e.id,t?.lightClients?.chainSpecs))return(0,R.createClient)((0,Y.getWsProvider)(e.wsUrls));let{smoldot:s,chainSpecs:n}=t.lightClients,r=H(e.id,n),o=await G(s,{chainId:e.id,chainSpec:r});return(0,R.createClient)(o)},ue=async(e,t)=>{if(!e.relay)throw new Error(`Chain ${e.id} does not have a relay chain`);let{id:s,relay:n}=e,r=t?.lightClients?.chainSpecs;if(!t.lightClients||!t.lightClients.enable||!v(s,r)||!v(n,r))return(0,R.createClient)((0,Y.getWsProvider)(e.wsUrls));let{chainSpecs:o,smoldot:a}=t.lightClients,[i,c]=[H(n,o),H(s,o)];return(0,R.createClient)(await G(a,{chainId:e.id,chainSpec:c},{chainId:n,chainSpec:i}))};var U=e=>T(e.chainId),Je=e=>q(e.chainId),ye=async(e,t,s)=>{let n=P(e,s),r=j(n.id),o=await Q(e,s,{lightClients:t});if(!o)throw new Error(`Could not create client for chain ${e}/${t}`);let a=o.getTypedApi(r??me.polkadot);return a.chainId=e,a.chain=n,a.waitReady=new Promise((i,c)=>{(0,he.firstValueFrom)(o.bestBlocks$).then(()=>i()).catch(c)}),a},ze=(e,t)=>`${e}-${t?.enable??"false"}`,Z=new Map,Fe=async(e,t=[],s=!0,n)=>{let r=ze(e,n);Z.has(r)||Z.set(r,ye(e,n,t));let o=await Z.get(r);return s&&await o.waitReady,o};var h=e=>e;var fe=(e,t=4)=>{try{if(e==null)return"";let s=Number(e);if(isNaN(s))throw new Error(`Invalid number: ${e}`);if(s===0)return"0";let n=1/10**t;return s<n?`< ${n.toFixed(t)}`:Intl.NumberFormat("en-US",{notation:"compact",maximumSignificantDigits:t>0?t:void 0}).format(Number(Number(e).toFixed(t)))}catch(s){throw console.error("formatDecimals",{err:s,num:e,digits:t}),s}},ge=(e,t=10)=>{if(!e)return"0";let s=e.toString(),n=s.startsWith("-");n&&(s=s.slice(1)),s=s.padStart(t,"0");let[r,o]=[s.slice(0,s.length-t),s.slice(s.length-t)];return o=o.replace(/(0+)$/,""),`${n?"-":""}${r||"0"}${o?`.${o}`:""}`},Ge=(e,t=10,s=4)=>{let n=ge(e,t);return fe(n,s)};function _(e,t=10){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new Error("Invalid value");let[s,n="0"]=e.split("."),r=s.startsWith("-");if(r&&(s=s.slice(1)),n=n.replace(/(0+)$/,""),t===0)Math.round(+`.${n}`)===1&&(s=`${BigInt(s)+1n}`),n="";else if(n.length>t){let[o,a,i]=[n.slice(0,t-1),n.slice(t-1,t),n.slice(t)],c=Math.round(+`${a}.${i}`);c>9?n=`${BigInt(o)+BigInt(1)}0`.padStart(o.length+1,"0"):n=`${o}${c}`,n.length>t&&(n=n.slice(1),s=`${BigInt(s)+1n}`),n=n.slice(0,t)}else n=n.padEnd(t,"0");return BigInt(`${r?"-":""}${s}${n}`)}var Ye=e=>{if(!e)return!1;if(e.length<Number.MAX_SAFE_INTEGER.toString().length){let t=Number.parseInt(e);return!Number.isNaN(t)}try{BigInt(e)}catch{return!1}return!0};var Ie=require("polkadot-api"),Qe=(0,Ie.AccountId)().enc,Ze=e=>{try{return e?(Qe(e),!0):!1}catch{return!1}};var y=(e,t)=>(e.assetIds?.[t]??e.assetId)?.toString(),A=(e,t)=>e.assetPallet?.[t];var V=(e,t)=>{let{interior:s}=t;if(s.type==="Here")return{type:"native",assetId:void 0};if(s.type==="X2"&&s.value.some(n=>n.type==="PalletInstance"&&n.value===50)){for(let n of s.value)if(n.type==="GeneralIndex")return{type:"asset",assetId:Number(n.value)}}return T(e)?{type:"foreign-asset",location:()=>t}:null};var et=async(e,t)=>{switch(e.type){case"asset":{let s=y(e,t.chainId);if(!s)throw new Error(`Token ${e.symbol} does not have an assetId`);if(A(e,t.chainId)==="assets"){let r=await t.query.Assets.Asset.getValue(Number(s),{at:"best"});if(r?.min_balance)return r.min_balance}return 0n}case"native":{let s=await t.constants.Balances.ExistentialDeposit();return s||0n}default:throw new Error(`Unsupported token type: ${e.symbol}`)}};var tt=(e,t,s,n)=>{if(!s||!e||!t)return;let r,o=e.chainId,a={assets:()=>{let c=t.assetIds?.[o]??t.assetId;return c?e.query.Assets.Account.watchValue(Number(c),s,"best").subscribe(l=>{let f=l?.status.type==="Liquid"?l.balance:0n;n?.(f)}):null},system:()=>e.query.System.Account.watchValue(s,"best").subscribe(c=>{let l=c.data.free-c.data.frozen;n?.(l)}),balances:()=>t.assetIds?.[o]??t.assetId?e.query.Balances.Account.watchValue(s,"best").subscribe(l=>{let f=l.free-l.frozen;n?.(f)}):null,tokens:()=>{let c=t.assetIds?.[o]??t.assetId;return c?e.query.Tokens.Accounts.watchValue(s,Number(c),"best").subscribe(l=>{let f=l.free-l.frozen;n?.(f)}):null},ormlTokens:()=>{let c=t.assetIds?.[o]??t.assetId;return c?e.query.OrmlTokens.Accounts.watchValue(s,Number(c),"best").subscribe(l=>{let f=l.free-l.frozen;n?.(f)}):null}},i=A(t,o);return i?r=a[i]():t.type!=="native"&&t.assetId?r=a.assets():r=a.system(),r},st=async(e,t,s)=>{if(!s||!e||!t)return;let n=e.chainId,r={assets:()=>{let a=t.assetIds?.[n]??t.assetId;return a?e.query.Assets.Account.getValue(Number(a),s,{at:"best"}).then(i=>i?.status.type==="Liquid"?i.balance:0n):null},system:()=>e.query.System.Account.getValue(s,{at:"best"}).then(a=>a.data.free-a.data.frozen),balances:()=>t.assetIds?.[n]??t.assetId?e.query.Balances.Account.getValue(s,{at:"best"}).then(i=>i.free-i.frozen):null,tokens:()=>{let a=t.assetIds?.[n]??t.assetId;return a?e.query.Tokens.Accounts.getValue(s,Number(a),{at:"best"}).then(i=>i.free-i.frozen):null},ormlTokens:()=>{let a=t.assetIds?.[n]??t.assetId;return a?e.query.OrmlTokens.Accounts.getValue(s,Number(a),{at:"best"}).then(i=>i.free-i.frozen):null}},o=A(t,n);return o?r[o]():t.type!=="native"&&t.assetId?r.assets():r.system()};var nt={WND:h({type:"native",decimals:12,symbol:"WND",name:"Westend",logo:"./img/tokens/WND.svg",isSufficient:!0}),ROC:h({type:"native",decimals:12,symbol:"ROC",name:"Rococo",logo:"./img/tokens/ROC.svg",isSufficient:!0}),KSM:h({type:"native",decimals:12,symbol:"KSM",name:"Kusama",logo:"./img/tokens/KSM.svg",isSufficient:!0}),KSM_PAH:h({type:"native",decimals:12,symbol:"KSM",name:"Kusama",logo:"./img/tokens/KSM.svg",isSufficient:!0}),DOT:h({type:"native",decimals:10,symbol:"DOT",name:"Polkadot",logo:"./img/tokens/DOT.svg",isSufficient:!0}),PAS:h({type:"native",decimals:10,symbol:"PAS",name:"Paseo",logo:"./img/tokens/PAS.svg",isSufficient:!0}),USDC:h({type:"asset",assetId:1337,decimals:6,symbol:"USDC",name:"USDC Coin",logo:"./img/tokens/USDC.svg",isSufficient:!0}),WND_USDC:h({type:"asset",assetId:31337,decimals:6,symbol:"USDC",name:"USDC Coin",logo:"./img/tokens/USDC.svg",isSufficient:!0}),USDT:h({type:"asset",assetId:1984,decimals:6,symbol:"USDT",name:"Tether USD",logo:"./img/tokens/USDT.svg",isSufficient:!0}),USDT_HDX:h({type:"asset",assetId:10,decimals:6,symbol:"USDT",name:"Tether USD",logo:"./img/tokens/USDT.svg",isSufficient:!0}),HDX:h({type:"native",decimals:12,symbol:"HDX",name:"HDX",logo:"./img/tokens/HDX.svg",isSufficient:!0})};var X=require("@polkadot-api/descriptors");var Ce=async e=>{let[t,s]=await Promise.all([e.query.AssetConversion.Pools.getEntries({at:"best"}),e.query.PoolAssets.Asset.getEntries({at:"best"})]),n=e.chain;return t.map(r=>{let o=r.value,a=s.find(c=>c.keyArgs[0]===o);return a?{type:"asset-convertion",chainId:n.id,poolAssetId:o,tokenIds:r.keyArgs[0].map(c=>V(n.id,c)),owner:a.value.owner}:null}).filter(r=>!!r).filter(r=>r.tokenIds.every(o=>!!o))};var xe=(e,t)=>{if(!e.isSufficient)throw new Error(`Token ${e.symbol} (${e.assetId}) is not sufficient`);let s=y(e,t);if(s&&e.type!=="native")return{parents:0,interior:X.XcmV3Junctions.X2([X.XcmV3Junction.PalletInstance(50),X.XcmV3Junction.GeneralIndex(BigInt(s))])}},Ae=async(e,t,s)=>{switch(t.type){case"native":{let n=await e.query.System.Account.getValue(s,{at:"best"});return n.data.free-n.data.frozen}case"asset":{if(!U(e)||!t.assetId)throw new Error(`Cannot watch balance for ${t.assetId}. Assets are not supported on ${e.chainId}`);let n=await e.query.Assets.Account.getValue(t.assetId,s,{at:"best"});return n?.status.type==="Liquid"?n.balance:0n}case"foreign-asset":{if(!U(e)||!t.assetId)throw new Error(`Cannot watch balance for ${t.assetId}. Assets are not supported on ${e.chainId}`);return 0n}default:return 0n}},be=(e,t,s)=>y(e,s)?.toString()===t.assetId?.toString()&&e.type?.toString()===t.type?.toString(),ke=async(e,t,s,n)=>{let r=n.find(c=>c.tokenIds.some(l=>be(t,l,e.chainId))&&c.tokenIds.some(l=>be(s,l,e.chainId)));if(!r)return null;let o=await Ae(e,r.tokenIds[0],r.owner),a=await Ae(e,r.tokenIds[1],r.owner),i=[o,a];return t.type==="native"?i:i.slice().reverse()},Se=async(e,t)=>{let{nativeToken:s,plancks:n,tokenIn:r,tokenOut:o}=t;if(!r||!o||!s||!n)return;let a=e.chainId,i=y(r,a),c=y(o,a);if(i===c)return n;let l=await Ce(e),f=await ke(e,s,r,l),u=await ke(e,s,o,l),O=s.assetId!==i?f:[1n,1n],$=s.assetId!==c?u:[1n,1n];if(!O||!$||[...$,...O].includes(0n))return;let[se,ne]=s.assetId!==c?$:[1n,1n];if(i===s.assetId)return n*ne/se;let[ve,Re]=O;return n*ve/Re*ne/se};var ee=require("@polkadot-api/descriptors");var rt=(e,t,s,n)=>{let r=_(s,t.decimals),o=e.chain;switch(t.type){case"native":return e.tx.Balances.transfer_keep_alive({dest:ee.MultiAddress.Id(n),value:r});case"asset":{let a=y(t,o.id);if(!a)throw new Error(`Token ${t.symbol} does not have an assetId`);return A(t,o.id)==="tokens"?e.tx.Tokens.transfer({dest:n,amount:r,currency_id:Number(a)}):e.tx.Assets.transfer({id:Number(a),target:ee.MultiAddress.Id(n),amount:r})}default:return null}};function we(e,t){let s=t.chainId,n=g(e.chain),r=I(e.chain),o=g(t),a=I(t),i=C(e.chain),c=C(t),l=W(s);if(r&&o)return"SystemToRelay";if(r&&a)return"SystemToSystem";if(r&&c)return"SystemToPara";if(r&&l)return"SystemToBridge";if(n&&a)return"RelayToSystem";if(n&&c)return"RelayToPara";if(n&&l)return"RelayToBridge";if(i&&o)return"ParaToRelay";if(i&&a)return"ParaToSystem";if(i&&c)return"ParaToPara";throw Error("Could not establish a xcm transaction direction")}var p=require("@polkadot-api/descriptors"),x=require("polkadot-api");var ot=e=>p.XcmVersionedLocation.V3({parents:0,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.AccountId32({network:void 0,id:x.Binary.fromBytes((0,x.AccountId)().enc(e))}))}),at=e=>{switch(e.relay){case"kusama":return p.XcmV3Junction.GlobalConsensus(p.XcmV3JunctionNetworkId.Kusama());case"polkadot":return p.XcmV3Junction.GlobalConsensus(p.XcmV3JunctionNetworkId.Polkadot());case"paseo":return p.XcmV3Junction.GlobalConsensus({type:"Paseo",value:void 0});case"rococo":return p.XcmV3Junction.GlobalConsensus(p.XcmV3JunctionNetworkId.Rococo());case"westend":return p.XcmV3Junction.GlobalConsensus(p.XcmV3JunctionNetworkId.Westend());default:throw new Error("Unsupported relay")}};function it(e,t){let s=0;return(C(e)||I(e))&&(s+=1),t||(s+=1),s}function ct(e,t,s){let n=[];switch(t?(C(e)||I(e))&&n.push(p.XcmV3Junction.Parachain(e.chainId)):(n.push(at(e)),(C(e)||I(e))&&n.push(p.XcmV3Junction.Parachain(e.chainId))),s&&n.push(p.XcmV3Junction.AccountId32({network:void 0,id:x.Binary.fromBytes(s instanceof Uint8Array?s:(0,x.AccountId)().enc(s))})),n.length){case 1:return p.XcmV3Junctions.X1(n[0]);case 2:return p.XcmV3Junctions.X2([n[0],n[1]]);case 3:return p.XcmV3Junctions.X3([n[0],n[1],n[2]]);default:return p.XcmV3Junctions.Here()}}var te=(e,t,s,n)=>{let r=it(t,e),o=ct(s,e,n);return p.XcmVersionedLocation.V3({parents:r,interior:o})},S=(e,t,s,n,r,o)=>{if(!n.location)throw new Error("Token has no location!");let a=t.relay===s.relay,i=te(a,t,s),c=n.location(o,t,s);return{dest:i,assets:c,beneficiary:ot(r),fee_asset_item:0,weight_limit:p.XcmV3WeightLimit.Unlimited()}},Te=(e,t,s,n,r,o)=>{if(!n.location)throw new Error("Token has no location!");let a=t.relay===s.relay,i=te(a,t,s,r);return{asset:n.location(o,t,s),dest:i,dest_weight_limit:p.XcmV3WeightLimit.Unlimited()}},Pe=(e,t,s,n,r,o)=>{if(!n.location)throw new Error("Token has no location!");let a=t.relay===s.relay,i=te(a,t,s,r),c=y(n,t.id);return{currency_id:Number(c),amount:o,dest:i,dest_weight_limit:p.XcmV3WeightLimit.Unlimited()}};var lt=(e,t,s,n,r)=>{let o=_(s,t.decimals),a=we(e,r),i=e.chain,l=g(i)?"XcmPallet":"PolkadotXcm";switch(t.xcmExtrinsic?.(i,r)??"limited_reserve_transfer_assets"){case"XTokens.transfer":{let u=Pe(a,i,r,t,n,o);return e.tx.XTokens.transfer({...u})}case"XTokens.transfer_multiasset":{let u=Te(a,i,r,t,n,o);return e.tx.XTokens.transfer_multiasset({...u})}case"limited_reserve_transfer_assets":{let u=S(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm?.limited_reserve_transfer_assets({...u}):e.tx.XcmPallet?.limited_reserve_transfer_assets({...u})}case"transfer_asset":{let u=S(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.transfer_assets({...u}):e.tx.XcmPallet.transfer_assets({...u})}case"limited_teleport_assets":{let u=S(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.limited_teleport_assets({...u}):e.tx.XcmPallet.limited_teleport_assets({...u})}case"teleport_assets":{let u=S(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.teleport_assets({...u}):e.tx.XcmPallet.teleport_assets({...u})}case"reserve_transfer_assets":{let u=S(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.reserve_transfer_assets({...u}):e.tx.XcmPallet.reserve_transfer_assets({...u})}default:throw new Error("Method not supported")}};var w=require("polkadot-api/pjs-signer");var D=class{storeKey="currentAccountId";constructor(t="currentAccountId"){this.storeKey=t}get(){return localStorage.getItem(this.storeKey)}set(t){return localStorage.setItem(this.storeKey,t)}remove(){return localStorage.removeItem(this.storeKey)}};var E=class{storeKey="connectedWalletIds";constructor(t="connectedWalletIds"){this.storeKey=t}get(){let t=localStorage.getItem(this.storeKey);return t?JSON.parse(t):[]}set(t){return localStorage.setItem(this.storeKey,JSON.stringify(t))}remove(){return localStorage.removeItem(this.storeKey)}};var B=class e{static _instance=null;store=new E;accountStore=new D;constructor(){}get isConnected(){return this.connectedWalletIds.length>0}static get instance(){return this._instance===null&&(this._instance=new e),this._instance}setStoreKey(t,s){this.store=new E(t),this.accountStore=new D(s)}get currentAccountId(){let t=this.accountStore.get();if(!t)return null;let[s,n]=t.split(":");return{wallet:s,address:n}}get connectedWalletIds(){return this.store.get()??[]}setCurrentAccountId(t,s){let n=t+":"+s;this.accountStore.set(n)}getInjectedWalletIds(){return(0,w.getInjectedExtensions)()?.concat().sort((t,s)=>t==="talisman"||s==="subwallet-js"?-1:s==="talisman"||t==="subwallet-js"?1:t.localeCompare(s))??[]}async connect(t){try{await(0,w.connectInjectedExtension)(t);let s=new Set([...this.connectedWalletIds,t]);this.store.set(Array.from(s))}catch(s){throw this.store.set(this.connectedWalletIds.filter(n=>n!==t)),s}}async disconnect(t){let s=this.connectedWalletIds.filter(n=>n!==t);this.store.set(s)}async getAllConnectedAccounts(){let t=[];for(let s of this.connectedWalletIds){let r=(await(0,w.connectInjectedExtension)(s)).getAccounts();t=t.concat(r.map(o=>({...o,wallet:s})))}return t}async subscribeAccounts(t){for(let s of this.connectedWalletIds)(await(0,w.connectInjectedExtension)(s)).subscribe(r=>{t(r.map(o=>({...o,wallet:s})))})}},pt=B.instance;0&&(module.exports={CLIENTS_CACHE,DESCRIPTORS_ALL,Wallet,chainDestIsBridge,chains,createChain,createConfig,createToken,formatBalance,formatDecimals,formatUnits,getApi,getApiInner,getAssetConvertPlancks,getAssetIdByChain,getAssetPalletByChain,getChainById,getClient,getClientCacheId,getDescriptors,getExistentialDeposit,getFeeAssetLocation,getParaChainClient,getRelayChainClient,getTokenBalance,getTokenIdFromXcmV3Multilocation,getTransferExtrinsic,getXcmTransferExtrinsic,isApiAssetHub,isApiRelay,isChainIdAssetHub,isChainIdRelay,isNumber,isParachain,isRelayChain,isSystemChain,isValidAddress,parseLocationStrToLocation,parseUnits,subscribeTokenBalance,tokens,wallet,...require("@polkadot-api/descriptors")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var fe=Object.defineProperty;var ge=(e,t)=>{for(var s in t)fe(e,s,{get:t[s],enumerable:!0})};export*from"@polkadot-api/descriptors";var ut=e=>e;import{polkadot as je}from"@polkadot-api/descriptors";import{firstValueFrom as Je}from"rxjs";var f=e=>e.type==="relay",g=e=>{if(e.type==="system"&&e.chainId){let t=Number(e.chainId);return t>0&&t<2e3}return!1},I=e=>e.type==="para"&&e.chainId?Number(e.chainId)>2e3:!1,Ie=e=>{try{return JSON.parse(e)}catch{throw new Error(`Unable to parse ${e} as a valid location`)}},j=e=>{let t=Ie(e),s=!1;return t?.interior&&(s=t.interior.X1?JSON.stringify(t.interior.X1).toLowerCase().includes("globalconsensus"):t.interior.X2?JSON.stringify(t.interior.X2).toLowerCase().includes("globalconsensus"):!1),s};import{hdx as Ce,kah as Ae,kusama as be,pah as ke,paseo as xe,paseoah as Se,polkadot as we,rah as Te,rococo as Pe,wah as ve,westend as Re}from"@polkadot-api/descriptors";var z={polkadot:we,kusama:be,rococo:Pe,westend:Re,paseo:xe},F={pah:ke,kah:Ae,rah:Te,wah:ve,paseoah:Se},_e={hdx:Ce},J={...z,...F,..._e},w=e=>typeof e=="string"&&!!F[e],G=e=>typeof e=="string"&&!!z[e],Y=e=>{if(J[e])return J[e]},T=(e,t)=>{let s=t.find(n=>n.id===e);if(!s)throw new Error(`Could not find chain ${e}`);return s};var d=e=>e;var Q={};ge(Q,{hydration:()=>Ke,kusamaAssetHubChain:()=>He,kusamaChain:()=>Ee,paseoAssetHubChain:()=>$e,paseoChain:()=>Oe,polkadotAssetHubChain:()=>De,polkadotChain:()=>Xe,rococoAssetHubChain:()=>Ue,rococoChain:()=>Ne,westendAssetHubChain:()=>Be,westendChain:()=>Ve});var Xe=d({id:"polkadot",name:"Polkadot",specName:"polkadot",wsUrls:["wss://polkadot-rpc.dwellir.com"],relay:"polkadot",type:"relay",chainId:null,logo:"./chains/dot.svg",blockExplorerUrl:"https://polkadot.subscan.io"}),De=d({id:"pah",name:"Polkadot Asset Hub",specName:"asset-hub-polkadot",wsUrls:["wss://polkadot-asset-hub-rpc.polkadot.io/"],relay:"polkadot",type:"system",chainId:1e3,logo:"./chains/pah.svg",blockExplorerUrl:"https://assethub-polkadot.subscan.io"}),Ee=d({id:"kusama",name:"Kusama",specName:"kusama",wsUrls:["wss://kusama-rpc.polkadot.io"],relay:"kusama",type:"relay",chainId:null,logo:"./chains/ksm.svg",blockExplorerUrl:"https://kusama.subscan.io"}),He=d({id:"kah",name:"Kusama Asset Hub",specName:"asset-hub-kusama",wsUrls:["wss://kusama-asset-hub-rpc.polkadot.io"],relay:"kusama",type:"system",chainId:1e3,logo:"./chains/kah.svg",blockExplorerUrl:"https://assethub-kusama.subscan.io"}),Ne=d({id:"rococo",name:"Rococo",specName:"rococo",wsUrls:["wss://rococo-rpc.polkadot.io"],relay:"rococo",type:"relay",chainId:null,logo:"./chains/roc.svg",blockExplorerUrl:"https://rococo.subscan.io"}),Ue=d({id:"rah",name:"Rococo Asset Hub",specName:"asset-hub-rococo",wsUrls:["wss://rococo-asset-hub-rpc.polkadot.io"],relay:"rococo",type:"system",chainId:1e3,logo:"./chains/rah.svg",blockExplorerUrl:"https://assethub-rococo.subscan.io"}),Ve=d({id:"westend",name:"Westend",specName:"westend",wsUrls:["wss://westend-rpc.polkadot.io"],relay:"westend",type:"relay",chainId:null,logo:"./chains/wnd.svg",blockExplorerUrl:"https://westend.subscan.io",xcmExtrinsic:"limited_teleport_assets"}),Be=d({id:"wah",name:"Westend Asset Hub",specName:"asset-hub-westend",wsUrls:["wss://westend-asset-hub-rpc.polkadot.io"],relay:"westend",type:"system",chainId:1e3,logo:"./chains/wah.svg",blockExplorerUrl:"https://assethub-westend.subscan.io"}),Oe=d({id:"paseo",name:"Paseo",specName:"paseo-testnet",wsUrls:["wss://paseo.dotters.network"],relay:"paseo",type:"relay",chainId:null,logo:"./chains/pas.svg",blockExplorerUrl:"https://paseo.subscan.io"}),$e=d({id:"paseoah",name:"Paseo Asset Hub",specName:"asset-hub-paseo",wsUrls:["wss://asset-hub-paseo-rpc.dwellir.com"],relay:"paseo",type:"system",chainId:1e3,logo:"./chains/pah.svg",blockExplorerUrl:"https://assethub-paseo.subscan.io"}),Ke=d({id:"hdx",name:"Hydration",specName:"hydradx",wsUrls:["wss://hydration-rpc.n.dwellir.com/","wss://rpc.hydradx.cloud","wss://hydradx-rpc.dwellir.com","wss://rpc.helikon.io/hydradx","wss://hydration.dotters.network"],relay:"polkadot",chainId:2034,logo:"./chains/pah.svg",blockExplorerUrl:"https://hydration.subscan.io",type:"para"});import{createClient as v}from"polkadot-api";import{getWsProvider as ee}from"polkadot-api/ws-provider/web";var b=(e,t)=>t?t[e]!==void 0:!1,E=new Map,P=(e,t)=>{if(!t)throw new Error("chainSpecs is not provided in lightClients config");if(!b(e,t))throw new Error(`Unknown chain: ${e}`);return!E.has(e)&&t?.[e]&&E.set(e,t?.[e]),E.get(e)};import{getSmProvider as Le}from"polkadot-api/sm-provider";var H=new Map,Z=async(e,{chainId:t,chainSpec:s},n)=>{let r=e.addChain({chainSpec:s,potentialRelayChains:n?[n]:void 0});return H.has(t)||H.set(t,r),H.get(t)},N=async(e,t,s)=>{let n=s?await Z(e,s):void 0,r=await Z(e,t,n);return Le(r)};var We=(e,{lightClients:t})=>`${e}-${t?.enable??"false"}`,U=new Map,te=(e,t,s)=>{let n=We(e,s);if(!U.has(n)){let r=T(e,t);U.set(n,f(r)?Me(r,s):qe(r,s))}return U.get(n)},Me=async(e,t)=>{if(!t.lightClients||!t.lightClients.enable||!b(e.id,t?.lightClients?.chainSpecs))return v(ee(e.wsUrls));let{smoldot:s,chainSpecs:n}=t.lightClients,r=P(e.id,n),o=await N(s,{chainId:e.id,chainSpec:r});return v(o)},qe=async(e,t)=>{if(!e.relay)throw new Error(`Chain ${e.id} does not have a relay chain`);let{id:s,relay:n}=e,r=t?.lightClients?.chainSpecs;if(!t.lightClients||!t.lightClients.enable||!b(s,r)||!b(n,r))return v(ee(e.wsUrls));let{chainSpecs:o,smoldot:a}=t.lightClients,[i,c]=[P(n,o),P(s,o)];return v(await N(a,{chainId:e.id,chainSpec:c},{chainId:n,chainSpec:i}))};var B=e=>w(e.chainId),Ut=e=>G(e.chainId),ze=async(e,t,s)=>{let n=T(e,s),r=Y(n.id),o=await te(e,s,{lightClients:t});if(!o)throw new Error(`Could not create client for chain ${e}/${t}`);let a=o.getTypedApi(r??je);return a.chainId=e,a.chain=n,a.waitReady=new Promise((i,c)=>{Je(o.bestBlocks$).then(()=>i()).catch(c)}),a},Fe=(e,t)=>`${e}-${t?.enable??"false"}`,V=new Map,Vt=async(e,t=[],s=!0,n)=>{let r=Fe(e,n);V.has(r)||V.set(r,ze(e,n,t));let o=await V.get(r);return s&&await o.waitReady,o};var u=e=>e;var Ge=(e,t=4)=>{try{if(e==null)return"";let s=Number(e);if(isNaN(s))throw new Error(`Invalid number: ${e}`);if(s===0)return"0";let n=1/10**t;return s<n?`< ${n.toFixed(t)}`:Intl.NumberFormat("en-US",{notation:"compact",maximumSignificantDigits:t>0?t:void 0}).format(Number(Number(e).toFixed(t)))}catch(s){throw console.error("formatDecimals",{err:s,num:e,digits:t}),s}},Ye=(e,t=10)=>{if(!e)return"0";let s=e.toString(),n=s.startsWith("-");n&&(s=s.slice(1)),s=s.padStart(t,"0");let[r,o]=[s.slice(0,s.length-t),s.slice(s.length-t)];return o=o.replace(/(0+)$/,""),`${n?"-":""}${r||"0"}${o?`.${o}`:""}`},$t=(e,t=10,s=4)=>{let n=Ye(e,t);return Ge(n,s)};function R(e,t=10){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new Error("Invalid value");let[s,n="0"]=e.split("."),r=s.startsWith("-");if(r&&(s=s.slice(1)),n=n.replace(/(0+)$/,""),t===0)Math.round(+`.${n}`)===1&&(s=`${BigInt(s)+1n}`),n="";else if(n.length>t){let[o,a,i]=[n.slice(0,t-1),n.slice(t-1,t),n.slice(t)],c=Math.round(+`${a}.${i}`);c>9?n=`${BigInt(o)+BigInt(1)}0`.padStart(o.length+1,"0"):n=`${o}${c}`,n.length>t&&(n=n.slice(1),s=`${BigInt(s)+1n}`),n=n.slice(0,t)}else n=n.padEnd(t,"0");return BigInt(`${r?"-":""}${s}${n}`)}var Lt=e=>{if(!e)return!1;if(e.length<Number.MAX_SAFE_INTEGER.toString().length){let t=Number.parseInt(e);return!Number.isNaN(t)}try{BigInt(e)}catch{return!1}return!0};import{AccountId as Qe}from"polkadot-api";var Ze=Qe().enc,qt=e=>{try{return e?(Ze(e),!0):!1}catch{return!1}};var m=(e,t)=>(e.assetIds?.[t]??e.assetId)?.toString(),C=(e,t)=>e.assetPallet?.[t];var O=(e,t)=>{let{interior:s}=t;if(s.type==="Here")return{type:"native",assetId:void 0};if(s.type==="X2"&&s.value.some(n=>n.type==="PalletInstance"&&n.value===50)){for(let n of s.value)if(n.type==="GeneralIndex")return{type:"asset",assetId:Number(n.value)}}return w(e)?{type:"foreign-asset",location:()=>t}:null};var ns=async(e,t)=>{switch(e.type){case"asset":{let s=m(e,t.chainId);if(!s)throw new Error(`Token ${e.symbol} does not have an assetId`);if(C(e,t.chainId)==="assets"){let r=await t.query.Assets.Asset.getValue(Number(s),{at:"best"});if(r?.min_balance)return r.min_balance}return 0n}case"native":{let s=await t.constants.Balances.ExistentialDeposit();return s||0n}default:throw new Error(`Unsupported token type: ${e.symbol}`)}};var as=(e,t,s,n)=>{if(!s||!e||!t)return;let r,o=e.chainId,a={assets:()=>{let c=t.assetIds?.[o]??t.assetId;return c?e.query.Assets.Account.watchValue(Number(c),s,"best").subscribe(l=>{let h=l?.status.type==="Liquid"?l.balance:0n;n?.(h)}):null},system:()=>e.query.System.Account.watchValue(s,"best").subscribe(c=>{let l=c.data.free-c.data.frozen;n?.(l)}),balances:()=>t.assetIds?.[o]??t.assetId?e.query.Balances.Account.watchValue(s,"best").subscribe(l=>{let h=l.free-l.frozen;n?.(h)}):null,tokens:()=>{let c=t.assetIds?.[o]??t.assetId;return c?e.query.Tokens.Accounts.watchValue(s,Number(c),"best").subscribe(l=>{let h=l.free-l.frozen;n?.(h)}):null},ormlTokens:()=>{let c=t.assetIds?.[o]??t.assetId;return c?e.query.OrmlTokens.Accounts.watchValue(s,Number(c),"best").subscribe(l=>{let h=l.free-l.frozen;n?.(h)}):null}},i=C(t,o);return i?r=a[i]():t.type!=="native"&&t.assetId?r=a.assets():r=a.system(),r},is=async(e,t,s)=>{if(!s||!e||!t)return;let n=e.chainId,r={assets:()=>{let a=t.assetIds?.[n]??t.assetId;return a?e.query.Assets.Account.getValue(Number(a),s,{at:"best"}).then(i=>i?.status.type==="Liquid"?i.balance:0n):null},system:()=>e.query.System.Account.getValue(s,{at:"best"}).then(a=>a.data.free-a.data.frozen),balances:()=>t.assetIds?.[n]??t.assetId?e.query.Balances.Account.getValue(s,{at:"best"}).then(i=>i.free-i.frozen):null,tokens:()=>{let a=t.assetIds?.[n]??t.assetId;return a?e.query.Tokens.Accounts.getValue(s,Number(a),{at:"best"}).then(i=>i.free-i.frozen):null},ormlTokens:()=>{let a=t.assetIds?.[n]??t.assetId;return a?e.query.OrmlTokens.Accounts.getValue(s,Number(a),{at:"best"}).then(i=>i.free-i.frozen):null}},o=C(t,n);return o?r[o]():t.type!=="native"&&t.assetId?r.assets():r.system()};var ps={WND:u({type:"native",decimals:12,symbol:"WND",name:"Westend",logo:"./img/tokens/WND.svg",isSufficient:!0}),ROC:u({type:"native",decimals:12,symbol:"ROC",name:"Rococo",logo:"./img/tokens/ROC.svg",isSufficient:!0}),KSM:u({type:"native",decimals:12,symbol:"KSM",name:"Kusama",logo:"./img/tokens/KSM.svg",isSufficient:!0}),KSM_PAH:u({type:"native",decimals:12,symbol:"KSM",name:"Kusama",logo:"./img/tokens/KSM.svg",isSufficient:!0}),DOT:u({type:"native",decimals:10,symbol:"DOT",name:"Polkadot",logo:"./img/tokens/DOT.svg",isSufficient:!0}),PAS:u({type:"native",decimals:10,symbol:"PAS",name:"Paseo",logo:"./img/tokens/PAS.svg",isSufficient:!0}),USDC:u({type:"asset",assetId:1337,decimals:6,symbol:"USDC",name:"USDC Coin",logo:"./img/tokens/USDC.svg",isSufficient:!0}),WND_USDC:u({type:"asset",assetId:31337,decimals:6,symbol:"USDC",name:"USDC Coin",logo:"./img/tokens/USDC.svg",isSufficient:!0}),USDT:u({type:"asset",assetId:1984,decimals:6,symbol:"USDT",name:"Tether USD",logo:"./img/tokens/USDT.svg",isSufficient:!0}),USDT_HDX:u({type:"asset",assetId:10,decimals:6,symbol:"USDT",name:"Tether USD",logo:"./img/tokens/USDT.svg",isSufficient:!0}),HDX:u({type:"native",decimals:12,symbol:"HDX",name:"HDX",logo:"./img/tokens/HDX.svg",isSufficient:!0})};import{XcmV3Junction as ne,XcmV3Junctions as et}from"@polkadot-api/descriptors";var se=async e=>{let[t,s]=await Promise.all([e.query.AssetConversion.Pools.getEntries({at:"best"}),e.query.PoolAssets.Asset.getEntries({at:"best"})]),n=e.chain;return t.map(r=>{let o=r.value,a=s.find(c=>c.keyArgs[0]===o);return a?{type:"asset-convertion",chainId:n.id,poolAssetId:o,tokenIds:r.keyArgs[0].map(c=>O(n.id,c)),owner:a.value.owner}:null}).filter(r=>!!r).filter(r=>r.tokenIds.every(o=>!!o))};var tt=(e,t)=>{if(!e.isSufficient)throw new Error(`Token ${e.symbol} (${e.assetId}) is not sufficient`);let s=m(e,t);if(s&&e.type!=="native")return{parents:0,interior:et.X2([ne.PalletInstance(50),ne.GeneralIndex(BigInt(s))])}},re=async(e,t,s)=>{switch(t.type){case"native":{let n=await e.query.System.Account.getValue(s,{at:"best"});return n.data.free-n.data.frozen}case"asset":{if(!B(e)||!t.assetId)throw new Error(`Cannot watch balance for ${t.assetId}. Assets are not supported on ${e.chainId}`);let n=await e.query.Assets.Account.getValue(t.assetId,s,{at:"best"});return n?.status.type==="Liquid"?n.balance:0n}case"foreign-asset":{if(!B(e)||!t.assetId)throw new Error(`Cannot watch balance for ${t.assetId}. Assets are not supported on ${e.chainId}`);return 0n}default:return 0n}},oe=(e,t,s)=>m(e,s)?.toString()===t.assetId?.toString()&&e.type?.toString()===t.type?.toString(),ae=async(e,t,s,n)=>{let r=n.find(c=>c.tokenIds.some(l=>oe(t,l,e.chainId))&&c.tokenIds.some(l=>oe(s,l,e.chainId)));if(!r)return null;let o=await re(e,r.tokenIds[0],r.owner),a=await re(e,r.tokenIds[1],r.owner),i=[o,a];return t.type==="native"?i:i.slice().reverse()},st=async(e,t)=>{let{nativeToken:s,plancks:n,tokenIn:r,tokenOut:o}=t;if(!r||!o||!s||!n)return;let a=e.chainId,i=m(r,a),c=m(o,a);if(i===c)return n;let l=await se(e),h=await ae(e,s,r,l),p=await ae(e,s,o,l),X=s.assetId!==i?h:[1n,1n],D=s.assetId!==c?p:[1n,1n];if(!X||!D||[...D,...X].includes(0n))return;let[M,q]=s.assetId!==c?D:[1n,1n];if(i===s.assetId)return n*q/M;let[he,ye]=X;return n*he/ye*q/M};import{MultiAddress as ie}from"@polkadot-api/descriptors";var bs=(e,t,s,n)=>{let r=R(s,t.decimals),o=e.chain;switch(t.type){case"native":return e.tx.Balances.transfer_keep_alive({dest:ie.Id(n),value:r});case"asset":{let a=m(t,o.id);if(!a)throw new Error(`Token ${t.symbol} does not have an assetId`);return C(t,o.id)==="tokens"?e.tx.Tokens.transfer({dest:n,amount:r,currency_id:Number(a)}):e.tx.Assets.transfer({id:Number(a),target:ie.Id(n),amount:r})}default:return null}};function ce(e,t){let s=t.chainId,n=f(e.chain),r=g(e.chain),o=f(t),a=g(t),i=I(e.chain),c=I(t),l=j(s);if(r&&o)return"SystemToRelay";if(r&&a)return"SystemToSystem";if(r&&c)return"SystemToPara";if(r&&l)return"SystemToBridge";if(n&&a)return"RelayToSystem";if(n&&c)return"RelayToPara";if(n&&l)return"RelayToBridge";if(i&&o)return"ParaToRelay";if(i&&a)return"ParaToSystem";if(i&&c)return"ParaToPara";throw Error("Could not establish a xcm transaction direction")}import{XcmV3Junction as y,XcmV3JunctionNetworkId as _,XcmV3Junctions as k,XcmV3WeightLimit as $,XcmVersionedLocation as le}from"@polkadot-api/descriptors";import{AccountId as pe,Binary as de}from"polkadot-api";var nt=e=>le.V3({parents:0,interior:k.X1(y.AccountId32({network:void 0,id:de.fromBytes(pe().enc(e))}))}),rt=e=>{switch(e.relay){case"kusama":return y.GlobalConsensus(_.Kusama());case"polkadot":return y.GlobalConsensus(_.Polkadot());case"paseo":return y.GlobalConsensus({type:"Paseo",value:void 0});case"rococo":return y.GlobalConsensus(_.Rococo());case"westend":return y.GlobalConsensus(_.Westend());default:throw new Error("Unsupported relay")}};function ot(e,t){let s=0;return(I(e)||g(e))&&(s+=1),t||(s+=1),s}function at(e,t,s){let n=[];switch(t?(I(e)||g(e))&&n.push(y.Parachain(e.chainId)):(n.push(rt(e)),(I(e)||g(e))&&n.push(y.Parachain(e.chainId))),s&&n.push(y.AccountId32({network:void 0,id:de.fromBytes(s instanceof Uint8Array?s:pe().enc(s))})),n.length){case 1:return k.X1(n[0]);case 2:return k.X2([n[0],n[1]]);case 3:return k.X3([n[0],n[1],n[2]]);default:return k.Here()}}var K=(e,t,s,n)=>{let r=ot(t,e),o=at(s,e,n);return le.V3({parents:r,interior:o})},A=(e,t,s,n,r,o)=>{if(!n.location)throw new Error("Token has no location!");let a=t.relay===s.relay,i=K(a,t,s),c=n.location(o,t,s);return{dest:i,assets:c,beneficiary:nt(r),fee_asset_item:0,weight_limit:$.Unlimited()}},ue=(e,t,s,n,r,o)=>{if(!n.location)throw new Error("Token has no location!");let a=t.relay===s.relay,i=K(a,t,s,r);return{asset:n.location(o,t,s),dest:i,dest_weight_limit:$.Unlimited()}},me=(e,t,s,n,r,o)=>{if(!n.location)throw new Error("Token has no location!");let a=t.relay===s.relay,i=K(a,t,s,r),c=m(n,t.id);return{currency_id:Number(c),amount:o,dest:i,dest_weight_limit:$.Unlimited()}};var Hs=(e,t,s,n,r)=>{let o=R(s,t.decimals),a=ce(e,r),i=e.chain,l=f(i)?"XcmPallet":"PolkadotXcm";switch(t.xcmExtrinsic?.(i,r)??"limited_reserve_transfer_assets"){case"XTokens.transfer":{let p=me(a,i,r,t,n,o);return e.tx.XTokens.transfer({...p})}case"XTokens.transfer_multiasset":{let p=ue(a,i,r,t,n,o);return e.tx.XTokens.transfer_multiasset({...p})}case"limited_reserve_transfer_assets":{let p=A(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm?.limited_reserve_transfer_assets({...p}):e.tx.XcmPallet?.limited_reserve_transfer_assets({...p})}case"transfer_asset":{let p=A(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.transfer_assets({...p}):e.tx.XcmPallet.transfer_assets({...p})}case"limited_teleport_assets":{let p=A(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.limited_teleport_assets({...p}):e.tx.XcmPallet.limited_teleport_assets({...p})}case"teleport_assets":{let p=A(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.teleport_assets({...p}):e.tx.XcmPallet.teleport_assets({...p})}case"reserve_transfer_assets":{let p=A(a,i,r,t,n,o);return l==="PolkadotXcm"?e.tx.PolkadotXcm.reserve_transfer_assets({...p}):e.tx.XcmPallet.reserve_transfer_assets({...p})}default:throw new Error("Method not supported")}};import{connectInjectedExtension as L,getInjectedExtensions as it}from"polkadot-api/pjs-signer";var x=class{storeKey="currentAccountId";constructor(t="currentAccountId"){this.storeKey=t}get(){return localStorage.getItem(this.storeKey)}set(t){return localStorage.setItem(this.storeKey,t)}remove(){return localStorage.removeItem(this.storeKey)}};var S=class{storeKey="connectedWalletIds";constructor(t="connectedWalletIds"){this.storeKey=t}get(){let t=localStorage.getItem(this.storeKey);return t?JSON.parse(t):[]}set(t){return localStorage.setItem(this.storeKey,JSON.stringify(t))}remove(){return localStorage.removeItem(this.storeKey)}};var W=class e{static _instance=null;store=new S;accountStore=new x;constructor(){}get isConnected(){return this.connectedWalletIds.length>0}static get instance(){return this._instance===null&&(this._instance=new e),this._instance}setStoreKey(t,s){this.store=new S(t),this.accountStore=new x(s)}get currentAccountId(){let t=this.accountStore.get();if(!t)return null;let[s,n]=t.split(":");return{wallet:s,address:n}}get connectedWalletIds(){return this.store.get()??[]}setCurrentAccountId(t,s){let n=t+":"+s;this.accountStore.set(n)}getInjectedWalletIds(){return it()?.concat().sort((t,s)=>t==="talisman"||s==="subwallet-js"?-1:s==="talisman"||t==="subwallet-js"?1:t.localeCompare(s))??[]}async connect(t){try{await L(t);let s=new Set([...this.connectedWalletIds,t]);this.store.set(Array.from(s))}catch(s){throw this.store.set(this.connectedWalletIds.filter(n=>n!==t)),s}}async disconnect(t){let s=this.connectedWalletIds.filter(n=>n!==t);this.store.set(s)}async getAllConnectedAccounts(){let t=[];for(let s of this.connectedWalletIds){let r=(await L(s)).getAccounts();t=t.concat(r.map(o=>({...o,wallet:s})))}return t}async subscribeAccounts(t){for(let s of this.connectedWalletIds)(await L(s)).subscribe(r=>{t(r.map(o=>({...o,wallet:s})))})}},qs=W.instance;export{U as CLIENTS_CACHE,J as DESCRIPTORS_ALL,W as Wallet,j as chainDestIsBridge,Q as chains,d as createChain,ut as createConfig,u as createToken,$t as formatBalance,Ge as formatDecimals,Ye as formatUnits,Vt as getApi,ze as getApiInner,st as getAssetConvertPlancks,m as getAssetIdByChain,C as getAssetPalletByChain,T as getChainById,te as getClient,We as getClientCacheId,Y as getDescriptors,ns as getExistentialDeposit,tt as getFeeAssetLocation,qe as getParaChainClient,Me as getRelayChainClient,is as getTokenBalance,O as getTokenIdFromXcmV3Multilocation,bs as getTransferExtrinsic,Hs as getXcmTransferExtrinsic,B as isApiAssetHub,Ut as isApiRelay,w as isChainIdAssetHub,G as isChainIdRelay,Lt as isNumber,I as isParachain,f as isRelayChain,g as isSystemChain,qt as isValidAddress,Ie as parseLocationStrToLocation,R as parseUnits,as as subscribeTokenBalance,ps as tokens,qs as wallet};
|