@swapkit/plugins 4.0.0 → 4.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/dist/chainflip/index.js +1 -1
- package/dist/{chunk-f4bjj4r6.js → chunk-3vyc96hm.js} +1 -1
- package/dist/{chunk-4th4g1de.js → chunk-nvc2nh2x.js} +1 -1
- package/dist/evm/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/near/index.cjs +2 -2
- package/dist/near/index.cjs.map +3 -3
- package/dist/near/index.js +2 -2
- package/dist/near/index.js.map +3 -3
- package/dist/radix/index.js +1 -1
- package/dist/solana/index.js +1 -1
- package/dist/thorchain/index.js +1 -1
- package/dist/types/near/plugin.d.ts +1 -1
- package/dist/types/near/plugin.d.ts.map +1 -1
- package/package.json +1 -1
- /package/dist/{chunk-f4bjj4r6.js.map → chunk-3vyc96hm.js.map} +0 -0
- /package/dist/{chunk-4th4g1de.js.map → chunk-nvc2nh2x.js.map} +0 -0
package/dist/chainflip/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as l,b as x,c as g}from"../chunk-
|
|
1
|
+
import{a as l,b as x,c as g}from"../chunk-3vyc96hm.js";import{decodeAddress as T}from"@polkadot/keyring";import{isHex as b,u8aToHex as y}from"@polkadot/util";import{AssetValue as B,Chain as D,SwapKitError as p,wrapWithThrow as E}from"@swapkit/helpers";var L=new Map([["ARB.ETH","ArbEth"],["ARB.USDC-0XAF88D065E77C8CC2239327C5EDB3A432268E5831","ArbUsdc"],["BTC.BTC","Btc"],["DOT.DOT","Dot"],["ETH.ETH","Eth"],["ETH.FLIP-0X826180541412D574CF1336D22C0C0A287822678A","Flip"],["ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48","Usdc"],["ETH.USDT-0XDAC17F958D2EE523A2206206994597C13D831EC7","Usdt"],["SOL.SOL","Sol"],["SOL.USDC-EPJFWDD5AUFQSSQEM2QN1XZYBAPC8G4WEGGKZWYTDT1V","SolUsdc"]]),k=(e)=>()=>{let r=e.api.tx.swapping?.registerAsBroker?.();if(!r)throw new p("chainflip_broker_register");return e.signAndBroadcast({tx:r,address:e.getAddress()})},R=(e)=>({feeAsset:r,recipient:t})=>{let s=r.chain===D.Polkadot,a=E(()=>{return s?e.encodeAddress(e.decodeAddress(t),"hex"):t},"chainflip_broker_recipient_error");return new Promise((n)=>{let i=e.api.tx?.swapping?.withdraw?.(r.ticker.toLowerCase(),{[r.chain.toLowerCase()]:a});if(!i)throw new p("chainflip_broker_withdraw");e.signAndBroadcast({tx:i,callback:async(c)=>{if(!c.status?.isFinalized)return;let o=c.events.find((w)=>w.event.method==="WithdrawalRequested");if(!o)throw new p("chainflip_channel_error","Could not find 'WithdrawalRequested' event");let{event:{data:{egressId:u,egressAsset:f,egressAmount:d,egressFee:h,destinationAddress:m}}}=o.toHuman();n({egressId:u,egressAsset:f,egressAmount:d,egressFee:h,destinationAddress:m})}})})},F=(e)=>async({evmToolbox:r,stateChainAccount:t,assetValue:s})=>{let{chainflipGateway:a}=await import("@swapkit/helpers/contracts"),n=B.from({asset:"ETH.FLIP"});if(!s.eqAsset(n))throw new p("chainflip_broker_fund_only_flip_supported");if(!e.validateAddress(t))throw new p("chainflip_broker_fund_invalid_address");let i=b(t)?t:y(T(t));return r.call({abi:a,contractAddress:"0x6995ab7c4d7f4b03f467cf4c8e920427d9621dbd",funcName:"fundStateChainAccount",funcParams:[i,s.getBaseValue("string")]})},U=(e)=>({registerAsBroker:k(e),fundStateChainAccount:F(e),withdrawFee:R(e)});import{AssetValue as _,ProviderName as C,SKConfig as S,SwapKitError as A}from"@swapkit/helpers";import{SwapKitApi as H}from"@swapkit/helpers/api";var O=g({name:"chainflip",methods:({getWallet:e})=>({swap:async function r(t){let s=S.get("integrations").chainflip?.brokerUrl;if(!(t?.route?.buyAsset&&s&&t.route.meta.chainflip))throw new A("core_swap_invalid_params",{...t,chainflipBrokerUrl:s});let{route:{buyAsset:a,sellAsset:n,sellAmount:i,destinationAddress:c,meta:{chainflip:o}},maxBoostFeeBps:u=0}=t;if(!(n&&a))throw new A("core_swap_asset_not_recognized");let f=await _.from({asyncTokenLookup:!0,asset:n,value:i}),d=e(f.chain);if(!d)throw new A("core_wallet_connection_not_found");let{depositAddress:h}=await H.getChainflipDepositChannel({...o,destinationAddress:c||o.destinationAddress,maxBoostFeeBps:u||o.maxBoostFeeBps});return await d.transfer({assetValue:f,sender:d.address,recipient:h,isProgramDerivedAddress:!0})}}),properties:{supportedSwapkitProviders:[C.CHAINFLIP,C.CHAINFLIP_STREAMING]}});export{L as assetIdentifierToChainflipTicker,O as ChainflipPlugin,U as ChainflipBroker};
|
|
2
2
|
|
|
3
3
|
//# debugId=931534199E78406564756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var m=Object.create;var{getPrototypeOf:l,defineProperty:s,getOwnPropertyNames:u,getOwnPropertyDescriptor:c}=Object,p=Object.prototype.hasOwnProperty;var r=(t,i,a)=>{a=t!=null?m(l(t)):{};let n=i||!t||!t.__esModule?s(a,"default",{value:t,enumerable:!0}):a;for(let e of u(t))if(!p.call(n,e))s(n,e,{get:()=>t[e],enumerable:!0});return n},o=new WeakMap,P=(t)=>{var i=o.get(t),a;if(i)return i;if(i=s({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")u(t).map((n)=>!p.call(i,n)&&s(i,n,{get:()=>t[n],enumerable:!(a=c(t,n))||a.enumerable}));return o.set(t,i),i};var g=(t,i)=>{for(var a in i)s(t,a,{get:i[a],enumerable:!0,configurable:!0,set:(n)=>i[a]=()=>n})};function h({name:t,properties:i,methods:a}){function n(e){return{...a(e),...i}}return{[t]:n}}async function d(t){let{match:i}=await import("ts-pattern");return await i(t).with("chainflip",async()=>{let{ChainflipPlugin:n}=await import("./chainflip/index.cjs");return n}).with("thorchain",async()=>{let{ThorchainPlugin:n}=await import("./thorchain/index.cjs");return n}).with("radix",async()=>{let{RadixPlugin:n}=await import("./radix/index.cjs");return n}).with("evm",async()=>{let{EVMPlugin:n}=await import("./evm/index.cjs");return n}).with("solana",async()=>{let{SolanaPlugin:n}=await import("./solana/index.cjs");return n}).with("near",async()=>{let{NearPlugin:n}=await import("./near/index.cjs");return n}).exhaustive()}
|
|
2
2
|
|
|
3
3
|
//# debugId=02AEC6FD9069CF5D64756E2164756E21
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
4
|
+
//# sourceMappingURL=chunk-nvc2nh2x.js.map
|
package/dist/evm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as l}from"../chunk-
|
|
1
|
+
import{c as l}from"../chunk-3vyc96hm.js";import{ApproveMode as v,AssetValue as w,EVMChains as A,ProviderName as e,SwapKitError as V}from"@swapkit/helpers";function m({approveMode:o,getWallet:c}){return function t({assetValue:s,spenderAddress:n}){let p=s.chain,a=A.includes(p);if(a&&s.isGasAsset||!a||s.isSynthetic){let d=o==="checkOnly"||"approved";return Promise.resolve(d)}let r=c(p),i=o==="checkOnly"?r.isApproved:r.approve;if(!(s.address&&r.address))throw new V("core_approve_asset_address_or_from_not_found");return i({amount:s.getBaseValue("bigint"),assetAddress:s.address,from:r.address,spenderAddress:n})}}var _=l({name:"evm",properties:{supportedSwapkitProviders:[e.CAMELOT_V3,e.OPENOCEAN_V2,e.ONEINCH,e.PANCAKESWAP,e.PANGOLIN_V1,e.SUSHISWAP_V2,e.TRADERJOE_V2,e.UNISWAP_V2,e.UNISWAP_V3]},methods:({getWallet:o})=>({approveAssetValue:m({approveMode:v.Approve,getWallet:o}),isAssetValueApproved:m({approveMode:v.CheckOnly,getWallet:o}),swap:async function c({route:{tx:t,sellAsset:s},feeOptionKey:n}){let a=(await w.from({asset:s,asyncTokenLookup:!0})).chain,u=o(a);if(!(A.includes(a)&&t))throw new V("core_swap_invalid_params");let{from:r,to:i,data:d,value:E}=t;return u.sendTransaction({from:r,to:i,data:d,value:BigInt(E),feeOptionKey:n})}})});export{_ as EVMPlugin};
|
|
2
2
|
|
|
3
3
|
//# debugId=15C981C390DE2DAE64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js
CHANGED
package/dist/near/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var T={};L(T,{NearPlugin:()=>y});module.exports=G(T);var q=require("@swapkit/helpers");var H=require("near-api-js/lib/utils/format"),X=2,b=64;function $(Q){if(Q.length<X||Q.length>b)return!1;return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(Q)}function U(Q){let B=Q.length,x;if(B<=2)x="50";else if(B<=3)x="20";else if(B<=4)x="5";else if(B<=5)x="1";else x="0.1";return H.parseNearAmount(x)||"0"}var y=V({name:"near",properties:{supportedSwapkitProviders:[q.ProviderName.NEAR]},methods:({getWallet:Q})=>({async swap(B){let{route:{buyAsset:x,sellAsset:D,inboundAddress:F,sellAmount:J,meta:{near:Z}}}=B;if(!(D&&x&&Z?.sellAsset))throw new q.SwapKitError("core_swap_asset_not_recognized");if(!F)throw new q.SwapKitError("core_swap_invalid_params",{missing:["inboundAddress"]});let Y=await q.AssetValue.from({asyncTokenLookup:!0,asset:D,value:J}),j=Q(Y.chain);if(!j)throw new q.SwapKitError("core_wallet_connection_not_found");return await j.transfer({assetValue:Y,sender:j.address,recipient:F,isProgramDerivedAddress:!0})},nearNames:{async resolve(B){let x=B.toLowerCase().replace(/\.near$/,"");if(!$(x))throw new q.SwapKitError("plugin_near_invalid_name");let D=`${x}.near`,F=Q(q.Chain.Near);if(!F)throw new q.SwapKitError("plugin_near_no_connection");try{return await F.provider.query({request_type:"view_account",finality:"final",account_id:D}),D}catch(J){if(/UNKNOWN_ACCOUNT|does not exist while viewing/.test(J.message))return null;throw J}},async isAvailable(B){return await this.resolve(B)===null},async getInfo(B){let x=B.toLowerCase().replace(/\.near$/,"");if(!$(x))throw new q.SwapKitError("plugin_near_invalid_name");let D=`${x}.near`,F=Q(q.Chain.Near);if(!F)throw new q.SwapKitError("plugin_near_no_connection");try{let J=await F.provider.query({request_type:"view_account",finality:"final",account_id:D}),Z=await F.provider.query({request_type:"view_access_key_list",finality:"final",account_id:D});return{accountId:D,balance:J.amount,storageUsed:J.storage_usage,codeHash:J.code_hash,publicKeys:Z.keys?.map((Y)=>Y.public_key)||[]}}catch(J){if(/UNKNOWN_ACCOUNT|does not exist while viewing/.test(J.message))return null;throw J}},async lookupNames(B){let x=Q(q.Chain.Near);if(!x)throw new q.SwapKitError("plugin_near_no_connection");try{if(await x.provider.query({request_type:"view_account",finality:"final",account_id:B}),B.endsWith(".near"))return[B];return[]}catch{return[]}},async register(B){let{name:x,publicKey:D}=B,F=x.toLowerCase().replace(/\.near$/,"");if(!$(F))throw new q.SwapKitError("plugin_near_invalid_name");let J=Q(q.Chain.Near),Z=D||await J.getPublicKey(),Y=U(F);return J.callFunction({contractId:"near",methodName:"create_account",args:{new_account_id:`${F}.near`,new_public_key:Z},deposit:Y})},transfer(B,x){let D=B.toLowerCase().replace(/\.near$/,"");if(!$(D))throw new q.SwapKitError("plugin_near_invalid_name");return Q(q.Chain.Near).callFunction({contractId:"near",methodName:"transfer",args:{name:D,new_owner:x},deposit:"1"})}}})});
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=EA5603375AF7B91464756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|
package/dist/near/index.cjs.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/near/plugin.ts", "../src/near/nearNames.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n AssetValue,\n Chain,\n type CryptoChain,\n ProviderName,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport {
|
|
5
|
+
"import {\n AssetValue,\n Chain,\n type CryptoChain,\n ProviderName,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { QuoteResponseRoute } from \"@swapkit/helpers/api\";\nimport type { NearWallet } from \"@swapkit/toolboxes/near\";\nimport { createPlugin } from \"../utils\";\nimport { calculateNearNameCost, validateNearName } from \"./nearNames\";\nimport type { NearAccountInfo, NearNameRegistrationParams } from \"./types\";\n\nexport const NearPlugin = createPlugin({\n name: \"near\",\n properties: {\n supportedSwapkitProviders: [ProviderName.NEAR],\n },\n methods: ({ getWallet }) => ({\n async swap(swapParams: SwapParams<\"near\", QuoteResponseRoute>) {\n const {\n route: {\n buyAsset: buyAssetString,\n sellAsset: sellAssetString,\n inboundAddress,\n sellAmount,\n meta: { near },\n },\n } = swapParams;\n\n if (!(sellAssetString && buyAssetString && near?.sellAsset)) {\n throw new SwapKitError(\"core_swap_asset_not_recognized\");\n }\n\n if (!inboundAddress) {\n throw new SwapKitError(\"core_swap_invalid_params\", { missing: [\"inboundAddress\"] });\n }\n\n const sellAsset = await AssetValue.from({\n asyncTokenLookup: true,\n asset: sellAssetString,\n value: sellAmount,\n });\n\n const wallet = getWallet(sellAsset.chain as Exclude<CryptoChain, Chain.Radix>);\n\n if (!wallet) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n\n const tx = await wallet.transfer({\n assetValue: sellAsset,\n sender: wallet.address,\n recipient: inboundAddress,\n isProgramDerivedAddress: true,\n });\n\n return tx as string;\n },\n\n // NEAR Names functionality\n nearNames: {\n async resolve(name: string) {\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const accountId = `${normalizedName}.near`;\n const wallet = getWallet(Chain.Near);\n\n if (!wallet) {\n throw new SwapKitError(\"plugin_near_no_connection\");\n }\n\n try {\n // Ask RPC whether the account exists\n await wallet.provider.query({\n request_type: \"view_account\",\n finality: \"final\",\n account_id: accountId,\n });\n // If no error is thrown, the account exists\n return accountId; // Account is taken, return the account ID as \"owner\"\n } catch (err: any) {\n // UNKNOWN_ACCOUNT means it hasn't been created yet → available\n if (/UNKNOWN_ACCOUNT|does not exist while viewing/.test(err.message)) {\n return null;\n }\n // Re-throw any unexpected errors\n throw err;\n }\n },\n\n async isAvailable(name: string) {\n const owner = await this.resolve(name);\n return owner === null;\n },\n\n async getInfo(name: string): Promise<NearAccountInfo | null> {\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const accountId = `${normalizedName}.near`;\n const wallet = getWallet(Chain.Near);\n\n if (!wallet) {\n throw new SwapKitError(\"plugin_near_no_connection\");\n }\n\n try {\n // Get account info\n const accountInfo = await wallet.provider.query({\n request_type: \"view_account\",\n finality: \"final\",\n account_id: accountId,\n });\n\n // Optionally get the account's public keys\n const keysInfo = await wallet.provider.query({\n request_type: \"view_access_key_list\",\n finality: \"final\",\n account_id: accountId,\n });\n\n return {\n accountId,\n balance: (accountInfo as any).amount,\n storageUsed: (accountInfo as any).storage_usage,\n codeHash: (accountInfo as any).code_hash,\n publicKeys: (keysInfo as any).keys?.map((k: any) => k.public_key) || [],\n };\n } catch (err: any) {\n if (/UNKNOWN_ACCOUNT|does not exist while viewing/.test(err.message)) {\n return null;\n }\n throw err;\n }\n },\n\n async lookupNames(accountId: string) {\n // NEAR doesn't have a central registry to look up all names owned by an account\n // This would require indexing or an external service\n // For now, we can only check if a specific account exists\n const wallet = getWallet(Chain.Near);\n\n if (!wallet) {\n throw new SwapKitError(\"plugin_near_no_connection\");\n }\n\n try {\n // Check if the account exists\n await wallet.provider.query({\n request_type: \"view_account\",\n finality: \"final\",\n account_id: accountId,\n });\n\n // If the account ID ends with .near, it's a NEAR name\n if (accountId.endsWith(\".near\")) {\n return [accountId];\n }\n\n // Otherwise, we can't determine what names they own without an indexer\n return [];\n } catch {\n return [];\n }\n },\n\n async register(params: NearNameRegistrationParams) {\n const { name, publicKey: publicKeyOverwrite } = params;\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const wallet = getWallet(Chain.Near) as NearWallet;\n\n const newPublicKey = publicKeyOverwrite || (await wallet.getPublicKey());\n\n const cost = calculateNearNameCost(normalizedName);\n\n return wallet.callFunction({\n contractId: \"near\",\n methodName: \"create_account\",\n args: {\n new_account_id: `${normalizedName}.near`,\n new_public_key: newPublicKey,\n },\n deposit: cost,\n });\n },\n\n transfer(name: string, newOwner: string) {\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const wallet = getWallet(Chain.Near) as NearWallet;\n\n return wallet.callFunction({\n contractId: \"near\",\n methodName: \"transfer\",\n args: {\n name: normalizedName,\n new_owner: newOwner,\n },\n deposit: \"1\",\n });\n },\n },\n }),\n});\n",
|
|
6
6
|
"import { parseNearAmount } from \"near-api-js/lib/utils/format\";\n\nconst MINIMUM_NAME_LENGTH = 2;\nconst MAXIMUM_NAME_LENGTH = 64;\n\nexport function validateNearName(name: string): boolean {\n if (name.length < MINIMUM_NAME_LENGTH || name.length > MAXIMUM_NAME_LENGTH) {\n return false;\n }\n\n // Only lowercase letters, numbers, and hyphens\n // Cannot start or end with hyphen\n // No consecutive hyphens\n return /^[a-z0-9]+(-[a-z0-9]+)*$/.test(name);\n}\n\nexport function calculateNearNameCost(name: string): string {\n // Pricing based on name length\n // These are suggested prices, the actual minimum is ~0.00182 NEAR\n const length = name.length;\n\n let costInNear: string;\n if (length <= 2) {\n costInNear = \"50\"; // 50 NEAR for 2-char names\n } else if (length <= 3) {\n costInNear = \"20\"; // 20 NEAR for 3-char names\n } else if (length <= 4) {\n costInNear = \"5\"; // 5 NEAR for 4-char names\n } else if (length <= 5) {\n costInNear = \"1\"; // 1 NEAR for 5-char names\n } else {\n costInNear = \"0.1\"; // 0.1 NEAR for 6+ characters\n }\n\n // Convert NEAR to yoctoNEAR\n return parseNearAmount(costInNear) || \"0\";\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "qDAOO,IAPP,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "EA5603375AF7B91464756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/near/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as V}from"../chunk-3vyc96hm.js";import{AssetValue as G,Chain as j,ProviderName as L,SwapKitError as Q}from"@swapkit/helpers";import{parseNearAmount as X}from"near-api-js/lib/utils/format";var b=2,y=64;function $(J){if(J.length<b||J.length>y)return!1;return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(J)}function U(J){let q=J.length,x;if(q<=2)x="50";else if(q<=3)x="20";else if(q<=4)x="5";else if(q<=5)x="1";else x="0.1";return X(x)||"0"}var v=V({name:"near",properties:{supportedSwapkitProviders:[L.NEAR]},methods:({getWallet:J})=>({async swap(q){let{route:{buyAsset:x,sellAsset:B,inboundAddress:D,sellAmount:F,meta:{near:Z}}}=q;if(!(B&&x&&Z?.sellAsset))throw new Q("core_swap_asset_not_recognized");if(!D)throw new Q("core_swap_invalid_params",{missing:["inboundAddress"]});let Y=await G.from({asyncTokenLookup:!0,asset:B,value:F}),H=J(Y.chain);if(!H)throw new Q("core_wallet_connection_not_found");return await H.transfer({assetValue:Y,sender:H.address,recipient:D,isProgramDerivedAddress:!0})},nearNames:{async resolve(q){let x=q.toLowerCase().replace(/\.near$/,"");if(!$(x))throw new Q("plugin_near_invalid_name");let B=`${x}.near`,D=J(j.Near);if(!D)throw new Q("plugin_near_no_connection");try{return await D.provider.query({request_type:"view_account",finality:"final",account_id:B}),B}catch(F){if(/UNKNOWN_ACCOUNT|does not exist while viewing/.test(F.message))return null;throw F}},async isAvailable(q){return await this.resolve(q)===null},async getInfo(q){let x=q.toLowerCase().replace(/\.near$/,"");if(!$(x))throw new Q("plugin_near_invalid_name");let B=`${x}.near`,D=J(j.Near);if(!D)throw new Q("plugin_near_no_connection");try{let F=await D.provider.query({request_type:"view_account",finality:"final",account_id:B}),Z=await D.provider.query({request_type:"view_access_key_list",finality:"final",account_id:B});return{accountId:B,balance:F.amount,storageUsed:F.storage_usage,codeHash:F.code_hash,publicKeys:Z.keys?.map((Y)=>Y.public_key)||[]}}catch(F){if(/UNKNOWN_ACCOUNT|does not exist while viewing/.test(F.message))return null;throw F}},async lookupNames(q){let x=J(j.Near);if(!x)throw new Q("plugin_near_no_connection");try{if(await x.provider.query({request_type:"view_account",finality:"final",account_id:q}),q.endsWith(".near"))return[q];return[]}catch{return[]}},async register(q){let{name:x,publicKey:B}=q,D=x.toLowerCase().replace(/\.near$/,"");if(!$(D))throw new Q("plugin_near_invalid_name");let F=J(j.Near),Z=B||await F.getPublicKey(),Y=U(D);return F.callFunction({contractId:"near",methodName:"create_account",args:{new_account_id:`${D}.near`,new_public_key:Z},deposit:Y})},transfer(q,x){let B=q.toLowerCase().replace(/\.near$/,"");if(!$(B))throw new Q("plugin_near_invalid_name");return J(j.Near).callFunction({contractId:"near",methodName:"transfer",args:{name:B,new_owner:x},deposit:"1"})}}})});export{v as NearPlugin};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=503677657A0D983E64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/near/index.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/near/plugin.ts", "../src/near/nearNames.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n AssetValue,\n Chain,\n type CryptoChain,\n ProviderName,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport {
|
|
5
|
+
"import {\n AssetValue,\n Chain,\n type CryptoChain,\n ProviderName,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { QuoteResponseRoute } from \"@swapkit/helpers/api\";\nimport type { NearWallet } from \"@swapkit/toolboxes/near\";\nimport { createPlugin } from \"../utils\";\nimport { calculateNearNameCost, validateNearName } from \"./nearNames\";\nimport type { NearAccountInfo, NearNameRegistrationParams } from \"./types\";\n\nexport const NearPlugin = createPlugin({\n name: \"near\",\n properties: {\n supportedSwapkitProviders: [ProviderName.NEAR],\n },\n methods: ({ getWallet }) => ({\n async swap(swapParams: SwapParams<\"near\", QuoteResponseRoute>) {\n const {\n route: {\n buyAsset: buyAssetString,\n sellAsset: sellAssetString,\n inboundAddress,\n sellAmount,\n meta: { near },\n },\n } = swapParams;\n\n if (!(sellAssetString && buyAssetString && near?.sellAsset)) {\n throw new SwapKitError(\"core_swap_asset_not_recognized\");\n }\n\n if (!inboundAddress) {\n throw new SwapKitError(\"core_swap_invalid_params\", { missing: [\"inboundAddress\"] });\n }\n\n const sellAsset = await AssetValue.from({\n asyncTokenLookup: true,\n asset: sellAssetString,\n value: sellAmount,\n });\n\n const wallet = getWallet(sellAsset.chain as Exclude<CryptoChain, Chain.Radix>);\n\n if (!wallet) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n\n const tx = await wallet.transfer({\n assetValue: sellAsset,\n sender: wallet.address,\n recipient: inboundAddress,\n isProgramDerivedAddress: true,\n });\n\n return tx as string;\n },\n\n // NEAR Names functionality\n nearNames: {\n async resolve(name: string) {\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const accountId = `${normalizedName}.near`;\n const wallet = getWallet(Chain.Near);\n\n if (!wallet) {\n throw new SwapKitError(\"plugin_near_no_connection\");\n }\n\n try {\n // Ask RPC whether the account exists\n await wallet.provider.query({\n request_type: \"view_account\",\n finality: \"final\",\n account_id: accountId,\n });\n // If no error is thrown, the account exists\n return accountId; // Account is taken, return the account ID as \"owner\"\n } catch (err: any) {\n // UNKNOWN_ACCOUNT means it hasn't been created yet → available\n if (/UNKNOWN_ACCOUNT|does not exist while viewing/.test(err.message)) {\n return null;\n }\n // Re-throw any unexpected errors\n throw err;\n }\n },\n\n async isAvailable(name: string) {\n const owner = await this.resolve(name);\n return owner === null;\n },\n\n async getInfo(name: string): Promise<NearAccountInfo | null> {\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const accountId = `${normalizedName}.near`;\n const wallet = getWallet(Chain.Near);\n\n if (!wallet) {\n throw new SwapKitError(\"plugin_near_no_connection\");\n }\n\n try {\n // Get account info\n const accountInfo = await wallet.provider.query({\n request_type: \"view_account\",\n finality: \"final\",\n account_id: accountId,\n });\n\n // Optionally get the account's public keys\n const keysInfo = await wallet.provider.query({\n request_type: \"view_access_key_list\",\n finality: \"final\",\n account_id: accountId,\n });\n\n return {\n accountId,\n balance: (accountInfo as any).amount,\n storageUsed: (accountInfo as any).storage_usage,\n codeHash: (accountInfo as any).code_hash,\n publicKeys: (keysInfo as any).keys?.map((k: any) => k.public_key) || [],\n };\n } catch (err: any) {\n if (/UNKNOWN_ACCOUNT|does not exist while viewing/.test(err.message)) {\n return null;\n }\n throw err;\n }\n },\n\n async lookupNames(accountId: string) {\n // NEAR doesn't have a central registry to look up all names owned by an account\n // This would require indexing or an external service\n // For now, we can only check if a specific account exists\n const wallet = getWallet(Chain.Near);\n\n if (!wallet) {\n throw new SwapKitError(\"plugin_near_no_connection\");\n }\n\n try {\n // Check if the account exists\n await wallet.provider.query({\n request_type: \"view_account\",\n finality: \"final\",\n account_id: accountId,\n });\n\n // If the account ID ends with .near, it's a NEAR name\n if (accountId.endsWith(\".near\")) {\n return [accountId];\n }\n\n // Otherwise, we can't determine what names they own without an indexer\n return [];\n } catch {\n return [];\n }\n },\n\n async register(params: NearNameRegistrationParams) {\n const { name, publicKey: publicKeyOverwrite } = params;\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const wallet = getWallet(Chain.Near) as NearWallet;\n\n const newPublicKey = publicKeyOverwrite || (await wallet.getPublicKey());\n\n const cost = calculateNearNameCost(normalizedName);\n\n return wallet.callFunction({\n contractId: \"near\",\n methodName: \"create_account\",\n args: {\n new_account_id: `${normalizedName}.near`,\n new_public_key: newPublicKey,\n },\n deposit: cost,\n });\n },\n\n transfer(name: string, newOwner: string) {\n const normalizedName = name.toLowerCase().replace(/\\.near$/, \"\");\n\n if (!validateNearName(normalizedName)) {\n throw new SwapKitError(\"plugin_near_invalid_name\");\n }\n\n const wallet = getWallet(Chain.Near) as NearWallet;\n\n return wallet.callFunction({\n contractId: \"near\",\n methodName: \"transfer\",\n args: {\n name: normalizedName,\n new_owner: newOwner,\n },\n deposit: \"1\",\n });\n },\n },\n }),\n});\n",
|
|
6
6
|
"import { parseNearAmount } from \"near-api-js/lib/utils/format\";\n\nconst MINIMUM_NAME_LENGTH = 2;\nconst MAXIMUM_NAME_LENGTH = 64;\n\nexport function validateNearName(name: string): boolean {\n if (name.length < MINIMUM_NAME_LENGTH || name.length > MAXIMUM_NAME_LENGTH) {\n return false;\n }\n\n // Only lowercase letters, numbers, and hyphens\n // Cannot start or end with hyphen\n // No consecutive hyphens\n return /^[a-z0-9]+(-[a-z0-9]+)*$/.test(name);\n}\n\nexport function calculateNearNameCost(name: string): string {\n // Pricing based on name length\n // These are suggested prices, the actual minimum is ~0.00182 NEAR\n const length = name.length;\n\n let costInNear: string;\n if (length <= 2) {\n costInNear = \"50\"; // 50 NEAR for 2-char names\n } else if (length <= 3) {\n costInNear = \"20\"; // 20 NEAR for 3-char names\n } else if (length <= 4) {\n costInNear = \"5\"; // 5 NEAR for 4-char names\n } else if (length <= 5) {\n costInNear = \"1\"; // 1 NEAR for 5-char names\n } else {\n costInNear = \"0.1\"; // 0.1 NEAR for 6+ characters\n }\n\n // Convert NEAR to yoctoNEAR\n return parseNearAmount(costInNear) || \"0\";\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "yCAAA,qBACE,WACA,kBAEA,kBACA,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "503677657A0D983E64756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/radix/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as e}from"../chunk-
|
|
1
|
+
import{c as e}from"../chunk-3vyc96hm.js";import{AssetValue as m,Chain as u,ProviderName as w,SwapKitError as r}from"@swapkit/helpers";var h=e({name:"radix",properties:{supportedSwapkitProviders:[w.CAVIAR_V1]},methods:({getWallet:t})=>({swap:async function c({route:{tx:o,sellAmount:s,sellAsset:i}}){let a=await m.from({asyncTokenLookup:!0,value:s,asset:i});if(u.Radix!==a.chain)throw new r("core_swap_invalid_params");let p=t(a.chain);try{return p.signAndBroadcast({manifest:o})}catch(n){throw new r("core_swap_invalid_params",n)}}})});export{h as RadixPlugin};
|
|
2
2
|
|
|
3
3
|
//# debugId=4CE7C68C4DE6A9B164756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/solana/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as l,b as m,c as t}from"../chunk-
|
|
1
|
+
import{a as l,b as m,c as t}from"../chunk-3vyc96hm.js";import{AssetValue as u,Chain as w,ProviderName as f,SwapKitError as d}from"@swapkit/helpers";var P=t({name:"solana",properties:{supportedSwapkitProviders:[f.JUPITER]},methods:({getWallet:e})=>({swap:async function S({route:n}){let{VersionedTransaction:r}=await import("@solana/web3.js"),{tx:a,sellAsset:i}=n,s=(await u.from({asset:i})).chain;if(!(s===w.Solana&&a))throw new d("core_swap_invalid_params");let o=e(s),p=r.deserialize(Buffer.from(a,"base64")),c=await o.signTransaction(p);return o.broadcastTransaction(c)}})});export{P as SolanaPlugin};
|
|
2
2
|
|
|
3
3
|
//# debugId=95B9B6C6F8823C0564756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/thorchain/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Hx,b as Jx,c as C}from"../chunk-
|
|
1
|
+
import{a as Hx,b as Jx,c as C}from"../chunk-3vyc96hm.js";import{ApproveMode as A,AssetValue as O,BaseDecimal as m,Chain as Y,EVMChains as Lx,FeeOption as b,MemoType as F,ProviderName as w,SwapKitError as U,getMemoForDeposit as E,getMemoForLeaveAndBond as Qx,getMemoForNamePreferredAssetRegister as Rx,getMemoForNameRegister as Ux,getMemoForTcyClaim as Xx,getMemoForTcyStake as c,getMemoForUnbond as Yx,getMemoForWithdraw as Zx,getMinAmountByChain as h,wrapWithThrow as M}from"@swapkit/helpers";import{SwapKitApi as V}from"@swapkit/helpers/api";import{MayaArbitrumVaultAbi as $x,MayaEthereumVaultAbi as jx,TCAvalancheDepositABI as Gx,TCBaseDepositABI as kx,TCBscDepositABI as Nx,TCEthereumVaultAbi as _x}from"@swapkit/helpers/contracts";import{Chain as zx}from"@swapkit/helpers";function S({chain:Q,address:P}){if(!P)return!1;return Q===zx.Bitcoin?!P.startsWith("bc1p"):!0}function g({assetValue:Q,from:P,memo:R="",...f}){return{...f,memo:R,from:P,assetValue:Q}}var Ox={[b.Average]:1.2,[b.Fast]:1.5,[b.Fastest]:2},Px={[Y.Avalanche]:Gx,[Y.Base]:kx,[Y.BinanceSmartChain]:Nx,[Y.Ethereum]:_x},fx={[Y.Arbitrum]:$x,[Y.Ethereum]:jx},Ix=C({name:"thorchain",methods:p(Y.THORChain),properties:{supportedSwapkitProviders:[w.THORCHAIN,w.THORCHAIN_STREAMING]}}),vx=C({name:"mayachain",methods:p(Y.Maya),properties:{supportedSwapkitProviders:[w.MAYACHAIN]}});function Bx(Q){return async function P(R){if(Q==="thorchain"&&R===Y.THORChain||Q==="mayachain"&&R===Y.Maya)return{gas_rate:"0",router:"",address:"",halted:!1,chain:R,dust_threshold:"0"};let Z=(await V.thornode.getInboundAddresses(Q)).find((K)=>K.chain===R);if(!Z)throw new U("core_inbound_data_not_found");if(Z?.halted)throw new U("core_chain_halted");return Z}}function p(Q){return function P({getWallet:R}){let f=Q===Y.Maya?"mayachain":"thorchain",Z=Bx(f);async function K({assetValue:x,type:q="checkOnly"}){let z=(await Z(x.chain)).router,H=x.chain,L=Lx.includes(H);if(L&&x.isGasAsset||!L||x.isSynthetic)return Promise.resolve(q==="checkOnly"?!0:"approved");let X=R(H);if(!X)throw new U("core_wallet_connection_not_found");let $=q==="checkOnly"?X.isApproved:X.approve;if(!(x.address&&X.address))throw new U("core_approve_asset_address_or_from_not_found");return $({amount:x.getBaseValue("bigint"),assetAddress:x.address,from:X.address,spenderAddress:z})}async function k({assetValue:x,recipient:q,router:z,...H}){let L=f==="thorchain"?Px:fx,{chain:J,symbol:X,ticker:$}=x,I=R(J);if(!I)throw new U("core_wallet_connection_not_found");let{address:v}=I;if(!S({address:v,chain:J}))throw new U("core_transaction_invalid_sender_address");let _=g({from:v,assetValue:x,recipient:q,router:z,...H});try{let j=L?.[J];if(!j){let B=R(J);return Q===J&&q===""?B.deposit(_):B.transfer(_)}let{getChecksumAddressFromAsset:G}=await import("@swapkit/toolboxes/evm");return R(J).call({abi:j,contractAddress:z||(await Z(J)).router,funcName:"depositWithExpiry",funcParams:[q,G({chain:J,symbol:X,ticker:$},J),x.getBaseValue("string"),_.memo,H.expiration||Number.parseInt(`${(Date.now()+900000)/1000}`)],txOverrides:{from:_.from,value:x.isGasAsset?x.getBaseValue("bigint"):void 0}})}catch(j){let G=typeof j==="string"?j.toLowerCase():j?.message.toLowerCase(),D=G?.includes("insufficient funds"),B=G?.includes("gas"),W=G?.includes("server"),qx=G?.includes("user rejected");throw new U(D?"core_transaction_deposit_insufficient_funds_error":B?"core_transaction_deposit_gas_error":W?"core_transaction_deposit_server_error":qx?"core_transaction_user_rejected":"core_transaction_deposit_error",j)}}async function T({memo:x,assetValue:q}){let z=await V.thornode.getMimirInfo(f);if(z.HALTCHAINGLOBAL>=1||z.HALTTHORCHAIN>=1)throw new U("thorchain_chain_halted");return k({assetValue:q,recipient:"",memo:x})}async function N({assetValue:x,memo:q,feeOptionKey:z=b.Fast}){let{gas_rate:H="0",router:L,address:J}=await Z(x.chain);return k({assetValue:x,recipient:J,memo:q,router:L,feeRate:Number.parseInt(H)*Ox[z]})}function n({assetValue:x}){return K({assetValue:x,type:A.Approve})}function d({assetValue:x}){return K({assetValue:x,type:A.CheckOnly})}function u({assetValue:x,...q}){return T({assetValue:x,memo:Ux(q)})}function r({assetValue:x,payoutAddress:q,name:z,ownerAddress:H}){let L=q||R(x.chain)?.address;if(!L)throw new U("thorchain_preferred_asset_payout_required");return T({assetValue:O.from({chain:Q}),memo:Rx({asset:x.toString(),chain:x.chain,name:z,owner:H,payout:L})})}function o({type:x,assetValue:q,address:z}){let H=x===F.UNBOND?Yx({address:z,unbondAmount:q.getBaseValue("number")}):Qx({type:x,address:z}),L=x===F.BOND?q:h(Q);return T({memo:H,assetValue:L})}async function i({baseAssetValue:x,assetValue:q}){if(x.lte(0)||q.lte(0))throw new U("core_transaction_create_liquidity_invalid_params");let z=R(q.chain).address,H=R(Q).address,L=await M(()=>{return N({assetValue:x,memo:E({...q,address:z})})},"core_transaction_create_liquidity_base_error"),J=await M(()=>{return N({assetValue:q,memo:E({...q,address:H})})},"core_transaction_create_liquidity_asset_error");return{baseAssetTx:L,assetTx:J}}function l({assetValue:x,poolAddress:q,address:z,symmetric:H}){if(H&&!z)throw new U("core_transaction_add_liquidity_invalid_params");let L=E({chain:q.split(".")[0],symbol:q.split(".")[1],address:H?z:""});return N({assetValue:x,memo:L})}async function t({baseAssetValue:x,assetValue:q,baseAssetAddr:z,assetAddr:H,isPendingSymmAsset:L,mode:J="sym"}){let{chain:X,symbol:$}=q,I=J==="sym",v=x?.gt(0)&&(I||J==="baseAsset"),y=q?.gt(0)&&(I||J==="asset"),_=L||v,j=R(Q).address,G=_?z||j:"",D=I||J==="asset"?H||R(X).address:"";if(!(v||y))throw new U("core_transaction_add_liquidity_invalid_params");if(_&&!G)throw new U("core_transaction_add_liquidity_base_address");let B=v&&x?await M(()=>{return N({assetValue:x,memo:E({chain:X,symbol:$,address:D})})},"core_transaction_add_liquidity_base_error"):void 0,W=y&&q?await M(()=>{return N({assetValue:q,memo:E({chain:X,symbol:$,address:G})})},"core_transaction_add_liquidity_asset_error"):void 0;return{baseAssetTx:B,assetTx:W}}function s({memo:x,assetValue:q,percent:z,from:H,to:L}){let J=L==="baseAsset"&&H!=="baseAsset"?O.from({chain:Q}):H==="sym"&&L==="sym"||H==="baseAsset"||H==="asset"?void 0:q,X=h(H==="asset"?q.chain:Q),$=x||Zx({symbol:q.symbol,chain:q.chain,ticker:q.ticker,basisPoints:Math.min(1e4,Math.round(z*100)),targetAsset:J?.toString()});return N({assetValue:X,memo:$})}async function a({chain:x,thorAddress:q}){let z=await Z(x),H=z.dust_threshold;return k({assetValue:O.from({chain:x,fromBaseDecimal:Math.min(m[x],m[Y.THORChain]),value:x!==Y.THORChain?H:0}),recipient:z.address,memo:Xx(F.CLAIM_TCY,{address:q}),router:z.router})}function e(x){if(x.type==="stake"){if(x.assetValue.toString()!=="THOR.TCY")throw new U("thorchain_asset_is_not_tcy");return k({assetValue:x.assetValue,recipient:"",memo:c(F.STAKE_TCY,{})})}return k({assetValue:O.from({chain:Y.THORChain}),recipient:"",memo:c(F.UNSTAKE_TCY,{unstakeBps:x.unstakeBps})})}async function xx({feeOptionKey:x,route:q}){let{memo:z,expiration:H,targetAddress:L}=q,J=await O.from({asyncTokenLookup:!0,asset:q.sellAsset,value:q.sellAmount});if(!J)throw new U("core_swap_asset_not_recognized");if(!S({address:q.destinationAddress,chain:O.from({asset:q.buyAsset}).chain}))throw new U("core_transaction_invalid_recipient_address");let{address:$}=await Z(J.chain);return k({expiration:Number(H),assetValue:J,memo:z,feeOptionKey:x,router:L,recipient:$})}return{addLiquidity:t,addLiquidityPart:l,approveAssetValue:n,createLiquidity:i,deposit:k,depositToPool:N,getInboundDataByChain:Z,isAssetValueApproved:d,nodeAction:o,registerName:u,registerPreferredAsset:r,claimTcy:a,stakeTcyAction:e,swap:xx,withdraw:s}}}export{S as validateAddressType,Ix as ThorchainPlugin,vx as MayachainPlugin};
|
|
2
2
|
|
|
3
3
|
//# debugId=CBA3B33592A6F37F64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProviderName, type SwapParams } from "@swapkit/helpers";
|
|
2
|
-
import {
|
|
2
|
+
import type { QuoteResponseRoute } from "@swapkit/helpers/api";
|
|
3
3
|
import type { NearAccountInfo, NearNameRegistrationParams } from "./types";
|
|
4
4
|
export declare const NearPlugin: {
|
|
5
5
|
near: (pluginParams: import("..").SwapKitPluginParams) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/near/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAEZ,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/near/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAEZ,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE3E,eAAO,MAAM,UAAU;;;;yBAMI,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC;;0BA2CvC,MAAM;8BAiCF,MAAM;0BAKV,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;mCA4C/B,MAAM;6BA8BZ,0BAA0B;2BAyBlC,MAAM,YAAY,MAAM;;;CAqB3C,CAAC"}
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|