1
1
// @ts -check
2
2
import { E , Far } from '@agoric/far' ;
3
- import { AssetKind } from '@agoric/ertp' ;
3
+ import { AssetKind , makeIssuerKit } from '@agoric/ertp' ;
4
4
import { makeNotifierKit } from '@agoric/notifier' ;
5
5
import { installOnChain as installVaultFactoryOnChain } from '@agoric/run-protocol/bundles/install-on-chain.js' ;
6
6
7
7
import { makeStore } from '@agoric/store' ;
8
8
import { makeNameHubKit } from '../nameHub.js' ;
9
+ import { BLD_ISSUER_ENTRY } from '../issuers.js' ;
9
10
10
11
const { entries, fromEntries } = Object ;
11
12
@@ -250,6 +251,29 @@ const makeClientBanks = async ({
250
251
} ) ;
251
252
} ;
252
253
254
+ /**
255
+ * @param {{
256
+ * consume: {
257
+ * bankManager: Promise<BankManager>
258
+ * },
259
+ * produce: {
260
+ * BLDKit: Producer<{ brand: Brand, issuer: Issuer }>
261
+ * }
262
+ * }} powers
263
+ * @typedef {* } BankManager // TODO
264
+ */
265
+ const makeBLDKit = async ( {
266
+ consume : { bankManager } ,
267
+ produce : { BLDKit } ,
268
+ } ) => {
269
+ const [ issuerName , { bankDenom, bankPurse, issuerArgs } ] = BLD_ISSUER_ENTRY ;
270
+ assert ( issuerArgs ) ;
271
+ const kit = makeIssuerKit ( issuerName , ...issuerArgs ) ; // TODO: should this live in another vat???
272
+ await E ( bankManager ) . addAsset ( bankDenom , issuerName , bankPurse , kit ) ;
273
+ const { brand, issuer } = kit ;
274
+ BLDKit . resolve ( { brand, issuer } ) ;
275
+ } ;
276
+
253
277
/**
254
278
* @param {{
255
279
* devices: { timer: unknown },
@@ -310,6 +334,7 @@ harden({
310
334
makeAddressNameHubs,
311
335
installClientEgress,
312
336
makeClientBanks,
337
+ makeBLDKit,
313
338
startVaultFactory,
314
339
} ) ;
315
340
export {
@@ -320,5 +345,6 @@ export {
320
345
makeAddressNameHubs ,
321
346
installClientEgress ,
322
347
makeClientBanks ,
348
+ makeBLDKit ,
323
349
startVaultFactory ,
324
350
} ;
0 commit comments