1
- import { chainRegistryChainToKeplr } from '@chain-registry/keplr' ;
2
- import { StdSignature , StdSignDoc } from '@cosmjs/amino' ;
3
- import { Algo , OfflineDirectSigner } from '@cosmjs/proto-signing' ;
1
+ import {
2
+ AminoSignResponse ,
3
+ OfflineAminoSigner ,
4
+ StdSignDoc ,
5
+ StdSignature ,
6
+ } from '@cosmjs/amino' ;
7
+ import {
8
+ Algo ,
9
+ DirectSignResponse ,
10
+ OfflineDirectSigner ,
11
+ OfflineSigner ,
12
+ } from '@cosmjs/proto-signing' ;
4
13
import {
5
14
BroadcastMode ,
6
- ChainRecord ,
7
- ExtendedHttpEndpoint ,
15
+ DirectSignDoc ,
16
+ SignOptions ,
8
17
SignType ,
9
18
SuggestToken ,
19
+ WalletAccount ,
20
+ WalletClient ,
10
21
} from '@cosmos-kit/core' ;
11
- import { DirectSignDoc , SignOptions , WalletClient } from '@cosmos-kit/core' ;
12
- import Long from 'long' ;
13
-
14
22
import { Aria } from './types' ;
15
23
16
24
export class AriaClient implements WalletClient {
@@ -29,14 +37,11 @@ export class AriaClient implements WalletClient {
29
37
this . _defaultSignOptions = options ;
30
38
}
31
39
32
- constructor ( client : Aria ) {
40
+ constructor ( client : any ) {
41
+ if ( ! client ) throw new Error ( 'Aria client not initialized' ) ;
33
42
this . client = client ;
34
43
}
35
44
36
- async enable ( chainIds : string | string [ ] ) {
37
- await this . client . enable ( chainIds ) ;
38
- }
39
-
40
45
async suggestToken ( { chainId, tokens, type } : SuggestToken ) {
41
46
if ( type === 'cw20' ) {
42
47
for ( const { contractAddress } of tokens ) {
@@ -45,29 +50,6 @@ export class AriaClient implements WalletClient {
45
50
}
46
51
}
47
52
48
- async addChain ( chainInfo : ChainRecord ) {
49
- const suggestChain = chainRegistryChainToKeplr (
50
- chainInfo . chain ,
51
- chainInfo . assetList ? [ chainInfo . assetList ] : [ ]
52
- ) ;
53
-
54
- if ( chainInfo . preferredEndpoints ?. rest ?. [ 0 ] ) {
55
- ( suggestChain . rest as string | ExtendedHttpEndpoint ) =
56
- chainInfo . preferredEndpoints ?. rest ?. [ 0 ] ;
57
- }
58
-
59
- if ( chainInfo . preferredEndpoints ?. rpc ?. [ 0 ] ) {
60
- ( suggestChain . rpc as string | ExtendedHttpEndpoint ) =
61
- chainInfo . preferredEndpoints ?. rpc ?. [ 0 ] ;
62
- }
63
-
64
- await this . client . experimentalSuggestChain ( suggestChain ) ;
65
- }
66
-
67
- async disconnect ( ) {
68
- await this . client . disconnect ( ) ;
69
- }
70
-
71
53
async getSimpleAccount ( chainId : string ) {
72
54
const { address, username } = await this . getAccount ( chainId ) ;
73
55
return {
@@ -78,7 +60,7 @@ export class AriaClient implements WalletClient {
78
60
} ;
79
61
}
80
62
81
- async getAccount ( chainId : string ) {
63
+ async getAccount ( chainId : string ) : Promise < WalletAccount > {
82
64
const key = await this . client . getKey ( chainId ) ;
83
65
return {
84
66
username : key . name ,
@@ -89,32 +71,12 @@ export class AriaClient implements WalletClient {
89
71
} ;
90
72
}
91
73
92
- getOfflineSigner ( chainId : string , preferredSignType ?: SignType ) {
93
- switch ( preferredSignType ) {
94
- case 'amino' :
95
- return this . getOfflineSignerAmino ( chainId ) ;
96
- case 'direct' :
97
- return this . getOfflineSignerDirect ( chainId ) ;
98
- default :
99
- return this . getOfflineSignerAmino ( chainId ) ;
100
- }
101
- // return this.client.getOfflineSignerAuto(chainId);
102
- }
103
-
104
- getOfflineSignerAmino ( chainId : string ) {
105
- return this . client . getOfflineSignerOnlyAmino ( chainId ) ;
106
- }
107
-
108
- getOfflineSignerDirect ( chainId : string ) {
109
- return this . client . getOfflineSigner ( chainId ) as OfflineDirectSigner ;
110
- }
111
-
112
74
async signAmino (
113
75
chainId : string ,
114
76
signer : string ,
115
77
signDoc : StdSignDoc ,
116
78
signOptions ?: SignOptions
117
- ) {
79
+ ) : Promise < AminoSignResponse > {
118
80
return await this . client . signAmino (
119
81
chainId ,
120
82
signer ,
@@ -136,19 +98,39 @@ export class AriaClient implements WalletClient {
136
98
signer : string ,
137
99
signDoc : DirectSignDoc ,
138
100
signOptions ?: SignOptions
139
- ) {
101
+ ) : Promise < DirectSignResponse > {
140
102
return await this . client . signDirect (
141
103
chainId ,
142
104
signer ,
143
- {
144
- ...signDoc ,
145
- accountNumber : Long . fromString ( signDoc . accountNumber . toString ( ) ) ,
146
- } ,
105
+ signDoc ,
147
106
signOptions || this . defaultSignOptions
148
107
) ;
149
108
}
150
109
110
+ getOfflineSigner (
111
+ chainId : string ,
112
+ preferredSignType ?: SignType
113
+ ) : OfflineSigner {
114
+ switch ( preferredSignType ) {
115
+ case 'amino' :
116
+ return this . getOfflineSignerAmino ( chainId ) ;
117
+ case 'direct' :
118
+ return this . getOfflineSignerDirect ( chainId ) ;
119
+ default :
120
+ return this . getOfflineSignerAmino ( chainId ) ;
121
+ }
122
+ // return this.client.getOfflineSignerAuto(chainId);
123
+ }
124
+
125
+ getOfflineSignerAmino ( chainId : string ) : OfflineAminoSigner {
126
+ return this . client . getOfflineSignerOnlyAmino ( chainId ) ;
127
+ }
128
+
129
+ getOfflineSignerDirect ( chainId : string ) : OfflineDirectSigner {
130
+ return this . client . getOfflineSigner ( chainId ) as OfflineDirectSigner ;
131
+ }
132
+
151
133
async sendTx ( chainId : string , tx : Uint8Array , mode : BroadcastMode ) {
152
- return await this . client . sendTx ( chainId , tx , mode ) ;
134
+ return this . client . sendTx ( chainId , tx , mode ) ;
153
135
}
154
136
}
0 commit comments