@rango-dev/provider-tonconnect 0.21.1-next.0 → 0.21.2-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 +4 -0
- package/dist/actions/ton.d.ts +10 -0
- package/dist/actions/ton.d.ts.map +1 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/hooks/ton.d.ts +11 -0
- package/dist/hooks/ton.d.ts.map +1 -0
- package/dist/mod.d.ts +4 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +2 -0
- package/dist/mod.js.map +7 -0
- package/dist/namespaces/ton.d.ts +4 -0
- package/dist/namespaces/ton.d.ts.map +1 -0
- package/dist/provider-tonconnect.build.json +1 -1
- package/dist/provider.d.ts +3 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/signer.d.ts +2 -2
- package/dist/signer.d.ts.map +1 -1
- package/dist/{ton-signer.d.ts → signers/ton.d.ts} +1 -1
- package/dist/signers/ton.d.ts.map +1 -0
- package/dist/tonConnectAdapter.d.ts +10 -0
- package/dist/tonConnectAdapter.d.ts.map +1 -0
- package/dist/types.d.ts +8 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +8 -11
- package/readme.md +22 -1
- package/src/actions/ton.ts +39 -0
- package/src/constants.ts +40 -0
- package/src/hooks/ton.ts +62 -0
- package/src/mod.ts +10 -0
- package/src/namespaces/ton.ts +43 -0
- package/src/provider.ts +29 -0
- package/src/signer.ts +10 -5
- package/src/tonConnectAdapter.ts +71 -0
- package/src/types.ts +16 -3
- package/src/utils.ts +14 -0
- package/dist/helpers.d.ts +0 -163
- package/dist/helpers.d.ts.map +0 -1
- package/dist/index.d.ts +0 -20
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -7
- package/dist/ton-signer.d.ts.map +0 -1
- package/src/helpers.ts +0 -53
- package/src/index.ts +0 -97
- /package/src/{ton-signer.ts → signers/ton.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## [0.21.1](https://github.com/rango-exchange/rango-client/compare/provider-tonconnect@0.21.0...provider-tonconnect@0.21.1) (2026-05-02)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
1
5
|
# [0.21.0](https://github.com/rango-exchange/rango-client/compare/provider-tonconnect@0.20.0...provider-tonconnect@0.21.0) (2026-04-29)
|
|
2
6
|
|
|
3
7
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';
|
|
2
|
+
import type { TonConnectUI } from '@tonconnect/ui';
|
|
3
|
+
import { type TonActions } from '@rango-dev/wallets-core/namespaces/ton';
|
|
4
|
+
export declare function connect(getInstance: () => TonConnectUI): FunctionWithContext<TonActions['connect'], Context>;
|
|
5
|
+
export declare function canEagerConnect(getInstance: () => TonConnectUI): FunctionWithContext<TonActions['canEagerConnect'], Context>;
|
|
6
|
+
export declare const tonActions: {
|
|
7
|
+
connect: typeof connect;
|
|
8
|
+
canEagerConnect: typeof canEagerConnect;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=ton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/actions/ton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,wCAAwC,CAAC;AAIhF,wBAAgB,OAAO,CACrB,WAAW,EAAE,MAAM,YAAY,GAC9B,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAiBrD;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,YAAY,GAC9B,mBAAmB,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAM7D;AAED,eAAO,MAAM,UAAU;;;CAA+B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ProviderMetadata } from '@rango-dev/wallets-core';
|
|
2
|
+
import { WalletTypes } from '@rango-dev/wallets-shared';
|
|
3
|
+
export declare const WALLET_ID = WalletTypes.TON_CONNECT;
|
|
4
|
+
export declare const metadata: ProviderMetadata;
|
|
5
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,eAAO,MAAM,QAAQ,EAAE,gBA6BtB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Context, Subscriber, SubscriberCleanUp } from '@rango-dev/wallets-core';
|
|
2
|
+
import type { TonActions } from '@rango-dev/wallets-core/namespaces/ton';
|
|
3
|
+
import type { TonConnectUI } from '@tonconnect/ui';
|
|
4
|
+
declare function getDisconnectSubscriber(instance: () => TonConnectUI): [Subscriber<TonActions>, SubscriberCleanUp<TonActions>];
|
|
5
|
+
export declare function handleProviderDisconnect(_: Context): Promise<void>;
|
|
6
|
+
export declare const tonHooks: {
|
|
7
|
+
getDisconnectSubscriber: typeof getDisconnectSubscriber;
|
|
8
|
+
handleProviderDisconnect: typeof handleProviderDisconnect;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/hooks/ton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,OAAO,EACP,UAAU,EACV,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,gBAAgB,CAAC;AAIxB,iBAAS,uBAAuB,CAC9B,QAAQ,EAAE,MAAM,YAAY,GAC3B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAmCzD;AAED,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,OAAO,iBAKxD;AAED,eAAO,MAAM,QAAQ;;;CAAwD,CAAC"}
|
package/dist/mod.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,QAAA,MAAM,QAAQ,kEAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/mod.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var C=Object.defineProperty;var o=(t,n)=>C(t,"name",{value:n,configurable:!0});var S=(t,n)=>()=>(t&&(n=t(t=0)),n);var E=(t,n)=>{for(var e in n)C(t,e,{get:n[e],enumerable:!0})};var T={};E(T,{CustomTonSigner:()=>l});import{Cell as A}from"@ton/core";import{CHAIN as U}from"@tonconnect/ui";import{SignerError as P}from"rango-types";var l,y=S(()=>{"use strict";l=class{static{o(this,"CustomTonSigner")}provider;constructor(n){this.provider=n}async signMessage(){throw P.UnimplementedError("signMessage")}async signAndSendTx(n){let{blockChain:e,type:c,...i}=n,s=await this.provider.sendTransaction({...i,network:U.MAINNET});return{hash:A.fromBase64(s.boc).hash().toString("hex")}}}});import{defineVersions as Z}from"@rango-dev/wallets-core/utils";import{ProviderBuilder as Y}from"@rango-dev/wallets-core";import{WalletTypes as z}from"@rango-dev/wallets-shared";import{tonBlockchain as D}from"rango-types";import{dynamicImportWithRefinedError as M,getNetworkInstance as N,Networks as F}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as k,TransactionType as W}from"rango-types";async function u(t){let n=N(t,F.TON),e=new k,{CustomTonSigner:c}=await M(async()=>await Promise.resolve().then(()=>(y(),T)));return e.registerSigner(W.TON,new c(n)),e}o(u,"getSigners");import{Networks as R}from"@rango-dev/wallets-shared";import{dynamicImportWithRefinedError as O}from"@rango-dev/wallets-shared";var d=class{static{o(this,"TonConnectAdapter")}#n;#t;async initialize(n){if(!n)throw new Error("Environments are not set");this.#n=await O(async()=>await import("@tonconnect/ui"));let{TonConnectUI:e}=this.#n;this.#t=new e(n)}getInstance(){if(!this.#t)throw new Error("TonConnect instance isn't initialized. Please ensure you have provided the TonConnect config.");return this.#t}getModule(){if(!this.#n)throw new Error("Couldn't initialize the TonConnect module");return this.#n}async waitForConnection(){let n=this.getInstance();return new Promise((e,c)=>{let i=n.onStatusChange(m=>{!!m?.account.address&&(a(),e(m.account.address))},m=>{a(),c(m)}),s=n.onModalStateChange(m=>{m.closeReason==="action-cancelled"&&(a(),c(new Error("The action was canceled by the user")))}),a=o(()=>{i(),s()},"unsubscribe")})}};var r=new d;function h(){let t=r.getInstance();return new Map([[R.TON,t]])}o(h,"getInstanceOrThrow");var p=z.TON_CONNECT,w={name:"TON Connect",icon:"https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg",extensions:{homepage:"https://docs.ton.org/ecosystem/ton-connect/overview"},properties:[{name:"namespaces",value:{selection:"single",data:[{label:"Ton",value:"Ton",id:"TON",getSupportedChains:t=>D(t)}]}},{name:"signers",value:{getSigners:async()=>u(h())}}]};import{NamespaceBuilder as G}from"@rango-dev/wallets-core";import{builders as V,standardizeAndThrowError as q}from"@rango-dev/wallets-core/namespaces/common";import{builders as b}from"@rango-dev/wallets-core/namespaces/ton";import{utils as B}from"@rango-dev/wallets-core/namespaces/ton";function L(t){return async()=>{let n=t(),e=await n.connectionRestored,{toUserFriendlyAddress:c}=r.getModule(),i;if(e&&n.account?.address)i=c(n.account.address);else{await n.openModal();let s=await r.waitForConnection();i=c(s)}return B.formatAccountsToCAIP([i])}}o(L,"connect");function _(t){return async()=>await t().connectionRestored}o(_,"canEagerConnect");var f={connect:L,canEagerConnect:_};function j(t){let n,e;return[(c,i)=>{let s=t();if(!s)throw new Error("Trying to subscribe to your Ton wallet, but seems its instance is not available.");if(n=o(a=>{a||c.action("disconnect")},"eventCallback"),e=s.onStatusChange(n),i instanceof Error)throw i},(c,i)=>(e&&e(),i)]}o(j,"getDisconnectSubscriber");async function H(t){let n=r.getInstance();n.connected&&await n.disconnect()}o(H,"handleProviderDisconnect");var g={getDisconnectSubscriber:j,handleProviderDisconnect:H};var[J,v]=g.getDisconnectSubscriber(r.getInstance.bind(r)),K=b.connect().action(f.connect(r.getInstance.bind(r))).and(J).or(v).or(q).build(),Q=b.canEagerConnect().action(f.canEagerConnect(r.getInstance.bind(r))).build(),X=V.disconnect().before(g.handleProviderDisconnect).after(v).build(),I=new G("Ton",p).action(K).action(X).action(Q).build();var x=o(()=>new Y(p).init(function(t,n){let[,e]=t.state();async function c(){try{await r.initialize(n),console.debug("[ton] instance initialized.",t),e("installed",!0)}catch(i){console.warn("[ton] failed to initialize TonConnect:",i)}}o(c,"initializeTon"),c()}).config("metadata",w).add("ton",I).build(),"buildProvider");var Vn=o(()=>Z().version("1.0.0",x()).build(),"versions");export{Vn as versions};
|
|
2
|
+
//# sourceMappingURL=mod.js.map
|
package/dist/mod.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/signers/ton.ts", "../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/tonConnectAdapter.ts", "../src/namespaces/ton.ts", "../src/actions/ton.ts", "../src/hooks/ton.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 { defineVersions } from '@rango-dev/wallets-core/utils';\n\nimport { buildProvider } from './provider.js';\n\nexport type { Environments } from './types.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import type { Environments } from './types.js';\n\nimport { ProviderBuilder } from '@rango-dev/wallets-core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { ton } from './namespaces/ton.js';\nimport { tonConnect } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context, environments: Environments) {\n const [, setState] = context.state();\n\n async function initializeTon() {\n try {\n await tonConnect.initialize(environments);\n console.debug('[ton] instance initialized.', context);\n setState('installed', true);\n } catch (err) {\n console.warn('[ton] failed to initialize TonConnect:', err);\n }\n }\n void initializeTon();\n })\n .config('metadata', metadata)\n .add('ton', ton)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@rango-dev/wallets-core';\n\nimport { WalletTypes } from '@rango-dev/wallets-shared';\nimport { type BlockchainMeta, tonBlockchain } from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = WalletTypes.TON_CONNECT;\n\nexport const metadata: ProviderMetadata = {\n name: 'TON Connect',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg',\n extensions: {\n homepage: 'https://docs.ton.org/ecosystem/ton-connect/overview',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'single',\n data: [\n {\n label: 'Ton',\n value: 'Ton',\n id: 'TON',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n tonBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: {\n getSigners: async () => getSigners(getInstanceOrThrow()),\n },\n },\n ],\n};\n", "import type { Provider } from './types.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const tonProvider = getNetworkInstance(provider, Networks.TON);\n const signers = new DefaultSignerFactory();\n const { CustomTonSigner } = await dynamicImportWithRefinedError(\n async () => await import('./signers/ton.js')\n );\n signers.registerSigner(TxType.TON, new CustomTonSigner(tonProvider));\n return signers;\n}\n", "import type { Provider } from './types.js';\n\nimport { Networks } from '@rango-dev/wallets-shared';\n\nimport { TonConnectAdapter } from './tonConnectAdapter.js';\n\nexport const tonConnect = new TonConnectAdapter();\n\nexport function getInstanceOrThrow(): Provider {\n const instance = tonConnect.getInstance();\n\n const instances = new Map([[Networks.TON, instance]]);\n return instances as Provider;\n}\n", "import type { Environments } from './types.js';\nimport type * as TonConnectUIModule from '@tonconnect/ui';\n\nimport { dynamicImportWithRefinedError } from '@rango-dev/wallets-shared';\n\nexport class TonConnectAdapter {\n #tonModule?: typeof TonConnectUIModule;\n #tonConnectInstance?: TonConnectUIModule.TonConnectUI;\n\n async initialize(env?: Environments) {\n if (!env) {\n throw new Error('Environments are not set');\n }\n\n this.#tonModule = await dynamicImportWithRefinedError(\n async () => await import('@tonconnect/ui')\n );\n const { TonConnectUI } = this.#tonModule;\n this.#tonConnectInstance = new TonConnectUI(env);\n }\n\n getInstance() {\n if (!this.#tonConnectInstance) {\n throw new Error(\n \"TonConnect instance isn't initialized. Please ensure you have provided the TonConnect config.\"\n );\n }\n return this.#tonConnectInstance;\n }\n\n getModule() {\n if (!this.#tonModule) {\n throw new Error(\"Couldn't initialize the TonConnect module\");\n }\n return this.#tonModule;\n }\n\n async waitForConnection(): Promise<string> {\n const tonConnectUI = this.getInstance();\n return new Promise((resolve, reject) => {\n const unsubscribeStatusChange = tonConnectUI.onStatusChange(\n (state) => {\n const walletConnected = !!state?.account.address;\n\n if (walletConnected) {\n unsubscribe();\n resolve(state.account.address);\n }\n },\n (error) => {\n unsubscribe();\n reject(error);\n }\n );\n\n const unsubscribeModalStateChange = tonConnectUI.onModalStateChange(\n (modalState) => {\n if (modalState.closeReason === 'action-cancelled') {\n unsubscribe();\n reject(new Error('The action was canceled by the user'));\n }\n }\n );\n\n const unsubscribe = () => {\n unsubscribeStatusChange();\n unsubscribeModalStateChange();\n };\n });\n }\n}\n", "import type { TonActions } from '@rango-dev/wallets-core/namespaces/ton';\n\nimport { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { builders } from '@rango-dev/wallets-core/namespaces/ton';\n\nimport { tonActions } from '../actions/ton.js';\nimport { WALLET_ID } from '../constants.js';\nimport { tonHooks } from '../hooks/ton.js';\nimport { tonConnect } from '../utils.js';\n\nconst [disconnectSubscriber, disconnectCleanUp] =\n tonHooks.getDisconnectSubscriber(tonConnect.getInstance.bind(tonConnect));\n\nconst connect = builders\n .connect()\n .action(tonActions.connect(tonConnect.getInstance.bind(tonConnect)))\n .and(disconnectSubscriber)\n .or(disconnectCleanUp)\n .or(standardizeAndThrowError)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(tonActions.canEagerConnect(tonConnect.getInstance.bind(tonConnect)))\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<TonActions>()\n .before(tonHooks.handleProviderDisconnect)\n .after(disconnectCleanUp)\n .build();\n\nconst ton = new NamespaceBuilder<TonActions>('Ton', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { ton };\n", "import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';\nimport type { TonConnectUI } from '@tonconnect/ui';\n\nimport { type TonActions, utils } from '@rango-dev/wallets-core/namespaces/ton';\n\nimport { tonConnect } from '../utils.js';\n\nexport function connect(\n getInstance: () => TonConnectUI\n): FunctionWithContext<TonActions['connect'], Context> {\n return async () => {\n const tonInstance = getInstance();\n const connectionRestored = await tonInstance.connectionRestored;\n const { toUserFriendlyAddress } = tonConnect.getModule();\n let userFriendlyAddress: string;\n\n if (connectionRestored && tonInstance.account?.address) {\n userFriendlyAddress = toUserFriendlyAddress(tonInstance.account.address);\n } else {\n await tonInstance.openModal();\n const result = await tonConnect.waitForConnection();\n userFriendlyAddress = toUserFriendlyAddress(result);\n }\n\n return utils.formatAccountsToCAIP([userFriendlyAddress]);\n };\n}\n\nexport function canEagerConnect(\n getInstance: () => TonConnectUI\n): FunctionWithContext<TonActions['canEagerConnect'], Context> {\n return async () => {\n const tonConnectUI = getInstance();\n const connectionRestored = await tonConnectUI.connectionRestored;\n return connectionRestored;\n };\n}\n\nexport const tonActions = { connect, canEagerConnect };\n", "import type {\n AnyFunction,\n Context,\n Subscriber,\n SubscriberCleanUp,\n} from '@rango-dev/wallets-core';\nimport type { TonActions } from '@rango-dev/wallets-core/namespaces/ton';\nimport type {\n ConnectedWallet,\n ITonConnect,\n TonConnectUI,\n} from '@tonconnect/ui';\n\nimport { tonConnect } from '../utils.js';\n\nfunction getDisconnectSubscriber(\n instance: () => TonConnectUI\n): [Subscriber<TonActions>, SubscriberCleanUp<TonActions>] {\n let eventCallback: AnyFunction;\n let unsubscribe: ReturnType<ITonConnect['onStatusChange']>;\n\n // subscriber can be passed to `or`, it will get the error and should rethrow error to pass the error to next `or` or throw error.\n return [\n (context, err) => {\n const tonInstance = instance();\n\n if (!tonInstance) {\n throw new Error(\n 'Trying to subscribe to your Ton wallet, but seems its instance is not available.'\n );\n }\n\n eventCallback = (wallet: null | ConnectedWallet) => {\n if (!wallet) {\n context.action('disconnect');\n }\n };\n\n unsubscribe = tonInstance.onStatusChange(eventCallback);\n\n if (err instanceof Error) {\n throw err;\n }\n },\n (_, err) => {\n if (unsubscribe) {\n unsubscribe();\n }\n\n return err;\n },\n ];\n}\n\nexport async function handleProviderDisconnect(_: Context) {\n const tonInstance = tonConnect.getInstance();\n if (tonInstance.connected) {\n await tonInstance.disconnect();\n }\n}\n\nexport const tonHooks = { getDisconnectSubscriber, handleProviderDisconnect };\n"],
|
|
5
|
+
"mappings": "gLAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAGA,OAAS,QAAAC,MAAY,YACrB,OAAS,SAAAC,MAAa,iBACtB,OAAS,eAAAC,MAAmB,cAL5B,IAOaH,EAPbI,EAAAC,EAAA,kBAOaL,EAAN,KAA+D,CAPtE,MAOsE,CAAAM,EAAA,wBAC5D,SAER,YAAYC,EAAwB,CAClC,KAAK,SAAWA,CAClB,CAEA,MAAM,aAA+B,CACnC,MAAMJ,EAAY,mBAAmB,aAAa,CACpD,CAEA,MAAM,cAAcK,EAA+C,CACjE,GAAM,CAAE,WAAAC,EAAY,KAAAC,EAAM,GAAGC,CAAgB,EAAIH,EAC3CI,EAAS,MAAM,KAAK,SAAS,gBAAgB,CACjD,GAAGD,EACH,QAAST,EAAM,OACjB,CAAC,EAGD,MAAO,CAAE,KADID,EAAK,WAAWW,EAAO,GAAG,EAAE,KAAK,EAAE,SAAS,KAAK,CAChD,CAChB,CACF,IC5BA,OAAS,kBAAAC,MAAsB,gCCE/B,OAAS,mBAAAC,MAAuB,0BCAhC,OAAS,eAAAC,MAAmB,4BAC5B,OAA8B,iBAAAC,MAAqB,cCAnD,OACE,iCAAAC,EACA,sBAAAC,EACA,YAAAC,MACK,4BACP,OAAS,wBAAAC,EAAsB,mBAAmBC,MAAc,cAEhE,eAAOC,EACLC,EACwB,CACxB,IAAMC,EAAcC,EAAmBF,EAAUG,EAAS,GAAG,EACvDC,EAAU,IAAIC,EACd,CAAE,gBAAAC,CAAgB,EAAI,MAAMC,EAChC,SAAY,KAAM,oCACpB,EACA,OAAAH,EAAQ,eAAeI,EAAO,IAAK,IAAIF,EAAgBL,CAAW,CAAC,EAC5DG,CACT,CAV8BK,EAAAV,EAAA,cCR9B,OAAS,YAAAW,MAAgB,4BCCzB,OAAS,iCAAAC,MAAqC,4BAEvC,IAAMC,EAAN,KAAwB,CAL/B,MAK+B,CAAAC,EAAA,0BAC7BC,GACAC,GAEA,MAAM,WAAWC,EAAoB,CACnC,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,0BAA0B,EAG5C,KAAKF,GAAa,MAAMG,EACtB,SAAY,KAAM,QAAO,gBAAgB,CAC3C,EACA,GAAM,CAAE,aAAAC,CAAa,EAAI,KAAKJ,GAC9B,KAAKC,GAAsB,IAAIG,EAAaF,CAAG,CACjD,CAEA,aAAc,CACZ,GAAI,CAAC,KAAKD,GACR,MAAM,IAAI,MACR,+FACF,EAEF,OAAO,KAAKA,EACd,CAEA,WAAY,CACV,GAAI,CAAC,KAAKD,GACR,MAAM,IAAI,MAAM,2CAA2C,EAE7D,OAAO,KAAKA,EACd,CAEA,MAAM,mBAAqC,CACzC,IAAMK,EAAe,KAAK,YAAY,EACtC,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,IAAMC,EAA0BH,EAAa,eAC1CI,GAAU,CACe,CAAC,CAACA,GAAO,QAAQ,UAGvCC,EAAY,EACZJ,EAAQG,EAAM,QAAQ,OAAO,EAEjC,EACCE,GAAU,CACTD,EAAY,EACZH,EAAOI,CAAK,CACd,CACF,EAEMC,EAA8BP,EAAa,mBAC9CQ,GAAe,CACVA,EAAW,cAAgB,qBAC7BH,EAAY,EACZH,EAAO,IAAI,MAAM,qCAAqC,CAAC,EAE3D,CACF,EAEMG,EAAcX,EAAA,IAAM,CACxBS,EAAwB,EACxBI,EAA4B,CAC9B,EAHoB,cAItB,CAAC,CACH,CACF,EDhEO,IAAME,EAAa,IAAIC,EAEvB,SAASC,GAA+B,CAC7C,IAAMC,EAAWH,EAAW,YAAY,EAGxC,OADkB,IAAI,IAAI,CAAC,CAACI,EAAS,IAAKD,CAAQ,CAAC,CAAC,CAEtD,CALgBE,EAAAH,EAAA,sBFAT,IAAMI,EAAYC,EAAY,YAExBC,EAA6B,CACxC,KAAM,cACN,KAAM,+HACN,WAAY,CACV,SAAU,qDACZ,EACA,WAAY,CACV,CACE,KAAM,aACN,MAAO,CACL,UAAW,SACX,KAAM,CACJ,CACE,MAAO,MACP,MAAO,MACP,GAAI,MACJ,mBAAqBC,GACnBC,EAAcD,CAAc,CAChC,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,MAAO,CACL,WAAY,SAAYE,EAAWC,EAAmB,CAAC,CACzD,CACF,CACF,CACF,EIrCA,OAAS,oBAAAC,MAAwB,0BACjC,OACE,YAAYC,EACZ,4BAAAC,MACK,4CACP,OAAS,YAAAC,MAAgB,yCCJzB,OAA0B,SAAAC,MAAa,yCAIhC,SAASC,EACdC,EACqD,CACrD,MAAO,UAAY,CACjB,IAAMC,EAAcD,EAAY,EAC1BE,EAAqB,MAAMD,EAAY,mBACvC,CAAE,sBAAAE,CAAsB,EAAIC,EAAW,UAAU,EACnDC,EAEJ,GAAIH,GAAsBD,EAAY,SAAS,QAC7CI,EAAsBF,EAAsBF,EAAY,QAAQ,OAAO,MAClE,CACL,MAAMA,EAAY,UAAU,EAC5B,IAAMK,EAAS,MAAMF,EAAW,kBAAkB,EAClDC,EAAsBF,EAAsBG,CAAM,CACpD,CAEA,OAAOC,EAAM,qBAAqB,CAACF,CAAmB,CAAC,CACzD,CACF,CAnBgBG,EAAAT,EAAA,WAqBT,SAASU,EACdT,EAC6D,CAC7D,MAAO,UAEsB,MADNA,EAAY,EACa,kBAGlD,CARgBQ,EAAAC,EAAA,mBAUT,IAAMC,EAAa,CAAE,QAAAX,EAAS,gBAAAU,CAAgB,ECvBrD,SAASE,EACPC,EACyD,CACzD,IAAIC,EACAC,EAGJ,MAAO,CACL,CAACC,EAASC,IAAQ,CAChB,IAAMC,EAAcL,EAAS,EAE7B,GAAI,CAACK,EACH,MAAM,IAAI,MACR,kFACF,EAWF,GARAJ,EAAgBK,EAACC,GAAmC,CAC7CA,GACHJ,EAAQ,OAAO,YAAY,CAE/B,EAJgB,iBAMhBD,EAAcG,EAAY,eAAeJ,CAAa,EAElDG,aAAe,MACjB,MAAMA,CAEV,EACA,CAACI,EAAGJ,KACEF,GACFA,EAAY,EAGPE,EAEX,CACF,CArCSE,EAAAP,EAAA,2BAuCT,eAAsBU,EAAyBD,EAAY,CACzD,IAAMH,EAAcK,EAAW,YAAY,EACvCL,EAAY,WACd,MAAMA,EAAY,WAAW,CAEjC,CALsBC,EAAAG,EAAA,4BAOf,IAAME,EAAW,CAAE,wBAAAZ,EAAyB,yBAAAU,CAAyB,EF/C5E,GAAM,CAACG,EAAsBC,CAAiB,EAC5CC,EAAS,wBAAwBC,EAAW,YAAY,KAAKA,CAAU,CAAC,EAEpEC,EAAUC,EACb,QAAQ,EACR,OAAOC,EAAW,QAAQH,EAAW,YAAY,KAAKA,CAAU,CAAC,CAAC,EAClE,IAAIH,CAAoB,EACxB,GAAGC,CAAiB,EACpB,GAAGM,CAAwB,EAC3B,MAAM,EAEHC,EAAkBH,EACrB,gBAAgB,EAChB,OAAOC,EAAW,gBAAgBH,EAAW,YAAY,KAAKA,CAAU,CAAC,CAAC,EAC1E,MAAM,EAEHM,EAAaC,EAChB,WAAuB,EACvB,OAAOR,EAAS,wBAAwB,EACxC,MAAMD,CAAiB,EACvB,MAAM,EAEHU,EAAM,IAAIC,EAA6B,MAAOC,CAAS,EAC1D,OAAOT,CAAO,EACd,OAAOK,CAAU,EACjB,OAAOD,CAAe,EACtB,MAAM,ELhCT,IAAMM,EAAgBC,EAAA,IACpB,IAAIC,EAAgBC,CAAS,EAC1B,KAAK,SAAUC,EAASC,EAA4B,CACnD,GAAM,CAAC,CAAEC,CAAQ,EAAIF,EAAQ,MAAM,EAEnC,eAAeG,GAAgB,CAC7B,GAAI,CACF,MAAMC,EAAW,WAAWH,CAAY,EACxC,QAAQ,MAAM,8BAA+BD,CAAO,EACpDE,EAAS,YAAa,EAAI,CAC5B,OAASG,EAAK,CACZ,QAAQ,KAAK,yCAA0CA,CAAG,CAC5D,CACF,CAReR,EAAAM,EAAA,iBASVA,EAAc,CACrB,CAAC,EACA,OAAO,WAAYG,CAAQ,EAC3B,IAAI,MAAOC,CAAG,EACd,MAAM,EAlBW,iBDFtB,IAAMC,GAAWC,EAAA,IACfC,EAAe,EAAE,QAAQ,QAASC,EAAc,CAAC,EAAE,MAAM,EAD1C",
|
|
6
|
+
"names": ["ton_exports", "__export", "CustomTonSigner", "Cell", "CHAIN", "SignerError", "init_ton", "__esmMin", "__name", "provider", "tx", "blockChain", "type", "txObjectForSign", "result", "defineVersions", "ProviderBuilder", "WalletTypes", "tonBlockchain", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "getSigners", "provider", "tonProvider", "getNetworkInstance", "Networks", "signers", "DefaultSignerFactory", "CustomTonSigner", "dynamicImportWithRefinedError", "TxType", "__name", "Networks", "dynamicImportWithRefinedError", "TonConnectAdapter", "__name", "#tonModule", "#tonConnectInstance", "env", "dynamicImportWithRefinedError", "TonConnectUI", "tonConnectUI", "resolve", "reject", "unsubscribeStatusChange", "state", "unsubscribe", "error", "unsubscribeModalStateChange", "modalState", "tonConnect", "TonConnectAdapter", "getInstanceOrThrow", "instance", "Networks", "__name", "WALLET_ID", "WalletTypes", "metadata", "allBlockchains", "tonBlockchain", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "builders", "utils", "connect", "getInstance", "tonInstance", "connectionRestored", "toUserFriendlyAddress", "tonConnect", "userFriendlyAddress", "result", "utils", "__name", "canEagerConnect", "tonActions", "getDisconnectSubscriber", "instance", "eventCallback", "unsubscribe", "context", "err", "tonInstance", "__name", "wallet", "_", "handleProviderDisconnect", "tonConnect", "tonHooks", "disconnectSubscriber", "disconnectCleanUp", "tonHooks", "tonConnect", "connect", "builders", "tonActions", "standardizeAndThrowError", "canEagerConnect", "disconnect", "commonBuilders", "ton", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "environments", "setState", "initializeTon", "tonConnect", "err", "metadata", "ton", "versions", "__name", "defineVersions", "buildProvider"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/namespaces/ton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAoCzE,QAAA,MAAM,GAAG,gEAIC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/
|
|
1
|
+
{"inputs":{"src/signers/ton.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":703,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/ton.ts","kind":"dynamic-import","original":"./signers/ton.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/tonConnectAdapter.ts":{"bytes":1971,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":399,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/tonConnectAdapter.ts","kind":"import-statement","original":"./tonConnectAdapter.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":1106,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/actions/ton.ts":{"bytes":1349,"imports":[{"path":"@rango-dev/wallets-core/namespaces/ton","kind":"import-statement","external":true},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/ton.ts":{"bytes":1555,"imports":[{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/ton.ts":{"bytes":1292,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/ton","kind":"import-statement","external":true},{"path":"src/actions/ton.ts","kind":"import-statement","original":"../actions/ton.js"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/hooks/ton.ts","kind":"import-statement","original":"../hooks/ton.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":867,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/ton.ts","kind":"import-statement","original":"./namespaces/ton.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":269,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":17346},"dist/mod.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-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","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":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@tonconnect/ui","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/ton","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/ton","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/signers/ton.ts":{"bytesInOutput":502},"src/mod.ts":{"bytesInOutput":121},"src/provider.ts":{"bytesInOutput":379},"src/constants.ts":{"bytesInOutput":532},"src/signer.ts":{"bytesInOutput":369},"src/utils.ts":{"bytesInOutput":154},"src/tonConnectAdapter.ts":{"bytesInOutput":883},"src/namespaces/ton.ts":{"bytesInOutput":567},"src/actions/ton.ts":{"bytesInOutput":458},"src/hooks/ton.ts":{"bytesInOutput":477}},"bytes":4674}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,aAAa,kDAkBP,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/signer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
2
|
import type { SignerFactory } from 'rango-types';
|
|
3
|
-
export default function getSigners(provider:
|
|
3
|
+
export default function getSigners(provider: Provider): Promise<SignerFactory>;
|
|
4
4
|
//# sourceMappingURL=signer.d.ts.map
|
package/dist/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAQxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/signers/ton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMjE,qBAAa,eAAgB,YAAW,aAAa,CAAC,cAAc,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAe;gBAEnB,QAAQ,EAAE,YAAY;IAI5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAUnE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Environments } from './types.js';
|
|
2
|
+
import type * as TonConnectUIModule from '@tonconnect/ui';
|
|
3
|
+
export declare class TonConnectAdapter {
|
|
4
|
+
#private;
|
|
5
|
+
initialize(env?: Environments): Promise<void>;
|
|
6
|
+
getInstance(): TonConnectUIModule.TonConnectUI;
|
|
7
|
+
getModule(): typeof TonConnectUIModule;
|
|
8
|
+
waitForConnection(): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=tonConnectAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonConnectAdapter.d.ts","sourceRoot":"","sources":["../src/tonConnectAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,KAAK,kBAAkB,MAAM,gBAAgB,CAAC;AAI1D,qBAAa,iBAAiB;;IAItB,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY;IAYnC,WAAW;IASX,SAAS;IAOH,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CAiC3C"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type { TonConnectUI, TonConnectUiOptionsWithManifest } from '@tonconnect/ui';
|
|
3
|
+
export type Environments = TonConnectUiOptionsWithManifest;
|
|
4
|
+
type ProviderObject = {
|
|
5
|
+
[LegacyNetworks.TON]: TonConnectUI;
|
|
6
|
+
};
|
|
7
|
+
export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
|
|
8
|
+
export {};
|
|
4
9
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EACV,YAAY,EACZ,+BAA+B,EAChC,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAE3D,KAAK,cAAc,GAAG;IACpB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,eAAO,MAAM,UAAU,mBAA0B,CAAC;AAElD,wBAAgB,kBAAkB,IAAI,QAAQ,CAK7C"}
|
package/package.json
CHANGED
|
@@ -1,34 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rango-dev/provider-tonconnect",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.2-next.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"source": "./src/
|
|
7
|
-
"main": "./dist/
|
|
6
|
+
"source": "./src/mod.ts",
|
|
7
|
+
"main": "./dist/mod.js",
|
|
8
8
|
"exports": {
|
|
9
|
-
".":
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
|
-
"default": "./dist/index.js"
|
|
12
|
-
}
|
|
9
|
+
".": "./dist/mod.js"
|
|
13
10
|
},
|
|
14
|
-
"typings": "dist/
|
|
11
|
+
"typings": "dist/mod.d.ts",
|
|
15
12
|
"files": [
|
|
16
13
|
"dist",
|
|
17
14
|
"src"
|
|
18
15
|
],
|
|
19
16
|
"scripts": {
|
|
20
|
-
"build": "node ../../scripts/build/command.mjs --path wallets/provider-tonconnect",
|
|
17
|
+
"build": "node ../../scripts/build/command.mjs --path wallets/provider-tonconnect --inputs src/mod.ts",
|
|
21
18
|
"ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
|
|
22
19
|
"clean": "rimraf dist",
|
|
23
20
|
"format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
|
|
24
21
|
"lint": "eslint \"**/*.{ts,tsx}\""
|
|
25
22
|
},
|
|
26
23
|
"dependencies": {
|
|
27
|
-
"@rango-dev/wallets-shared": "^0.59.
|
|
24
|
+
"@rango-dev/wallets-shared": "^0.59.2-next.0",
|
|
28
25
|
"@ton/core": "^0.59.0",
|
|
29
26
|
"@ton/crypto": "^3.3.0",
|
|
30
27
|
"@tonconnect/ui": "^2.0.9",
|
|
31
|
-
"rango-types": "^0.
|
|
28
|
+
"rango-types": "^0.3.0"
|
|
32
29
|
},
|
|
33
30
|
"publishConfig": {
|
|
34
31
|
"access": "public"
|
package/readme.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
1
|
# @rango-dev/provider-tonconnect
|
|
2
|
+
TonConnect Wallet integration for hub.
|
|
3
|
+
[Homepage](https://ton.org/) | [Docs](https://docs.ton.org/ecosystem/ton-connect/overview)
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
More about implementation status can be found [here](../readme.md).
|
|
6
|
+
|
|
7
|
+
## Implementation notes/limitations
|
|
8
|
+
|
|
9
|
+
#### ⚠️ Initialization
|
|
10
|
+
You should provide TonConnect configs in configs.walletOptions[WalletTypes.TON_CONNECT] (which equals configs.walletOptions.tonconnect)
|
|
11
|
+
|
|
12
|
+
### Feature
|
|
13
|
+
|
|
14
|
+
#### ❌ Switch Account
|
|
15
|
+
|
|
16
|
+
Ton wallets don't emit account change events: https://github.com/ton-blockchain/ton-connect/blob/main/wallet-guidelines.md
|
|
17
|
+
|
|
18
|
+
#### ⚠️ Disconnect
|
|
19
|
+
|
|
20
|
+
Some Ton wallets like **Tonkeeper** don't emit disconnect events
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
More wallet information can be found in [readme.md](../readme.md).
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';
|
|
2
|
+
import type { TonConnectUI } from '@tonconnect/ui';
|
|
3
|
+
|
|
4
|
+
import { type TonActions, utils } from '@rango-dev/wallets-core/namespaces/ton';
|
|
5
|
+
|
|
6
|
+
import { tonConnect } from '../utils.js';
|
|
7
|
+
|
|
8
|
+
export function connect(
|
|
9
|
+
getInstance: () => TonConnectUI
|
|
10
|
+
): FunctionWithContext<TonActions['connect'], Context> {
|
|
11
|
+
return async () => {
|
|
12
|
+
const tonInstance = getInstance();
|
|
13
|
+
const connectionRestored = await tonInstance.connectionRestored;
|
|
14
|
+
const { toUserFriendlyAddress } = tonConnect.getModule();
|
|
15
|
+
let userFriendlyAddress: string;
|
|
16
|
+
|
|
17
|
+
if (connectionRestored && tonInstance.account?.address) {
|
|
18
|
+
userFriendlyAddress = toUserFriendlyAddress(tonInstance.account.address);
|
|
19
|
+
} else {
|
|
20
|
+
await tonInstance.openModal();
|
|
21
|
+
const result = await tonConnect.waitForConnection();
|
|
22
|
+
userFriendlyAddress = toUserFriendlyAddress(result);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return utils.formatAccountsToCAIP([userFriendlyAddress]);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function canEagerConnect(
|
|
30
|
+
getInstance: () => TonConnectUI
|
|
31
|
+
): FunctionWithContext<TonActions['canEagerConnect'], Context> {
|
|
32
|
+
return async () => {
|
|
33
|
+
const tonConnectUI = getInstance();
|
|
34
|
+
const connectionRestored = await tonConnectUI.connectionRestored;
|
|
35
|
+
return connectionRestored;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const tonActions = { connect, canEagerConnect };
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ProviderMetadata } from '@rango-dev/wallets-core';
|
|
2
|
+
|
|
3
|
+
import { WalletTypes } from '@rango-dev/wallets-shared';
|
|
4
|
+
import { type BlockchainMeta, tonBlockchain } from 'rango-types';
|
|
5
|
+
|
|
6
|
+
import getSigners from './signer.js';
|
|
7
|
+
import { getInstanceOrThrow } from './utils.js';
|
|
8
|
+
|
|
9
|
+
export const WALLET_ID = WalletTypes.TON_CONNECT;
|
|
10
|
+
|
|
11
|
+
export const metadata: ProviderMetadata = {
|
|
12
|
+
name: 'TON Connect',
|
|
13
|
+
icon: 'https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg',
|
|
14
|
+
extensions: {
|
|
15
|
+
homepage: 'https://docs.ton.org/ecosystem/ton-connect/overview',
|
|
16
|
+
},
|
|
17
|
+
properties: [
|
|
18
|
+
{
|
|
19
|
+
name: 'namespaces',
|
|
20
|
+
value: {
|
|
21
|
+
selection: 'single',
|
|
22
|
+
data: [
|
|
23
|
+
{
|
|
24
|
+
label: 'Ton',
|
|
25
|
+
value: 'Ton',
|
|
26
|
+
id: 'TON',
|
|
27
|
+
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
28
|
+
tonBlockchain(allBlockchains),
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'signers',
|
|
35
|
+
value: {
|
|
36
|
+
getSigners: async () => getSigners(getInstanceOrThrow()),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
package/src/hooks/ton.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AnyFunction,
|
|
3
|
+
Context,
|
|
4
|
+
Subscriber,
|
|
5
|
+
SubscriberCleanUp,
|
|
6
|
+
} from '@rango-dev/wallets-core';
|
|
7
|
+
import type { TonActions } from '@rango-dev/wallets-core/namespaces/ton';
|
|
8
|
+
import type {
|
|
9
|
+
ConnectedWallet,
|
|
10
|
+
ITonConnect,
|
|
11
|
+
TonConnectUI,
|
|
12
|
+
} from '@tonconnect/ui';
|
|
13
|
+
|
|
14
|
+
import { tonConnect } from '../utils.js';
|
|
15
|
+
|
|
16
|
+
function getDisconnectSubscriber(
|
|
17
|
+
instance: () => TonConnectUI
|
|
18
|
+
): [Subscriber<TonActions>, SubscriberCleanUp<TonActions>] {
|
|
19
|
+
let eventCallback: AnyFunction;
|
|
20
|
+
let unsubscribe: ReturnType<ITonConnect['onStatusChange']>;
|
|
21
|
+
|
|
22
|
+
// subscriber can be passed to `or`, it will get the error and should rethrow error to pass the error to next `or` or throw error.
|
|
23
|
+
return [
|
|
24
|
+
(context, err) => {
|
|
25
|
+
const tonInstance = instance();
|
|
26
|
+
|
|
27
|
+
if (!tonInstance) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
'Trying to subscribe to your Ton wallet, but seems its instance is not available.'
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
eventCallback = (wallet: null | ConnectedWallet) => {
|
|
34
|
+
if (!wallet) {
|
|
35
|
+
context.action('disconnect');
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
unsubscribe = tonInstance.onStatusChange(eventCallback);
|
|
40
|
+
|
|
41
|
+
if (err instanceof Error) {
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
(_, err) => {
|
|
46
|
+
if (unsubscribe) {
|
|
47
|
+
unsubscribe();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return err;
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export async function handleProviderDisconnect(_: Context) {
|
|
56
|
+
const tonInstance = tonConnect.getInstance();
|
|
57
|
+
if (tonInstance.connected) {
|
|
58
|
+
await tonInstance.disconnect();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const tonHooks = { getDisconnectSubscriber, handleProviderDisconnect };
|
package/src/mod.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { defineVersions } from '@rango-dev/wallets-core/utils';
|
|
2
|
+
|
|
3
|
+
import { buildProvider } from './provider.js';
|
|
4
|
+
|
|
5
|
+
export type { Environments } from './types.js';
|
|
6
|
+
|
|
7
|
+
const versions = () =>
|
|
8
|
+
defineVersions().version('1.0.0', buildProvider()).build();
|
|
9
|
+
|
|
10
|
+
export { versions };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { TonActions } from '@rango-dev/wallets-core/namespaces/ton';
|
|
2
|
+
|
|
3
|
+
import { NamespaceBuilder } from '@rango-dev/wallets-core';
|
|
4
|
+
import {
|
|
5
|
+
builders as commonBuilders,
|
|
6
|
+
standardizeAndThrowError,
|
|
7
|
+
} from '@rango-dev/wallets-core/namespaces/common';
|
|
8
|
+
import { builders } from '@rango-dev/wallets-core/namespaces/ton';
|
|
9
|
+
|
|
10
|
+
import { tonActions } from '../actions/ton.js';
|
|
11
|
+
import { WALLET_ID } from '../constants.js';
|
|
12
|
+
import { tonHooks } from '../hooks/ton.js';
|
|
13
|
+
import { tonConnect } from '../utils.js';
|
|
14
|
+
|
|
15
|
+
const [disconnectSubscriber, disconnectCleanUp] =
|
|
16
|
+
tonHooks.getDisconnectSubscriber(tonConnect.getInstance.bind(tonConnect));
|
|
17
|
+
|
|
18
|
+
const connect = builders
|
|
19
|
+
.connect()
|
|
20
|
+
.action(tonActions.connect(tonConnect.getInstance.bind(tonConnect)))
|
|
21
|
+
.and(disconnectSubscriber)
|
|
22
|
+
.or(disconnectCleanUp)
|
|
23
|
+
.or(standardizeAndThrowError)
|
|
24
|
+
.build();
|
|
25
|
+
|
|
26
|
+
const canEagerConnect = builders
|
|
27
|
+
.canEagerConnect()
|
|
28
|
+
.action(tonActions.canEagerConnect(tonConnect.getInstance.bind(tonConnect)))
|
|
29
|
+
.build();
|
|
30
|
+
|
|
31
|
+
const disconnect = commonBuilders
|
|
32
|
+
.disconnect<TonActions>()
|
|
33
|
+
.before(tonHooks.handleProviderDisconnect)
|
|
34
|
+
.after(disconnectCleanUp)
|
|
35
|
+
.build();
|
|
36
|
+
|
|
37
|
+
const ton = new NamespaceBuilder<TonActions>('Ton', WALLET_ID)
|
|
38
|
+
.action(connect)
|
|
39
|
+
.action(disconnect)
|
|
40
|
+
.action(canEagerConnect)
|
|
41
|
+
.build();
|
|
42
|
+
|
|
43
|
+
export { ton };
|
package/src/provider.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Environments } from './types.js';
|
|
2
|
+
|
|
3
|
+
import { ProviderBuilder } from '@rango-dev/wallets-core';
|
|
4
|
+
|
|
5
|
+
import { metadata, WALLET_ID } from './constants.js';
|
|
6
|
+
import { ton } from './namespaces/ton.js';
|
|
7
|
+
import { tonConnect } from './utils.js';
|
|
8
|
+
|
|
9
|
+
const buildProvider = () =>
|
|
10
|
+
new ProviderBuilder(WALLET_ID)
|
|
11
|
+
.init(function (context, environments: Environments) {
|
|
12
|
+
const [, setState] = context.state();
|
|
13
|
+
|
|
14
|
+
async function initializeTon() {
|
|
15
|
+
try {
|
|
16
|
+
await tonConnect.initialize(environments);
|
|
17
|
+
console.debug('[ton] instance initialized.', context);
|
|
18
|
+
setState('installed', true);
|
|
19
|
+
} catch (err) {
|
|
20
|
+
console.warn('[ton] failed to initialize TonConnect:', err);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
void initializeTon();
|
|
24
|
+
})
|
|
25
|
+
.config('metadata', metadata)
|
|
26
|
+
.add('ton', ton)
|
|
27
|
+
.build();
|
|
28
|
+
|
|
29
|
+
export { buildProvider };
|
package/src/signer.ts
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
2
|
import type { SignerFactory } from 'rango-types';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
dynamicImportWithRefinedError,
|
|
6
|
+
getNetworkInstance,
|
|
7
|
+
Networks,
|
|
8
|
+
} from '@rango-dev/wallets-shared';
|
|
5
9
|
import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
|
|
6
10
|
|
|
7
11
|
export default async function getSigners(
|
|
8
|
-
provider:
|
|
12
|
+
provider: Provider
|
|
9
13
|
): Promise<SignerFactory> {
|
|
14
|
+
const tonProvider = getNetworkInstance(provider, Networks.TON);
|
|
10
15
|
const signers = new DefaultSignerFactory();
|
|
11
16
|
const { CustomTonSigner } = await dynamicImportWithRefinedError(
|
|
12
|
-
async () => await import('./ton
|
|
17
|
+
async () => await import('./signers/ton.js')
|
|
13
18
|
);
|
|
14
|
-
signers.registerSigner(TxType.TON, new CustomTonSigner(
|
|
19
|
+
signers.registerSigner(TxType.TON, new CustomTonSigner(tonProvider));
|
|
15
20
|
return signers;
|
|
16
21
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { Environments } from './types.js';
|
|
2
|
+
import type * as TonConnectUIModule from '@tonconnect/ui';
|
|
3
|
+
|
|
4
|
+
import { dynamicImportWithRefinedError } from '@rango-dev/wallets-shared';
|
|
5
|
+
|
|
6
|
+
export class TonConnectAdapter {
|
|
7
|
+
#tonModule?: typeof TonConnectUIModule;
|
|
8
|
+
#tonConnectInstance?: TonConnectUIModule.TonConnectUI;
|
|
9
|
+
|
|
10
|
+
async initialize(env?: Environments) {
|
|
11
|
+
if (!env) {
|
|
12
|
+
throw new Error('Environments are not set');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
this.#tonModule = await dynamicImportWithRefinedError(
|
|
16
|
+
async () => await import('@tonconnect/ui')
|
|
17
|
+
);
|
|
18
|
+
const { TonConnectUI } = this.#tonModule;
|
|
19
|
+
this.#tonConnectInstance = new TonConnectUI(env);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getInstance() {
|
|
23
|
+
if (!this.#tonConnectInstance) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
"TonConnect instance isn't initialized. Please ensure you have provided the TonConnect config."
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return this.#tonConnectInstance;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getModule() {
|
|
32
|
+
if (!this.#tonModule) {
|
|
33
|
+
throw new Error("Couldn't initialize the TonConnect module");
|
|
34
|
+
}
|
|
35
|
+
return this.#tonModule;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async waitForConnection(): Promise<string> {
|
|
39
|
+
const tonConnectUI = this.getInstance();
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const unsubscribeStatusChange = tonConnectUI.onStatusChange(
|
|
42
|
+
(state) => {
|
|
43
|
+
const walletConnected = !!state?.account.address;
|
|
44
|
+
|
|
45
|
+
if (walletConnected) {
|
|
46
|
+
unsubscribe();
|
|
47
|
+
resolve(state.account.address);
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
(error) => {
|
|
51
|
+
unsubscribe();
|
|
52
|
+
reject(error);
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
const unsubscribeModalStateChange = tonConnectUI.onModalStateChange(
|
|
57
|
+
(modalState) => {
|
|
58
|
+
if (modalState.closeReason === 'action-cancelled') {
|
|
59
|
+
unsubscribe();
|
|
60
|
+
reject(new Error('The action was canceled by the user'));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
const unsubscribe = () => {
|
|
66
|
+
unsubscribeStatusChange();
|
|
67
|
+
unsubscribeModalStateChange();
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type {
|
|
3
|
+
TonConnectUI,
|
|
4
|
+
TonConnectUiOptionsWithManifest,
|
|
5
|
+
} from '@tonconnect/ui';
|
|
6
|
+
|
|
7
|
+
export type Environments = TonConnectUiOptionsWithManifest;
|
|
8
|
+
|
|
9
|
+
type ProviderObject = {
|
|
10
|
+
[LegacyNetworks.TON]: TonConnectUI;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type Provider = Map<
|
|
14
|
+
keyof ProviderObject,
|
|
15
|
+
ProviderObject[keyof ProviderObject]
|
|
16
|
+
>;
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
|
+
|
|
3
|
+
import { Networks } from '@rango-dev/wallets-shared';
|
|
4
|
+
|
|
5
|
+
import { TonConnectAdapter } from './tonConnectAdapter.js';
|
|
6
|
+
|
|
7
|
+
export const tonConnect = new TonConnectAdapter();
|
|
8
|
+
|
|
9
|
+
export function getInstanceOrThrow(): Provider {
|
|
10
|
+
const instance = tonConnect.getInstance();
|
|
11
|
+
|
|
12
|
+
const instances = new Map([[Networks.TON, instance]]);
|
|
13
|
+
return instances as Provider;
|
|
14
|
+
}
|
package/dist/helpers.d.ts
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import type { TonConnectUI } from '@tonconnect/ui';
|
|
2
|
-
export declare function getTonConnectUIModule(): Promise<{
|
|
3
|
-
default: typeof import("@tonconnect/ui");
|
|
4
|
-
THEME: typeof import("@tonconnect/ui").THEME;
|
|
5
|
-
TonConnectUI: typeof TonConnectUI;
|
|
6
|
-
TonConnectUIError: typeof import("@tonconnect/ui").TonConnectUIError;
|
|
7
|
-
createConnectionCompletedEvent(version: import("@tonconnect/sdk").Version, wallet: import("@tonconnect/sdk").Wallet | null): import("@tonconnect/sdk").ConnectionCompletedEvent;
|
|
8
|
-
createConnectionErrorEvent(version: import("@tonconnect/sdk").Version, error_message: string, errorCode: import("@tonconnect/sdk").CONNECT_EVENT_ERROR_CODES | void): import("@tonconnect/sdk").ConnectionErrorEvent;
|
|
9
|
-
createConnectionRestoringCompletedEvent(version: import("@tonconnect/sdk").Version, wallet: import("@tonconnect/sdk").Wallet | null): import("@tonconnect/sdk").ConnectionRestoringCompletedEvent;
|
|
10
|
-
createConnectionRestoringErrorEvent(version: import("@tonconnect/sdk").Version, errorMessage: string): import("@tonconnect/sdk").ConnectionRestoringErrorEvent;
|
|
11
|
-
createConnectionRestoringStartedEvent(version: import("@tonconnect/sdk").Version): import("@tonconnect/sdk").ConnectionRestoringStartedEvent;
|
|
12
|
-
createConnectionStartedEvent(version: import("@tonconnect/sdk").Version): import("@tonconnect/sdk").ConnectionStartedEvent;
|
|
13
|
-
createDisconnectionEvent(version: import("@tonconnect/sdk").Version, wallet: import("@tonconnect/sdk").Wallet | null, scope: "dapp" | "wallet"): import("@tonconnect/sdk").DisconnectionEvent;
|
|
14
|
-
createRequestVersionEvent(): import("@tonconnect/sdk").RequestVersionEvent;
|
|
15
|
-
createResponseVersionEvent(version: string): import("@tonconnect/sdk").ResponseVersionEvent;
|
|
16
|
-
createTransactionSentForSignatureEvent(version: import("@tonconnect/sdk").Version, wallet: import("@tonconnect/sdk").Wallet | null, transaction: import("@tonconnect/sdk").SendTransactionRequest): import("@tonconnect/sdk").TransactionSentForSignatureEvent;
|
|
17
|
-
createTransactionSignedEvent(version: import("@tonconnect/sdk").Version, wallet: import("@tonconnect/sdk").Wallet | null, transaction: import("@tonconnect/sdk").SendTransactionRequest, signedTransaction: import("@tonconnect/sdk").SendTransactionResponse): import("@tonconnect/sdk").TransactionSignedEvent;
|
|
18
|
-
createTransactionSigningFailedEvent(version: import("@tonconnect/sdk").Version, wallet: import("@tonconnect/sdk").Wallet | null, transaction: import("@tonconnect/sdk").SendTransactionRequest, errorMessage: string, errorCode: import("@tonconnect/sdk").SEND_TRANSACTION_ERROR_CODES | void): import("@tonconnect/sdk").TransactionSigningFailedEvent;
|
|
19
|
-
createVersionInfo(version: import("@tonconnect/sdk").Version): import("@tonconnect/sdk").Version;
|
|
20
|
-
encodeTelegramUrlParameters(parameters: string): string;
|
|
21
|
-
isTelegramUrl(link: string | undefined): link is string;
|
|
22
|
-
isWalletInfoCurrentlyEmbedded(value: import("@tonconnect/sdk").WalletInfo): value is import("@tonconnect/sdk").WalletInfoCurrentlyEmbedded;
|
|
23
|
-
isWalletInfoCurrentlyInjected(value: import("@tonconnect/sdk").WalletInfo): value is import("@tonconnect/sdk").WalletInfoCurrentlyInjected;
|
|
24
|
-
isWalletInfoInjectable(value: import("@tonconnect/sdk").WalletInfo): value is import("@tonconnect/sdk").WalletInfoInjectable;
|
|
25
|
-
isWalletInfoInjected(value: import("@tonconnect/sdk").WalletInfo): value is import("@tonconnect/sdk").WalletInfoInjected;
|
|
26
|
-
isWalletInfoRemote(value: import("@tonconnect/sdk").WalletInfo): value is import("@tonconnect/sdk").WalletInfoRemote;
|
|
27
|
-
toUserFriendlyAddress(hexAddress: string, testOnly?: boolean): string;
|
|
28
|
-
BadRequestError: typeof import("@tonconnect/sdk").BadRequestError;
|
|
29
|
-
BrowserEventDispatcher: typeof import("@tonconnect/sdk").BrowserEventDispatcher;
|
|
30
|
-
CHAIN: typeof import("@tonconnect/sdk").CHAIN;
|
|
31
|
-
CONNECT_EVENT_ERROR_CODES: typeof import("@tonconnect/sdk").CONNECT_EVENT_ERROR_CODES;
|
|
32
|
-
CONNECT_ITEM_ERROR_CODES: typeof import("@tonconnect/sdk").CONNECT_ITEM_ERROR_CODES;
|
|
33
|
-
FetchWalletsError: typeof import("@tonconnect/sdk").FetchWalletsError;
|
|
34
|
-
LocalstorageNotFoundError: typeof import("@tonconnect/sdk").LocalstorageNotFoundError;
|
|
35
|
-
ParseHexError: typeof import("@tonconnect/sdk").ParseHexError;
|
|
36
|
-
SEND_TRANSACTION_ERROR_CODES: typeof import("@tonconnect/sdk").SEND_TRANSACTION_ERROR_CODES;
|
|
37
|
-
TonConnect: typeof import("@tonconnect/sdk").TonConnect;
|
|
38
|
-
TonConnectError: typeof import("@tonconnect/sdk").TonConnectError;
|
|
39
|
-
UnknownAppError: typeof import("@tonconnect/sdk").UnknownAppError;
|
|
40
|
-
UnknownError: typeof import("@tonconnect/sdk").UnknownError;
|
|
41
|
-
UserRejectsError: typeof import("@tonconnect/sdk").UserRejectsError;
|
|
42
|
-
WalletAlreadyConnectedError: typeof import("@tonconnect/sdk").WalletAlreadyConnectedError;
|
|
43
|
-
WalletNotConnectedError: typeof import("@tonconnect/sdk").WalletNotConnectedError;
|
|
44
|
-
WalletNotInjectedError: typeof import("@tonconnect/sdk").WalletNotInjectedError;
|
|
45
|
-
WalletsListManager: typeof import("@tonconnect/sdk").WalletsListManager;
|
|
46
|
-
WrongAddressError: typeof import("@tonconnect/sdk").WrongAddressError;
|
|
47
|
-
}>;
|
|
48
|
-
export declare function getTonCoreModule(): Promise<{
|
|
49
|
-
default: typeof import("@ton/core");
|
|
50
|
-
Address: typeof import("@ton/core").Address;
|
|
51
|
-
address: typeof import("@ton/core").address;
|
|
52
|
-
ExternalAddress: typeof import("@ton/core").ExternalAddress;
|
|
53
|
-
ADNLAddress: typeof import("@ton/core").ADNLAddress;
|
|
54
|
-
contractAddress: typeof import("@ton/core").contractAddress;
|
|
55
|
-
BitString: typeof import("@ton/core").BitString;
|
|
56
|
-
BitReader: typeof import("@ton/core").BitReader;
|
|
57
|
-
BitBuilder: typeof import("@ton/core").BitBuilder;
|
|
58
|
-
Builder: typeof import("@ton/core").Builder;
|
|
59
|
-
beginCell: typeof import("@ton/core").beginCell;
|
|
60
|
-
Slice: typeof import("@ton/core").Slice;
|
|
61
|
-
CellType: typeof import("@ton/core").CellType;
|
|
62
|
-
Cell: typeof import("@ton/core").Cell;
|
|
63
|
-
Dictionary: typeof import("@ton/core").Dictionary;
|
|
64
|
-
exoticMerkleProof: typeof import("@ton/core").exoticMerkleProof;
|
|
65
|
-
convertToMerkleProof: typeof import("@ton/core").convertToMerkleProof;
|
|
66
|
-
exoticMerkleUpdate: typeof import("@ton/core").exoticMerkleUpdate;
|
|
67
|
-
exoticPruned: typeof import("@ton/core").exoticPruned;
|
|
68
|
-
generateMerkleProof: typeof import("@ton/core").generateMerkleProof;
|
|
69
|
-
generateMerkleProofDirect: typeof import("@ton/core").generateMerkleProofDirect;
|
|
70
|
-
generateMerkleUpdate: typeof import("@ton/core").generateMerkleUpdate;
|
|
71
|
-
parseTuple: typeof import("@ton/core").parseTuple;
|
|
72
|
-
serializeTuple: typeof import("@ton/core").serializeTuple;
|
|
73
|
-
TupleReader: typeof import("@ton/core").TupleReader;
|
|
74
|
-
TupleBuilder: typeof import("@ton/core").TupleBuilder;
|
|
75
|
-
openContract: typeof import("@ton/core").openContract;
|
|
76
|
-
ComputeError: typeof import("@ton/core").ComputeError;
|
|
77
|
-
toNano: typeof import("@ton/core").toNano;
|
|
78
|
-
fromNano: typeof import("@ton/core").fromNano;
|
|
79
|
-
crc16: typeof import("@ton/core").crc16;
|
|
80
|
-
crc32c: typeof import("@ton/core").crc32c;
|
|
81
|
-
base32Decode: typeof import("@ton/core").base32Decode;
|
|
82
|
-
base32Encode: typeof import("@ton/core").base32Encode;
|
|
83
|
-
getMethodId: typeof import("@ton/core").getMethodId;
|
|
84
|
-
safeSign: typeof import("@ton/core").safeSign;
|
|
85
|
-
safeSignVerify: typeof import("@ton/core").safeSignVerify;
|
|
86
|
-
internal: typeof import("@ton/core").internal;
|
|
87
|
-
external: typeof import("@ton/core").external;
|
|
88
|
-
comment: typeof import("@ton/core").comment;
|
|
89
|
-
loadAccount: typeof import("@ton/core").loadAccount;
|
|
90
|
-
storeAccount: typeof import("@ton/core").storeAccount;
|
|
91
|
-
loadAccountState: typeof import("@ton/core").loadAccountState;
|
|
92
|
-
storeAccountState: typeof import("@ton/core").storeAccountState;
|
|
93
|
-
loadAccountStatus: typeof import("@ton/core").loadAccountStatus;
|
|
94
|
-
storeAccountStatus: typeof import("@ton/core").storeAccountStatus;
|
|
95
|
-
loadAccountStatusChange: typeof import("@ton/core").loadAccountStatusChange;
|
|
96
|
-
storeAccountStatusChange: typeof import("@ton/core").storeAccountStatusChange;
|
|
97
|
-
loadAccountStorage: typeof import("@ton/core").loadAccountStorage;
|
|
98
|
-
storeAccountStorage: typeof import("@ton/core").storeAccountStorage;
|
|
99
|
-
loadOutAction: typeof import("@ton/core").loadOutAction;
|
|
100
|
-
storeOutAction: typeof import("@ton/core").storeOutAction;
|
|
101
|
-
loadOutList: typeof import("@ton/core").loadOutList;
|
|
102
|
-
storeOutList: typeof import("@ton/core").storeOutList;
|
|
103
|
-
loadCommonMessageInfo: typeof import("@ton/core").loadCommonMessageInfo;
|
|
104
|
-
storeCommonMessageInfo: typeof import("@ton/core").storeCommonMessageInfo;
|
|
105
|
-
loadCommonMessageInfoRelaxed: typeof import("@ton/core").loadCommonMessageInfoRelaxed;
|
|
106
|
-
storeCommonMessageInfoRelaxed: typeof import("@ton/core").storeCommonMessageInfoRelaxed;
|
|
107
|
-
loadComputeSkipReason: typeof import("@ton/core").loadComputeSkipReason;
|
|
108
|
-
storeComputeSkipReason: typeof import("@ton/core").storeComputeSkipReason;
|
|
109
|
-
loadCurrencyCollection: typeof import("@ton/core").loadCurrencyCollection;
|
|
110
|
-
storeCurrencyCollection: typeof import("@ton/core").storeCurrencyCollection;
|
|
111
|
-
loadDepthBalanceInfo: typeof import("@ton/core").loadDepthBalanceInfo;
|
|
112
|
-
storeDepthBalanceInfo: typeof import("@ton/core").storeDepthBalanceInfo;
|
|
113
|
-
loadHashUpdate: typeof import("@ton/core").loadHashUpdate;
|
|
114
|
-
storeHashUpdate: typeof import("@ton/core").storeHashUpdate;
|
|
115
|
-
loadMasterchainStateExtra: typeof import("@ton/core").loadMasterchainStateExtra;
|
|
116
|
-
loadMessage: typeof import("@ton/core").loadMessage;
|
|
117
|
-
storeMessage: typeof import("@ton/core").storeMessage;
|
|
118
|
-
loadMessageRelaxed: typeof import("@ton/core").loadMessageRelaxed;
|
|
119
|
-
storeMessageRelaxed: typeof import("@ton/core").storeMessageRelaxed;
|
|
120
|
-
SendMode: typeof import("@ton/core").SendMode;
|
|
121
|
-
ReserveMode: typeof import("@ton/core").ReserveMode;
|
|
122
|
-
loadShardAccount: typeof import("@ton/core").loadShardAccount;
|
|
123
|
-
storeShardAccount: typeof import("@ton/core").storeShardAccount;
|
|
124
|
-
ShardAccountRefValue: import("@ton/core").DictionaryValue<import("@ton/core").ShardAccountRef>;
|
|
125
|
-
loadShardAccounts: typeof import("@ton/core").loadShardAccounts;
|
|
126
|
-
storeShardAccounts: typeof import("@ton/core").storeShardAccounts;
|
|
127
|
-
loadShardIdent: typeof import("@ton/core").loadShardIdent;
|
|
128
|
-
storeShardIdent: typeof import("@ton/core").storeShardIdent;
|
|
129
|
-
loadShardStateUnsplit: typeof import("@ton/core").loadShardStateUnsplit;
|
|
130
|
-
loadSimpleLibrary: typeof import("@ton/core").loadSimpleLibrary;
|
|
131
|
-
storeSimpleLibrary: typeof import("@ton/core").storeSimpleLibrary;
|
|
132
|
-
loadLibRef: typeof import("@ton/core").loadLibRef;
|
|
133
|
-
storeLibRef: typeof import("@ton/core").storeLibRef;
|
|
134
|
-
loadSplitMergeInfo: typeof import("@ton/core").loadSplitMergeInfo;
|
|
135
|
-
storeSplitMergeInfo: typeof import("@ton/core").storeSplitMergeInfo;
|
|
136
|
-
loadStateInit: typeof import("@ton/core").loadStateInit;
|
|
137
|
-
storeStateInit: typeof import("@ton/core").storeStateInit;
|
|
138
|
-
loadStorageInfo: typeof import("@ton/core").loadStorageInfo;
|
|
139
|
-
storeStorageInfo: typeof import("@ton/core").storeStorageInfo;
|
|
140
|
-
loadStorageUsed: typeof import("@ton/core").loadStorageUsed;
|
|
141
|
-
storeStorageUsed: typeof import("@ton/core").storeStorageUsed;
|
|
142
|
-
loadStorageUsedShort: typeof import("@ton/core").loadStorageUsedShort;
|
|
143
|
-
storeStorageUsedShort: typeof import("@ton/core").storeStorageUsedShort;
|
|
144
|
-
loadTickTock: typeof import("@ton/core").loadTickTock;
|
|
145
|
-
storeTickTock: typeof import("@ton/core").storeTickTock;
|
|
146
|
-
loadTransaction: typeof import("@ton/core").loadTransaction;
|
|
147
|
-
storeTransaction: typeof import("@ton/core").storeTransaction;
|
|
148
|
-
loadTransactionActionPhase: typeof import("@ton/core").loadTransactionActionPhase;
|
|
149
|
-
storeTransactionActionPhase: typeof import("@ton/core").storeTransactionActionPhase;
|
|
150
|
-
loadTransactionBouncePhase: typeof import("@ton/core").loadTransactionBouncePhase;
|
|
151
|
-
storeTransactionBouncePhase: typeof import("@ton/core").storeTransactionBouncePhase;
|
|
152
|
-
loadTransactionComputePhase: typeof import("@ton/core").loadTransactionComputePhase;
|
|
153
|
-
storeTransactionComputePhase: typeof import("@ton/core").storeTransactionComputePhase;
|
|
154
|
-
loadTransactionCreditPhase: typeof import("@ton/core").loadTransactionCreditPhase;
|
|
155
|
-
storeTransactionCreditPhase: typeof import("@ton/core").storeTransactionCreditPhase;
|
|
156
|
-
loadTransactionDescription: typeof import("@ton/core").loadTransactionDescription;
|
|
157
|
-
storeTransactionDescription: typeof import("@ton/core").storeTransactionDescription;
|
|
158
|
-
loadTransactionStoragePhase: typeof import("@ton/core").loadTransactionStoragePhase;
|
|
159
|
-
storeTransactionsStoragePhase: typeof import("@ton/core").storeTransactionsStoragePhase;
|
|
160
|
-
}>;
|
|
161
|
-
export declare function waitForConnection(tonConnectUI: TonConnectUI): Promise<string>;
|
|
162
|
-
export declare function parseAddress(rawAddress: string): Promise<string>;
|
|
163
|
-
//# sourceMappingURL=helpers.d.ts.map
|
package/dist/helpers.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKrC;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.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Environments } from './types.js';
|
|
2
|
-
import type { CanEagerConnect, CanSwitchNetwork, Connect, Disconnect, GetInstance, WalletInfo } from '@rango-dev/wallets-shared';
|
|
3
|
-
import type { TonConnectUI } from '@tonconnect/ui';
|
|
4
|
-
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
5
|
-
import { WalletTypes } from '@rango-dev/wallets-shared';
|
|
6
|
-
export declare const config: {
|
|
7
|
-
type: WalletTypes;
|
|
8
|
-
isAsyncInstance: boolean;
|
|
9
|
-
checkInstallation: boolean;
|
|
10
|
-
};
|
|
11
|
-
export type { Environments };
|
|
12
|
-
export declare const init: (environments: Environments) => void;
|
|
13
|
-
export declare const getInstance: GetInstance;
|
|
14
|
-
export declare const connect: Connect;
|
|
15
|
-
export declare const canEagerConnect: CanEagerConnect;
|
|
16
|
-
export declare const canSwitchNetworkTo: CanSwitchNetwork;
|
|
17
|
-
export declare const getSigners: (provider: TonConnectUI) => Promise<SignerFactory>;
|
|
18
|
-
export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
|
|
19
|
-
export declare const disconnect: Disconnect;
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgBlE,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,eAAO,MAAM,IAAI,iBAAkB,YAAY,SAE9C,CAAC;AAIF,eAAO,MAAM,WAAW,EAAE,WAMzB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAiBrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAI7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAA8B,CAAC;AAEhE,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,aAAa,CAClE,CAAC;AAET,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAWjE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var m=Object.defineProperty;var o=(n,t)=>m(n,"name",{value:t,configurable:!0});var h=(n,t)=>()=>(n&&(t=n(n=0)),t);var I=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})};var u={};I(u,{CustomTonSigner:()=>i});import{Cell as S}from"@ton/core";import{CHAIN as x}from"@tonconnect/ui";import{SignerError as E}from"rango-types";var i,f=h(()=>{"use strict";i=class{static{o(this,"CustomTonSigner")}provider;constructor(t){this.provider=t}async signMessage(){throw E.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{dynamicImportWithRefinedError 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{dynamicImportWithRefinedError as b}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as N,TransactionType as k}from"rango-types";async function p(n){let t=new N,{CustomTonSigner:e}=await b(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"),d=null,X=o(async()=>{if(!d){let{TonConnectUI:n}=await C();d=new n(T)}return d},"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
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 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\nimport { dynamicImportWithRefinedError } from '@rango-dev/wallets-shared';\n\nexport async function getTonConnectUIModule() {\n const tonConnectUI = await dynamicImportWithRefinedError(\n async () => await import('@tonconnect/ui')\n );\n return tonConnectUI;\n}\n\nexport async function getTonCoreModule() {\n const tonCore = await dynamicImportWithRefinedError(\n async () => await import('@ton/core')\n );\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 { dynamicImportWithRefinedError } 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 dynamicImportWithRefinedError(\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", "dynamicImportWithRefinedError", "getTonConnectUIModule", "dynamicImportWithRefinedError", "__name", "getTonCoreModule", "waitForConnection", "tonConnectUI", "resolve", "reject", "unsubscribeStatusChange", "state", "error", "unsubscribeModalStateChange", "modalState", "parseAddress", "rawAddress", "dynamicImportWithRefinedError", "DefaultSignerFactory", "TxType", "getSigners", "provider", "signers", "DefaultSignerFactory", "CustomTonSigner", "dynamicImportWithRefinedError", "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
|
-
}
|
package/dist/ton-signer.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ton-signer.d.ts","sourceRoot":"","sources":["../src/ton-signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMjE,qBAAa,eAAgB,YAAW,aAAa,CAAC,cAAc,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAe;gBAEnB,QAAQ,EAAE,YAAY;IAI5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAUnE"}
|
package/src/helpers.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { TonConnectUI } from '@tonconnect/ui';
|
|
2
|
-
|
|
3
|
-
import { dynamicImportWithRefinedError } from '@rango-dev/wallets-shared';
|
|
4
|
-
|
|
5
|
-
export async function getTonConnectUIModule() {
|
|
6
|
-
const tonConnectUI = await dynamicImportWithRefinedError(
|
|
7
|
-
async () => await import('@tonconnect/ui')
|
|
8
|
-
);
|
|
9
|
-
return tonConnectUI;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export async function getTonCoreModule() {
|
|
13
|
-
const tonCore = await dynamicImportWithRefinedError(
|
|
14
|
-
async () => await import('@ton/core')
|
|
15
|
-
);
|
|
16
|
-
return tonCore;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export async function waitForConnection(
|
|
20
|
-
tonConnectUI: TonConnectUI
|
|
21
|
-
): Promise<string> {
|
|
22
|
-
return new Promise((resolve, reject) => {
|
|
23
|
-
const unsubscribeStatusChange = tonConnectUI.onStatusChange(
|
|
24
|
-
(state) => {
|
|
25
|
-
const walletConnected = !!state?.account.address;
|
|
26
|
-
|
|
27
|
-
if (walletConnected) {
|
|
28
|
-
unsubscribeStatusChange();
|
|
29
|
-
resolve(state.account.address);
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
(error) => {
|
|
33
|
-
unsubscribeStatusChange();
|
|
34
|
-
reject(error);
|
|
35
|
-
}
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
const unsubscribeModalStateChange = tonConnectUI.onModalStateChange(
|
|
39
|
-
(modalState) => {
|
|
40
|
-
if (modalState.closeReason === 'action-cancelled') {
|
|
41
|
-
unsubscribeStatusChange();
|
|
42
|
-
unsubscribeModalStateChange();
|
|
43
|
-
reject(new Error('The action was canceled by the user'));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export async function parseAddress(rawAddress: string): Promise<string> {
|
|
51
|
-
const tonCore = await getTonCoreModule();
|
|
52
|
-
return tonCore.Address.parse(rawAddress).toString({ bounceable: false });
|
|
53
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import type { Environments } from './types.js';
|
|
2
|
-
import type {
|
|
3
|
-
CanEagerConnect,
|
|
4
|
-
CanSwitchNetwork,
|
|
5
|
-
Connect,
|
|
6
|
-
Disconnect,
|
|
7
|
-
GetInstance,
|
|
8
|
-
WalletInfo,
|
|
9
|
-
} from '@rango-dev/wallets-shared';
|
|
10
|
-
import type { TonConnectUI } from '@tonconnect/ui';
|
|
11
|
-
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
12
|
-
|
|
13
|
-
import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
|
|
14
|
-
import { tonBlockchain } from 'rango-types';
|
|
15
|
-
|
|
16
|
-
import {
|
|
17
|
-
getTonConnectUIModule,
|
|
18
|
-
parseAddress,
|
|
19
|
-
waitForConnection,
|
|
20
|
-
} from './helpers.js';
|
|
21
|
-
import signer from './signer.js';
|
|
22
|
-
|
|
23
|
-
let envs: Environments = {
|
|
24
|
-
manifestUrl: '',
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const WALLET = WalletTypes.TON_CONNECT;
|
|
28
|
-
|
|
29
|
-
export const config = {
|
|
30
|
-
type: WALLET,
|
|
31
|
-
isAsyncInstance: true,
|
|
32
|
-
checkInstallation: false,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export type { Environments };
|
|
36
|
-
|
|
37
|
-
export const init = (environments: Environments) => {
|
|
38
|
-
envs = environments;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
let instance: TonConnectUI | null = null;
|
|
42
|
-
|
|
43
|
-
export const getInstance: GetInstance = async () => {
|
|
44
|
-
if (!instance) {
|
|
45
|
-
const { TonConnectUI } = await getTonConnectUIModule();
|
|
46
|
-
instance = new TonConnectUI(envs);
|
|
47
|
-
}
|
|
48
|
-
return instance;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export const connect: Connect = async ({ instance }) => {
|
|
52
|
-
const tonConnectUI: TonConnectUI = instance;
|
|
53
|
-
const connectionRestored = await tonConnectUI.connectionRestored;
|
|
54
|
-
|
|
55
|
-
if (connectionRestored && tonConnectUI.account?.address) {
|
|
56
|
-
const parsedAddress = await parseAddress(tonConnectUI.account.address);
|
|
57
|
-
return { accounts: [parsedAddress], chainId: Networks.TON };
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
await tonConnectUI.openModal();
|
|
61
|
-
const result = await waitForConnection(tonConnectUI);
|
|
62
|
-
const parsedAddress = await parseAddress(result);
|
|
63
|
-
|
|
64
|
-
return {
|
|
65
|
-
accounts: [parsedAddress],
|
|
66
|
-
chainId: Networks.TON,
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export const canEagerConnect: CanEagerConnect = async ({ instance }) => {
|
|
71
|
-
const tonConnectUI = instance as TonConnectUI;
|
|
72
|
-
const connectionRestored = await tonConnectUI.connectionRestored;
|
|
73
|
-
return connectionRestored;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export const canSwitchNetworkTo: CanSwitchNetwork = () => false;
|
|
77
|
-
|
|
78
|
-
export const getSigners: (provider: TonConnectUI) => Promise<SignerFactory> =
|
|
79
|
-
signer;
|
|
80
|
-
|
|
81
|
-
export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
|
|
82
|
-
allBlockChains
|
|
83
|
-
) => {
|
|
84
|
-
const ton = tonBlockchain(allBlockChains);
|
|
85
|
-
return {
|
|
86
|
-
name: 'TON Connect',
|
|
87
|
-
img: 'https://raw.githubusercontent.com/rango-exchange/assets/7fb19ed5d5019b4d6a41ce91b39cde64f86af4c6/wallets/tonconnect/icon.svg',
|
|
88
|
-
installLink: '',
|
|
89
|
-
color: '#fff',
|
|
90
|
-
supportedChains: ton,
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
export const disconnect: Disconnect = async ({ instance }) => {
|
|
95
|
-
const tonConnectUI = instance as TonConnectUI;
|
|
96
|
-
await tonConnectUI.disconnect();
|
|
97
|
-
};
|
|
File without changes
|