22
33module Cardano.Wasi.Internal.Api.Wallet
44 ( generatePaymentWallet
5+ , generateStakeWallet
56 , restorePaymentWalletFromSigningKeyBech32
7+ , restoreStakeWalletFromSigningKeyBech32
8+ , generateTestnetPaymentWallet
9+ , generateTestnetStakeWallet
610 , restoreTestnetPaymentWalletFromSigningKeyBech32
11+ , restoreTestnetStakeWalletFromSigningKeyBech32
712 , getAddressBech32
8- , getBech32ForVerificationKey
9- , getBech32ForSigningKey
10- , getBase16ForVerificationKeyHash
13+ , getBech32ForPaymentVerificationKey
14+ , getBech32ForPaymentSigningKey
15+ , getBech32ForStakeVerificationKey
16+ , getBech32ForStakeSigningKey
17+ , getBase16ForPaymentVerificationKeyHash
18+ , getBase16ForStakeVerificationKeyHash
1119 )
1220where
1321
@@ -24,23 +32,47 @@ import Foreign.C.String (newCString, peekCString)
2432foreign export ccall " generatePaymentWallet"
2533 generatePaymentWallet :: IO WalletObjectJSON
2634
35+ foreign export ccall " generateStakeWallet"
36+ generateStakeWallet :: IO WalletObjectJSON
37+
2738foreign export ccall " restorePaymentWalletFromSigningKeyBech32"
2839 restorePaymentWalletFromSigningKeyBech32 :: CString -> IO WalletObjectJSON
2940
41+ foreign export ccall " restoreStakeWalletFromSigningKeyBech32"
42+ restoreStakeWalletFromSigningKeyBech32 :: CString -> CString -> IO WalletObjectJSON
43+
44+ foreign export ccall " generateTestnetPaymentWallet"
45+ generateTestnetPaymentWallet :: Int -> IO WalletObjectJSON
46+
47+ foreign export ccall " generateTestnetStakeWallet"
48+ generateTestnetStakeWallet :: Int -> IO WalletObjectJSON
49+
3050foreign export ccall " restoreTestnetPaymentWalletFromSigningKeyBech32"
3151 restoreTestnetPaymentWalletFromSigningKeyBech32 :: Int -> CString -> IO WalletObjectJSON
3252
53+ foreign export ccall " restoreTestnetStakeWalletFromSigningKeyBech32"
54+ restoreTestnetStakeWalletFromSigningKeyBech32 :: Int -> CString -> CString -> IO WalletObjectJSON
55+
3356foreign export ccall " getAddressBech32"
3457 getAddressBech32 :: WalletObjectJSON -> IO CString
3558
36- foreign export ccall " getBech32ForVerificationKey "
37- getBech32ForVerificationKey :: WalletObjectJSON -> IO CString
59+ foreign export ccall " getBech32ForPaymentVerificationKey "
60+ getBech32ForPaymentVerificationKey :: WalletObjectJSON -> IO CString
3861
39- foreign export ccall " getBech32ForSigningKey "
40- getBech32ForSigningKey :: WalletObjectJSON -> IO CString
62+ foreign export ccall " getBech32ForPaymentSigningKey "
63+ getBech32ForPaymentSigningKey :: WalletObjectJSON -> IO CString
4164
42- foreign export ccall " getBase16ForVerificationKeyHash"
43- getBase16ForVerificationKeyHash :: WalletObjectJSON -> IO CString
65+ foreign export ccall " getBech32ForStakeVerificationKey"
66+ getBech32ForStakeVerificationKey :: WalletObjectJSON -> IO CString
67+
68+ foreign export ccall " getBech32ForStakeSigningKey"
69+ getBech32ForStakeSigningKey :: WalletObjectJSON -> IO CString
70+
71+ foreign export ccall " getBase16ForPaymentVerificationKeyHash"
72+ getBase16ForPaymentVerificationKeyHash :: WalletObjectJSON -> IO CString
73+
74+ foreign export ccall " getBase16ForStakeVerificationKeyHash"
75+ getBase16ForStakeVerificationKeyHash :: WalletObjectJSON -> IO CString
4476
4577#endif
4678
@@ -49,11 +81,28 @@ type WalletObjectJSON = CString
4981generatePaymentWallet :: IO WalletObjectJSON
5082generatePaymentWallet = toCJSON =<< Wallet. generatePaymentWalletImpl
5183
84+ generateStakeWallet :: IO WalletObjectJSON
85+ generateStakeWallet = toCJSON =<< Wallet. generateStakeWalletImpl
86+
5287restorePaymentWalletFromSigningKeyBech32 :: CString -> IO WalletObjectJSON
5388restorePaymentWalletFromSigningKeyBech32 signingKeyBech32CStr = do
5489 signingKeyBech32 <- peekCString signingKeyBech32CStr
5590 toCJSON =<< Wallet. restorePaymentWalletFromSigningKeyBech32Impl signingKeyBech32
5691
92+ restoreStakeWalletFromSigningKeyBech32 :: CString -> CString -> IO WalletObjectJSON
93+ restoreStakeWalletFromSigningKeyBech32 paymentSigningKeyCStr stakeSigningKeyCStr = do
94+ paymentSigningKey <- peekCString paymentSigningKeyCStr
95+ stakeSigningKey <- peekCString stakeSigningKeyCStr
96+ toCJSON =<< Wallet. restoreStakeWalletFromSigningKeyBech32Impl paymentSigningKey stakeSigningKey
97+
98+ generateTestnetPaymentWallet :: Int -> IO WalletObjectJSON
99+ generateTestnetPaymentWallet networkMagic =
100+ toCJSON =<< Wallet. generateTestnetPaymentWalletImpl (fromIntegral networkMagic)
101+
102+ generateTestnetStakeWallet :: Int -> IO WalletObjectJSON
103+ generateTestnetStakeWallet networkMagic =
104+ toCJSON =<< Wallet. generateTestnetStakeWalletImpl (fromIntegral networkMagic)
105+
57106restoreTestnetPaymentWalletFromSigningKeyBech32 :: Int -> CString -> IO WalletObjectJSON
58107restoreTestnetPaymentWalletFromSigningKeyBech32 networkMagic signingKeyBech32CStr =
59108 toCJSON
@@ -62,22 +111,47 @@ restoreTestnetPaymentWalletFromSigningKeyBech32 networkMagic signingKeyBech32CSt
62111 =<< peekCString signingKeyBech32CStr
63112 )
64113
114+ restoreTestnetStakeWalletFromSigningKeyBech32 :: Int -> CString -> CString -> IO WalletObjectJSON
115+ restoreTestnetStakeWalletFromSigningKeyBech32 networkMagic paymentSigningKeyCStr stakeSigningKeyCStr = do
116+ paymentKey <- peekCString paymentSigningKeyCStr
117+ stakeKey <- peekCString stakeSigningKeyCStr
118+ toCJSON
119+ =<< Wallet. restoreTestnetStakeWalletFromSigningKeyBech32Impl
120+ (fromIntegral networkMagic)
121+ paymentKey
122+ stakeKey
123+
65124getAddressBech32 :: WalletObjectJSON -> IO CString
66125getAddressBech32 walletCStr =
67- newCString . Wallet. getAddressBech32
126+ newCString . Wallet. getAddressBech32Impl
127+ =<< fromCJSON False " WalletObject" walletCStr
128+
129+ getBech32ForPaymentVerificationKey :: WalletObjectJSON -> IO CString
130+ getBech32ForPaymentVerificationKey walletCStr =
131+ newCString . Wallet. getBech32ForPaymentVerificationKeyImpl
132+ =<< fromCJSON False " WalletObject" walletCStr
133+
134+ getBech32ForPaymentSigningKey :: WalletObjectJSON -> IO CString
135+ getBech32ForPaymentSigningKey walletCStr =
136+ newCString . Wallet. getBech32ForPaymentSigningKeyImpl
137+ =<< fromCJSON False " WalletObject" walletCStr
138+
139+ getBech32ForStakeVerificationKey :: WalletObjectJSON -> IO CString
140+ getBech32ForStakeVerificationKey walletCStr =
141+ newCString . Wallet. getBech32ForStakeVerificationKeyImpl
68142 =<< fromCJSON False " WalletObject" walletCStr
69143
70- getBech32ForVerificationKey :: WalletObjectJSON -> IO CString
71- getBech32ForVerificationKey walletCStr =
72- newCString . Wallet. getBech32ForVerificationKeyImpl
144+ getBech32ForStakeSigningKey :: WalletObjectJSON -> IO CString
145+ getBech32ForStakeSigningKey walletCStr =
146+ newCString . Wallet. getBech32ForStakeSigningKeyImpl
73147 =<< fromCJSON False " WalletObject" walletCStr
74148
75- getBech32ForSigningKey :: WalletObjectJSON -> IO CString
76- getBech32ForSigningKey walletCStr =
77- newCString . Wallet. getBech32ForSigningKeyImpl
149+ getBase16ForPaymentVerificationKeyHash :: WalletObjectJSON -> IO CString
150+ getBase16ForPaymentVerificationKeyHash walletCStr =
151+ newCString . Wallet. getBase16ForPaymentVerificationKeyHashImpl
78152 =<< fromCJSON False " WalletObject" walletCStr
79153
80- getBase16ForVerificationKeyHash :: WalletObjectJSON -> IO CString
81- getBase16ForVerificationKeyHash walletCStr =
82- newCString . Wallet. getBase16ForVerificationKeyHashImpl
154+ getBase16ForStakeVerificationKeyHash :: WalletObjectJSON -> IO CString
155+ getBase16ForStakeVerificationKeyHash walletCStr =
156+ newCString . Wallet. getBase16ForStakeVerificationKeyHashImpl
83157 =<< fromCJSON False " WalletObject" walletCStr
0 commit comments