@@ -84,6 +84,7 @@ const makeVatsFromBundles = ({
84
84
* consume: {
85
85
* vatAdminSvc: ERef<VatAdminSvc>,
86
86
* loadVat: ERef<VatLoader<ZoeVat>>,
87
+ * nameAdmins: ERef<Record<string, NameAdmin>>,
87
88
* client: ERef<ClientConfig>
88
89
* },
89
90
* produce: { zoe: Producer<ZoeService>, feeMintAccess: Producer<FeeMintAccess> },
@@ -92,14 +93,19 @@ const makeVatsFromBundles = ({
92
93
* @typedef {ERef<ReturnType<import('../vat-zoe.js').buildRootObject>> } ZoeVat
93
94
*/
94
95
const buildZoe = async ( {
95
- consume : { vatAdminSvc, loadVat, client } ,
96
+ consume : { vatAdminSvc, loadVat, client, nameAdmins } ,
96
97
produce : { zoe, feeMintAccess } ,
97
98
} ) => {
98
99
const { zoeService, feeMintAccess : fma } = await E (
99
100
E ( loadVat ) ( 'zoe' ) ,
100
101
) . buildZoe ( vatAdminSvc , feeIssuerConfig ) ;
101
102
102
103
zoe . resolve ( zoeService ) ;
104
+ const runIssuer = await E ( zoeService ) . getFeeIssuer ( ) ;
105
+ const runBrand = await E ( runIssuer ) . getBrand ( ) ;
106
+ E ( E ( nameAdmins ) . get ( 'issuer' ) ) . update ( 'RUN' , runIssuer ) ;
107
+ E ( E ( nameAdmins ) . get ( 'brand' ) ) . update ( 'RUN' , runBrand ) ;
108
+
103
109
feeMintAccess . resolve ( fma ) ;
104
110
E ( client ) . assignBundle ( { zoe : _addr => zoeService } ) ;
105
111
} ;
@@ -158,6 +164,9 @@ const makeAddressNameHubs = async ({ consume: { client }, produce }) => {
158
164
if ( nm === 'uiConfig' ) {
159
165
// Reserve the Vault Factory's config until we've populated it.
160
166
nameAdmin . reserve ( 'vaultFactory' ) ;
167
+ } else if ( [ 'issuer' , 'brand' ] . includes ( nm ) ) {
168
+ nameAdmin . reserve ( 'BLD' ) ;
169
+ nameAdmin . reserve ( 'RUN' ) ;
161
170
}
162
171
} ,
163
172
) ,
@@ -254,24 +263,21 @@ const makeClientBanks = async ({
254
263
/**
255
264
* @param {{
256
265
* consume: {
257
- * bankManager: Promise<BankManager>
266
+ * bankManager: Promise<BankManager>,
267
+ * nameAdmins: Promise<Record<string, NameAdmin>>,
258
268
* },
259
- * produce: {
260
- * BLDKit: Producer<{ brand: Brand, issuer: Issuer }>
261
- * }
262
269
* }} powers
263
270
* @typedef {* } BankManager // TODO
264
271
*/
265
- const makeBLDKit = async ( {
266
- consume : { bankManager } ,
267
- produce : { BLDKit } ,
268
- } ) => {
272
+ const makeBLDKit = async ( { consume : { bankManager, nameAdmins } } ) => {
269
273
const [ issuerName , { bankDenom, bankPurse, issuerArgs } ] = BLD_ISSUER_ENTRY ;
270
274
assert ( issuerArgs ) ;
271
275
const kit = makeIssuerKit ( issuerName , ...issuerArgs ) ; // TODO: should this live in another vat???
272
276
await E ( bankManager ) . addAsset ( bankDenom , issuerName , bankPurse , kit ) ;
277
+ // How to be clear that this "kit" has no mint? Do we have a name for brand and issuer?
273
278
const { brand, issuer } = kit ;
274
- BLDKit . resolve ( { brand, issuer } ) ;
279
+ E ( E ( nameAdmins ) . get ( 'issuer' ) ) . update ( 'BLD' , issuer ) ;
280
+ E ( E ( nameAdmins ) . get ( 'brand' ) ) . update ( 'BLD' , brand ) ;
275
281
} ;
276
282
277
283
/**
0 commit comments