@agoric/inter-protocol 0.16.2-upgrade-16-dev-24665a9.0 → 0.16.2-upgrade-16-dev-d492653.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/package.json +16 -16
- package/src/provisionPool.d.ts.map +1 -1
- package/src/provisionPoolKit.d.ts +5 -19
- package/src/provisionPoolKit.d.ts.map +1 -1
- package/src/provisionPoolKit.js +47 -106
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/inter-protocol",
|
|
3
|
-
"version": "0.16.2-upgrade-16-dev-
|
|
3
|
+
"version": "0.16.2-upgrade-16-dev-d492653.0+d492653",
|
|
4
4
|
"description": "Core cryptoeconomy contracts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/Agoric/agoric-sdk#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@agoric/assert": "0.6.1-upgrade-16-dev-
|
|
35
|
-
"@agoric/ertp": "0.16.3-upgrade-16-dev-
|
|
36
|
-
"@agoric/governance": "0.10.4-upgrade-16-dev-
|
|
37
|
-
"@agoric/internal": "0.3.3-upgrade-16-dev-
|
|
38
|
-
"@agoric/notifier": "0.6.3-upgrade-16-dev-
|
|
39
|
-
"@agoric/store": "0.9.3-upgrade-16-dev-
|
|
40
|
-
"@agoric/time": "0.3.3-upgrade-16-dev-
|
|
41
|
-
"@agoric/vat-data": "0.5.3-upgrade-16-dev-
|
|
42
|
-
"@agoric/vats": "0.15.2-upgrade-16-dev-
|
|
43
|
-
"@agoric/zoe": "0.26.3-upgrade-16-dev-
|
|
34
|
+
"@agoric/assert": "0.6.1-upgrade-16-dev-d492653.0+d492653",
|
|
35
|
+
"@agoric/ertp": "0.16.3-upgrade-16-dev-d492653.0+d492653",
|
|
36
|
+
"@agoric/governance": "0.10.4-upgrade-16-dev-d492653.0+d492653",
|
|
37
|
+
"@agoric/internal": "0.3.3-upgrade-16-dev-d492653.0+d492653",
|
|
38
|
+
"@agoric/notifier": "0.6.3-upgrade-16-dev-d492653.0+d492653",
|
|
39
|
+
"@agoric/store": "0.9.3-upgrade-16-dev-d492653.0+d492653",
|
|
40
|
+
"@agoric/time": "0.3.3-upgrade-16-dev-d492653.0+d492653",
|
|
41
|
+
"@agoric/vat-data": "0.5.3-upgrade-16-dev-d492653.0+d492653",
|
|
42
|
+
"@agoric/vats": "0.15.2-upgrade-16-dev-d492653.0+d492653",
|
|
43
|
+
"@agoric/zoe": "0.26.3-upgrade-16-dev-d492653.0+d492653",
|
|
44
44
|
"@endo/captp": "^4.2.0",
|
|
45
45
|
"@endo/eventual-send": "^1.2.2",
|
|
46
46
|
"@endo/far": "^1.1.2",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"jessie.js": "^0.3.4"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@agoric/smart-wallet": "0.5.4-upgrade-16-dev-
|
|
54
|
-
"@agoric/swingset-liveslots": "0.10.3-upgrade-16-dev-
|
|
55
|
-
"@agoric/swingset-vat": "0.32.3-upgrade-16-dev-
|
|
56
|
-
"@agoric/zone": "0.2.3-upgrade-16-dev-
|
|
53
|
+
"@agoric/smart-wallet": "0.5.4-upgrade-16-dev-d492653.0+d492653",
|
|
54
|
+
"@agoric/swingset-liveslots": "0.10.3-upgrade-16-dev-d492653.0+d492653",
|
|
55
|
+
"@agoric/swingset-vat": "0.32.3-upgrade-16-dev-d492653.0+d492653",
|
|
56
|
+
"@agoric/zone": "0.2.3-upgrade-16-dev-d492653.0+d492653",
|
|
57
57
|
"@endo/bundle-source": "^3.2.3",
|
|
58
58
|
"@endo/init": "^1.1.2",
|
|
59
59
|
"@endo/promise-kit": "^1.1.2",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"typeCoverage": {
|
|
85
85
|
"atLeast": 95.81
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "d49265372b3cdd681558791b0c780e1c3062bdcc"
|
|
88
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAgBA,8CAA8C;AAE9C,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAqBK,2BAZI,GAAG,CAAC,cAAc,CAAC;cAEf,OAAO,WAAW,EAAE,IAAI,CACtC,OAAa,8BAA8B,EAAE,IAAI,CAC5C;4BACuB,UAAU;iBACrB,WAAW;;sBAEN,OAAO,uBAAuB,EAAE,mBAAmB;YAE/D,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAgBA,8CAA8C;AAE9C,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAqBK,2BAZI,GAAG,CAAC,cAAc,CAAC;cAEf,OAAO,WAAW,EAAE,IAAI,CACtC,OAAa,8BAA8B,EAAE,IAAI,CAC5C;4BACuB,UAAU;iBACrB,WAAW;;sBAEN,OAAO,uBAAuB,EAAE,mBAAmB;YAE/D,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;;;;gDAsEi4E,QAAQ;;;sDAA6i/B,OAAO,eAAe,EAAE,OAAO,CAAC,SAAQ,IAAK,CAAC;;yCAAvpS,OAAO;;;gDAA48I,SAAS;;;;;;;;;;;;;;;;;;;8EAAqqJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;8EAAP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;8EAAP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;iCAAnx+B,0BAA0B;;;;;;2BAAgkC,KAAK,YAA2B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;GAHn3H;;;;6BAlFY,aAAa,GACzB,eAAmB,CAAC;IACpB,uBAA6B,EAAE,QAAQ,CAAC;CACnC,CAAC;6BAxBoB,eAAe"}
|
|
@@ -245,12 +245,6 @@ export function prepareProvisionPoolKit(baggage: import("@agoric/vat-data").Bagg
|
|
|
245
245
|
onProvisioned(): void;
|
|
246
246
|
/** @param {ERef<Bank>} destBank */
|
|
247
247
|
sendInitialPayment(destBank: ERef<Bank>): Promise<void>;
|
|
248
|
-
/**
|
|
249
|
-
* @param {ERef<Purse>} exchangePurse
|
|
250
|
-
* @param {ERef<Brand>} brand
|
|
251
|
-
*/
|
|
252
|
-
watchCurrentAmount(exchangePurse: ERef<globalThis.Purse>, brand: ERef<globalThis.Brand>): void;
|
|
253
|
-
watchAssetSubscription(): Promise<undefined>;
|
|
254
248
|
/**
|
|
255
249
|
* @param {object} [options]
|
|
256
250
|
* @param {MetricsNotification} [options.metrics]
|
|
@@ -302,7 +296,7 @@ export type PsmInstance = import("@agoric/zoe/src/zoeService/utils.js").Instance
|
|
|
302
296
|
Electorate: "invitation";
|
|
303
297
|
}>;
|
|
304
298
|
}>;
|
|
305
|
-
getInvitation: (name: any) => Promise<Invitation<unknown, undefined>>;
|
|
299
|
+
getInvitation: (name: any) => Promise<Invitation<unknown, undefined>>; /** @param {string} address */
|
|
306
300
|
getLimitedCreatorFacet: () => import("@endo/exo").Guarded<{
|
|
307
301
|
getRewardAllocation(): Allocation;
|
|
308
302
|
makeCollectFeesInvitation(): Promise<Invitation<string, undefined>>;
|
|
@@ -357,9 +351,7 @@ export type ProvisionPoolKitReferences = {
|
|
|
357
351
|
}>>;
|
|
358
352
|
namesByAddressAdmin: ERef<import("@agoric/vats").NameAdmin>;
|
|
359
353
|
walletFactory: ERef<{
|
|
360
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
361
|
-
/** @param {ERef<Bank>} destBank */
|
|
362
|
-
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
354
|
+
provideSmartWallet(address: string, bank: ERef<import("@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
363
355
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
364
356
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
365
357
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -457,9 +449,7 @@ export type ProvisionPoolKitReferences = {
|
|
|
457
449
|
repairWalletForIncarnation2(key: object): void;
|
|
458
450
|
}>> & import("@endo/marshal").RemotableObject, isNew: boolean]>;
|
|
459
451
|
} & import("../../../node_modules/@endo/exo/src/get-interface.js").GetInterfaceGuard<{
|
|
460
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
461
|
-
/** @param {ERef<Bank>} destBank */
|
|
462
|
-
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
452
|
+
provideSmartWallet(address: string, bank: ERef<import("@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
463
453
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
464
454
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
465
455
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -557,9 +547,7 @@ export type ProvisionPoolKitReferences = {
|
|
|
557
547
|
repairWalletForIncarnation2(key: object): void;
|
|
558
548
|
}>> & import("@endo/marshal").RemotableObject, isNew: boolean]>;
|
|
559
549
|
}> & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
560
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
561
|
-
/** @param {ERef<Bank>} destBank */
|
|
562
|
-
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
550
|
+
provideSmartWallet(address: string, bank: ERef<import("@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
563
551
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
564
552
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
565
553
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -657,9 +645,7 @@ export type ProvisionPoolKitReferences = {
|
|
|
657
645
|
repairWalletForIncarnation2(key: object): void;
|
|
658
646
|
}>> & import("@endo/marshal").RemotableObject, isNew: boolean]>;
|
|
659
647
|
} & import("../../../node_modules/@endo/exo/src/get-interface.js").GetInterfaceGuard<{
|
|
660
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
661
|
-
/** @param {ERef<Bank>} destBank */
|
|
662
|
-
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
648
|
+
provideSmartWallet(address: string, bank: ERef<import("@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
663
649
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
664
650
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
665
651
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provisionPoolKit.d.ts","sourceRoot":"","sources":["provisionPoolKit.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provisionPoolKit.d.ts","sourceRoot":"","sources":["provisionPoolKit.js"],"names":[],"mappings":"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"}
|
package/src/provisionPoolKit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import { AmountMath, BrandShape } from '@agoric/ertp';
|
|
3
|
-
import { deeplyFulfilledObject
|
|
3
|
+
import { deeplyFulfilledObject } from '@agoric/internal';
|
|
4
4
|
import { UnguardedHelperI } from '@agoric/internal/src/typeGuards.js';
|
|
5
5
|
import {
|
|
6
6
|
observeIteration,
|
|
@@ -21,16 +21,9 @@ import {
|
|
|
21
21
|
import { InstanceHandleShape } from '@agoric/zoe/src/typeGuards.js';
|
|
22
22
|
import { E } from '@endo/far';
|
|
23
23
|
import { Far } from '@endo/marshal';
|
|
24
|
-
import { isUpgradeDisconnection } from '@agoric/internal/src/upgrade-api.js';
|
|
25
24
|
|
|
26
25
|
const { details: X, quote: q, Fail } = assert;
|
|
27
26
|
|
|
28
|
-
const trace = makeTracer('ProvPool');
|
|
29
|
-
|
|
30
|
-
const FIRST_UPPER_KEYWORD = /^[A-Z][a-zA-Z0-9_$]*$/;
|
|
31
|
-
// see https://github.com/Agoric/agoric-sdk/issues/8238
|
|
32
|
-
const FIRST_LOWER_NEAR_KEYWORD = /^[a-z][a-zA-Z0-9_$]*$/;
|
|
33
|
-
|
|
34
27
|
/**
|
|
35
28
|
* @import {ERef} from '@endo/far'
|
|
36
29
|
* @import {Amount} from '@agoric/ertp/src/types.js'
|
|
@@ -80,7 +73,7 @@ export const makeBridgeProvisionTool = (sendInitialPayment, onProvisioned) => {
|
|
|
80
73
|
fromBridge: async obj => {
|
|
81
74
|
obj.type === 'PLEASE_PROVISION' ||
|
|
82
75
|
Fail`Unrecognized request ${obj.type}`;
|
|
83
|
-
|
|
76
|
+
console.info('PLEASE_PROVISION', obj);
|
|
84
77
|
const { address, powerFlags } = obj;
|
|
85
78
|
powerFlags.includes(PowerFlags.SMART_WALLET) ||
|
|
86
79
|
Fail`missing SMART_WALLET in powerFlags`;
|
|
@@ -97,7 +90,7 @@ export const makeBridgeProvisionTool = (sendInitialPayment, onProvisioned) => {
|
|
|
97
90
|
if (created) {
|
|
98
91
|
onProvisioned();
|
|
99
92
|
}
|
|
100
|
-
|
|
93
|
+
console.info(created ? 'provisioned' : 're-provisioned', address);
|
|
101
94
|
},
|
|
102
95
|
});
|
|
103
96
|
return makeBridgeHandler;
|
|
@@ -156,7 +149,7 @@ export const prepareProvisionPoolKit = (
|
|
|
156
149
|
/** @type {import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<MetricsNotification>} */
|
|
157
150
|
const metricsRecorderKit = makeRecorderKit(metricsNode);
|
|
158
151
|
|
|
159
|
-
/** @type {MapStore<
|
|
152
|
+
/** @type {MapStore<Brand, PsmInstance>} */
|
|
160
153
|
const brandToPSM = makeScalarBigMapStore('brandToPSM', { durable: true });
|
|
161
154
|
const revivableAddresses = makeScalarBigSetStore('revivableAddresses', {
|
|
162
155
|
durable: true,
|
|
@@ -191,7 +184,7 @@ export const prepareProvisionPoolKit = (
|
|
|
191
184
|
machine: {
|
|
192
185
|
/** @param {string[]} oldAddresses */
|
|
193
186
|
addRevivableAddresses(oldAddresses) {
|
|
194
|
-
|
|
187
|
+
console.log('revivableAddresses count', oldAddresses.length);
|
|
195
188
|
this.state.revivableAddresses.addAll(oldAddresses);
|
|
196
189
|
},
|
|
197
190
|
getWalletReviver() {
|
|
@@ -325,7 +318,7 @@ export const prepareProvisionPoolKit = (
|
|
|
325
318
|
.deposit(initialPmt)
|
|
326
319
|
.then(amt => {
|
|
327
320
|
helper.onSendFunds(perAccountInitialAmount);
|
|
328
|
-
|
|
321
|
+
console.log('provisionPool sent', amt);
|
|
329
322
|
})
|
|
330
323
|
.catch(reason => {
|
|
331
324
|
console.error(X`initial deposit failed: ${q(reason)}`);
|
|
@@ -334,114 +327,62 @@ export const prepareProvisionPoolKit = (
|
|
|
334
327
|
});
|
|
335
328
|
},
|
|
336
329
|
/**
|
|
337
|
-
* @param {
|
|
338
|
-
* @param {
|
|
330
|
+
* @param {object} [options]
|
|
331
|
+
* @param {MetricsNotification} [options.metrics]
|
|
339
332
|
*/
|
|
340
|
-
|
|
333
|
+
start({ metrics } = {}) {
|
|
341
334
|
const {
|
|
342
335
|
state: { brandToPSM, poolBrand },
|
|
343
336
|
facets: { helper },
|
|
344
337
|
} = this;
|
|
345
338
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
if (!brandToPSM.has(brand)) {
|
|
353
|
-
console.error('funds arrived but no PSM instance', brand);
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
const instance = brandToPSM.get(brand);
|
|
357
|
-
const payment = E(exchangePurse).withdraw(amount);
|
|
358
|
-
await helper
|
|
359
|
-
.swap(payment, amount, instance)
|
|
360
|
-
.catch(async reason => {
|
|
361
|
-
console.error(X`swap failed: ${reason}`);
|
|
362
|
-
const resolvedPayment = await payment;
|
|
363
|
-
return E(exchangePurse).deposit(resolvedPayment);
|
|
364
|
-
});
|
|
365
|
-
},
|
|
366
|
-
fail: reason => {
|
|
367
|
-
if (isUpgradeDisconnection(reason)) {
|
|
368
|
-
void helper.watchCurrentAmount(exchangePurse, brand);
|
|
369
|
-
} else {
|
|
370
|
-
console.error(reason);
|
|
371
|
-
}
|
|
372
|
-
},
|
|
373
|
-
});
|
|
374
|
-
},
|
|
375
|
-
watchAssetSubscription() {
|
|
376
|
-
const { facets } = this;
|
|
377
|
-
const { helper } = facets;
|
|
378
|
-
|
|
379
|
-
/** @param {import('@agoric/vats/src/vat-bank.js').AssetDescriptor} desc */
|
|
380
|
-
const repairDesc = desc => {
|
|
381
|
-
if (desc.issuerName.match(FIRST_UPPER_KEYWORD)) {
|
|
382
|
-
trace(`Saving Issuer ${desc.issuerName}`);
|
|
383
|
-
return desc;
|
|
384
|
-
} else if (desc.issuerName.match(FIRST_LOWER_NEAR_KEYWORD)) {
|
|
385
|
-
const bad = desc.issuerName;
|
|
386
|
-
const goodName = bad.replace(bad[0], bad[0].toUpperCase());
|
|
387
|
-
|
|
388
|
-
trace(
|
|
389
|
-
`Saving Issuer ${desc.issuerName} with repaired keyword ${goodName}`,
|
|
390
|
-
);
|
|
391
|
-
return { ...desc, issuerName: goodName };
|
|
392
|
-
} else {
|
|
393
|
-
console.error(
|
|
394
|
-
`unable to save issuer with illegal keyword: ${desc.issuerName}`,
|
|
395
|
-
);
|
|
396
|
-
return undefined;
|
|
397
|
-
}
|
|
398
|
-
};
|
|
339
|
+
// Must match. poolBrand is from durable state and the param is from
|
|
340
|
+
// the contract, so it technically can change between incarnations.
|
|
341
|
+
// That would be a severe bug.
|
|
342
|
+
AmountMath.coerce(poolBrand, params.getPerAccountInitialAmount());
|
|
399
343
|
|
|
400
|
-
|
|
344
|
+
void observeIteration(
|
|
401
345
|
subscribeEach(E(poolBank).getAssetSubscription()),
|
|
402
346
|
{
|
|
403
347
|
updateState: async desc => {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
if (issuer === desc.issuer) {
|
|
407
|
-
trace('provisionPool re-notified of known asset', desc.brand);
|
|
408
|
-
} else {
|
|
409
|
-
const goodDesc = repairDesc(desc);
|
|
410
|
-
if (goodDesc) {
|
|
411
|
-
await zcf.saveIssuer(goodDesc.issuer, goodDesc.issuerName);
|
|
412
|
-
} else {
|
|
413
|
-
console.error(
|
|
414
|
-
`unable to save issuer with illegal keyword: ${desc.issuerName}`,
|
|
415
|
-
);
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
348
|
+
console.log('provisionPool notified of new asset', desc.brand);
|
|
349
|
+
await zcf.saveIssuer(desc.issuer, desc.issuerName);
|
|
419
350
|
/** @type {ERef<Purse>} */
|
|
420
351
|
const exchangePurse = E(poolBank).getPurse(desc.brand);
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
352
|
+
void observeNotifier(
|
|
353
|
+
E(exchangePurse).getCurrentAmountNotifier(),
|
|
354
|
+
{
|
|
355
|
+
updateState: async amount => {
|
|
356
|
+
console.log('provisionPool balance update', amount);
|
|
357
|
+
if (
|
|
358
|
+
AmountMath.isEmpty(amount) ||
|
|
359
|
+
amount.brand === poolBrand
|
|
360
|
+
) {
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
if (!brandToPSM.has(desc.brand)) {
|
|
364
|
+
console.error(
|
|
365
|
+
'funds arrived but no PSM instance',
|
|
366
|
+
desc.brand,
|
|
367
|
+
);
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
const instance = brandToPSM.get(desc.brand);
|
|
371
|
+
const payment = E(exchangePurse).withdraw(amount);
|
|
372
|
+
await helper
|
|
373
|
+
.swap(payment, amount, instance)
|
|
374
|
+
.catch(async reason => {
|
|
375
|
+
console.error(X`swap failed: ${reason}`);
|
|
376
|
+
const resolvedPayment = await payment;
|
|
377
|
+
return E(exchangePurse).deposit(resolvedPayment);
|
|
378
|
+
});
|
|
379
|
+
},
|
|
380
|
+
fail: reason => console.error(reason),
|
|
381
|
+
},
|
|
382
|
+
);
|
|
425
383
|
},
|
|
426
384
|
},
|
|
427
385
|
);
|
|
428
|
-
},
|
|
429
|
-
/**
|
|
430
|
-
* @param {object} [options]
|
|
431
|
-
* @param {MetricsNotification} [options.metrics]
|
|
432
|
-
*/
|
|
433
|
-
start({ metrics } = {}) {
|
|
434
|
-
const {
|
|
435
|
-
state: { poolBrand },
|
|
436
|
-
facets: { helper },
|
|
437
|
-
} = this;
|
|
438
|
-
|
|
439
|
-
// Must match. poolBrand is from durable state and the param is from
|
|
440
|
-
// the contract, so it technically can change between incarnations.
|
|
441
|
-
// That would be a severe bug.
|
|
442
|
-
AmountMath.coerce(poolBrand, params.getPerAccountInitialAmount());
|
|
443
|
-
|
|
444
|
-
void helper.watchAssetSubscription();
|
|
445
386
|
|
|
446
387
|
if (metrics) {
|
|
447
388
|
// Restore state.
|