@agoric/vats 0.14.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/decentral-devnet-config.json +1 -1
- package/decentral-itest-vaults-config.json +2 -1
- package/decentral-main-vaults-config.json +1 -1
- package/decentral-test-vaults-config.json +1 -1
- package/package.json +19 -19
- package/src/core/basic-behaviors.js +4 -4
- package/src/core/demoIssuers.js +7 -7
- package/src/core/types.d.ts +0 -1
- package/src/core/types.d.ts.map +1 -1
- package/src/vat-bank.d.ts.map +1 -1
- package/src/vat-bank.js +54 -43
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.14.1...@agoric/vats@0.15.0) (2023-06-02)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### ⚠ BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* rename EndorsedUI to ReferencedUI
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **board-utils:** vbankAssets in makeAgoricNamesRemotesFromFakeStorage ([0a7bc2c](https://github.com/Agoric/agoric-sdk/commit/0a7bc2c806d80c93d20a9181d803ff9db0b709bd))
|
|
16
|
+
* rename EndorsedUI to ReferencedUI ([8e904a9](https://github.com/Agoric/agoric-sdk/commit/8e904a9e379d69aa0c2a633ff2d6b3afb1b8005d))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **vat-bank:** getPurse race ([185a4f0](https://github.com/Agoric/agoric-sdk/commit/185a4f0ff14053dc85a30d383b55c9286532f0da))
|
|
22
|
+
* **vat-bank:** use JSON for composite string keys ([5fc1179](https://github.com/Agoric/agoric-sdk/commit/5fc1179abf7d84d64b120a8df00f54d50217500b))
|
|
23
|
+
* **vaults:** address a divide-by-zero; correct penalty w/no bidders ([5e8b363](https://github.com/Agoric/agoric-sdk/commit/5e8b3634bf399960b19378fd3b8ea720edcb0e37)), closes [#7785](https://github.com/Agoric/agoric-sdk/issues/7785)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
### [0.14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.14.0...@agoric/vats@0.14.1) (2023-05-24)
|
|
7
28
|
|
|
8
29
|
**Note:** Version bump only for package @agoric/vats
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"econCommitteeOptions": {
|
|
14
14
|
"committeeSize": 3
|
|
15
15
|
},
|
|
16
|
-
"
|
|
16
|
+
"referencedUi": "bafybeidvpbtlgefi3ptuqzr2fwfyfjqfj6onmye63ij7qkrb4yjxekdh3e",
|
|
17
17
|
"minInitialPoolLiquidity": "0"
|
|
18
18
|
}
|
|
19
19
|
]
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"econCommitteeOptions": {
|
|
13
13
|
"committeeSize": 3
|
|
14
14
|
},
|
|
15
|
-
"
|
|
15
|
+
"referencedUi": "bafybeidvpbtlgefi3ptuqzr2fwfyfjqfj6onmye63ij7qkrb4yjxekdh3e",
|
|
16
16
|
"minInitialPoolLiquidity": "0"
|
|
17
17
|
}
|
|
18
18
|
]
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"entrypoint": "defaultProposalBuilder",
|
|
23
23
|
"args": [
|
|
24
24
|
{
|
|
25
|
+
"interestRateValue": 1000,
|
|
25
26
|
"interchainAssetOptions": {
|
|
26
27
|
"denom": "ibc/toyatom",
|
|
27
28
|
"decimalPlaces": 6,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/vats",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Agoric's Vat library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@agoric/assert": "^0.6.0",
|
|
32
|
-
"@agoric/ertp": "^0.16.
|
|
33
|
-
"@agoric/governance": "^0.10.
|
|
34
|
-
"@agoric/inter-protocol": "^0.
|
|
35
|
-
"@agoric/internal": "^0.3.
|
|
36
|
-
"@agoric/notifier": "^0.6.
|
|
37
|
-
"@agoric/sharing-service": "^0.2.
|
|
38
|
-
"@agoric/store": "^0.9.
|
|
39
|
-
"@agoric/swingset-vat": "^0.32.
|
|
40
|
-
"@agoric/time": "^0.3.
|
|
41
|
-
"@agoric/vat-data": "^0.5.
|
|
42
|
-
"@agoric/zoe": "^0.26.
|
|
43
|
-
"@agoric/zone": "^0.2.
|
|
32
|
+
"@agoric/ertp": "^0.16.2",
|
|
33
|
+
"@agoric/governance": "^0.10.2",
|
|
34
|
+
"@agoric/inter-protocol": "^0.16.0",
|
|
35
|
+
"@agoric/internal": "^0.3.2",
|
|
36
|
+
"@agoric/notifier": "^0.6.2",
|
|
37
|
+
"@agoric/sharing-service": "^0.2.11",
|
|
38
|
+
"@agoric/store": "^0.9.2",
|
|
39
|
+
"@agoric/swingset-vat": "^0.32.2",
|
|
40
|
+
"@agoric/time": "^0.3.2",
|
|
41
|
+
"@agoric/vat-data": "^0.5.2",
|
|
42
|
+
"@agoric/zoe": "^0.26.2",
|
|
43
|
+
"@agoric/zone": "^0.2.2",
|
|
44
44
|
"@endo/far": "^0.2.18",
|
|
45
45
|
"@endo/import-bundle": "^0.3.4",
|
|
46
46
|
"@endo/init": "^0.5.56",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
"jessie.js": "^0.3.2"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@agoric/cosmic-swingset": "^0.41.
|
|
54
|
-
"@agoric/deploy-script-support": "^0.10.
|
|
55
|
-
"@agoric/smart-wallet": "^0.5.
|
|
56
|
-
"@agoric/swing-store": "^0.9.
|
|
57
|
-
"@agoric/swingset-liveslots": "^0.10.
|
|
53
|
+
"@agoric/cosmic-swingset": "^0.41.2",
|
|
54
|
+
"@agoric/deploy-script-support": "^0.10.2",
|
|
55
|
+
"@agoric/smart-wallet": "^0.5.2",
|
|
56
|
+
"@agoric/swing-store": "^0.9.1",
|
|
57
|
+
"@agoric/swingset-liveslots": "^0.10.2",
|
|
58
58
|
"@endo/bundle-source": "^2.5.1",
|
|
59
59
|
"@endo/captp": "^3.1.1",
|
|
60
60
|
"@endo/stream": "^0.3.25",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"timeout": "20m",
|
|
84
84
|
"workerThreads": false
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "b66bf7c881ae462fcb617cd6e8d41b5c40ec58ef"
|
|
87
87
|
}
|
|
@@ -623,12 +623,12 @@ export const addBankAssets = async ({
|
|
|
623
623
|
issuer: { produce: produceIssuer },
|
|
624
624
|
brand: { produce: produceBrand },
|
|
625
625
|
}) => {
|
|
626
|
-
const
|
|
627
|
-
const [
|
|
628
|
-
E(
|
|
626
|
+
const stableIssuer = await E(zoe).getFeeIssuer();
|
|
627
|
+
const [stableBrand, payment] = await Promise.all([
|
|
628
|
+
E(stableIssuer).getBrand(),
|
|
629
629
|
initialSupply,
|
|
630
630
|
]);
|
|
631
|
-
const runKit = { issuer:
|
|
631
|
+
const runKit = { issuer: stableIssuer, brand: stableBrand, payment };
|
|
632
632
|
const terms = harden({
|
|
633
633
|
keyword: Stake.symbol,
|
|
634
634
|
assetKind: Stake.assetKind,
|
package/src/core/demoIssuers.js
CHANGED
|
@@ -256,18 +256,18 @@ export const connectFaucet = async ({
|
|
|
256
256
|
feeMintAccess,
|
|
257
257
|
zoe,
|
|
258
258
|
});
|
|
259
|
-
const
|
|
260
|
-
const
|
|
261
|
-
const
|
|
262
|
-
issuer:
|
|
263
|
-
brand:
|
|
259
|
+
const stableIssuer = await E(zoe).getFeeIssuer();
|
|
260
|
+
const stableBrand = await E(stableIssuer).getBrand();
|
|
261
|
+
const stableIssuerKit = {
|
|
262
|
+
issuer: stableIssuer,
|
|
263
|
+
brand: stableBrand,
|
|
264
264
|
mint: {
|
|
265
265
|
mintPayment: async amount => {
|
|
266
266
|
// TODO: what happens if faucetRunSupply doesn't have enough
|
|
267
267
|
// remaining?
|
|
268
268
|
let fragment;
|
|
269
269
|
[fragment, faucetRunSupply] = await split(
|
|
270
|
-
E(
|
|
270
|
+
E(stableIssuer).makeEmptyPurse(),
|
|
271
271
|
faucetRunSupply,
|
|
272
272
|
amount,
|
|
273
273
|
);
|
|
@@ -286,7 +286,7 @@ export const connectFaucet = async ({
|
|
|
286
286
|
const provideIssuerKit = async name => {
|
|
287
287
|
switch (name) {
|
|
288
288
|
case Stable.symbol:
|
|
289
|
-
return
|
|
289
|
+
return stableIssuerKit;
|
|
290
290
|
case Stake.symbol:
|
|
291
291
|
return bldIssuerKit;
|
|
292
292
|
default: {
|
package/src/core/types.d.ts
CHANGED
|
@@ -453,7 +453,6 @@ type WellKnownSpaces = {
|
|
|
453
453
|
timerService: import("@agoric/time/src/types").TimerService;
|
|
454
454
|
reservePublicFacet: GovernedPublicFacet<{
|
|
455
455
|
makeAddCollateralInvitation(): Promise<Invitation<string, never>>;
|
|
456
|
-
getMetrics(): Subscriber<import("@agoric/inter-protocol/src/reserve/assetReserveKit.js").MetricsNotification>;
|
|
457
456
|
getPublicTopics(): {
|
|
458
457
|
metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("@agoric/inter-protocol/src/reserve/assetReserveKit.js").MetricsNotification>;
|
|
459
458
|
};
|
package/src/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"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"}
|
package/src/vat-bank.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vat-bank.d.ts","sourceRoot":"","sources":["vat-bank.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vat-bank.d.ts","sourceRoot":"","sources":["vat-bank.js"],"names":[],"mappings":"AA+zBA;IASI;;;;;;OAMG;yCALQ,KAAK,OAAO,YAAY,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAG3C,OAAO,YAAY,EAAE,SAAS,CAAC,QAAQ,CAAC;;QAnPhE;;;;WAIG;gCADU,kBAAkB,eAAe,CAAC;QAS/C;;;;WAIG;gDAHQ,MAAM,UACN,cAAc,GACZ,OAAO,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC;QAkBpD;;;;;;WAMG;4CAHQ,MAAM,GACJ,QAAQ,MAAM,GAAG,IAAI,CAAC;QAenC;;;;;;;;;;;WAWG;wBAJQ,MAAM,cACN,MAAM,gBACN,MAAM;;;QA2EjB;;;;;WAKG;mCAFQ,MAAM,GACJ,QAAQ,IAAI,CAAC;;QA5I1B;;;;WAIG;gCADU,kBAAkB,eAAe,CAAC;QAS/C;;;;WAIG;gDAHQ,MAAM,UACN,cAAc,GACZ,OAAO,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC;QAkBpD;;;;;;WAMG;4CAHQ,MAAM,GACJ,QAAQ,MAAM,GAAG,IAAI,CAAC;QAenC;;;;;;;;;;;WAWG;wBAJQ,MAAM,cACN,MAAM,gBACN,MAAM;;;QA2EjB;;;;;WAKG;mCAFQ,MAAM,GACJ,QAAQ,IAAI,CAAC;;;IAmG5B;;;;;;OAMG;yCALQ,KAAK,OAAO,YAAY,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAG3C,OAAO,YAAY,EAAE,SAAS,CAAC,QAAQ,CAAC;;QAnPhE;;;;WAIG;gCADU,kBAAkB,eAAe,CAAC;QAS/C;;;;WAIG;gDAHQ,MAAM,UACN,cAAc,GACZ,OAAO,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC;QAkBpD;;;;;;WAMG;4CAHQ,MAAM,GACJ,QAAQ,MAAM,GAAG,IAAI,CAAC;QAenC;;;;;;;;;;;WAWG;wBAJQ,MAAM,cACN,MAAM,gBACN,MAAM;;;QA2EjB;;;;;WAKG;mCAFQ,MAAM,GACJ,QAAQ,IAAI,CAAC;;QA5I1B;;;;WAIG;gCADU,kBAAkB,eAAe,CAAC;QAS/C;;;;WAIG;gDAHQ,MAAM,UACN,cAAc,GACZ,OAAO,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC;QAkBpD;;;;;;WAMG;4CAHQ,MAAM,GACJ,QAAQ,MAAM,GAAG,IAAI,CAAC;QAenC;;;;;;;;;;;WAWG;wBAJQ,MAAM,cACN,MAAM,gBACN,MAAM;;;QA2EjB;;;;;WAKG;mCAFQ,MAAM,GACJ,QAAQ,IAAI,CAAC;;GAmJ/B;AAhhBD;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH,4DAGG;qCAtWU,OAAO,iBAAiB,EAAE,sBAAsB;2BAChD,QAAQ,WAAW,WAAW,0BAA0B,CAAC,CAAC,CAAC;;oBAKlD,MAAM,UAAU,MAAM,KAAK,IAAI;;4BAOvC,KAAK,OAAO,YAAY,EAAE,mBAAmB,EAAE,YAAY,GAAG,UAAU,CAAC;;;YA6SzE,KAAK,OAAO,CAAC,CAAC,CAAC;WACf,MAAM,CAAC,CAAC;;0BAaT,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;CAAE;;WAK5D,KAAK;YACL,KAAK,MAAM,CAAC;gBACZ,MAAM;WACN,MAAM;kBACN,MAAM;;wBAIN,eAAe,GAAG;IAC/B,MAAU,EAAE,OAAO,KAAK,CAAC,CAAC;IAC1B,WAAe,EAAE,WAAW,CAAC;CAC1B;;;;;;0BAKU,MAAM,kBAAkB,eAAe,CAAC;;;;;sBAEhC,KAAK,KAAK,QAAQ,YAAY,CAAC"}
|
package/src/vat-bank.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import { AmountMath, AssetKind, BrandShape } from '@agoric/ertp';
|
|
3
|
-
import {
|
|
3
|
+
import { deeplyFulfilledObject } from '@agoric/internal';
|
|
4
|
+
import { prepareGuardedAttenuator } from '@agoric/internal/src/callback.js';
|
|
4
5
|
import {
|
|
5
6
|
IterableEachTopicI,
|
|
6
7
|
makeNotifierKit,
|
|
@@ -10,8 +11,8 @@ import {
|
|
|
10
11
|
} from '@agoric/notifier';
|
|
11
12
|
import { M, provideLazy } from '@agoric/store';
|
|
12
13
|
import { makeDurableZone } from '@agoric/zone/durable.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
14
|
+
import { E, Far } from '@endo/far';
|
|
15
|
+
import { makeAtomicProvider } from '@agoric/store/src/stores/store-utils.js';
|
|
15
16
|
import { BridgeHandlerI, BridgeScopedManagerI } from './bridge.js';
|
|
16
17
|
import {
|
|
17
18
|
makeVirtualPurseKitIKit,
|
|
@@ -404,6 +405,14 @@ const prepareBank = (
|
|
|
404
405
|
const makeBalanceUpdater = prepareBalanceUpdater(zone);
|
|
405
406
|
const makeBankPurseController = prepareBankPurseController(zone);
|
|
406
407
|
|
|
408
|
+
// Using a `purseProvider` singleton requires a single map with composite keys
|
|
409
|
+
// (which we emulate, since we know both address and denom are JSONable). If
|
|
410
|
+
// we decide to partition the provider and use `brandToVPurse` directly, we'd
|
|
411
|
+
// need ephemera for each `makeBank` call.
|
|
412
|
+
const addressDenomToPurse = zone.mapStore('addressDenomToPurse');
|
|
413
|
+
/** @type {import('@agoric/store/src/stores/store-utils.js').AtomicProvider<string, VirtualPurse>} */
|
|
414
|
+
const purseProvider = makeAtomicProvider(addressDenomToPurse);
|
|
415
|
+
|
|
407
416
|
const makeBank = zone.exoClass(
|
|
408
417
|
'Bank',
|
|
409
418
|
BankI,
|
|
@@ -443,6 +452,7 @@ const prepareBank = (
|
|
|
443
452
|
this.state.assetSubscriber,
|
|
444
453
|
);
|
|
445
454
|
},
|
|
455
|
+
/** @param {Brand} brand */
|
|
446
456
|
async getPurse(brand) {
|
|
447
457
|
const {
|
|
448
458
|
bankChannel,
|
|
@@ -451,54 +461,55 @@ const prepareBank = (
|
|
|
451
461
|
brandToAssetRecord,
|
|
452
462
|
denomToAddressUpdater,
|
|
453
463
|
} = this.state;
|
|
454
|
-
|
|
455
464
|
if (brandToVPurse.has(brand)) {
|
|
456
465
|
return brandToVPurse.get(brand);
|
|
457
466
|
}
|
|
458
467
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
468
|
+
const assetRecord = brandToAssetRecord.get(brand);
|
|
469
|
+
// Create a composite key that doesn't rely on the contents of the
|
|
470
|
+
// address and denom, only that they are strings.
|
|
471
|
+
const providerKey = JSON.stringify([address, assetRecord.denom]);
|
|
472
|
+
|
|
473
|
+
/** @type {() => Promise<VirtualPurse>} */
|
|
474
|
+
const makePurse = async () => {
|
|
475
|
+
if (!bankChannel) {
|
|
476
|
+
// Just emulate with a real purse.
|
|
477
|
+
return E(assetRecord.issuer).makeEmptyPurse();
|
|
465
478
|
}
|
|
466
|
-
|
|
467
|
-
|
|
479
|
+
const addressToUpdater = denomToAddressUpdater.get(assetRecord.denom);
|
|
480
|
+
|
|
481
|
+
/** @type {PublishKit<Amount>} */
|
|
482
|
+
const { publisher, subscriber } = makePublishKit();
|
|
483
|
+
const balanceUpdater = makeBalanceUpdater(brand, publisher);
|
|
484
|
+
addressToUpdater.init(address, balanceUpdater);
|
|
485
|
+
// Get the initial balance.
|
|
486
|
+
const balanceString = await bankChannel.toBridge({
|
|
487
|
+
type: 'VBANK_GET_BALANCE',
|
|
488
|
+
address,
|
|
489
|
+
denom: assetRecord.denom,
|
|
490
|
+
});
|
|
491
|
+
balanceUpdater.update(balanceString);
|
|
492
|
+
|
|
493
|
+
// Create and return the virtual purse.
|
|
494
|
+
const vpc = makeBankPurseController(
|
|
495
|
+
bankChannel,
|
|
496
|
+
assetRecord.denom,
|
|
497
|
+
brand,
|
|
498
|
+
address,
|
|
499
|
+
subscriber,
|
|
500
|
+
);
|
|
501
|
+
return makeVirtualPurse(vpc, assetRecord);
|
|
468
502
|
};
|
|
469
503
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
/** @type {PublishKit<Amount>} */
|
|
479
|
-
const { publisher, subscriber } = makePublishKit();
|
|
480
|
-
const balanceUpdater = makeBalanceUpdater(brand, publisher);
|
|
481
|
-
|
|
482
|
-
// Abort if we lost the race to another call.
|
|
483
|
-
addressToUpdater.init(address, balanceUpdater);
|
|
484
|
-
|
|
485
|
-
// Get the initial balance.
|
|
486
|
-
const balanceString = await bankChannel.toBridge({
|
|
487
|
-
type: 'VBANK_GET_BALANCE',
|
|
488
|
-
address,
|
|
489
|
-
denom: assetRecord.denom,
|
|
490
|
-
});
|
|
491
|
-
balanceUpdater.update(balanceString);
|
|
492
|
-
|
|
493
|
-
// Create and return the virtual purse.
|
|
494
|
-
const vpc = makeBankPurseController(
|
|
495
|
-
bankChannel,
|
|
496
|
-
assetRecord.denom,
|
|
497
|
-
brand,
|
|
498
|
-
address,
|
|
499
|
-
subscriber,
|
|
504
|
+
return purseProvider.provideAsync(
|
|
505
|
+
providerKey,
|
|
506
|
+
makePurse,
|
|
507
|
+
async (_key, purse) => {
|
|
508
|
+
// Move it from the provider to this Exo's storage
|
|
509
|
+
brandToVPurse.init(brand, purse);
|
|
510
|
+
addressDenomToPurse.delete(providerKey);
|
|
511
|
+
},
|
|
500
512
|
);
|
|
501
|
-
return keepPurse(makeVirtualPurse(vpc, assetRecord));
|
|
502
513
|
},
|
|
503
514
|
},
|
|
504
515
|
);
|