@swapkit/plugins 4.0.26 → 4.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{a as C,b as x,c as A}from"../chunk-a0djqfqa.js";import{decodeAddress as b}from"@polkadot/keyring";import{isHex as y,u8aToHex as S}from"@polkadot/util";import{AssetValue as B,Chain as E,SwapKitError as d,wrapWithThrow as T}from"@swapkit/helpers";var I=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"]]),_=(e)=>()=>{let s=e.api.tx.swapping?.registerAsBroker?.();if(!s)throw new d("chainflip_broker_register");return e.signAndBroadcast({address:e.getAddress(),tx:s})},D=(e)=>({feeAsset:s,recipient:t})=>{let i=s.chain===E.Polkadot,o=T(()=>{return i?e.encodeAddress(e.decodeAddress(t),"hex"):t},"chainflip_broker_recipient_error");return new Promise((a)=>{let r=e.api.tx?.swapping?.withdraw?.(s.ticker.toLowerCase(),{[s.chain.toLowerCase()]:o});if(!r)throw new d("chainflip_broker_withdraw");e.signAndBroadcast({callback:(l)=>{if(!l.status?.isFinalized)return;let n=l.events.find((g)=>g.event.method==="WithdrawalRequested");if(!n)throw new d("chainflip_channel_error","Could not find 'WithdrawalRequested' event");let{event:{data:{egressId:p,egressAsset:c,egressAmount:u,egressFee:w,destinationAddress:h}}}=n.toHuman();a({destinationAddress:h,egressAmount:u,egressAsset:c,egressFee:w,egressId:p})},tx:r})})},k=(e)=>async({evmToolbox:s,stateChainAccount:t,assetValue:i})=>{let{chainflipGateway:o}=await import("@swapkit/helpers/contracts"),a=B.from({asset:"ETH.FLIP"});if(!i.eqAsset(a))throw new d("chainflip_broker_fund_only_flip_supported");if(!e.validateAddress(t))throw new d("chainflip_broker_fund_invalid_address");let r=y(t)?t:S(b(t));return s.call({abi:o,contractAddress:"0x6995ab7c4d7f4b03f467cf4c8e920427d9621dbd",funcName:"fundStateChainAccount",funcParams:[r,i.getBaseValue("string")]})},V=(e)=>({fundStateChainAccount:k(e),registerAsBroker:_(e),withdrawFee:D(e)});import{AssetValue as P,ProviderName as m,SwapKitError as f}from"@swapkit/helpers";import{SwapKitApi as F}from"@swapkit/helpers/api";var M=A({methods:({getWallet:e})=>({swap:async function(t){if(!(t?.route?.buyAsset&&t.route.meta.chainflip))throw new f("core_swap_invalid_params",{...t});let{route:{buyAsset:i,sellAsset:o,sellAmount:a,meta:{chainflip:r}},maxBoostFeeBps:l=0}=t;if(!(o&&i))throw new f("core_swap_asset_not_recognized");let n=await P.from({asset:o,asyncTokenLookup:!0,value:a}),p=e(n.chain);if(!p)throw new f("core_wallet_connection_not_found");let{depositAddress:c}=await F.getChainflipDepositChannel({...r,maxBoostFeeBps:l||r.maxBoostFeeBps});return await p.transfer({assetValue:n,isProgramDerivedAddress:!0,recipient:c,sender:p.address})}}),name:"chainflip",properties:{supportedSwapkitProviders:[m.CHAINFLIP,m.CHAINFLIP_STREAMING]}});export{I as assetIdentifierToChainflipTicker,M as ChainflipPlugin,V as ChainflipBroker};
1
+ import{a as C,b as x,c as A}from"../chunk-pqpwxyjh.js";import{decodeAddress as b}from"@polkadot/keyring";import{isHex as y,u8aToHex as S}from"@polkadot/util";import{AssetValue as B,Chain as E,SwapKitError as d,wrapWithThrow as T}from"@swapkit/helpers";var I=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"]]),_=(e)=>()=>{let s=e.api.tx.swapping?.registerAsBroker?.();if(!s)throw new d("chainflip_broker_register");return e.signAndBroadcast({address:e.getAddress(),tx:s})},D=(e)=>({feeAsset:s,recipient:t})=>{let i=s.chain===E.Polkadot,o=T(()=>{return i?e.encodeAddress(e.decodeAddress(t),"hex"):t},"chainflip_broker_recipient_error");return new Promise((a)=>{let r=e.api.tx?.swapping?.withdraw?.(s.ticker.toLowerCase(),{[s.chain.toLowerCase()]:o});if(!r)throw new d("chainflip_broker_withdraw");e.signAndBroadcast({callback:(l)=>{if(!l.status?.isFinalized)return;let n=l.events.find((g)=>g.event.method==="WithdrawalRequested");if(!n)throw new d("chainflip_channel_error","Could not find 'WithdrawalRequested' event");let{event:{data:{egressId:p,egressAsset:c,egressAmount:u,egressFee:w,destinationAddress:h}}}=n.toHuman();a({destinationAddress:h,egressAmount:u,egressAsset:c,egressFee:w,egressId:p})},tx:r})})},k=(e)=>async({evmToolbox:s,stateChainAccount:t,assetValue:i})=>{let{chainflipGateway:o}=await import("@swapkit/helpers/contracts"),a=B.from({asset:"ETH.FLIP"});if(!i.eqAsset(a))throw new d("chainflip_broker_fund_only_flip_supported");if(!e.validateAddress(t))throw new d("chainflip_broker_fund_invalid_address");let r=y(t)?t:S(b(t));return s.call({abi:o,contractAddress:"0x6995ab7c4d7f4b03f467cf4c8e920427d9621dbd",funcName:"fundStateChainAccount",funcParams:[r,i.getBaseValue("string")]})},V=(e)=>({fundStateChainAccount:k(e),registerAsBroker:_(e),withdrawFee:D(e)});import{AssetValue as P,ProviderName as m,SwapKitError as f}from"@swapkit/helpers";import{SwapKitApi as F}from"@swapkit/helpers/api";var M=A({methods:({getWallet:e})=>({swap:async function(t){if(!(t?.route?.buyAsset&&t.route.meta.chainflip))throw new f("core_swap_invalid_params",{...t});let{route:{buyAsset:i,sellAsset:o,sellAmount:a,meta:{chainflip:r}},maxBoostFeeBps:l=0}=t;if(!(o&&i))throw new f("core_swap_asset_not_recognized");let n=await P.from({asset:o,asyncTokenLookup:!0,value:a}),p=e(n.chain);if(!p)throw new f("core_wallet_connection_not_found");let{depositAddress:c}=await F.getChainflipDepositChannel({...r,maxBoostFeeBps:l||r.maxBoostFeeBps});return await p.transfer({assetValue:n,isProgramDerivedAddress:!0,recipient:c,sender:p.address})}}),name:"chainflip",properties:{supportedSwapkitProviders:[m.CHAINFLIP,m.CHAINFLIP_STREAMING]}});export{I as assetIdentifierToChainflipTicker,M as ChainflipPlugin,V as ChainflipBroker};
2
2
 
3
3
  //# debugId=144DAD02059BE0B864756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  var p=Object.create;var{getPrototypeOf:s,defineProperty:a,getOwnPropertyNames:o}=Object;var m=Object.prototype.hasOwnProperty;var u=(e,t,r)=>{r=e!=null?p(s(e)):{};let n=t||!e||!e.__esModule?a(r,"default",{value:e,enumerable:!0}):r;for(let i of o(e))if(!m.call(n,i))a(n,i,{get:()=>e[i],enumerable:!0});return n};var P=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function g({name:e,properties:t,methods:r}){function n(i){return{...r(i),...t}}return{[e]:n}}
2
2
  export{u as a,P as b,g as c};
3
3
 
4
- //# debugId=7BB83C28C183DBF064756E2164756E21
5
- //# sourceMappingURL=chunk-a0djqfqa.js.map
4
+ //# debugId=99FE57FD40E01F4464756E2164756E21
5
+ //# sourceMappingURL=chunk-pqpwxyjh.js.map
@@ -5,6 +5,6 @@
5
5
  "import type { ProviderName } from \"@swapkit/helpers\";\nimport type { SwapKitPluginParams } from \"./types\";\n\nexport function createPlugin<\n const Name extends string,\n T extends (params: SwapKitPluginParams) => Record<string, unknown>,\n K extends { supportedSwapkitProviders?: (ProviderName | string)[] },\n>({ name, properties, methods }: { name: Name; properties?: K; methods: T }) {\n function plugin(pluginParams: SwapKitPluginParams) {\n return { ...methods(pluginParams), ...properties } as K & ReturnType<T>;\n }\n\n return { [name]: plugin } as { [key in Name]: typeof plugin };\n}\n"
6
6
  ],
7
7
  "mappings": "kjBAGO,SAAS,CAIf,EAAG,OAAM,aAAY,WAAuD,CAC3E,SAAS,CAAM,CAAC,EAAmC,CACjD,MAAO,IAAK,EAAQ,CAAY,KAAM,CAAW,EAGnD,MAAO,EAAG,GAAO,CAAO",
8
- "debugId": "7BB83C28C183DBF064756E2164756E21",
8
+ "debugId": "99FE57FD40E01F4464756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- var w={};l(w,{EVMPlugin:()=>E});module.exports=V(w);var e=require("@swapkit/helpers");function v({approveMode:o,getWallet:c}){return function({assetValue:s,spenderAddress:n}){let p=s.chain,a=e.EVMChains.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 e.SwapKitError("core_approve_asset_address_or_from_not_found");return i({amount:s.getBaseValue("bigint"),assetAddress:s.address,from:r.address,spenderAddress:n})}}var E=m({methods:({getWallet:o})=>({approveAssetValue:v({approveMode:e.ApproveMode.Approve,getWallet:o}),isAssetValueApproved:v({approveMode:e.ApproveMode.CheckOnly,getWallet:o}),swap:async function({route:{tx:t,sellAsset:s},feeOptionKey:n}){let a=(await e.AssetValue.from({asset:s,asyncTokenLookup:!0})).chain,u=o(a);if(!(e.EVMChains.includes(a)&&t))throw new e.SwapKitError("core_swap_invalid_params");let{from:r,to:i,data:d,value:A}=t;return u.sendTransaction({data:d,feeOptionKey:n,from:r,to:i,value:BigInt(A)})}}),name:"evm",properties:{supportedSwapkitProviders:[e.ProviderName.CAMELOT_V3,e.ProviderName.OPENOCEAN_V2,e.ProviderName.ONEINCH,e.ProviderName.PANCAKESWAP,e.ProviderName.PANGOLIN_V1,e.ProviderName.SUSHISWAP_V2,e.ProviderName.TRADERJOE_V2,e.ProviderName.UNISWAP_V2,e.ProviderName.UNISWAP_V3]}});
1
+ var w={};l(w,{EVMPlugin:()=>E});module.exports=V(w);var e=require("@swapkit/helpers");function v({approveMode:o,getWallet:d}){return function({assetValue:s,spenderAddress:p}){let n=s.chain,a=e.EVMChains.includes(n);if(a&&s.isGasAsset||!a||s.isSynthetic)return Promise.resolve(o==="checkOnly"||"approved");let r=d(n),i=o==="checkOnly"?r.isApproved:r.approve;if(!(s.address&&r.address))throw new e.SwapKitError("core_approve_asset_address_or_from_not_found");return i({amount:s.getBaseValue("bigint"),assetAddress:s.address,from:r.address,spenderAddress:p})}}var E=m({methods:({getWallet:o})=>({approveAssetValue:v({approveMode:e.ApproveMode.Approve,getWallet:o}),isAssetValueApproved:v({approveMode:e.ApproveMode.CheckOnly,getWallet:o}),swap:async function({route:{tx:t,sellAsset:s},feeOptionKey:p}){let a=(await e.AssetValue.from({asset:s,asyncTokenLookup:!0})).chain,c=o(a);if(!(e.EVMChains.includes(a)&&t))throw new e.SwapKitError("core_swap_invalid_params");let{from:r,to:i,data:u,value:A}=t;return c.sendTransaction({data:u,feeOptionKey:p,from:r,to:i,value:BigInt(A)})}}),name:"evm",properties:{supportedSwapkitProviders:[e.ProviderName.CAMELOT_V3,e.ProviderName.OPENOCEAN_V2,e.ProviderName.ONEINCH,e.ProviderName.PANCAKESWAP,e.ProviderName.PANGOLIN_V1,e.ProviderName.SUSHISWAP_V2,e.ProviderName.TRADERJOE_V2,e.ProviderName.UNISWAP_V2,e.ProviderName.UNISWAP_V3]}});
2
2
 
3
- //# debugId=C2CBD431D1AD8A7F64756E2164756E21
3
+ //# debugId=1C1E3E9493FD78B764756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import {\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n type EVMChain,\n EVMChains,\n ProviderName,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { EVMTransaction, QuoteResponseRoute } from \"@swapkit/helpers/api\";\nimport type { SwapKitPluginParams } from \"../types\";\nimport { createPlugin } from \"../utils\";\n\nfunction approve<T extends ApproveMode>({ approveMode, getWallet }: { approveMode: T } & SwapKitPluginParams) {\n return function approveEVM({ assetValue, spenderAddress }: { spenderAddress: string; assetValue: AssetValue }) {\n const evmChain = assetValue.chain as EVMChain;\n const isEVMChain = EVMChains.includes(evmChain);\n const isNativeEVM = isEVMChain && assetValue.isGasAsset;\n\n if (isNativeEVM || !isEVMChain || assetValue.isSynthetic) {\n const isApproved = approveMode === \"checkOnly\" || \"approved\";\n return Promise.resolve(isApproved) as ApproveReturnType<T>;\n }\n\n const wallet = getWallet(evmChain);\n const walletAction = approveMode === \"checkOnly\" ? wallet.isApproved : wallet.approve;\n\n if (!(assetValue.address && wallet.address)) {\n throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n }\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: assetValue.address,\n from: wallet.address,\n spenderAddress,\n });\n };\n}\n\nexport const EVMPlugin = createPlugin({\n methods: ({ getWallet }) => ({\n approveAssetValue: approve({ approveMode: ApproveMode.Approve, getWallet }),\n isAssetValueApproved: approve({ approveMode: ApproveMode.CheckOnly, getWallet }),\n swap: async function evmSwap({ route: { tx, sellAsset }, feeOptionKey }: SwapParams<\"evm\", QuoteResponseRoute>) {\n const assetValue = await AssetValue.from({ asset: sellAsset, asyncTokenLookup: true });\n const evmChain = assetValue.chain as EVMChain;\n const wallet = getWallet(evmChain);\n\n if (!(EVMChains.includes(evmChain) && tx)) {\n throw new SwapKitError(\"core_swap_invalid_params\");\n }\n\n const { from, to, data, value } = tx as EVMTransaction;\n return wallet.sendTransaction({ data, feeOptionKey, from, to, value: BigInt(value) });\n },\n }),\n name: \"evm\",\n properties: {\n supportedSwapkitProviders: [\n ProviderName.CAMELOT_V3,\n ProviderName.OPENOCEAN_V2,\n ProviderName.ONEINCH,\n ProviderName.PANCAKESWAP,\n ProviderName.PANGOLIN_V1,\n ProviderName.SUSHISWAP_V2,\n ProviderName.TRADERJOE_V2,\n ProviderName.UNISWAP_V2,\n ProviderName.UNISWAP_V3,\n ],\n },\n});\n"
6
6
  ],
7
- "mappings": "oDASO,IATP,8BAcA,SAAS,CAA8B,EAAG,cAAa,aAAuD,CAC5G,OAAO,QAAmB,EAAG,aAAY,kBAAsE,CAC7G,IAAM,EAAW,EAAW,MACtB,EAAa,YAAU,SAAS,CAAQ,EAG9C,GAFoB,GAAc,EAAW,YAE1B,CAAC,GAAc,EAAW,YAAa,CACxD,IAAM,EAAa,IAAgB,aAAe,WAClD,OAAO,QAAQ,QAAQ,CAAU,EAGnC,IAAM,EAAS,EAAU,CAAQ,EAC3B,EAAe,IAAgB,YAAc,EAAO,WAAa,EAAO,QAE9E,GAAI,EAAE,EAAW,SAAW,EAAO,SACjC,MAAM,IAAI,eAAa,8CAA8C,EAGvE,OAAO,EAAa,CAClB,OAAQ,EAAW,aAAa,QAAQ,EACxC,aAAc,EAAW,QACzB,KAAM,EAAO,QACb,gBACF,CAAC,GAIE,IAAM,EAAY,EAAa,CACpC,QAAS,EAAG,gBAAiB,CAC3B,kBAAmB,EAAQ,CAAE,YAAa,cAAY,QAAS,WAAU,CAAC,EAC1E,qBAAsB,EAAQ,CAAE,YAAa,cAAY,UAAW,WAAU,CAAC,EAC/E,KAAM,cAAsB,EAAG,OAAS,KAAI,aAAa,gBAAuD,CAE9G,IAAM,GADa,MAAM,aAAW,KAAK,CAAE,MAAO,EAAW,iBAAkB,EAAK,CAAC,GACzD,MACtB,EAAS,EAAU,CAAQ,EAEjC,GAAI,EAAE,YAAU,SAAS,CAAQ,GAAK,GACpC,MAAM,IAAI,eAAa,0BAA0B,EAGnD,IAAQ,OAAM,KAAI,OAAM,SAAU,EAClC,OAAO,EAAO,gBAAgB,CAAE,OAAM,eAAc,OAAM,KAAI,MAAO,OAAO,CAAK,CAAE,CAAC,EAExF,GACA,KAAM,MACN,WAAY,CACV,0BAA2B,CACzB,eAAa,WACb,eAAa,aACb,eAAa,QACb,eAAa,YACb,eAAa,YACb,eAAa,aACb,eAAa,aACb,eAAa,WACb,eAAa,UACf,CACF,CACF,CAAC",
8
- "debugId": "C2CBD431D1AD8A7F64756E2164756E21",
7
+ "mappings": "oDASO,IATP,8BAcA,SAAS,CAA8B,EAAG,cAAa,aAAuD,CAC5G,OAAO,QAAmB,EAAG,aAAY,kBAAsE,CAC7G,IAAM,EAAW,EAAW,MACtB,EAAa,YAAU,SAAS,CAAQ,EAG9C,GAFoB,GAAc,EAAW,YAE1B,CAAC,GAAc,EAAW,YAE3C,OAAO,QAAQ,QADI,IAAgB,aAAe,UACjB,EAGnC,IAAM,EAAS,EAAU,CAAQ,EAC3B,EAAe,IAAgB,YAAc,EAAO,WAAa,EAAO,QAE9E,GAAI,EAAE,EAAW,SAAW,EAAO,SACjC,MAAM,IAAI,eAAa,8CAA8C,EAGvE,OAAO,EAAa,CAClB,OAAQ,EAAW,aAAa,QAAQ,EACxC,aAAc,EAAW,QACzB,KAAM,EAAO,QACb,gBACF,CAAC,GAIE,IAAM,EAAY,EAAa,CACpC,QAAS,EAAG,gBAAiB,CAC3B,kBAAmB,EAAQ,CAAE,YAAa,cAAY,QAAS,WAAU,CAAC,EAC1E,qBAAsB,EAAQ,CAAE,YAAa,cAAY,UAAW,WAAU,CAAC,EAC/E,KAAM,cAAsB,EAAG,OAAS,KAAI,aAAa,gBAAuD,CAE9G,IAAM,GADa,MAAM,aAAW,KAAK,CAAE,MAAO,EAAW,iBAAkB,EAAK,CAAC,GACzD,MACtB,EAAS,EAAU,CAAQ,EAEjC,GAAI,EAAE,YAAU,SAAS,CAAQ,GAAK,GACpC,MAAM,IAAI,eAAa,0BAA0B,EAGnD,IAAQ,OAAM,KAAI,OAAM,SAAU,EAClC,OAAO,EAAO,gBAAgB,CAAE,OAAM,eAAc,OAAM,KAAI,MAAO,OAAO,CAAK,CAAE,CAAC,EAExF,GACA,KAAM,MACN,WAAY,CACV,0BAA2B,CACzB,eAAa,WACb,eAAa,aACb,eAAa,QACb,eAAa,YACb,eAAa,YACb,eAAa,aACb,eAAa,aACb,eAAa,WACb,eAAa,UACf,CACF,CACF,CAAC",
8
+ "debugId": "1C1E3E9493FD78B764756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/evm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{c as A}from"../chunk-a0djqfqa.js";import{ApproveMode as v,AssetValue as w,EVMChains as V,ProviderName as e,SwapKitError as l}from"@swapkit/helpers";function m({approveMode:o,getWallet:c}){return function({assetValue:s,spenderAddress:n}){let p=s.chain,a=V.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 l("core_approve_asset_address_or_from_not_found");return i({amount:s.getBaseValue("bigint"),assetAddress:s.address,from:r.address,spenderAddress:n})}}var _=A({methods:({getWallet:o})=>({approveAssetValue:m({approveMode:v.Approve,getWallet:o}),isAssetValueApproved:m({approveMode:v.CheckOnly,getWallet:o}),swap:async function({route:{tx:t,sellAsset:s},feeOptionKey:n}){let a=(await w.from({asset:s,asyncTokenLookup:!0})).chain,u=o(a);if(!(V.includes(a)&&t))throw new l("core_swap_invalid_params");let{from:r,to:i,data:d,value:E}=t;return u.sendTransaction({data:d,feeOptionKey:n,from:r,to:i,value:BigInt(E)})}}),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]}});export{_ as EVMPlugin};
1
+ import{c as A}from"../chunk-pqpwxyjh.js";import{ApproveMode as v,AssetValue as w,EVMChains as V,ProviderName as e,SwapKitError as l}from"@swapkit/helpers";function m({approveMode:o,getWallet:d}){return function({assetValue:s,spenderAddress:p}){let n=s.chain,a=V.includes(n);if(a&&s.isGasAsset||!a||s.isSynthetic)return Promise.resolve(o==="checkOnly"||"approved");let r=d(n),i=o==="checkOnly"?r.isApproved:r.approve;if(!(s.address&&r.address))throw new l("core_approve_asset_address_or_from_not_found");return i({amount:s.getBaseValue("bigint"),assetAddress:s.address,from:r.address,spenderAddress:p})}}var _=A({methods:({getWallet:o})=>({approveAssetValue:m({approveMode:v.Approve,getWallet:o}),isAssetValueApproved:m({approveMode:v.CheckOnly,getWallet:o}),swap:async function({route:{tx:t,sellAsset:s},feeOptionKey:p}){let a=(await w.from({asset:s,asyncTokenLookup:!0})).chain,c=o(a);if(!(V.includes(a)&&t))throw new l("core_swap_invalid_params");let{from:r,to:i,data:u,value:E}=t;return c.sendTransaction({data:u,feeOptionKey:p,from:r,to:i,value:BigInt(E)})}}),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]}});export{_ as EVMPlugin};
2
2
 
3
- //# debugId=1BA8E869A127F79264756E2164756E21
3
+ //# debugId=02B8519CB8FD3C4F64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import {\n ApproveMode,\n type ApproveReturnType,\n AssetValue,\n type EVMChain,\n EVMChains,\n ProviderName,\n SwapKitError,\n type SwapParams,\n} from \"@swapkit/helpers\";\nimport type { EVMTransaction, QuoteResponseRoute } from \"@swapkit/helpers/api\";\nimport type { SwapKitPluginParams } from \"../types\";\nimport { createPlugin } from \"../utils\";\n\nfunction approve<T extends ApproveMode>({ approveMode, getWallet }: { approveMode: T } & SwapKitPluginParams) {\n return function approveEVM({ assetValue, spenderAddress }: { spenderAddress: string; assetValue: AssetValue }) {\n const evmChain = assetValue.chain as EVMChain;\n const isEVMChain = EVMChains.includes(evmChain);\n const isNativeEVM = isEVMChain && assetValue.isGasAsset;\n\n if (isNativeEVM || !isEVMChain || assetValue.isSynthetic) {\n const isApproved = approveMode === \"checkOnly\" || \"approved\";\n return Promise.resolve(isApproved) as ApproveReturnType<T>;\n }\n\n const wallet = getWallet(evmChain);\n const walletAction = approveMode === \"checkOnly\" ? wallet.isApproved : wallet.approve;\n\n if (!(assetValue.address && wallet.address)) {\n throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n }\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: assetValue.address,\n from: wallet.address,\n spenderAddress,\n });\n };\n}\n\nexport const EVMPlugin = createPlugin({\n methods: ({ getWallet }) => ({\n approveAssetValue: approve({ approveMode: ApproveMode.Approve, getWallet }),\n isAssetValueApproved: approve({ approveMode: ApproveMode.CheckOnly, getWallet }),\n swap: async function evmSwap({ route: { tx, sellAsset }, feeOptionKey }: SwapParams<\"evm\", QuoteResponseRoute>) {\n const assetValue = await AssetValue.from({ asset: sellAsset, asyncTokenLookup: true });\n const evmChain = assetValue.chain as EVMChain;\n const wallet = getWallet(evmChain);\n\n if (!(EVMChains.includes(evmChain) && tx)) {\n throw new SwapKitError(\"core_swap_invalid_params\");\n }\n\n const { from, to, data, value } = tx as EVMTransaction;\n return wallet.sendTransaction({ data, feeOptionKey, from, to, value: BigInt(value) });\n },\n }),\n name: \"evm\",\n properties: {\n supportedSwapkitProviders: [\n ProviderName.CAMELOT_V3,\n ProviderName.OPENOCEAN_V2,\n ProviderName.ONEINCH,\n ProviderName.PANCAKESWAP,\n ProviderName.PANGOLIN_V1,\n ProviderName.SUSHISWAP_V2,\n ProviderName.TRADERJOE_V2,\n ProviderName.UNISWAP_V2,\n ProviderName.UNISWAP_V3,\n ],\n },\n});\n"
6
6
  ],
7
- "mappings": "yCAAA,sBACE,gBAEA,eAEA,kBACA,kBACA,yBAOF,SAAS,CAA8B,EAAG,cAAa,aAAuD,CAC5G,OAAO,QAAmB,EAAG,aAAY,kBAAsE,CAC7G,IAAM,EAAW,EAAW,MACtB,EAAa,EAAU,SAAS,CAAQ,EAG9C,GAFoB,GAAc,EAAW,YAE1B,CAAC,GAAc,EAAW,YAAa,CACxD,IAAM,EAAa,IAAgB,aAAe,WAClD,OAAO,QAAQ,QAAQ,CAAU,EAGnC,IAAM,EAAS,EAAU,CAAQ,EAC3B,EAAe,IAAgB,YAAc,EAAO,WAAa,EAAO,QAE9E,GAAI,EAAE,EAAW,SAAW,EAAO,SACjC,MAAM,IAAI,EAAa,8CAA8C,EAGvE,OAAO,EAAa,CAClB,OAAQ,EAAW,aAAa,QAAQ,EACxC,aAAc,EAAW,QACzB,KAAM,EAAO,QACb,gBACF,CAAC,GAIE,IAAM,EAAY,EAAa,CACpC,QAAS,EAAG,gBAAiB,CAC3B,kBAAmB,EAAQ,CAAE,YAAa,EAAY,QAAS,WAAU,CAAC,EAC1E,qBAAsB,EAAQ,CAAE,YAAa,EAAY,UAAW,WAAU,CAAC,EAC/E,KAAM,cAAsB,EAAG,OAAS,KAAI,aAAa,gBAAuD,CAE9G,IAAM,GADa,MAAM,EAAW,KAAK,CAAE,MAAO,EAAW,iBAAkB,EAAK,CAAC,GACzD,MACtB,EAAS,EAAU,CAAQ,EAEjC,GAAI,EAAE,EAAU,SAAS,CAAQ,GAAK,GACpC,MAAM,IAAI,EAAa,0BAA0B,EAGnD,IAAQ,OAAM,KAAI,OAAM,SAAU,EAClC,OAAO,EAAO,gBAAgB,CAAE,OAAM,eAAc,OAAM,KAAI,MAAO,OAAO,CAAK,CAAE,CAAC,EAExF,GACA,KAAM,MACN,WAAY,CACV,0BAA2B,CACzB,EAAa,WACb,EAAa,aACb,EAAa,QACb,EAAa,YACb,EAAa,YACb,EAAa,aACb,EAAa,aACb,EAAa,WACb,EAAa,UACf,CACF,CACF,CAAC",
8
- "debugId": "1BA8E869A127F79264756E2164756E21",
7
+ "mappings": "yCAAA,sBACE,gBAEA,eAEA,kBACA,kBACA,yBAOF,SAAS,CAA8B,EAAG,cAAa,aAAuD,CAC5G,OAAO,QAAmB,EAAG,aAAY,kBAAsE,CAC7G,IAAM,EAAW,EAAW,MACtB,EAAa,EAAU,SAAS,CAAQ,EAG9C,GAFoB,GAAc,EAAW,YAE1B,CAAC,GAAc,EAAW,YAE3C,OAAO,QAAQ,QADI,IAAgB,aAAe,UACjB,EAGnC,IAAM,EAAS,EAAU,CAAQ,EAC3B,EAAe,IAAgB,YAAc,EAAO,WAAa,EAAO,QAE9E,GAAI,EAAE,EAAW,SAAW,EAAO,SACjC,MAAM,IAAI,EAAa,8CAA8C,EAGvE,OAAO,EAAa,CAClB,OAAQ,EAAW,aAAa,QAAQ,EACxC,aAAc,EAAW,QACzB,KAAM,EAAO,QACb,gBACF,CAAC,GAIE,IAAM,EAAY,EAAa,CACpC,QAAS,EAAG,gBAAiB,CAC3B,kBAAmB,EAAQ,CAAE,YAAa,EAAY,QAAS,WAAU,CAAC,EAC1E,qBAAsB,EAAQ,CAAE,YAAa,EAAY,UAAW,WAAU,CAAC,EAC/E,KAAM,cAAsB,EAAG,OAAS,KAAI,aAAa,gBAAuD,CAE9G,IAAM,GADa,MAAM,EAAW,KAAK,CAAE,MAAO,EAAW,iBAAkB,EAAK,CAAC,GACzD,MACtB,EAAS,EAAU,CAAQ,EAEjC,GAAI,EAAE,EAAU,SAAS,CAAQ,GAAK,GACpC,MAAM,IAAI,EAAa,0BAA0B,EAGnD,IAAQ,OAAM,KAAI,OAAM,SAAU,EAClC,OAAO,EAAO,gBAAgB,CAAE,OAAM,eAAc,OAAM,KAAI,MAAO,OAAO,CAAK,CAAE,CAAC,EAExF,GACA,KAAM,MACN,WAAY,CACV,0BAA2B,CACzB,EAAa,WACb,EAAa,aACb,EAAa,QACb,EAAa,YACb,EAAa,YACb,EAAa,aACb,EAAa,aACb,EAAa,WACb,EAAa,UACf,CACF,CACF,CAAC",
8
+ "debugId": "02B8519CB8FD3C4F64756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as t,b as n,c as m}from"./chunk-a0djqfqa.js";async function e(a){let{match:o}=await import("ts-pattern");return await o(a).with("chainflip",async()=>{let{ChainflipPlugin:i}=await import("./chainflip/index.js");return i}).with("thorchain",async()=>{let{ThorchainPlugin:i}=await import("./thorchain/index.js");return i}).with("radix",async()=>{let{RadixPlugin:i}=await import("./radix/index.js");return i}).with("evm",async()=>{let{EVMPlugin:i}=await import("./evm/index.js");return i}).with("solana",async()=>{let{SolanaPlugin:i}=await import("./solana/index.js");return i}).with("near",async()=>{let{NearPlugin:i}=await import("./near/index.js");return i}).exhaustive()}export{e as loadPlugin,m as createPlugin};
1
+ import{a as t,b as n,c as m}from"./chunk-pqpwxyjh.js";async function e(a){let{match:o}=await import("ts-pattern");return await o(a).with("chainflip",async()=>{let{ChainflipPlugin:i}=await import("./chainflip/index.js");return i}).with("thorchain",async()=>{let{ThorchainPlugin:i}=await import("./thorchain/index.js");return i}).with("radix",async()=>{let{RadixPlugin:i}=await import("./radix/index.js");return i}).with("evm",async()=>{let{EVMPlugin:i}=await import("./evm/index.js");return i}).with("solana",async()=>{let{SolanaPlugin:i}=await import("./solana/index.js");return i}).with("near",async()=>{let{NearPlugin:i}=await import("./near/index.js");return i}).exhaustive()}export{e as loadPlugin,m as createPlugin};
2
2
 
3
3
  //# debugId=D6E36DB2F3C3364B64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{c as X}from"../chunk-a0djqfqa.js";import{AssetValue as P,Chain as Z,ProviderName as _,SwapKitError as Y}from"@swapkit/helpers";import{parseNearAmount as b}from"near-api-js/lib/utils/format";var O=2,k=64;function H(J){if(J.length<O||J.length>k)return!1;return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(J)}function V(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 b(x)||"0"}var C=X({methods:({getWallet:J})=>({nearNames:{async getInfo(q){let x=q.toLowerCase().replace(/\.near$/,"");if(!H(x))throw new Y("plugin_near_invalid_name");let D=`${x}.near`,B=J(Z.Near);if(!B)throw new Y("plugin_near_no_connection");try{let F=await B.provider.query({account_id:D,finality:"final",request_type:"view_account"}),$=await B.provider.query({account_id:D,finality:"final",request_type:"view_access_key_list"});return{accountId:D,balance:F.amount,codeHash:F.code_hash,publicKeys:$.keys?.map((Q)=>Q.public_key)||[],storageUsed:F.storage_usage}}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 lookupNames(q){let x=J(Z.Near);if(!x)throw new Y("plugin_near_no_connection");try{if(await x.provider.query({account_id:q,finality:"final",request_type:"view_account"}),q.endsWith(".near"))return[q];return[]}catch{return[]}},async register(q){let{name:x,publicKey:D}=q,B=x.toLowerCase().replace(/\.near$/,"");if(!H(B))throw new Y("plugin_near_invalid_name");let F=J(Z.Near),$=D||await F.getPublicKey(),Q=V(B);return F.callFunction({args:{new_account_id:`${B}.near`,new_public_key:$},contractId:"near",deposit:Q,methodName:"create_account"})},async resolve(q){let x=q.toLowerCase().replace(/\.near$/,"");if(!H(x))throw new Y("plugin_near_invalid_name");let D=`${x}.near`,B=J(Z.Near);if(!B)throw new Y("plugin_near_no_connection");try{return await B.provider.query({account_id:D,finality:"final",request_type:"view_account"}),D}catch(F){if(/UNKNOWN_ACCOUNT|does not exist while viewing/.test(F.message))return null;throw F}},transfer(q,x){let D=q.toLowerCase().replace(/\.near$/,"");if(!H(D))throw new Y("plugin_near_invalid_name");return J(Z.Near).callFunction({args:{name:D,new_owner:x},contractId:"near",deposit:"1",methodName:"transfer"})}},async swap(q){let{route:{buyAsset:x,sellAsset:D,inboundAddress:B,sellAmount:F,meta:{near:$}}}=q;if(!(D&&x&&$?.sellAsset))throw new Y("core_swap_asset_not_recognized");if(!B)throw new Y("core_swap_invalid_params",{missing:["inboundAddress"]});let Q=await P.from({asset:D,value:F}),y=Q.chain,U=J(Q.chain);if(y===Z.Near&&!Q.isGasAsset){let j=J(Q.chain);if(!j)throw new Y("core_wallet_connection_not_found");let G=await j.createContractFunctionCall({args:{amount:Q.getBaseValue("string"),msg:JSON.stringify({receiver_id:B}),receiver_id:"intents.near"},attachedDeposit:"1",contractId:Q.address,gas:"250000000000000",methodName:"ft_transfer_call",sender:j.address}),L=await j.signTransaction(G);return j.broadcastTransaction(L)}if(!U)throw new Y("core_wallet_connection_not_found");return await U.transfer({assetValue:Q,isProgramDerivedAddress:!0,recipient:B,sender:U.address})}}),name:"near",properties:{supportedSwapkitProviders:[_.NEAR]}});export{C as NearPlugin};
1
+ import{c as X}from"../chunk-pqpwxyjh.js";import{AssetValue as P,Chain as Z,ProviderName as _,SwapKitError as Y}from"@swapkit/helpers";import{parseNearAmount as b}from"near-api-js/lib/utils/format";var O=2,k=64;function H(J){if(J.length<O||J.length>k)return!1;return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(J)}function V(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 b(x)||"0"}var C=X({methods:({getWallet:J})=>({nearNames:{async getInfo(q){let x=q.toLowerCase().replace(/\.near$/,"");if(!H(x))throw new Y("plugin_near_invalid_name");let D=`${x}.near`,B=J(Z.Near);if(!B)throw new Y("plugin_near_no_connection");try{let F=await B.provider.query({account_id:D,finality:"final",request_type:"view_account"}),$=await B.provider.query({account_id:D,finality:"final",request_type:"view_access_key_list"});return{accountId:D,balance:F.amount,codeHash:F.code_hash,publicKeys:$.keys?.map((Q)=>Q.public_key)||[],storageUsed:F.storage_usage}}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 lookupNames(q){let x=J(Z.Near);if(!x)throw new Y("plugin_near_no_connection");try{if(await x.provider.query({account_id:q,finality:"final",request_type:"view_account"}),q.endsWith(".near"))return[q];return[]}catch{return[]}},async register(q){let{name:x,publicKey:D}=q,B=x.toLowerCase().replace(/\.near$/,"");if(!H(B))throw new Y("plugin_near_invalid_name");let F=J(Z.Near),$=D||await F.getPublicKey(),Q=V(B);return F.callFunction({args:{new_account_id:`${B}.near`,new_public_key:$},contractId:"near",deposit:Q,methodName:"create_account"})},async resolve(q){let x=q.toLowerCase().replace(/\.near$/,"");if(!H(x))throw new Y("plugin_near_invalid_name");let D=`${x}.near`,B=J(Z.Near);if(!B)throw new Y("plugin_near_no_connection");try{return await B.provider.query({account_id:D,finality:"final",request_type:"view_account"}),D}catch(F){if(/UNKNOWN_ACCOUNT|does not exist while viewing/.test(F.message))return null;throw F}},transfer(q,x){let D=q.toLowerCase().replace(/\.near$/,"");if(!H(D))throw new Y("plugin_near_invalid_name");return J(Z.Near).callFunction({args:{name:D,new_owner:x},contractId:"near",deposit:"1",methodName:"transfer"})}},async swap(q){let{route:{buyAsset:x,sellAsset:D,inboundAddress:B,sellAmount:F,meta:{near:$}}}=q;if(!(D&&x&&$?.sellAsset))throw new Y("core_swap_asset_not_recognized");if(!B)throw new Y("core_swap_invalid_params",{missing:["inboundAddress"]});let Q=await P.from({asset:D,value:F}),y=Q.chain,U=J(Q.chain);if(y===Z.Near&&!Q.isGasAsset){let j=J(Q.chain);if(!j)throw new Y("core_wallet_connection_not_found");let G=await j.createContractFunctionCall({args:{amount:Q.getBaseValue("string"),msg:JSON.stringify({receiver_id:B}),receiver_id:"intents.near"},attachedDeposit:"1",contractId:Q.address,gas:"250000000000000",methodName:"ft_transfer_call",sender:j.address}),L=await j.signTransaction(G);return j.broadcastTransaction(L)}if(!U)throw new Y("core_wallet_connection_not_found");return await U.transfer({assetValue:Q,isProgramDerivedAddress:!0,recipient:B,sender:U.address})}}),name:"near",properties:{supportedSwapkitProviders:[_.NEAR]}});export{C as NearPlugin};
2
2
 
3
3
  //# debugId=90D41E63816E17BD64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{c as e}from"../chunk-a0djqfqa.js";import{AssetValue as m,Chain as u,ProviderName as w,SwapKitError as r}from"@swapkit/helpers";var h=e({methods:({getWallet:t})=>({swap:async function({route:{tx:o,sellAmount:s,sellAsset:i}}){let a=await m.from({asset:i,asyncTokenLookup:!0,value:s});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)}}}),name:"radix",properties:{supportedSwapkitProviders:[w.CAVIAR_V1]}});export{h as RadixPlugin};
1
+ import{c as e}from"../chunk-pqpwxyjh.js";import{AssetValue as m,Chain as u,ProviderName as w,SwapKitError as r}from"@swapkit/helpers";var h=e({methods:({getWallet:t})=>({swap:async function({route:{tx:o,sellAmount:s,sellAsset:i}}){let a=await m.from({asset:i,asyncTokenLookup:!0,value:s});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)}}}),name:"radix",properties:{supportedSwapkitProviders:[w.CAVIAR_V1]}});export{h as RadixPlugin};
2
2
 
3
3
  //# debugId=B29E3F980D08EB9C64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{a as l,b as m,c as t}from"../chunk-a0djqfqa.js";import{AssetValue as u,Chain as w,ProviderName as f,SwapKitError as d}from"@swapkit/helpers";var P=t({methods:({getWallet:e})=>({swap:async function({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)}}),name:"solana",properties:{supportedSwapkitProviders:[f.JUPITER]}});export{P as SolanaPlugin};
1
+ import{a as l,b as m,c as t}from"../chunk-pqpwxyjh.js";import{AssetValue as u,Chain as w,ProviderName as f,SwapKitError as d}from"@swapkit/helpers";var P=t({methods:({getWallet:e})=>({swap:async function({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)}}),name:"solana",properties:{supportedSwapkitProviders:[f.JUPITER]}});export{P as SolanaPlugin};
2
2
 
3
3
  //# debugId=6837BE9FFE63095764756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{a as Hx,b as Jx,c as C}from"../chunk-a0djqfqa.js";import{ApproveMode as g,AssetValue as O,Chain as Y,EVMChains as Lx,FeeOption as M,getChainConfig as m,getMemoForDeposit as F,getMemoForLeaveAndBond as Qx,getMemoForNamePreferredAssetRegister as Rx,getMemoForNameRegister as Ux,getMemoForTcyClaim as Xx,getMemoForTcyStake as c,getMemoForUnbond as Yx,getMemoForWithdraw as Zx,getMinAmountByChain as V,MemoType as E,ProviderName as T,SwapKitError as U,wrapWithThrow as S}from"@swapkit/helpers";import{SwapKitApi as h}from"@swapkit/helpers/api";import{MayaArbitrumVaultAbi as $x,MayaEthereumVaultAbi as jx,TCAvalancheDepositABI as Gx,TCBaseDepositABI as kx,TCBscDepositABI as _x,TCEthereumVaultAbi as Nx}from"@swapkit/helpers/contracts";import{Chain as zx}from"@swapkit/helpers";function W({chain:Q,address:P}){if(!P)return!1;return Q===zx.Bitcoin?!P.startsWith("bc1p"):!0}function A({assetValue:Q,from:P,memo:R="",...f}){return{...f,assetValue:Q,from:P,memo:R}}var Ox={[M.Average]:1.2,[M.Fast]:1.5,[M.Fastest]:2},Px={[Y.Avalanche]:Gx,[Y.Base]:kx,[Y.BinanceSmartChain]:_x,[Y.Ethereum]:Nx},fx={[Y.Arbitrum]:$x,[Y.Ethereum]:jx},Ix=C({methods:p(Y.THORChain),name:"thorchain",properties:{supportedSwapkitProviders:[T.THORCHAIN,T.THORCHAIN_STREAMING]}}),Bx=C({methods:p(Y.Maya),name:"mayachain",properties:{supportedSwapkitProviders:[T.MAYACHAIN,T.MAYACHAIN_STREAMING]}});function vx(Q){return async function(R){if(Q==="thorchain"&&R===Y.THORChain||Q==="mayachain"&&R===Y.Maya)return{address:"",chain:R,dust_threshold:"0",gas_rate:"0",halted:!1,router:""};let Z=(await h.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({getWallet:R}){let f=Q===Y.Maya?"mayachain":"thorchain",Z=vx(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:B}=I;if(!W({address:B,chain:J}))throw new U("core_transaction_invalid_sender_address");let N=A({assetValue:x,from:B,recipient:q,router:z,...H});try{let j=L?.[J];if(!j){let v=R(J);return Q===J&&q===""?v.deposit(N):v.transfer(N)}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"),N.memo,H.expiration||Number.parseInt(`${(Date.now()+900000)/1000}`,10)],txOverrides:{from:N.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"),v=G?.includes("gas"),w=G?.includes("server"),qx=G?.includes("user rejected");throw new U(D?"core_transaction_deposit_insufficient_funds_error":v?"core_transaction_deposit_gas_error":w?"core_transaction_deposit_server_error":qx?"core_transaction_user_rejected":"core_transaction_deposit_error",j)}}async function b({memo:x,assetValue:q}){let z=await h.thornode.getMimirInfo(f);if(z.HALTCHAINGLOBAL>=1||z.HALTTHORCHAIN>=1)throw new U("thorchain_chain_halted");return k({assetValue:q,memo:x,recipient:""})}async function _({assetValue:x,memo:q,feeOptionKey:z=M.Fast}){let{gas_rate:H="0",router:L,address:J}=await Z(x.chain);return k({assetValue:x,feeRate:Number.parseInt(H,10)*Ox[z],memo:q,recipient:J,router:L})}function d({assetValue:x}){return K({assetValue:x,type:g.Approve})}function n({assetValue:x}){return K({assetValue:x,type:g.CheckOnly})}function u({assetValue:x,...q}){return b({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 b({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===E.UNBOND?Yx({address:z,unbondAmount:q.getBaseValue("number")}):Qx({address:z,type:x}),L=x===E.BOND?q:V(Q);return b({assetValue:L,memo:H})}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 S(()=>{return _({assetValue:x,memo:F({...q,address:z})})},"core_transaction_create_liquidity_base_error");return{assetTx:await S(()=>{return _({assetValue:q,memo:F({...q,address:H})})},"core_transaction_create_liquidity_asset_error"),baseAssetTx:L}}function l({assetValue:x,poolAddress:q,address:z,symmetric:H}){if(H&&!z)throw new U("core_transaction_add_liquidity_invalid_params");let L=F({address:H?z:"",chain:q.split(".")[0],symbol:q.split(".")[1]});return _({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",B=x?.gt(0)&&(I||J==="baseAsset"),y=q?.gt(0)&&(I||J==="asset"),N=L||B,j=R(Q).address,G=N?z||j:"",D=I||J==="asset"?H||R(X).address:"";if(!(B||y))throw new U("core_transaction_add_liquidity_invalid_params");if(N&&!G)throw new U("core_transaction_add_liquidity_base_address");let v=B&&x?await S(()=>{return _({assetValue:x,memo:F({address:D,chain:X,symbol:$})})},"core_transaction_add_liquidity_base_error"):void 0;return{assetTx:y&&q?await S(()=>{return _({assetValue:q,memo:F({address:G,chain:X,symbol:$})})},"core_transaction_add_liquidity_asset_error"):void 0,baseAssetTx:v}}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=V(H==="asset"?q.chain:Q),$=x||Zx({basisPoints:Math.min(1e4,Math.round(z*100)),chain:q.chain,symbol:q.symbol,targetAsset:J?.toString(),ticker:q.ticker});return _({assetValue:X,memo:$})}async function a({chain:x,thorAddress:q}){let z=await Z(x),H=z.dust_threshold,{baseDecimal:L}=m(x),{baseDecimal:J}=m(Y.THORChain);return k({assetValue:O.from({chain:x,fromBaseDecimal:Math.min(L,J),value:x!==Y.THORChain?H:0}),memo:Xx(E.CLAIM_TCY,{address:q}),recipient:z.address,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,memo:c(E.STAKE_TCY,{}),recipient:""})}return k({assetValue:O.from({chain:Y.THORChain}),memo:c(E.UNSTAKE_TCY,{unstakeBps:x.unstakeBps}),recipient:""})}async function xx({feeOptionKey:x,route:q}){let{memo:z,expiration:H,targetAddress:L}=q,J=await O.from({asset:q.sellAsset,asyncTokenLookup:!0,value:q.sellAmount});if(!J)throw new U("core_swap_asset_not_recognized");if(!W({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({assetValue:J,expiration:Number(H),feeOptionKey:x,memo:z,recipient:$,router:L})}return{addLiquidity:t,addLiquidityPart:l,approveAssetValue:d,claimTcy:a,createLiquidity:i,deposit:k,depositToPool:_,getInboundDataByChain:Z,isAssetValueApproved:n,nodeAction:o,registerName:u,registerPreferredAsset:r,stakeTcyAction:e,swap:xx,withdraw:s}}}export{W as validateAddressType,Ix as ThorchainPlugin,Bx as MayachainPlugin};
1
+ import{a as Hx,b as Jx,c as C}from"../chunk-pqpwxyjh.js";import{ApproveMode as g,AssetValue as O,Chain as Y,EVMChains as Lx,FeeOption as M,getChainConfig as m,getMemoForDeposit as F,getMemoForLeaveAndBond as Qx,getMemoForNamePreferredAssetRegister as Rx,getMemoForNameRegister as Ux,getMemoForTcyClaim as Xx,getMemoForTcyStake as c,getMemoForUnbond as Yx,getMemoForWithdraw as Zx,getMinAmountByChain as V,MemoType as E,ProviderName as T,SwapKitError as U,wrapWithThrow as S}from"@swapkit/helpers";import{SwapKitApi as h}from"@swapkit/helpers/api";import{MayaArbitrumVaultAbi as $x,MayaEthereumVaultAbi as jx,TCAvalancheDepositABI as Gx,TCBaseDepositABI as kx,TCBscDepositABI as _x,TCEthereumVaultAbi as Nx}from"@swapkit/helpers/contracts";import{Chain as zx}from"@swapkit/helpers";function W({chain:Q,address:P}){if(!P)return!1;return Q===zx.Bitcoin?!P.startsWith("bc1p"):!0}function A({assetValue:Q,from:P,memo:R="",...f}){return{...f,assetValue:Q,from:P,memo:R}}var Ox={[M.Average]:1.2,[M.Fast]:1.5,[M.Fastest]:2},Px={[Y.Avalanche]:Gx,[Y.Base]:kx,[Y.BinanceSmartChain]:_x,[Y.Ethereum]:Nx},fx={[Y.Arbitrum]:$x,[Y.Ethereum]:jx},Ix=C({methods:p(Y.THORChain),name:"thorchain",properties:{supportedSwapkitProviders:[T.THORCHAIN,T.THORCHAIN_STREAMING]}}),Bx=C({methods:p(Y.Maya),name:"mayachain",properties:{supportedSwapkitProviders:[T.MAYACHAIN,T.MAYACHAIN_STREAMING]}});function vx(Q){return async function(R){if(Q==="thorchain"&&R===Y.THORChain||Q==="mayachain"&&R===Y.Maya)return{address:"",chain:R,dust_threshold:"0",gas_rate:"0",halted:!1,router:""};let Z=(await h.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({getWallet:R}){let f=Q===Y.Maya?"mayachain":"thorchain",Z=vx(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:B}=I;if(!W({address:B,chain:J}))throw new U("core_transaction_invalid_sender_address");let N=A({assetValue:x,from:B,recipient:q,router:z,...H});try{let j=L?.[J];if(!j){let v=R(J);return Q===J&&q===""?v.deposit(N):v.transfer(N)}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"),N.memo,H.expiration||Number.parseInt(`${(Date.now()+900000)/1000}`,10)],txOverrides:{from:N.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"),v=G?.includes("gas"),w=G?.includes("server"),qx=G?.includes("user rejected");throw new U(D?"core_transaction_deposit_insufficient_funds_error":v?"core_transaction_deposit_gas_error":w?"core_transaction_deposit_server_error":qx?"core_transaction_user_rejected":"core_transaction_deposit_error",j)}}async function b({memo:x,assetValue:q}){let z=await h.thornode.getMimirInfo(f);if(z.HALTCHAINGLOBAL>=1||z.HALTTHORCHAIN>=1)throw new U("thorchain_chain_halted");return k({assetValue:q,memo:x,recipient:""})}async function _({assetValue:x,memo:q,feeOptionKey:z=M.Fast}){let{gas_rate:H="0",router:L,address:J}=await Z(x.chain);return k({assetValue:x,feeRate:Number.parseInt(H,10)*Ox[z],memo:q,recipient:J,router:L})}function d({assetValue:x}){return K({assetValue:x,type:g.Approve})}function n({assetValue:x}){return K({assetValue:x,type:g.CheckOnly})}function u({assetValue:x,...q}){return b({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 b({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===E.UNBOND?Yx({address:z,unbondAmount:q.getBaseValue("number")}):Qx({address:z,type:x}),L=x===E.BOND?q:V(Q);return b({assetValue:L,memo:H})}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 S(()=>{return _({assetValue:x,memo:F({...q,address:z})})},"core_transaction_create_liquidity_base_error");return{assetTx:await S(()=>{return _({assetValue:q,memo:F({...q,address:H})})},"core_transaction_create_liquidity_asset_error"),baseAssetTx:L}}function l({assetValue:x,poolAddress:q,address:z,symmetric:H}){if(H&&!z)throw new U("core_transaction_add_liquidity_invalid_params");let L=F({address:H?z:"",chain:q.split(".")[0],symbol:q.split(".")[1]});return _({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",B=x?.gt(0)&&(I||J==="baseAsset"),y=q?.gt(0)&&(I||J==="asset"),N=L||B,j=R(Q).address,G=N?z||j:"",D=I||J==="asset"?H||R(X).address:"";if(!(B||y))throw new U("core_transaction_add_liquidity_invalid_params");if(N&&!G)throw new U("core_transaction_add_liquidity_base_address");let v=B&&x?await S(()=>{return _({assetValue:x,memo:F({address:D,chain:X,symbol:$})})},"core_transaction_add_liquidity_base_error"):void 0;return{assetTx:y&&q?await S(()=>{return _({assetValue:q,memo:F({address:G,chain:X,symbol:$})})},"core_transaction_add_liquidity_asset_error"):void 0,baseAssetTx:v}}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=V(H==="asset"?q.chain:Q),$=x||Zx({basisPoints:Math.min(1e4,Math.round(z*100)),chain:q.chain,symbol:q.symbol,targetAsset:J?.toString(),ticker:q.ticker});return _({assetValue:X,memo:$})}async function a({chain:x,thorAddress:q}){let z=await Z(x),H=z.dust_threshold,{baseDecimal:L}=m(x),{baseDecimal:J}=m(Y.THORChain);return k({assetValue:O.from({chain:x,fromBaseDecimal:Math.min(L,J),value:x!==Y.THORChain?H:0}),memo:Xx(E.CLAIM_TCY,{address:q}),recipient:z.address,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,memo:c(E.STAKE_TCY,{}),recipient:""})}return k({assetValue:O.from({chain:Y.THORChain}),memo:c(E.UNSTAKE_TCY,{unstakeBps:x.unstakeBps}),recipient:""})}async function xx({feeOptionKey:x,route:q}){let{memo:z,expiration:H,targetAddress:L}=q,J=await O.from({asset:q.sellAsset,asyncTokenLookup:!0,value:q.sellAmount});if(!J)throw new U("core_swap_asset_not_recognized");if(!W({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({assetValue:J,expiration:Number(H),feeOptionKey:x,memo:z,recipient:$,router:L})}return{addLiquidity:t,addLiquidityPart:l,approveAssetValue:d,claimTcy:a,createLiquidity:i,deposit:k,depositToPool:_,getInboundDataByChain:Z,isAssetValueApproved:n,nodeAction:o,registerName:u,registerPreferredAsset:r,stakeTcyAction:e,swap:xx,withdraw:s}}}export{W as validateAddressType,Ix as ThorchainPlugin,Bx as MayachainPlugin};
2
2
 
3
3
  //# debugId=6A0860E71605559D64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -4,8 +4,8 @@
4
4
  "@polkadot/keyring": "~13.5.0",
5
5
  "@polkadot/util": "~13.5.0",
6
6
  "@solana/web3.js": "~1.98.0",
7
- "@swapkit/helpers": "4.0.24",
8
- "@swapkit/toolboxes": "4.0.24",
7
+ "@swapkit/helpers": "4.0.25",
8
+ "@swapkit/toolboxes": "4.0.25",
9
9
  "ts-pattern": "~5.8.0"
10
10
  },
11
11
  "description": "SwapKit Plugin - Chainflip",
@@ -61,5 +61,5 @@
61
61
  "type-check:go": "tsgo"
62
62
  },
63
63
  "type": "module",
64
- "version": "4.0.26"
64
+ "version": "4.0.27"
65
65
  }