@@ -182,7 +182,7 @@ class Demo {
182182 } ) ;
183183
184184 document . querySelector ( 'button#sign-transaction' ) ! . addEventListener ( 'click' , async ( ) => {
185- const txRequest = generateSignTransactionRequest ( ) ;
185+ const txRequest = generateSignTransactionRequest ( true ) ;
186186 try {
187187 const result = await demo . client . signTransaction (
188188 new Promise < SignTransactionRequest > ( ( resolve ) => {
@@ -199,6 +199,23 @@ class Demo {
199199 }
200200 } ) ;
201201
202+ document . querySelector ( 'button#sign-transaction-without-sender' ) ! . addEventListener ( 'click' , async ( ) => {
203+ const txRequest = generateSignTransactionRequest ( false ) ;
204+ try {
205+ const result = await demo . client . signTransaction (
206+ new Promise < SignTransactionRequest > ( ( resolve ) => {
207+ window . setTimeout ( ( ) => resolve ( txRequest ) , 2000 ) ;
208+ } ) ,
209+ demo . _defaultBehavior ,
210+ ) ;
211+ console . log ( 'Result' , result ) ;
212+ document . querySelector ( '#result' ) ! . textContent = 'TX signed' ;
213+ } catch ( e ) {
214+ console . error ( e ) ;
215+ document . querySelector ( '#result' ) ! . textContent = `Error: ${ e . message || e } ` ;
216+ }
217+ } ) ;
218+
202219 document . querySelector ( 'button#onboard' ) ! . addEventListener ( 'click' , async ( ) => {
203220 try {
204221 const result = await demo . client . onboard ( { appName : 'Hub Demos' } , demo . _defaultBehavior ) ;
@@ -235,13 +252,16 @@ class Demo {
235252 }
236253 } ) ;
237254
238- function generateSignTransactionRequest ( ) : SignTransactionRequest {
239- const $radio = document . querySelector ( 'input[name="address"]:checked' ) ;
240- if ( ! $radio ) {
241- alert ( 'You have no account to send a tx from, create an account first (signup)' ) ;
242- throw new Error ( 'No account found' ) ;
255+ function generateSignTransactionRequest ( withSender : boolean ) : SignTransactionRequest {
256+ let sender : string | undefined ;
257+ if ( withSender ) {
258+ const $radio = document . querySelector ( 'input[name="address"]:checked' ) ;
259+ if ( ! $radio ) {
260+ alert ( 'You have no account to send a tx from, create an account first (signup)' ) ;
261+ throw new Error ( 'No account found' ) ;
262+ }
263+ sender = ( $radio as HTMLElement ) . dataset . address ! ;
243264 }
244- const sender = ( $radio as HTMLElement ) . dataset . address ! ;
245265 const value = parseInt ( ( document . querySelector ( '#value' ) as HTMLInputElement ) . value , 10 ) || 1337 ;
246266 const fee = parseInt ( ( document . querySelector ( '#fee' ) as HTMLInputElement ) . value , 10 ) || 0 ;
247267 const txData = ( document . querySelector ( '#data' ) as HTMLInputElement ) . value || '' ;
0 commit comments