Skip to content

Commit

Permalink
demo: on redirect request invocation don't attempt to access the resu…
Browse files Browse the repository at this point in the history
…lt immediately
  • Loading branch information
danimoh committed Feb 16, 2025
1 parent 3ef7a5c commit 093db02
Showing 1 changed file with 37 additions and 9 deletions.
46 changes: 37 additions & 9 deletions demos/Demo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,8 @@ class Demo {
};
}

const result = await demo.client.createCashlink(request, demo._defaultBehavior as PopupRequestBehavior);
const result = await demo.client.createCashlink(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = `Cashlink created${result.link
? `: ${result.link}`
Expand All @@ -156,6 +157,7 @@ class Demo {
document.querySelector('button#choose-address')!.addEventListener('click', async () => {
try {
const result = await demo.client.chooseAddress({ appName: 'Hub Demos', ui: 2 }, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = `Address was chosen: ${result ? result.address : '-'}`;
} catch (e) {
Expand All @@ -167,6 +169,7 @@ class Demo {
document.querySelector('button#choose-address-and-btc')!.addEventListener('click', async () => {
try {
const result = await demo.client.chooseAddress({ appName: 'Hub Demos', returnBtcAddress: true, ui: 2 }, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = `Address was chosen: ${result ? result.address : '-'}`;
} catch (e) {
Expand All @@ -184,6 +187,7 @@ class Demo {
}),
demo._defaultBehavior,
);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'TX signed';
} catch (e) {
Expand All @@ -195,6 +199,7 @@ class Demo {
document.querySelector('button#onboard')!.addEventListener('click', async () => {
try {
const result = await demo.client.onboard({ appName: 'Hub Demos' }, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Onboarding completed!';
} catch (e) {
Expand All @@ -206,6 +211,7 @@ class Demo {
document.querySelector('button#create')!.addEventListener('click', async () => {
try {
const result = await demo.client.signup({ appName: 'Hub Demos' }, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'New account & address created';
} catch (e) {
Expand All @@ -217,6 +223,7 @@ class Demo {
document.querySelector('button#login')!.addEventListener('click', async () => {
try {
const result = await demo.client.login({ appName: 'Hub Demos' }, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Account imported';
} catch (e) {
Expand Down Expand Up @@ -338,6 +345,7 @@ class Demo {
async function checkout(txRequest: CheckoutRequest) {
try {
const result = await demo.client.checkout(txRequest, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'TX signed';
} catch (e) {
Expand All @@ -354,6 +362,7 @@ class Demo {
};
try {
const result = await demo.client.signMessage(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'MSG signed: ' + request.message;
} catch (e) {
Expand All @@ -378,6 +387,7 @@ class Demo {

try {
const result = await demo.client.signMessage(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'MSG signed: ' + request.message;
} catch (e) {
Expand All @@ -398,6 +408,7 @@ class Demo {

try {
const result = await demo.client.signMessage(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'MSG signed: ' + request.message;
} catch (e) {
Expand All @@ -409,6 +420,7 @@ class Demo {
document.querySelector('button#migrate')!.addEventListener('click', async () => {
try {
const result = await demo.client.migrate(demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Migrated';
} catch (e) {
Expand Down Expand Up @@ -444,6 +456,7 @@ class Demo {
appName: 'Hub Demos',
accountId,
}, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Activated account: ' + JSON.stringify(result);
} catch (e) {
Expand Down Expand Up @@ -494,7 +507,8 @@ class Demo {
// },
};
try {
const result = await demo.client.signBtcTransaction(txRequest, demo._defaultBehavior as PopupRequestBehavior);
const result = await demo.client.signBtcTransaction(txRequest, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Signed: ' + result.serializedTx;
} catch (e) {
Expand Down Expand Up @@ -571,7 +585,8 @@ class Demo {
},
};
try {
const result = await demo.client.setupSwap(request, demo._defaultBehavior as PopupRequestBehavior);
const result = await demo.client.setupSwap(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.innerHTML = `Signed successfully!<br>NIM:&nbsp;${result.nim!.serializedTx}<br>BTC:&nbsp;${result.btc!.serializedTx}`;
} catch (e) {
Expand Down Expand Up @@ -652,7 +667,8 @@ class Demo {
},
};
try {
const result = await demo.client.setupSwap(request, demo._defaultBehavior as PopupRequestBehavior);
const result = await demo.client.setupSwap(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.innerHTML = `Signed successfully!<br>NIM:&nbsp;${result.nim!.serializedTx}<br>BTC:&nbsp;${result.btc!.serializedTx}`;
} catch (e) {
Expand Down Expand Up @@ -687,6 +703,7 @@ class Demo {
appName: 'Hub Demos',
accountId,
}, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Activated USDC: ' + JSON.stringify(result);
} catch (e) {
Expand All @@ -709,9 +726,10 @@ class Demo {
window.loadAlbatross(),
demo.client.connectAccount(request, demo._defaultBehavior),
]);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Account connected: ' + result!.account.label;
await setConnectResult(result!);
document.querySelector('#result')!.textContent = 'Account connected: ' + result.account.label;
await setConnectResult(result);
} catch (e) {
console.error(e);
document.querySelector('#result')!.textContent = `Error: ${e.message || e}`;
Expand Down Expand Up @@ -857,9 +875,10 @@ class Demo {

try {
const result = await demo.client.signMultisigTransaction(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Transaction signed: '
+ BufferUtils.toHex(result!.signature);
+ BufferUtils.toHex(result.signature);
} catch (e) {
console.error(e);
document.querySelector('#result')!.textContent = `Error: ${e.message || e}`;
Expand Down Expand Up @@ -903,6 +922,7 @@ class Demo {
this._createChangePasswordRequest(accountId),
this._defaultBehavior,
);
if (this.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Successfully changed Password';
} catch (e) {
Expand All @@ -924,6 +944,7 @@ class Demo {
this._createAddAccountRequest(accountId),
this._defaultBehavior,
);
if (this.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Account added';
} catch (e) {
Expand All @@ -945,6 +966,7 @@ class Demo {
this._createRenameRequest(accountId, account),
this._defaultBehavior,
);
if (this.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Done renaming account';
} catch (e) {
Expand Down Expand Up @@ -1076,6 +1098,10 @@ class Demo {
}
}

public isRedirectResult(result: RpcResult | void): result is void {
return result === undefined && this._defaultBehavior instanceof RedirectRequestBehavior;
}

public async startIframeClient(baseUrl: string): Promise<PostMessageRpcClient> {
if (this._iframeClient) return this._iframeClient;
const $iframe = await Demo._createIframe(baseUrl);
Expand Down Expand Up @@ -1122,7 +1148,8 @@ class Demo {

public async logout(accountId: string): Promise<SimpleResult> {
try {
const result = await this.client.logout(this._createLogoutRequest(accountId), this._defaultBehavior as PopupRequestBehavior);
const result = await this.client.logout(this._createLogoutRequest(accountId), this._defaultBehavior);
if (this.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Account removed';
return result;
Expand Down Expand Up @@ -1165,7 +1192,8 @@ class Demo {

private async _export(request: ExportRequest) {
try {
const result = await this.client.export(request, this._defaultBehavior as PopupRequestBehavior);
const result = await this.client.export(request, this._defaultBehavior);
if (this.isRedirectResult(result)) return;
console.log('Result', result);
if (result.fileExported) {
document.querySelector('#result')!.textContent = result.wordsExported
Expand Down

0 comments on commit 093db02

Please sign in to comment.