@@ -32,23 +32,22 @@ import { PasswordDialog } from 'components/SignAndVerify'
3232import { deletePerunRequest } from 'states/stateProvider/actionCreators'
3333import styles from './perunCreationRequestList.module.scss'
3434import { getCompatibleTx } from './utils'
35- import { hexToUint8Array } from 'utils/bufferConvert'
3635
3736export const PerunCreationRequestList = ( {
3837 requests,
3938 onCancel,
4039 walletID,
4140} : {
42- requests : State . PerunRequest [ ]
41+ requests : Perun . ReadableMessage . Request [ ]
4342 onCancel : ( ) => void
4443 walletID : string
4544} ) => {
4645 const [ t ] = useTranslation ( )
4746 const [ showPasswordDialog , setShowPasswordDialog ] = useState ( false )
48- const [ currentRequest , setCurrentRequest ] = useState < State . PerunRequest | null > ( null )
47+ const [ currentRequest , setCurrentRequest ] = useState < Perun . ReadableMessage . Request | null > ( null )
4948 const dispatch = useDispatch ( )
5049
51- const rejectPerunRequest = async ( request : State . PerunRequest , reason : string ) => {
50+ const rejectPerunRequest = async ( request : Perun . ReadableMessage . Request , reason : string ) => {
5251 deletePerunRequest ( request ) ( dispatch )
5352 await respondPerunRequest ( {
5453 type : request . type ,
@@ -61,13 +60,14 @@ export const PerunCreationRequestList = ({
6160 } )
6261 }
6362
64- const renderPerunRequest = ( perunRequest : State . PerunRequest ) => {
63+ const renderPerunRequest = ( perunRequest : Perun . ReadableMessage . Request ) => {
6564 switch ( perunRequest . type ) {
66- case 'openChannelRequest' : {
65+ case "OpenChannel" : {
6766 console . log ( "PerunCreationRequestList open channel" , perunRequest . request ) ;
67+ const request = perunRequest . request ;
6868 return (
6969 < >
70- < h3 > receive a open channel request</ h3 >
70+ < h3 > Open Channel Request from { request . participant . address } </ h3 >
7171 < p > { `Channel ID: ` } </ p >
7272 < p > { `State: ` } </ p >
7373 < p > { `Version: ` } </ p >
@@ -77,8 +77,8 @@ export const PerunCreationRequestList = ({
7777 )
7878 }
7979 case 'SignMessage' : {
80- const request = perunRequest . request as State . PerunSignMessageRequest
81- const address = new TextDecoder ( ) . decode ( hexToUint8Array ( request . pubkey ) )
80+ const request = perunRequest . request
81+ const address = request . pubkey
8282 // const content = bytesToHex(new Uint8Array(request.request.data.data))
8383 return (
8484 < h2 className = { styles . content } >
@@ -97,8 +97,7 @@ export const PerunCreationRequestList = ({
9797 }
9898 case 'SignTransaction' : {
9999 const request = perunRequest . request as State . PerunSignTransactionRequest
100- const { identifier, transaction } = request
101- const address = scriptToAddress ( identifier , { isMainnet : false } )
100+ const { identifier : address , transaction } = request
102101 // const content = JSON.stringify(transaction)
103102 return (
104103 < h2 className = { styles . content } >
@@ -159,12 +158,35 @@ export const PerunCreationRequestList = ({
159158 return null
160159 }
161160 }
161+ const handleOpenChannelRequest = async ( perunRequest : Perun . ReadableMessage . Request ) => {
162+ deletePerunRequest ( perunRequest ) ( dispatch )
163+ await respondPerunRequest ( {
164+ type : "OpenChannel" ,
165+ response : {
166+ data : true ,
167+ } ,
168+ } )
169+ setCurrentRequest ( null )
170+ }
171+ const handleUpdateNotificatoinRequest = async ( perunRequest : Perun . ReadableMessage . Request ) => {
172+ deletePerunRequest ( perunRequest ) ( dispatch )
173+ await respondPerunRequest ( {
174+ type : "UpdateNotification" ,
175+ response : {
176+ data : true ,
177+ } ,
178+ } )
179+ setCurrentRequest ( null )
180+ }
162181
163182 const handleSigningRequest = async ( password : string ) => {
164- const handleSignMessage = async ( perunRequest : State . PerunRequest ) => {
165- const request = perunRequest . request as State . PerunSignMessageRequest
183+
184+
185+
186+ const handleSignMessage = async ( perunRequest : Perun . ReadableMessage . Request ) => {
187+ const request = perunRequest . request as Perun . ReadableMessage . SignMessageRequest
166188 // Uint8Array -> String
167- const address = new TextDecoder ( ) . decode ( hexToUint8Array ( request . pubkey ) )
189+ const address = request . pubkey
168190 console . log ( 'signing request for address----------' , address )
169191 // const msgToSign = bytesToHex(new Uint8Array(request.data.data))
170192 // TODO: It would be nice to have a decoder for the Perun encoded messages.
@@ -197,7 +219,7 @@ export const PerunCreationRequestList = ({
197219 return res
198220 }
199221
200- const handleSignTransaction = async ( perunRequest : State . PerunRequest ) => {
222+ const handleSignTransaction = async ( perunRequest : Perun . ReadableMessage . Request ) => {
201223 const request = perunRequest . request as State . PerunSignTransactionRequest
202224 console . log ( 'handleSignTransaction' , request )
203225 console . log ( 'inputs' , request . transaction . inputs )
@@ -241,10 +263,14 @@ export const PerunCreationRequestList = ({
241263 }
242264
243265 switch ( currentRequest . type ) {
266+ // case "OpenChannel":
267+ // return handleOpenChannelRequest(currentRequest)
244268 case 'SignMessage' :
245269 return handleSignMessage ( currentRequest )
246270 case 'SignTransaction' :
247- return handleSignTransaction ( currentRequest ) as any
271+ return handleSignTransaction ( currentRequest )
272+ // case "UpdateNotification":
273+ // return handleUpdateNotificatoinRequest(currentRequest);
248274 default :
249275 }
250276 }
@@ -264,6 +290,14 @@ export const PerunCreationRequestList = ({
264290 type = "primary"
265291 onClick = { ( ) => {
266292 setCurrentRequest ( request )
293+ if ( request . type === "OpenChannel" ) {
294+ handleOpenChannelRequest ( request )
295+ return ;
296+ }
297+ if ( request . type === "UpdateNotification" ) {
298+ handleUpdateNotificatoinRequest ( request )
299+ return ;
300+ }
267301 setShowPasswordDialog ( true )
268302 } }
269303 >
0 commit comments