Skip to content

Commit 4dac138

Browse files
dckcmichaelfig
authored andcommitted
feat(vats): makeBLDKit
1 parent ede0d94 commit 4dac138

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

packages/vats/decentral-core-config.json

+8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@
3434
"bridgeManager": true
3535
},
3636
"produce": { "bankManager": true }
37+
},
38+
"makeBLDKit": {
39+
"consume": {
40+
"bankManager": true
41+
},
42+
"produce": {
43+
"BLDKit": true
44+
}
3745
}
3846
}
3947
}

packages/vats/src/core/behaviors.js

+27-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
// @ts-check
22
import { E, Far } from '@agoric/far';
3-
import { AssetKind } from '@agoric/ertp';
3+
import { AssetKind, makeIssuerKit } from '@agoric/ertp';
44
import { makeNotifierKit } from '@agoric/notifier';
55
import { installOnChain as installVaultFactoryOnChain } from '@agoric/run-protocol/bundles/install-on-chain.js';
66

77
import { makeStore } from '@agoric/store';
88
import { makeNameHubKit } from '../nameHub.js';
9+
import { BLD_ISSUER_ENTRY } from '../issuers.js';
910

1011
const { entries, fromEntries } = Object;
1112

@@ -250,6 +251,29 @@ const makeClientBanks = async ({
250251
});
251252
};
252253

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+
253277
/**
254278
* @param {{
255279
* devices: { timer: unknown },
@@ -310,6 +334,7 @@ harden({
310334
makeAddressNameHubs,
311335
installClientEgress,
312336
makeClientBanks,
337+
makeBLDKit,
313338
startVaultFactory,
314339
});
315340
export {
@@ -320,5 +345,6 @@ export {
320345
makeAddressNameHubs,
321346
installClientEgress,
322347
makeClientBanks,
348+
makeBLDKit,
323349
startVaultFactory,
324350
};

0 commit comments

Comments
 (0)