@swapkit/wallets 4.3.7 → 4.3.8

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
- var k={};N(k,{radixWallet:()=>T,RADIX_SUPPORTED_CHAINS:()=>S});module.exports=I(k);var j=require("@swapkit/helpers"),_=require("@swapkit/wallet-core"),T=_.createWallet({connect:({addChain:M,supportedChains:L,walletType:J})=>async function(O){let Q=j.filterSupportedChains({chains:O,supportedChains:L,walletType:J});if(!j.SKConfig.get("integrations").radix)throw new j.SwapKitError("wallet_radix_not_found");return await Promise.all(Q.map(async(H)=>{let z=await h();M({...z,chain:H,walletType:J})})),!0},name:"connectRadixWallet",supportedChains:[j.Chain.Radix],walletType:j.WalletOption.RADIX_WALLET}),S=_.getWalletSupportedChains(T);async function x(M){let{GatewayApiClient:L}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:J}=j.SKConfig.get("integrations").radix,W=L.initialize({applicationName:J,networkId:1}),O=!0,Q,V=[],H=await B(W);while(O){let z={address:M,at_ledger_state:{state_version:H},cursor:Q,limit_per_page:100},U=await W.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:z});if(V=V.concat(U.items),U.next_cursor)Q=U.next_cursor;else O=!1}return V}function B(M){return M.status.getCurrent().then((L)=>L.ledger_state.state_version)}async function C(M){let{GatewayApiClient:L}=await import("@radixdlt/babylon-gateway-api-sdk"),J=await x(M),{applicationName:W}=j.SKConfig.get("integrations").radix,O=L.initialize({applicationName:W,networkId:1}),Q=[],V=50,H=[];for(let z=0;z<J.length;z+=50)H.push(J.slice(z,z+50));for(let z of H){let U=z.map((K)=>K.resource_address),Y=await O.state.getEntityDetailsVaultAggregated(U),G=new Map;for(let K of Y)if(K.details!==void 0){let X=K.metadata?.items.find((q)=>q.key==="symbol"),$=X?.value.typed.type==="String"?X.value.typed.value:"?";if(K.details.type==="FungibleResource")G.set(K.address,{decimals:K.details.divisibility,symbol:$})}for(let K of z)if(K.aggregation_level==="Global"){let X=G.get(K.resource_address)||{decimals:0,symbol:"?"},$=j.AssetValue.from({asset:X.symbol!==j.Chain.Radix?`${j.Chain.Radix}.${X.symbol}-${K.resource_address}`:"XRD.XRD",value:K.amount});Q.push($)}}return Q}async function h(){let{RadixDappToolkit:M}=await import("@radixdlt/radix-dapp-toolkit"),L=j.SKConfig.get("integrations").radix,J=M({...L,networkId:L.network.networkId});function W(H){return new Promise((z)=>setTimeout(z,H))}await W(400);function O(){return J.walletApi.getWalletData()?.accounts?.[0]?.address}let Q=async()=>{let{DataRequestBuilder:H}=await import("@radixdlt/radix-dapp-toolkit");J.walletApi.setRequestData(H.accounts().exactly(1));let z=await J.walletApi.sendRequest();if(!z)throw new j.SwapKitError("wallet_radix_no_account");let U=z.unwrapOr(null)?.accounts[0]?.address;if(!U)throw new j.SwapKitError("wallet_radix_no_account");return U},V=O()||await Q();return{address:V,getAddress:O,getBalance:()=>C(V),radixDappToolkit:J,signAndBroadcast:async({manifest:H,message:z})=>{let Y=(await J.walletApi.sendTransaction({message:z,transactionManifest:H})).unwrapOr(null)?.transactionIntentHash;if(!Y)throw new j.SwapKitError("wallet_radix_transaction_failed");return Y},transfer:(H)=>{throw new j.SwapKitError("wallet_radix_method_not_supported",{method:"transfer"})}}}
1
+ var v={};S(v,{radixWallet:()=>T,RADIX_SUPPORTED_CHAINS:()=>x});module.exports=N(v);var j=require("@swapkit/helpers"),_=require("@swapkit/wallet-core"),T=_.createWallet({connect:({addChain:Q,supportedChains:O,walletType:J})=>async function(U){let M=j.filterSupportedChains({chains:U,supportedChains:O,walletType:J});if(!j.SKConfig.get("integrations").radix)throw new j.SwapKitError("wallet_radix_not_found");return await Promise.all(M.map(async(H)=>{let K=await k();Q({...K,chain:H,walletType:J})})),!0},name:"connectRadixWallet",supportedChains:[j.Chain.Radix],walletType:j.WalletOption.RADIX_WALLET}),x=_.getWalletSupportedChains(T);async function B(Q){let{GatewayApiClient:O}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:J}=j.SKConfig.get("integrations").radix,W=O.initialize({applicationName:J,networkId:1}),U=!0,M,V=[],H=await C(W);while(U){let K={address:Q,at_ledger_state:{state_version:H},cursor:M,limit_per_page:100},z=await W.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:K});if(V=V.concat(z.items),z.next_cursor)M=z.next_cursor;else U=!1}return V}function C(Q){return Q.status.getCurrent().then((O)=>O.ledger_state.state_version)}async function h(Q){let{GatewayApiClient:O}=await import("@radixdlt/babylon-gateway-api-sdk"),J=await B(Q),{applicationName:W}=j.SKConfig.get("integrations").radix,U=O.initialize({applicationName:W,networkId:1}),M=[],V=50,H=[];for(let z=0;z<J.length;z+=50)H.push(J.slice(z,z+50));for(let z of H){let Y=z.map((L)=>L.resource_address),q=await U.state.getEntityDetailsVaultAggregated(Y),G=new Map;for(let L of q)if(L.details!==void 0){let X=L.metadata?.items.find((I)=>I.key==="symbol"),$=X?.value.typed.type==="String"?X.value.typed.value:"?";if(L.details.type==="FungibleResource")G.set(L.address,{decimals:L.details.divisibility,symbol:$})}for(let L of z)if(L.aggregation_level==="Global"){let X=G.get(L.resource_address)||{decimals:0,symbol:"?"},$=j.AssetValue.from({asset:X.symbol!==j.Chain.Radix?`${j.Chain.Radix}.${X.symbol}-${L.resource_address}`:"XRD.XRD",value:L.amount});M.push($)}}if(!M.some((z)=>z.isGasAsset))return[j.AssetValue.from({chain:j.Chain.Radix}),...M];return M}async function k(){let{RadixDappToolkit:Q}=await import("@radixdlt/radix-dapp-toolkit"),O=j.SKConfig.get("integrations").radix,J=Q({...O,networkId:O.network.networkId});function W(H){return new Promise((K)=>setTimeout(K,H))}await W(400);function U(){return J.walletApi.getWalletData()?.accounts?.[0]?.address}let M=async()=>{let{DataRequestBuilder:H}=await import("@radixdlt/radix-dapp-toolkit");J.walletApi.setRequestData(H.accounts().exactly(1));let K=await J.walletApi.sendRequest();if(!K)throw new j.SwapKitError("wallet_radix_no_account");let z=K.unwrapOr(null)?.accounts[0]?.address;if(!z)throw new j.SwapKitError("wallet_radix_no_account");return z},V=U()||await M();return{address:V,getAddress:U,getBalance:()=>h(V),radixDappToolkit:J,signAndBroadcast:async({manifest:H,message:K})=>{let Y=(await J.walletApi.sendTransaction({message:K,transactionManifest:H})).unwrapOr(null)?.transactionIntentHash;if(!Y)throw new j.SwapKitError("wallet_radix_transaction_failed");return Y},transfer:(H)=>{throw new j.SwapKitError("wallet_radix_method_not_supported",{method:"transfer"})}}}
2
2
 
3
- //# debugId=4D721A73D5B0F23A64756E2164756E21
3
+ //# debugId=EE5BB2A4D2CAB17F64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/radix/index.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nexport const radixWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = SKConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new SwapKitError(\"wallet_radix_not_found\");\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods();\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectRadixWallet\",\n supportedChains: [Chain.Radix],\n walletType: WalletOption.RADIX_WALLET,\n});\n\nexport const RADIX_SUPPORTED_CHAINS = getWalletSupportedChains(radixWallet);\n\nasync function fetchFungibleResources(address: string): Promise<FungibleResourcesCollectionItem[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n\n const stateVersion = await currentStateVersion(networkApi);\n\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\n// TODO - @Towan: is that still needed with SwapKitApi.getChainBalance()?\nasync function getBalance(address: string): Promise<AssetValue[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const resources = await fetchFungibleResources(address);\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = SKConfig.get(\"integrations\").radix;\n const rdt = RadixDappToolkit({ ...dappConfig, networkId: dappConfig.network.networkId });\n\n function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n // TODO: @Towan - Wat is dat?\n await delay(400);\n\n function getAddress() {\n const existingWalletData = rdt.walletApi.getWalletData();\n const account = existingWalletData?.accounts?.[0];\n\n return account?.address;\n }\n\n const getNewAddress = async () => {\n const { DataRequestBuilder } = await import(\"@radixdlt/radix-dapp-toolkit\");\n rdt.walletApi.setRequestData(DataRequestBuilder.accounts().exactly(1));\n const res = await rdt.walletApi.sendRequest();\n\n if (!res) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n address,\n getAddress,\n getBalance: () => getBalance(address),\n radixDappToolkit: rdt,\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({ message, transactionManifest: manifest });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new SwapKitError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new SwapKitError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n };\n}\n"
5
+ "import type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nexport const radixWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = SKConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new SwapKitError(\"wallet_radix_not_found\");\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods();\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectRadixWallet\",\n supportedChains: [Chain.Radix],\n walletType: WalletOption.RADIX_WALLET,\n});\n\nexport const RADIX_SUPPORTED_CHAINS = getWalletSupportedChains(radixWallet);\n\nasync function fetchFungibleResources(address: string): Promise<FungibleResourcesCollectionItem[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n\n const stateVersion = await currentStateVersion(networkApi);\n\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\n// TODO - @Towan: is that still needed with SwapKitApi.getChainBalance()?\nasync function getBalance(address: string): Promise<AssetValue[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const resources = await fetchFungibleResources(address);\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n const hasNativeAsset = balances.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain: Chain.Radix }), ...balances];\n }\n\n return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = SKConfig.get(\"integrations\").radix;\n const rdt = RadixDappToolkit({ ...dappConfig, networkId: dappConfig.network.networkId });\n\n function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n // TODO: @Towan - Wat is dat?\n await delay(400);\n\n function getAddress() {\n const existingWalletData = rdt.walletApi.getWalletData();\n const account = existingWalletData?.accounts?.[0];\n\n return account?.address;\n }\n\n const getNewAddress = async () => {\n const { DataRequestBuilder } = await import(\"@radixdlt/radix-dapp-toolkit\");\n rdt.walletApi.setRequestData(DataRequestBuilder.accounts().exactly(1));\n const res = await rdt.walletApi.sendRequest();\n\n if (!res) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n address,\n getAddress,\n getBalance: () => getBalance(address),\n radixDappToolkit: rdt,\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({ message, transactionManifest: manifest });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new SwapKitError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new SwapKitError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n };\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "4D721A73D5B0F23A64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "EE5BB2A4D2CAB17F64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- import{F as _,G as $}from"../../chunk-jgq4njag.js";import{AssetValue as N,Chain as T,filterSupportedChains as S,SKConfig as Y,SwapKitError as X,WalletOption as x}from"@swapkit/helpers";import{createWallet as B,getWalletSupportedChains as C}from"@swapkit/wallet-core";var h=B({connect:({addChain:L,supportedChains:K,walletType:H})=>async function(M){let O=S({chains:M,supportedChains:K,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(O.map(async(z)=>{let j=await E();L({...j,chain:z,walletType:H})})),!0},name:"connectRadixWallet",supportedChains:[T.Radix],walletType:x.RADIX_WALLET}),f=C(h);async function k(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=K.initialize({applicationName:H,networkId:1}),M=!0,O,U=[],z=await v(V);while(M){let j={address:L,at_ledger_state:{state_version:z},cursor:O,limit_per_page:100},Q=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:j});if(U=U.concat(Q.items),Q.next_cursor)O=Q.next_cursor;else M=!1}return U}function v(L){return L.status.getCurrent().then((K)=>K.ledger_state.state_version)}async function D(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await k(L),{applicationName:V}=Y.get("integrations").radix,M=K.initialize({applicationName:V,networkId:1}),O=[],U=50,z=[];for(let j=0;j<H.length;j+=50)z.push(H.slice(j,j+50));for(let j of z){let Q=j.map((J)=>J.resource_address),Z=await M.state.getEntityDetailsVaultAggregated(Q),q=new Map;for(let J of Z)if(J.details!==void 0){let W=J.metadata?.items.find((I)=>I.key==="symbol"),G=W?.value.typed.type==="String"?W.value.typed.value:"?";if(J.details.type==="FungibleResource")q.set(J.address,{decimals:J.details.divisibility,symbol:G})}for(let J of j)if(J.aggregation_level==="Global"){let W=q.get(J.resource_address)||{decimals:0,symbol:"?"},G=N.from({asset:W.symbol!==T.Radix?`${T.Radix}.${W.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});O.push(G)}}return O}async function E(){let{RadixDappToolkit:L}=await import("@radixdlt/radix-dapp-toolkit"),K=Y.get("integrations").radix,H=L({...K,networkId:K.network.networkId});function V(z){return new Promise((j)=>setTimeout(j,z))}await V(400);function M(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let O=async()=>{let{DataRequestBuilder:z}=await import("@radixdlt/radix-dapp-toolkit");H.walletApi.setRequestData(z.accounts().exactly(1));let j=await H.walletApi.sendRequest();if(!j)throw new X("wallet_radix_no_account");let Q=j.unwrapOr(null)?.accounts[0]?.address;if(!Q)throw new X("wallet_radix_no_account");return Q},U=M()||await O();return{address:U,getAddress:M,getBalance:()=>D(U),radixDappToolkit:H,signAndBroadcast:async({manifest:z,message:j})=>{let Z=(await H.walletApi.sendTransaction({message:j,transactionManifest:z})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z},transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})}}}export{h as radixWallet,f as RADIX_SUPPORTED_CHAINS};
1
+ import{F as $,G}from"../../chunk-jgq4njag.js";import{AssetValue as I,Chain as _,filterSupportedChains as x,SKConfig as Y,SwapKitError as X,WalletOption as B}from"@swapkit/helpers";import{createWallet as C,getWalletSupportedChains as h}from"@swapkit/wallet-core";var k=C({connect:({addChain:O,supportedChains:M,walletType:H})=>async function(Q){let L=x({chains:Q,supportedChains:M,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(L.map(async(z)=>{let J=await F();O({...J,chain:z,walletType:H})})),!0},name:"connectRadixWallet",supportedChains:[_.Radix],walletType:B.RADIX_WALLET}),w=h(k);async function v(O){let{GatewayApiClient:M}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=M.initialize({applicationName:H,networkId:1}),Q=!0,L,U=[],z=await D(V);while(Q){let J={address:O,at_ledger_state:{state_version:z},cursor:L,limit_per_page:100},j=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:J});if(U=U.concat(j.items),j.next_cursor)L=j.next_cursor;else Q=!1}return U}function D(O){return O.status.getCurrent().then((M)=>M.ledger_state.state_version)}async function E(O){let{GatewayApiClient:M}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await v(O),{applicationName:V}=Y.get("integrations").radix,Q=M.initialize({applicationName:V,networkId:1}),L=[],U=50,z=[];for(let j=0;j<H.length;j+=50)z.push(H.slice(j,j+50));for(let j of z){let Z=j.map((K)=>K.resource_address),N=await Q.state.getEntityDetailsVaultAggregated(Z),q=new Map;for(let K of N)if(K.details!==void 0){let W=K.metadata?.items.find((S)=>S.key==="symbol"),T=W?.value.typed.type==="String"?W.value.typed.value:"?";if(K.details.type==="FungibleResource")q.set(K.address,{decimals:K.details.divisibility,symbol:T})}for(let K of j)if(K.aggregation_level==="Global"){let W=q.get(K.resource_address)||{decimals:0,symbol:"?"},T=I.from({asset:W.symbol!==_.Radix?`${_.Radix}.${W.symbol}-${K.resource_address}`:"XRD.XRD",value:K.amount});L.push(T)}}if(!L.some((j)=>j.isGasAsset))return[I.from({chain:_.Radix}),...L];return L}async function F(){let{RadixDappToolkit:O}=await import("@radixdlt/radix-dapp-toolkit"),M=Y.get("integrations").radix,H=O({...M,networkId:M.network.networkId});function V(z){return new Promise((J)=>setTimeout(J,z))}await V(400);function Q(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let L=async()=>{let{DataRequestBuilder:z}=await import("@radixdlt/radix-dapp-toolkit");H.walletApi.setRequestData(z.accounts().exactly(1));let J=await H.walletApi.sendRequest();if(!J)throw new X("wallet_radix_no_account");let j=J.unwrapOr(null)?.accounts[0]?.address;if(!j)throw new X("wallet_radix_no_account");return j},U=Q()||await L();return{address:U,getAddress:Q,getBalance:()=>E(U),radixDappToolkit:H,signAndBroadcast:async({manifest:z,message:J})=>{let Z=(await H.walletApi.sendTransaction({message:J,transactionManifest:z})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z},transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})}}}export{k as radixWallet,w as RADIX_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=58A0CFCA38DE936164756E2164756E21
3
+ //# debugId=2EBD8ADE17CD1F0764756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/radix/index.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nexport const radixWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = SKConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new SwapKitError(\"wallet_radix_not_found\");\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods();\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectRadixWallet\",\n supportedChains: [Chain.Radix],\n walletType: WalletOption.RADIX_WALLET,\n});\n\nexport const RADIX_SUPPORTED_CHAINS = getWalletSupportedChains(radixWallet);\n\nasync function fetchFungibleResources(address: string): Promise<FungibleResourcesCollectionItem[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n\n const stateVersion = await currentStateVersion(networkApi);\n\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\n// TODO - @Towan: is that still needed with SwapKitApi.getChainBalance()?\nasync function getBalance(address: string): Promise<AssetValue[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const resources = await fetchFungibleResources(address);\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = SKConfig.get(\"integrations\").radix;\n const rdt = RadixDappToolkit({ ...dappConfig, networkId: dappConfig.network.networkId });\n\n function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n // TODO: @Towan - Wat is dat?\n await delay(400);\n\n function getAddress() {\n const existingWalletData = rdt.walletApi.getWalletData();\n const account = existingWalletData?.accounts?.[0];\n\n return account?.address;\n }\n\n const getNewAddress = async () => {\n const { DataRequestBuilder } = await import(\"@radixdlt/radix-dapp-toolkit\");\n rdt.walletApi.setRequestData(DataRequestBuilder.accounts().exactly(1));\n const res = await rdt.walletApi.sendRequest();\n\n if (!res) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n address,\n getAddress,\n getBalance: () => getBalance(address),\n radixDappToolkit: rdt,\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({ message, transactionManifest: manifest });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new SwapKitError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new SwapKitError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n };\n}\n"
5
+ "import type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nexport const radixWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = SKConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new SwapKitError(\"wallet_radix_not_found\");\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods();\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectRadixWallet\",\n supportedChains: [Chain.Radix],\n walletType: WalletOption.RADIX_WALLET,\n});\n\nexport const RADIX_SUPPORTED_CHAINS = getWalletSupportedChains(radixWallet);\n\nasync function fetchFungibleResources(address: string): Promise<FungibleResourcesCollectionItem[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n\n const stateVersion = await currentStateVersion(networkApi);\n\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\n// TODO - @Towan: is that still needed with SwapKitApi.getChainBalance()?\nasync function getBalance(address: string): Promise<AssetValue[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const resources = await fetchFungibleResources(address);\n const { applicationName } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n const hasNativeAsset = balances.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain: Chain.Radix }), ...balances];\n }\n\n return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = SKConfig.get(\"integrations\").radix;\n const rdt = RadixDappToolkit({ ...dappConfig, networkId: dappConfig.network.networkId });\n\n function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n // TODO: @Towan - Wat is dat?\n await delay(400);\n\n function getAddress() {\n const existingWalletData = rdt.walletApi.getWalletData();\n const account = existingWalletData?.accounts?.[0];\n\n return account?.address;\n }\n\n const getNewAddress = async () => {\n const { DataRequestBuilder } = await import(\"@radixdlt/radix-dapp-toolkit\");\n rdt.walletApi.setRequestData(DataRequestBuilder.accounts().exactly(1));\n const res = await rdt.walletApi.sendRequest();\n\n if (!res) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n address,\n getAddress,\n getBalance: () => getBalance(address),\n radixDappToolkit: rdt,\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({ message, transactionManifest: manifest });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new SwapKitError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new SwapKitError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n };\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "58A0CFCA38DE936164756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "2EBD8ADE17CD1F0764756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -5,8 +5,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
5
5
  coinbaseSdk: ReturnType<typeof createCoinbaseWalletSDK>;
6
6
  }) => Promise<{
7
7
  address: string;
8
- getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
9
- getNetworkParams: () => import("@swapkit/helpers").NetworkParams;
10
8
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
11
9
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
12
10
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -36,6 +34,8 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
36
34
  chain: import("@swapkit/types").EVMChain;
37
35
  }) => Promise<import("@swapkit/helpers").AssetValue>;
38
36
  getAddress: () => string | Promise<string> | undefined;
37
+ getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
38
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
39
39
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
40
40
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
41
41
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -45,8 +45,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
45
45
  validateAddress: (address: string) => boolean;
46
46
  } | {
47
47
  address: string;
48
- getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
49
- getNetworkParams: () => import("@swapkit/helpers").NetworkParams;
50
48
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
51
49
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
52
50
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -76,6 +74,8 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
76
74
  chain: import("@swapkit/types").EVMChain;
77
75
  }) => Promise<import("@swapkit/helpers").AssetValue>;
78
76
  getAddress: () => string | Promise<string> | undefined;
77
+ getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
78
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
79
79
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
80
80
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
81
81
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -85,8 +85,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
85
85
  validateAddress: (address: string) => boolean;
86
86
  } | {
87
87
  address: string;
88
- getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
89
- getNetworkParams: () => import("@swapkit/helpers").NetworkParams;
90
88
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
91
89
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
92
90
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -116,6 +114,8 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
116
114
  chain: import("@swapkit/types").EVMChain;
117
115
  }) => Promise<import("@swapkit/helpers").AssetValue>;
118
116
  getAddress: () => string | Promise<string> | undefined;
117
+ getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
118
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
119
119
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
120
120
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
121
121
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -125,8 +125,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
125
125
  validateAddress: (address: string) => boolean;
126
126
  } | {
127
127
  address: string;
128
- getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
129
- getNetworkParams: () => import("@swapkit/helpers").NetworkParams;
130
128
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
131
129
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
132
130
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -156,6 +154,8 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
156
154
  chain: import("@swapkit/types").EVMChain;
157
155
  }) => Promise<import("@swapkit/helpers").AssetValue>;
158
156
  getAddress: () => string | Promise<string> | undefined;
157
+ getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
158
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
159
159
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
160
160
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
161
161
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -169,8 +169,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
169
169
  address: string;
170
170
  data: string;
171
171
  }[], multicallAddress?: string, funcName?: string, feeOptionKey?: import("@swapkit/helpers").FeeOption) => Promise<string>;
172
- getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
173
- getNetworkParams: () => undefined;
174
172
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
175
173
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
176
174
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -200,6 +198,8 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
200
198
  chain: import("@swapkit/types").EVMChain;
201
199
  }) => Promise<import("@swapkit/helpers").AssetValue>;
202
200
  getAddress: () => string | Promise<string> | undefined;
201
+ getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
202
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
203
203
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
204
204
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
205
205
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -235,17 +235,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
235
235
  estimateTotalGasCost: (tx: import("ethers").TransactionRequest) => Promise<any>;
236
236
  getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
237
237
  getL1GasPrice: () => Promise<bigint | undefined>;
238
- getNetworkParams: () => {
239
- blockExplorerUrls: "https://optimistic.etherscan.io"[];
240
- chainId: import("@swapkit/types").ChainId.Optimism;
241
- chainName: "Optimism";
242
- nativeCurrency: {
243
- decimals: 18;
244
- name: string;
245
- symbol: Chain;
246
- };
247
- rpcUrls: ["https://mainnet.optimism.io", "https://optimism.llamarpc.com", "https://1rpc.io/op"];
248
- };
249
238
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
250
239
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
251
240
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -269,6 +258,7 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
269
258
  chain: import("@swapkit/types").EVMChain;
270
259
  }) => Promise<import("@swapkit/helpers").AssetValue>;
271
260
  getAddress: () => string | Promise<string> | undefined;
261
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
272
262
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
273
263
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
274
264
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -278,8 +268,6 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
278
268
  validateAddress: (address: string) => boolean;
279
269
  } | {
280
270
  address: string;
281
- getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
282
- getNetworkParams: () => import("@swapkit/helpers").NetworkParams;
283
271
  approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("@swapkit/toolboxes/evm").ApproveParams) => Promise<string>;
284
272
  approvedAmount: ({ assetAddress, spenderAddress, from }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<bigint>;
285
273
  broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
@@ -309,6 +297,8 @@ export declare const getWalletMethods: ({ chain, coinbaseSdk, }: {
309
297
  chain: import("@swapkit/types").EVMChain;
310
298
  }) => Promise<import("@swapkit/helpers").AssetValue>;
311
299
  getAddress: () => string | Promise<string> | undefined;
300
+ getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
301
+ getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
312
302
  isApproved: ({ assetAddress, spenderAddress, from, amount }: import("@swapkit/toolboxes/evm").IsApprovedParams) => Promise<boolean>;
313
303
  sendTransaction: ({ feeOptionKey, ...tx }: import("@swapkit/toolboxes/evm").EVMTxParams & {
314
304
  feeOptionKey?: import("@swapkit/helpers").FeeOption;
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/coinbase/signer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAgB,MAAM,kBAAkB,CAAC;AA6CvD,eAAO,MAAM,gBAAgB,GAAU,yBAGpC;IACD,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CACzD;;4CAwBsxC,CAAC;;;;;;;;;iIAAmyC,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;;sCAAoX,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;4CAAonH,CAAC;;;;;;;;;iIAAmyC,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;;sCAAoX,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;4CAAoR,CAAC;;;;;;;;;iIAAmyC,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;;sCAAoX,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;4CAAinH,CAAC;;;;;;;;;iIAAmyC,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;;sCAAoX,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;;yBAxEphqB,CAAC,kBAAkB,CAAC,sBAAuB,CAAA;4CAG7E,CAAD;;;;;;;;;iIA4C2B,GAAI;gIASR,GAAI;sCAEiB,GAAG;;;;gBAcpC,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;;sCAAoX,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;sBA5Dj9B,CAAC;oBAA8B,CAAC;wBAEzE,CAAC;gCAA0C,CAAC;;;sBAKlD,CAAH;oBACK,CAAJ;wBAAkC,CAAC;gCAA0C,CAAC;;;sBAGvC,CAAC;oBACvB,CAAA;wBAAkC,CAAC;gCAE9C,CAAJ;;;;;;;4CAaU,CAAC;;;;;;;;;;;;;;;;;;;;iIAiC6V,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;iDAAqF,GAAI;;;;;;sCAA6Y,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;4CAAi6uC,CAAC;;;;;;;;;iIAAmyC,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;;sCAAoX,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;EAD/84C,CAAC"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/coinbase/signer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAgB,MAAM,kBAAkB,CAAC;AA6CvD,eAAO,MAAM,gBAAgB,GAAU,yBAGpC;IACD,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CACzD;;;;;;;;;iIAwBk7E,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;4CAAsQ,CAAC;;;sCAA4S,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;;;;;;iIAAivJ,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;4CAAsQ,CAAC;;;sCAA4S,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;;;;;;iIAAq4C,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;4CAAsQ,CAAC;;;sCAA4S,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;;;;;;iIAA8uJ,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;4CAAsQ,CAAC;;;sCAA4S,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;;yBAxEvoqB,CAAC,kBAAkB,CAAC,sBAAuB,CAAA;;;;;;;;iIAuCjD,GAAI;gIAWZ,GACrB;sCAKa,GAAI;;;;gBAST,CAAC;kBACN,CAAH;mBAGY,CAAC;YAAwC,CAAC;;;kBAG6B,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;4CAAsQ,CAAC;;;sCAA4S,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;sBAvE5iC,CAAC;oBAA+B,CAAA;wBAEpB,CAAC;gCACZ,CAAC;;;sBAEW,CAAC;oBAA8B,CAAC;wBAC1C,CAAJ;gCACmB,CAAC;;;sBAIhB,CAAF;oBAA8B,CAAC;wBAAkC,CAAC;gCAEhE,CAAA;;;;;;;4CAUkC,CAAC;;;;;;;;;iIA6CzB,GAAG;gIAGyI,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;iDAAqF,GAAI;;;;;;;sCAA+d,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;;;;;;;;;;iIAA+iyC,GAAI;gIAAgO,GAAI;sCAAsI,GAAI;;;;gBAA4b,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAAoH,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;iDAAqE,GAAI;;;;;4CAAsQ,CAAC;;;sCAA4S,GAAI;oBAAuD,CAAC;;;oEAA6L,GAAI;;EADtp5C,CAAC"}
package/package.json CHANGED
@@ -11,12 +11,12 @@
11
11
  "@passkeys/react": "~3.0.1",
12
12
  "@radixdlt/babylon-gateway-api-sdk": "~1.10.0",
13
13
  "@radixdlt/radix-dapp-toolkit": "~2.2.0",
14
- "@swapkit/helpers": "4.5.7",
15
- "@swapkit/toolboxes": "4.3.7",
16
- "@swapkit/wallet-core": "4.0.51",
17
- "@swapkit/wallet-extensions": "4.1.7",
18
- "@swapkit/wallet-hardware": "4.2.7",
19
- "@swapkit/wallet-keystore": "4.1.7",
14
+ "@swapkit/helpers": "4.5.8",
15
+ "@swapkit/toolboxes": "4.3.8",
16
+ "@swapkit/wallet-core": "4.0.52",
17
+ "@swapkit/wallet-extensions": "4.1.8",
18
+ "@swapkit/wallet-hardware": "4.2.8",
19
+ "@swapkit/wallet-keystore": "4.1.8",
20
20
  "@walletconnect/modal": "~2.7.0",
21
21
  "@walletconnect/sign-client": "~2.23.0",
22
22
  "bitcoinjs-lib": "~6.1.0",
@@ -216,5 +216,5 @@
216
216
  "type-check:go": "tsgo"
217
217
  },
218
218
  "type": "module",
219
- "version": "4.3.7"
219
+ "version": "4.3.8"
220
220
  }
@@ -124,6 +124,11 @@ async function getBalance(address: string): Promise<AssetValue[]> {
124
124
  }
125
125
  }
126
126
 
127
+ const hasNativeAsset = balances.some((asset) => asset.isGasAsset);
128
+ if (!hasNativeAsset) {
129
+ return [AssetValue.from({ chain: Chain.Radix }), ...balances];
130
+ }
131
+
127
132
  return balances;
128
133
  }
129
134