@rango-dev/provider-tonconnect 0.10.0 → 0.10.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # [0.10.0](https://github.com/rango-exchange/rango-client/compare/provider-tonconnect@0.9.0...provider-tonconnect@0.10.0) (2025-08-05)
2
+
3
+
4
+
1
5
  # [0.9.0](https://github.com/rango-exchange/rango-client/compare/provider-tonconnect@0.8.0...provider-tonconnect@0.9.0) (2025-07-22)
2
6
 
3
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAsB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG1C;AAED,wBAAsB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGrC;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,wBAAsB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK1C;AAED,wBAAsB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGrC;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtE"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var l=Object.defineProperty;var o=(n,t)=>l(n,"name",{value:t,configurable:!0});var w=(n,t)=>()=>(n&&(t=n(n=0)),t);var h=(n,t)=>{for(var e in t)l(n,e,{get:t[e],enumerable:!0})};var g={};h(g,{CustomTonSigner:()=>i});import{Cell as U}from"@ton/core";import{CHAIN as S}from"@tonconnect/ui";import{SignerError as x}from"rango-types";var i,u=w(()=>{"use strict";i=class{static{o(this,"CustomTonSigner")}provider;constructor(t){this.provider=t}async signMessage(){throw x.UnimplementedError("signMessage")}async signAndSendTx(t){let{blockChain:e,type:c,...s}=t,r=await this.provider.sendTransaction({...s,network:S.MAINNET});return{hash:U.fromBase64(r.boc).hash().toString("hex")}}}});import{Networks as f,WalletTypes as E}from"@rango-dev/wallets-shared";import{tonBlockchain as k}from"rango-types";async function m(){return await import("@tonconnect/ui")}o(m,"getTonConnectUIModule");async function I(){return await import("@ton/core")}o(I,"getTonCoreModule");async function C(n){return new Promise((t,e)=>{let c=n.onStatusChange(r=>{!!r?.account.address&&(c(),t(r.account.address))},r=>{c(),e(r)}),s=n.onModalStateChange(r=>{r.closeReason==="action-cancelled"&&(c(),s(),e(new Error("The action was canceled by the user")))})})}o(C,"waitForConnection");async function a(n){return(await I()).Address.parse(n).toString({bounceable:!1})}o(a,"parseAddress");import{DefaultSignerFactory as b,TransactionType as N}from"rango-types";async function p(n){let t=new b,{CustomTonSigner:e}=await Promise.resolve().then(()=>(u(),g));return t.registerSigner(N.TON,new e(n)),t}o(p,"getSigners");var T={manifestUrl:""},v=E.TON_CONNECT,q={type:v,isAsyncInstance:!0,checkInstallation:!1},z=o(n=>{T=n},"init"),d=null,J=o(async()=>{if(!d){let{TonConnectUI:n}=await m();d=new n(T)}return d},"getInstance"),K=o(async({instance:n})=>{let t=n;if(await t.connectionRestored&&t.account?.address)return{accounts:[await a(t.account.address)],chainId:f.TON};await t.openModal();let c=await C(t);return{accounts:[await a(c)],chainId:f.TON}},"connect"),Q=o(async({instance:n})=>await n.connectionRestored,"canEagerConnect"),V=o(()=>!1,"canSwitchNetworkTo"),X=p,Y=o(n=>({name:"TON Connect",img:"https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg",installLink:"",color:"#fff",supportedChains:k(n)}),"getWalletInfo"),Z=o(async({instance:n})=>{await n.disconnect()},"disconnect");export{Q as canEagerConnect,V as canSwitchNetworkTo,q as config,K as connect,Z as disconnect,J as getInstance,X as getSigners,Y as getWalletInfo,z as init};
1
+ var d=Object.defineProperty;var o=(n,t)=>d(n,"name",{value:t,configurable:!0});var I=(n,t)=>()=>(n&&(t=n(n=0)),t);var h=(n,t)=>{for(var e in t)d(n,e,{get:t[e],enumerable:!0})};var u={};h(u,{CustomTonSigner:()=>i});import{Cell as S}from"@ton/core";import{CHAIN as x}from"@tonconnect/ui";import{SignerError as b}from"rango-types";var i,f=I(()=>{"use strict";i=class{static{o(this,"CustomTonSigner")}provider;constructor(t){this.provider=t}async signMessage(){throw b.UnimplementedError("signMessage")}async signAndSendTx(t){let{blockChain:e,type:c,...s}=t,r=await this.provider.sendTransaction({...s,network:x.MAINNET});return{hash:S.fromBase64(r.boc).hash().toString("hex")}}}});import{Networks as y,WalletTypes as v}from"@rango-dev/wallets-shared";import{tonBlockchain as A}from"rango-types";import{retryLazyImport as l}from"@rango-dev/wallets-shared";async function C(){return await l(async()=>await import("@tonconnect/ui"))}o(C,"getTonConnectUIModule");async function U(){return await l(async()=>await import("@ton/core"))}o(U,"getTonCoreModule");async function g(n){return new Promise((t,e)=>{let c=n.onStatusChange(r=>{!!r?.account.address&&(c(),t(r.account.address))},r=>{c(),e(r)}),s=n.onModalStateChange(r=>{r.closeReason==="action-cancelled"&&(c(),s(),e(new Error("The action was canceled by the user")))})})}o(g,"waitForConnection");async function a(n){return(await U()).Address.parse(n).toString({bounceable:!1})}o(a,"parseAddress");import{retryLazyImport as N}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as E,TransactionType as k}from"rango-types";async function p(n){let t=new E,{CustomTonSigner:e}=await N(async()=>await Promise.resolve().then(()=>(f(),u)));return t.registerSigner(k.TON,new e(n)),t}o(p,"getSigners");var T={manifestUrl:""},M=v.TON_CONNECT,Q={type:M,isAsyncInstance:!0,checkInstallation:!1},V=o(n=>{T=n},"init"),m=null,X=o(async()=>{if(!m){let{TonConnectUI:n}=await C();m=new n(T)}return m},"getInstance"),Y=o(async({instance:n})=>{let t=n;if(await t.connectionRestored&&t.account?.address)return{accounts:[await a(t.account.address)],chainId:y.TON};await t.openModal();let c=await g(t);return{accounts:[await a(c)],chainId:y.TON}},"connect"),Z=o(async({instance:n})=>await n.connectionRestored,"canEagerConnect"),$=o(()=>!1,"canSwitchNetworkTo"),nn=p,tn=o(n=>({name:"TON Connect",img:"https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg",installLink:"",color:"#fff",supportedChains:A(n)}),"getWalletInfo"),on=o(async({instance:n})=>{await n.disconnect()},"disconnect");export{Z as canEagerConnect,$ as canSwitchNetworkTo,Q as config,Y as connect,on as disconnect,X as getInstance,nn as getSigners,tn as getWalletInfo,V as init};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/ton-signer.ts", "../src/index.ts", "../src/helpers.ts", "../src/signer.ts"],
4
- "sourcesContent": ["import type { TonConnectUI } from '@tonconnect/ui';\nimport type { GenericSigner, TonTransaction } from 'rango-types';\n\nimport { Cell } from '@ton/core';\nimport { CHAIN } from '@tonconnect/ui';\nimport { SignerError } from 'rango-types';\n\nexport class CustomTonSigner implements GenericSigner<TonTransaction> {\n private provider: TonConnectUI;\n\n constructor(provider: TonConnectUI) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: TonTransaction): Promise<{ hash: string }> {\n const { blockChain, type, ...txObjectForSign } = tx;\n const result = await this.provider.sendTransaction({\n ...txObjectForSign,\n network: CHAIN.MAINNET,\n });\n\n const hash = Cell.fromBase64(result.boc).hash().toString('hex');\n return { hash };\n }\n}\n", "import type { Environments } from './types.js';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n Disconnect,\n GetInstance,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { TonConnectUI } from '@tonconnect/ui';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport { Networks, WalletTypes } from '@rango-dev/wallets-shared';\nimport { tonBlockchain } from 'rango-types';\n\nimport {\n getTonConnectUIModule,\n parseAddress,\n waitForConnection,\n} from './helpers.js';\nimport signer from './signer.js';\n\nlet envs: Environments = {\n manifestUrl: '',\n};\n\nconst WALLET = WalletTypes.TON_CONNECT;\n\nexport const config = {\n type: WALLET,\n isAsyncInstance: true,\n checkInstallation: false,\n};\n\nexport type { Environments };\n\nexport const init = (environments: Environments) => {\n envs = environments;\n};\n\nlet instance: TonConnectUI | null = null;\n\nexport const getInstance: GetInstance = async () => {\n if (!instance) {\n const { TonConnectUI } = await getTonConnectUIModule();\n instance = new TonConnectUI(envs);\n }\n return instance;\n};\n\nexport const connect: Connect = async ({ instance }) => {\n const tonConnectUI: TonConnectUI = instance;\n const connectionRestored = await tonConnectUI.connectionRestored;\n\n if (connectionRestored && tonConnectUI.account?.address) {\n const parsedAddress = await parseAddress(tonConnectUI.account.address);\n return { accounts: [parsedAddress], chainId: Networks.TON };\n }\n\n await tonConnectUI.openModal();\n const result = await waitForConnection(tonConnectUI);\n const parsedAddress = await parseAddress(result);\n\n return {\n accounts: [parsedAddress],\n chainId: Networks.TON,\n };\n};\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance }) => {\n const tonConnectUI = instance as TonConnectUI;\n const connectionRestored = await tonConnectUI.connectionRestored;\n return connectionRestored;\n};\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = () => false;\n\nexport const getSigners: (provider: TonConnectUI) => Promise<SignerFactory> =\n signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const ton = tonBlockchain(allBlockChains);\n return {\n name: 'TON Connect',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg',\n installLink: '',\n color: '#fff',\n supportedChains: ton,\n };\n};\n\nexport const disconnect: Disconnect = async ({ instance }) => {\n const tonConnectUI = instance as TonConnectUI;\n await tonConnectUI.disconnect();\n};\n", "import type { TonConnectUI } from '@tonconnect/ui';\n\nexport async function getTonConnectUIModule() {\n const tonConnectUI = await import('@tonconnect/ui');\n return tonConnectUI;\n}\n\nexport async function getTonCoreModule() {\n const tonCore = await import('@ton/core');\n return tonCore;\n}\n\nexport async function waitForConnection(\n tonConnectUI: TonConnectUI\n): Promise<string> {\n return new Promise((resolve, reject) => {\n const unsubscribeStatusChange = tonConnectUI.onStatusChange(\n (state) => {\n const walletConnected = !!state?.account.address;\n\n if (walletConnected) {\n unsubscribeStatusChange();\n resolve(state.account.address);\n }\n },\n (error) => {\n unsubscribeStatusChange();\n reject(error);\n }\n );\n\n const unsubscribeModalStateChange = tonConnectUI.onModalStateChange(\n (modalState) => {\n if (modalState.closeReason === 'action-cancelled') {\n unsubscribeStatusChange();\n unsubscribeModalStateChange();\n reject(new Error('The action was canceled by the user'));\n }\n }\n );\n });\n}\n\nexport async function parseAddress(rawAddress: string): Promise<string> {\n const tonCore = await getTonCoreModule();\n return tonCore.Address.parse(rawAddress).toString({ bounceable: false });\n}\n", "import type { TonConnectUI } from '@tonconnect/ui';\nimport type { SignerFactory } from 'rango-types';\n\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: TonConnectUI\n): Promise<SignerFactory> {\n const signers = new DefaultSignerFactory();\n const { CustomTonSigner } = await import('./ton-signer.js');\n signers.registerSigner(TxType.TON, new CustomTonSigner(provider));\n return signers;\n}\n"],
5
- "mappings": "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",
6
- "names": ["ton_signer_exports", "__export", "CustomTonSigner", "Cell", "CHAIN", "SignerError", "init_ton_signer", "__esmMin", "__name", "provider", "tx", "blockChain", "type", "txObjectForSign", "result", "Networks", "WalletTypes", "tonBlockchain", "getTonConnectUIModule", "__name", "getTonCoreModule", "waitForConnection", "tonConnectUI", "resolve", "reject", "unsubscribeStatusChange", "state", "error", "unsubscribeModalStateChange", "modalState", "parseAddress", "rawAddress", "DefaultSignerFactory", "TxType", "getSigners", "provider", "signers", "DefaultSignerFactory", "CustomTonSigner", "TxType", "__name", "envs", "WALLET", "WalletTypes", "config", "init", "__name", "environments", "instance", "getInstance", "TonConnectUI", "getTonConnectUIModule", "connect", "tonConnectUI", "parseAddress", "Networks", "result", "waitForConnection", "canEagerConnect", "canSwitchNetworkTo", "getSigners", "getWalletInfo", "allBlockChains", "tonBlockchain", "disconnect"]
4
+ "sourcesContent": ["import type { TonConnectUI } from '@tonconnect/ui';\nimport type { GenericSigner, TonTransaction } from 'rango-types';\n\nimport { Cell } from '@ton/core';\nimport { CHAIN } from '@tonconnect/ui';\nimport { SignerError } from 'rango-types';\n\nexport class CustomTonSigner implements GenericSigner<TonTransaction> {\n private provider: TonConnectUI;\n\n constructor(provider: TonConnectUI) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: TonTransaction): Promise<{ hash: string }> {\n const { blockChain, type, ...txObjectForSign } = tx;\n const result = await this.provider.sendTransaction({\n ...txObjectForSign,\n network: CHAIN.MAINNET,\n });\n\n const hash = Cell.fromBase64(result.boc).hash().toString('hex');\n return { hash };\n }\n}\n", "import type { Environments } from './types.js';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n Disconnect,\n GetInstance,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { TonConnectUI } from '@tonconnect/ui';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport { Networks, WalletTypes } from '@rango-dev/wallets-shared';\nimport { tonBlockchain } from 'rango-types';\n\nimport {\n getTonConnectUIModule,\n parseAddress,\n waitForConnection,\n} from './helpers.js';\nimport signer from './signer.js';\n\nlet envs: Environments = {\n manifestUrl: '',\n};\n\nconst WALLET = WalletTypes.TON_CONNECT;\n\nexport const config = {\n type: WALLET,\n isAsyncInstance: true,\n checkInstallation: false,\n};\n\nexport type { Environments };\n\nexport const init = (environments: Environments) => {\n envs = environments;\n};\n\nlet instance: TonConnectUI | null = null;\n\nexport const getInstance: GetInstance = async () => {\n if (!instance) {\n const { TonConnectUI } = await getTonConnectUIModule();\n instance = new TonConnectUI(envs);\n }\n return instance;\n};\n\nexport const connect: Connect = async ({ instance }) => {\n const tonConnectUI: TonConnectUI = instance;\n const connectionRestored = await tonConnectUI.connectionRestored;\n\n if (connectionRestored && tonConnectUI.account?.address) {\n const parsedAddress = await parseAddress(tonConnectUI.account.address);\n return { accounts: [parsedAddress], chainId: Networks.TON };\n }\n\n await tonConnectUI.openModal();\n const result = await waitForConnection(tonConnectUI);\n const parsedAddress = await parseAddress(result);\n\n return {\n accounts: [parsedAddress],\n chainId: Networks.TON,\n };\n};\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance }) => {\n const tonConnectUI = instance as TonConnectUI;\n const connectionRestored = await tonConnectUI.connectionRestored;\n return connectionRestored;\n};\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = () => false;\n\nexport const getSigners: (provider: TonConnectUI) => Promise<SignerFactory> =\n signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const ton = tonBlockchain(allBlockChains);\n return {\n name: 'TON Connect',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg',\n installLink: '',\n color: '#fff',\n supportedChains: ton,\n };\n};\n\nexport const disconnect: Disconnect = async ({ instance }) => {\n const tonConnectUI = instance as TonConnectUI;\n await tonConnectUI.disconnect();\n};\n", "import type { TonConnectUI } from '@tonconnect/ui';\n\nimport { retryLazyImport } from '@rango-dev/wallets-shared';\n\nexport async function getTonConnectUIModule() {\n const tonConnectUI = await retryLazyImport(\n async () => await import('@tonconnect/ui')\n );\n return tonConnectUI;\n}\n\nexport async function getTonCoreModule() {\n const tonCore = await retryLazyImport(async () => await import('@ton/core'));\n return tonCore;\n}\n\nexport async function waitForConnection(\n tonConnectUI: TonConnectUI\n): Promise<string> {\n return new Promise((resolve, reject) => {\n const unsubscribeStatusChange = tonConnectUI.onStatusChange(\n (state) => {\n const walletConnected = !!state?.account.address;\n\n if (walletConnected) {\n unsubscribeStatusChange();\n resolve(state.account.address);\n }\n },\n (error) => {\n unsubscribeStatusChange();\n reject(error);\n }\n );\n\n const unsubscribeModalStateChange = tonConnectUI.onModalStateChange(\n (modalState) => {\n if (modalState.closeReason === 'action-cancelled') {\n unsubscribeStatusChange();\n unsubscribeModalStateChange();\n reject(new Error('The action was canceled by the user'));\n }\n }\n );\n });\n}\n\nexport async function parseAddress(rawAddress: string): Promise<string> {\n const tonCore = await getTonCoreModule();\n return tonCore.Address.parse(rawAddress).toString({ bounceable: false });\n}\n", "import type { TonConnectUI } from '@tonconnect/ui';\nimport type { SignerFactory } from 'rango-types';\n\nimport { retryLazyImport } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: TonConnectUI\n): Promise<SignerFactory> {\n const signers = new DefaultSignerFactory();\n const { CustomTonSigner } = await retryLazyImport(\n async () => await import('./ton-signer.js')\n );\n signers.registerSigner(TxType.TON, new CustomTonSigner(provider));\n return signers;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["ton_signer_exports", "__export", "CustomTonSigner", "Cell", "CHAIN", "SignerError", "init_ton_signer", "__esmMin", "__name", "provider", "tx", "blockChain", "type", "txObjectForSign", "result", "Networks", "WalletTypes", "tonBlockchain", "retryLazyImport", "getTonConnectUIModule", "retryLazyImport", "__name", "getTonCoreModule", "waitForConnection", "tonConnectUI", "resolve", "reject", "unsubscribeStatusChange", "state", "error", "unsubscribeModalStateChange", "modalState", "parseAddress", "rawAddress", "retryLazyImport", "DefaultSignerFactory", "TxType", "getSigners", "provider", "signers", "DefaultSignerFactory", "CustomTonSigner", "retryLazyImport", "TxType", "__name", "envs", "WALLET", "WalletTypes", "config", "init", "__name", "environments", "instance", "getInstance", "TonConnectUI", "getTonConnectUIModule", "connect", "tonConnectUI", "parseAddress", "Networks", "result", "waitForConnection", "canEagerConnect", "canSwitchNetworkTo", "getSigners", "getWalletInfo", "allBlockChains", "tonBlockchain", "disconnect"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/helpers.ts":{"bytes":1325,"imports":[{"path":"@tonconnect/ui","kind":"dynamic-import","external":true},{"path":"@ton/core","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/ton-signer.ts":{"bytes":868,"imports":[{"path":"@ton/core","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":476,"imports":[{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/ton-signer.ts","kind":"dynamic-import","original":"./ton-signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":2624,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":8980},"dist/index.js":{"imports":[{"path":"@ton/core","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"dynamic-import","external":true},{"path":"@ton/core","kind":"dynamic-import","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"exports":["canEagerConnect","canSwitchNetworkTo","config","connect","disconnect","getInstance","getSigners","getWalletInfo","init"],"entryPoint":"src/index.ts","inputs":{"src/ton-signer.ts":{"bytesInOutput":502},"src/index.ts":{"bytesInOutput":953},"src/helpers.ts":{"bytesInOutput":556},"src/signer.ts":{"bytesInOutput":226}},"bytes":2604}}}
1
+ {"inputs":{"src/helpers.ts":{"bytes":1465,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"dynamic-import","external":true},{"path":"@ton/core","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/ton-signer.ts":{"bytes":868,"imports":[{"path":"@ton/core","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":580,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/ton-signer.ts","kind":"dynamic-import","original":"./ton-signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":2624,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":9423},"dist/index.js":{"imports":[{"path":"@ton/core","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"dynamic-import","external":true},{"path":"@ton/core","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"exports":["canEagerConnect","canSwitchNetworkTo","config","connect","disconnect","getInstance","getSigners","getWalletInfo","init"],"entryPoint":"src/index.ts","inputs":{"src/ton-signer.ts":{"bytesInOutput":502},"src/index.ts":{"bytesInOutput":956},"src/helpers.ts":{"bytesInOutput":652},"src/signer.ts":{"bytesInOutput":304}},"bytes":2784}}}
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,aAAa,CAAC,CAKxB"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,aAAa,CAAC,CAOxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-tonconnect",
3
- "version": "0.10.0",
3
+ "version": "0.10.1-next.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/index.ts",
@@ -24,7 +24,7 @@
24
24
  "lint": "eslint \"**/*.{ts,tsx}\""
25
25
  },
26
26
  "dependencies": {
27
- "@rango-dev/wallets-shared": "^0.48.0",
27
+ "@rango-dev/wallets-shared": "^0.48.1-next.0",
28
28
  "@ton/core": "^0.59.0",
29
29
  "@ton/crypto": "^3.3.0",
30
30
  "@tonconnect/ui": "^2.0.9",
package/src/helpers.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  import type { TonConnectUI } from '@tonconnect/ui';
2
2
 
3
+ import { retryLazyImport } from '@rango-dev/wallets-shared';
4
+
3
5
  export async function getTonConnectUIModule() {
4
- const tonConnectUI = await import('@tonconnect/ui');
6
+ const tonConnectUI = await retryLazyImport(
7
+ async () => await import('@tonconnect/ui')
8
+ );
5
9
  return tonConnectUI;
6
10
  }
7
11
 
8
12
  export async function getTonCoreModule() {
9
- const tonCore = await import('@ton/core');
13
+ const tonCore = await retryLazyImport(async () => await import('@ton/core'));
10
14
  return tonCore;
11
15
  }
12
16
 
package/src/signer.ts CHANGED
@@ -1,13 +1,16 @@
1
1
  import type { TonConnectUI } from '@tonconnect/ui';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
+ import { retryLazyImport } from '@rango-dev/wallets-shared';
4
5
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
5
6
 
6
7
  export default async function getSigners(
7
8
  provider: TonConnectUI
8
9
  ): Promise<SignerFactory> {
9
10
  const signers = new DefaultSignerFactory();
10
- const { CustomTonSigner } = await import('./ton-signer.js');
11
+ const { CustomTonSigner } = await retryLazyImport(
12
+ async () => await import('./ton-signer.js')
13
+ );
11
14
  signers.registerSigner(TxType.TON, new CustomTonSigner(provider));
12
15
  return signers;
13
16
  }