@@ -4,9 +4,10 @@ import * as CSL from '@emurgo/cross-csl-core'
4
4
import { createSignedLedgerTxFromCbor , signRawTransaction } from '@emurgo/yoroi-lib'
5
5
import { Datum } from '@emurgo/yoroi-lib/dist/internals/models'
6
6
import { AppApi } from '@yoroi/api'
7
+ import { bannersManagerMaker } from '@yoroi/banners'
7
8
import { cardanoConfig , derivationConfig , protocolParamsPlaceholder } from '@yoroi/blockchains'
8
- import { isNonNullable } from '@yoroi/common'
9
- import { Api , App , Balance , HW , Network , Portfolio , Wallet } from '@yoroi/types'
9
+ import { isNonNullable , observableStorageMaker } from '@yoroi/common'
10
+ import { Api , App , Balance , Banners , HW , Network , Portfolio , Wallet } from '@yoroi/types'
10
11
import { BigNumber } from 'bignumber.js'
11
12
import { Buffer } from 'buffer'
12
13
import { freeze } from 'immer'
@@ -89,6 +90,8 @@ export const makeCardanoWallet = (networkManager: Network.Manager, implementatio
89
90
private readonly transactionManager : TransactionManager
90
91
private readonly memosManager : MemosManager
91
92
93
+ readonly bannersManager : Readonly < Banners . Manager < Banners . StorageKey > >
94
+
92
95
readonly balanceManager : Readonly < Portfolio . Manager . Balance >
93
96
readonly balance$ : Observable < Portfolio . Event . BalanceManager >
94
97
readonly portfolioPrimaryTokenInfo : Readonly < Portfolio . Token . Info >
@@ -158,6 +161,12 @@ export const makeCardanoWallet = (networkManager: Network.Manager, implementatio
158
161
// the calculation of locked deposit, since the cost can change
159
162
const protocolParams = await networkManager . api . protocolParams ( )
160
163
164
+ const walletStorage = networkManager . rootStorage . join ( `${ id } /` )
165
+ const bannersStorage = observableStorageMaker < false , Banners . StorageKey > ( walletStorage . join ( 'banners/' ) )
166
+ const bannersManager = bannersManagerMaker < Banners . StorageKey > ( {
167
+ storage : bannersStorage ,
168
+ } )
169
+
161
170
const wallet = new CardanoWallet ( {
162
171
id,
163
172
accountPubKeyHex,
@@ -170,6 +179,7 @@ export const makeCardanoWallet = (networkManager: Network.Manager, implementatio
170
179
portfolioPrimaryTokenInfo : primaryTokenInfo ,
171
180
accountVisual,
172
181
protocolParams,
182
+ bannersManager,
173
183
} )
174
184
if ( ! isYoroiWallet ( wallet ) ) throwLoggedError ( 'ShelleyWallet: build invalid wallet' )
175
185
@@ -190,6 +200,7 @@ export const makeCardanoWallet = (networkManager: Network.Manager, implementatio
190
200
memosManager,
191
201
balanceManager,
192
202
accountManager,
203
+ bannersManager,
193
204
194
205
portfolioPrimaryTokenInfo,
195
206
protocolParams,
@@ -204,6 +215,7 @@ export const makeCardanoWallet = (networkManager: Network.Manager, implementatio
204
215
memosManager : MemosManager
205
216
balanceManager : Readonly < Portfolio . Manager . Balance >
206
217
accountManager : AccountManager
218
+ bannersManager : Readonly < Banners . Manager < Banners . StorageKey > >
207
219
208
220
portfolioPrimaryTokenInfo : Readonly < Portfolio . Token . Info >
209
221
protocolParams : Api . Cardano . ProtocolParams
@@ -222,6 +234,7 @@ export const makeCardanoWallet = (networkManager: Network.Manager, implementatio
222
234
this . balance$ = balanceManager . observable$
223
235
this . accountManager = accountManager
224
236
this . portfolioPrimaryTokenInfo = portfolioPrimaryTokenInfo
237
+ this . bannersManager = bannersManager
225
238
226
239
this . protocolParams = protocolParams
227
240
0 commit comments