Skip to content

Commit

Permalink
fix ton-connect
Browse files Browse the repository at this point in the history
  • Loading branch information
XueMoMo committed Jul 11, 2024
1 parent ffe5890 commit de85393
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 19 deletions.
25 changes: 10 additions & 15 deletions lib/wallet/TonConnect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,30 +70,25 @@ export async function CreateMessage(message: ParsedMessage): Promise<Buffer> {
}



let _toncoonectui: TonConnectUI;
export class TonConnect implements BaseWallet{
isInit: boolean;
tonconnectui: TonConnectUI
tonProof?: TonProofItemReplySuccess

cancelStateSub?: () => void
async init(): Promise<void> {
if(this.isInit) return
const payload = await fetch('https://tonapi.io/v2/tonconnect/payload').then(res => res.json()).then(res => res.payload)
this.tonProof = undefined
this.tonconnectui = new TonConnectUI({
manifestUrl: `${window.location.origin}/tonconnect-manifest${IS_DEV?'-dev':''}.json`,
});
if(_toncoonectui){
this.tonconnectui = _toncoonectui
}else{
this.tonconnectui = new TonConnectUI({
manifestUrl: `${window.location.origin}/tonconnect-manifest${IS_DEV?'-dev':''}.json`,
});
}
_toncoonectui = this.tonconnectui
this.tonconnectui.setConnectRequestParameters({state: 'ready', value: { tonProof: payload }})
this.tonconnectui.onStatusChange((walelt) => {
this.tonProof = undefined
if(walelt?.connectItems?.tonProof){
const tonProof = walelt.connectItems.tonProof as TonProofItemReplySuccess
if(tonProof.proof){
this.tonProof = tonProof
}
}
console.info('tonwallet:', walelt)
})
this.isInit = true;
}

Expand Down
3 changes: 3 additions & 0 deletions lib/wallet/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,9 @@ export function useLoginUser(key: KEY_TYPE = "files:login"): WrapLoginUser {
algorand.wallet.disconnect();
algorand.isInit = false;
algorand.account = null;
} else if(account.wallet === 'ton-connect'){
const tonConnect = WALLETMAP['ton-connect'] as TonConnect;
tonConnect.tonconnectui.disconnect();
}

setLoginUser({ ...defLoginUser });
Expand Down
11 changes: 7 additions & 4 deletions pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { WALLETMAP, lastUser, useContextWrapLoginUser } from "../lib/wallet/hook
import { getPerfix } from "../lib/wallet/tools";
import { useWeb3Auth } from "../lib/web3auth/web3auth";
import { StorageChainConfig } from "./setting";
import { TonProofItemReplySuccess } from "@tonconnect/ui-react";
interface ItemWallet {
name: string;
image: string;
Expand Down Expand Up @@ -669,15 +670,17 @@ function Home({ className }: { className?: string }) {
const _onClickTonConnect = useCallback(async () => {
const tc = WALLETMAP["ton-connect"] as TonConnect;
await tc.init();
tc.tonconnectui.onStatusChange((w) => {
if (w) {
const cancelStatusSub = tc.tonconnectui.onStatusChange((w) => {
if (w && w.connectItems && w.connectItems.tonProof && (w.connectItems.tonProof as TonProofItemReplySuccess).proof) {
tc.tonProof = (w.connectItems.tonProof as TonProofItemReplySuccess);
tc.login()
.then(([_accounts, lu]) => {
setLogined(lu, tc);
})
.catch(console.error);
}
tc.tonconnectui.closeModal()
tc.tonconnectui.closeModal();
cancelStatusSub();
});
await tc.tonconnectui.openModal();
}, []);
Expand Down Expand Up @@ -928,7 +931,7 @@ function Home({ className }: { className?: string }) {
{/* Ton Connect */}
<div className="item_connect" style={{ justifyContent: "flex-start", paddingLeft: 43 }} onClick={_onClickTonConnect}>
<img style={{ height: 26, position: "relative", top: 1 }} src="/images/ton-connect.png" />
<span style={{ marginLeft: 3}}>{"Ton Connect"}</span>
<span style={{ marginLeft: 3 }}>{"Ton Connect"}</span>
</div>
<div className="more_opt" onClick={() => setShowMore(!showMore)}>
<span>More Options</span>
Expand Down

0 comments on commit de85393

Please sign in to comment.