@@ -12,8 +12,8 @@ use chain_core::tx::data::output::TxOut;
12
12
use chain_core:: tx:: TxObfuscated ;
13
13
use chain_core:: tx:: { TxAux , TxEnclaveAux } ;
14
14
use client_common:: { PublicKey , Result as CommonResult } ;
15
- use client_core:: types:: TransactionChange ;
16
15
use client_core:: types:: WalletKind ;
16
+ use client_core:: types:: { AddressType , TransactionChange } ;
17
17
use client_core:: { Mnemonic , MultiSigWalletClient , WalletClient } ;
18
18
19
19
use crate :: server:: { rpc_error_from_string, to_rpc_error, WalletRequest } ;
@@ -29,6 +29,9 @@ pub trait WalletRpc: Send + Sync {
29
29
#[ rpc( name = "wallet_restore" ) ]
30
30
fn restore ( & self , request : WalletRequest , mnemonics : Mnemonic ) -> Result < String > ;
31
31
32
+ #[ rpc( name = "wallet_newMultiSigAddressPublicKey" ) ]
33
+ fn new_multi_sig_address_public_key ( & self , request : WalletRequest ) -> Result < String > ;
34
+
32
35
#[ rpc( name = "wallet_createStakingAddress" ) ]
33
36
fn create_staking_address ( & self , request : WalletRequest ) -> Result < String > ;
34
37
@@ -129,6 +132,17 @@ where
129
132
Ok ( request. name )
130
133
}
131
134
135
+ fn new_multi_sig_address_public_key ( & self , request : WalletRequest ) -> Result < String > {
136
+ self . client
137
+ . new_public_key (
138
+ & request. name ,
139
+ & request. passphrase ,
140
+ Some ( AddressType :: Transfer ) ,
141
+ )
142
+ . map ( |public_key| public_key. to_string ( ) )
143
+ . map_err ( to_rpc_error)
144
+ }
145
+
132
146
fn create_staking_address ( & self , request : WalletRequest ) -> Result < String > {
133
147
self . client
134
148
. new_staking_address ( & request. name , & request. passphrase )
0 commit comments