@agoric/builders 0.1.1-upgrade-16-dev-91eb8f4.0 → 0.1.1-upgrade-17-dev-e67cd91.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/builders",
3
- "version": "0.1.1-upgrade-16-dev-91eb8f4.0+91eb8f4",
3
+ "version": "0.1.1-upgrade-17-dev-e67cd91.0+e67cd91",
4
4
  "description": "Build scripts for proposals to an Agoric chain",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -23,32 +23,33 @@
23
23
  "author": "Agoric",
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@agoric/ertp": "0.16.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
27
- "@agoric/internal": "0.3.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
28
- "@agoric/notifier": "0.6.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
29
- "@agoric/smart-wallet": "0.5.4-upgrade-16-dev-91eb8f4.0+91eb8f4",
30
- "@agoric/vat-data": "0.5.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
31
- "@agoric/vats": "0.15.2-upgrade-16-dev-91eb8f4.0+91eb8f4",
32
- "@agoric/zoe": "0.26.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
33
- "@endo/bundle-source": "^3.2.3",
34
- "@endo/captp": "^4.2.0",
35
- "@endo/eventual-send": "^1.2.2",
36
- "@endo/far": "^1.1.2",
37
- "@endo/init": "^1.1.2",
38
- "@endo/marshal": "^1.5.0",
39
- "@endo/promise-kit": "^1.1.2",
40
- "@endo/stream": "^1.2.2",
26
+ "@agoric/ertp": "0.16.3-upgrade-17-dev-e67cd91.0+e67cd91",
27
+ "@agoric/internal": "0.3.3-upgrade-17-dev-e67cd91.0+e67cd91",
28
+ "@agoric/notifier": "0.6.3-upgrade-17-dev-e67cd91.0+e67cd91",
29
+ "@agoric/smart-wallet": "0.5.4-upgrade-17-dev-e67cd91.0+e67cd91",
30
+ "@agoric/vat-data": "0.5.3-upgrade-17-dev-e67cd91.0+e67cd91",
31
+ "@agoric/vats": "0.15.2-upgrade-17-dev-e67cd91.0+e67cd91",
32
+ "@agoric/zoe": "0.26.3-upgrade-17-dev-e67cd91.0+e67cd91",
33
+ "@endo/bundle-source": "^3.4.0",
34
+ "@endo/captp": "^4.3.0",
35
+ "@endo/eventual-send": "^1.2.5",
36
+ "@endo/far": "^1.1.5",
37
+ "@endo/init": "^1.1.4",
38
+ "@endo/marshal": "^1.5.3",
39
+ "@endo/promise-kit": "^1.1.5",
40
+ "@endo/stream": "^1.2.5",
41
41
  "import-meta-resolve": "^2.2.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@agoric/assert": "0.6.1-upgrade-16-dev-91eb8f4.0+91eb8f4",
45
- "@agoric/deploy-script-support": "0.10.4-upgrade-16-dev-91eb8f4.0+91eb8f4",
46
- "@agoric/governance": "0.10.4-upgrade-16-dev-91eb8f4.0+91eb8f4",
47
- "@agoric/inter-protocol": "0.16.2-upgrade-16-dev-91eb8f4.0+91eb8f4",
48
- "@agoric/store": "0.9.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
49
- "@agoric/swing-store": "0.9.2-upgrade-16-dev-91eb8f4.0+91eb8f4",
50
- "@agoric/swingset-liveslots": "0.10.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
51
- "@agoric/time": "0.3.3-upgrade-16-dev-91eb8f4.0+91eb8f4",
44
+ "@agoric/deploy-script-support": "0.10.4-upgrade-17-dev-e67cd91.0+e67cd91",
45
+ "@agoric/governance": "0.10.4-upgrade-17-dev-e67cd91.0+e67cd91",
46
+ "@agoric/inter-protocol": "0.16.2-upgrade-17-dev-e67cd91.0+e67cd91",
47
+ "@agoric/orchestration": "0.1.1-upgrade-17-dev-e67cd91.0+e67cd91",
48
+ "@agoric/store": "0.9.3-upgrade-17-dev-e67cd91.0+e67cd91",
49
+ "@agoric/swing-store": "0.9.2-upgrade-17-dev-e67cd91.0+e67cd91",
50
+ "@agoric/swingset-liveslots": "0.10.3-upgrade-17-dev-e67cd91.0+e67cd91",
51
+ "@agoric/time": "0.3.3-upgrade-17-dev-e67cd91.0+e67cd91",
52
+ "@endo/errors": "^1.2.5",
52
53
  "ava": "^5.3.0",
53
54
  "c8": "^9.1.0"
54
55
  },
@@ -78,7 +79,7 @@
78
79
  "workerThreads": false
79
80
  },
80
81
  "typeCoverage": {
81
- "atLeast": 74.36
82
+ "atLeast": 81.8
82
83
  },
83
- "gitHead": "91eb8f468c6ac5e9c4892633855eac3db365001d"
84
+ "gitHead": "e67cd918f33dafb1708bd4341f2a737b79fa574f"
84
85
  }
@@ -3,7 +3,7 @@ import { defaultProposalBuilder as vaultProposalBuilder } from './add-collateral
3
3
  import { defaultProposalBuilder as oraclesProposalBuilder } from './price-feed-core.js';
4
4
 
5
5
  /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
6
- export const starsVaultProposalBuilder = async powers => {
6
+ const starsVaultProposalBuilder = async powers => {
7
7
  return vaultProposalBuilder(powers, {
8
8
  interchainAssetOptions: {
9
9
  // Values for the Stargaze token on Osmosis
@@ -18,7 +18,7 @@ export const starsVaultProposalBuilder = async powers => {
18
18
  };
19
19
 
20
20
  /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
21
- export const starsOraclesProposalBuilder = async powers => {
21
+ const starsOraclesProposalBuilder = async powers => {
22
22
  return oraclesProposalBuilder(powers, {
23
23
  AGORIC_INSTANCE_NAME: `STARS-USD price feed`,
24
24
  IN_BRAND_LOOKUP: ['agoricNames', 'oracleBrand', 'STARS'],
@@ -48,6 +48,7 @@ export default async function priceAuthorityFromNotifier(
48
48
 
49
49
  if (!aggregatorInstance) {
50
50
  console.log('Autodetecting aggregator instance...');
51
+ // @ts-expect-error inspecific Home type
51
52
  const purse = E(home.wallet).getPurse('Default Zoe invite purse');
52
53
  const { value } = await E(purse).getCurrentAmount();
53
54
  const invitations = value.filter(
@@ -81,6 +82,7 @@ export default async function priceAuthorityFromNotifier(
81
82
  };
82
83
 
83
84
  console.log('Getting wallet bridge...');
85
+ // @ts-expect-error inspecific Home type
84
86
  const bridge = await E(home.wallet).getBridge();
85
87
 
86
88
  // Consume an aggregator invitation for this instance.
@@ -94,6 +96,7 @@ export default async function priceAuthorityFromNotifier(
94
96
  () => {},
95
97
  );
96
98
 
99
+ // @ts-expect-error inspecific Home type
97
100
  const walletAdmin = E(home.wallet).getAdminFacet();
98
101
 
99
102
  console.log('=====================================================');
@@ -111,6 +114,7 @@ export default async function priceAuthorityFromNotifier(
111
114
  const orKey = `offerResult ${id}`;
112
115
  await E(home.scratch).set(
113
116
  orKey,
117
+ // @ts-expect-error inspecific Home type
114
118
  E(home.wallet).lookup('offerResult', id),
115
119
  );
116
120
  console.log(
@@ -0,0 +1,26 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { startBasicFlows } from '@agoric/orchestration/src/proposals/start-basic-flows.js';
3
+
4
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
5
+ export const defaultProposalBuilder = async ({ publishRef, install }) => {
6
+ return harden({
7
+ sourceSpec: '@agoric/orchestration/src/proposals/start-basic-flows.js',
8
+ getManifestCall: [
9
+ 'getManifestForContract',
10
+ {
11
+ installKeys: {
12
+ basicFlows: publishRef(
13
+ install(
14
+ '@agoric/orchestration/src/examples/basic-flows.contract.js',
15
+ ),
16
+ ),
17
+ },
18
+ },
19
+ ],
20
+ });
21
+ };
22
+
23
+ export default async (homeP, endowments) => {
24
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
25
+ await writeCoreEval(startBasicFlows.name, defaultProposalBuilder);
26
+ };
@@ -0,0 +1,23 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+
3
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
4
+ export const defaultProposalBuilder = async ({ publishRef, install }) => {
5
+ return harden({
6
+ sourceSpec: '@agoric/orchestration/src/proposals/start-stakeAtom.js',
7
+ getManifestCall: [
8
+ 'getManifestForStakeAtom',
9
+ {
10
+ installKeys: {
11
+ stakeIca: publishRef(
12
+ install('@agoric/orchestration/src/examples/stakeIca.contract.js'),
13
+ ),
14
+ },
15
+ },
16
+ ],
17
+ });
18
+ };
19
+
20
+ export default async (homeP, endowments) => {
21
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
+ await writeCoreEval('start-stakeAtom', defaultProposalBuilder);
23
+ };
@@ -0,0 +1,23 @@
1
+ // @ts-check
2
+ import { makeHelpers } from '@agoric/deploy-script-support';
3
+
4
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
5
+ export const defaultProposalBuilder = async ({ publishRef, install }) =>
6
+ harden({
7
+ sourceSpec: '@agoric/orchestration/src/proposals/start-stakeBld.js',
8
+ getManifestCall: [
9
+ 'getManifestForStakeBld',
10
+ {
11
+ installKeys: {
12
+ stakeBld: publishRef(
13
+ install('@agoric/orchestration/src/examples/stakeBld.contract.js'),
14
+ ),
15
+ },
16
+ },
17
+ ],
18
+ });
19
+
20
+ export default async (homeP, endowments) => {
21
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
+ await writeCoreEval('start-stakeBld', defaultProposalBuilder);
23
+ };
@@ -0,0 +1,23 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+
3
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
4
+ export const defaultProposalBuilder = async ({ publishRef, install }) => {
5
+ return harden({
6
+ sourceSpec: '@agoric/orchestration/src/proposals/start-stakeOsmo.js',
7
+ getManifestCall: [
8
+ 'getManifestForStakeOsmo',
9
+ {
10
+ installKeys: {
11
+ stakeIca: publishRef(
12
+ install('@agoric/orchestration/src/examples/stakeIca.contract.js'),
13
+ ),
14
+ },
15
+ },
16
+ ],
17
+ });
18
+ };
19
+
20
+ export default async (homeP, endowments) => {
21
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
+ await writeCoreEval('start-stakeOsmo', defaultProposalBuilder);
23
+ };
@@ -9,7 +9,7 @@ import { makeHelpers } from '@agoric/deploy-script-support';
9
9
  import { getManifestForGame1 } from '@agoric/smart-wallet/test/start-game1-proposal.js';
10
10
 
11
11
  /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
12
- export const game1ProposalBuilder = async ({ publishRef, install }) => {
12
+ const game1ProposalBuilder = async ({ publishRef, install }) => {
13
13
  return harden({
14
14
  sourceSpec: '@agoric/smart-wallet/test/start-game1-proposal.js',
15
15
  getManifestCall: [
@@ -0,0 +1,23 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { defaultProposalBuilder as vaultProposalBuilder } from '../inter-protocol/add-collateral-core.js';
3
+
4
+ /** @file This is for use in tests in a3p-integration */
5
+
6
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
7
+ const starsVaultProposalBuilder = async powers => {
8
+ return vaultProposalBuilder(powers, {
9
+ interchainAssetOptions: {
10
+ denom: 'ibc/000C0FFEECAFE000',
11
+ decimalPlaces: 6,
12
+ keyword: 'LEMONS',
13
+
14
+ oracleBrand: 'LEMONS',
15
+ proposedName: 'LEMONS',
16
+ },
17
+ });
18
+ };
19
+
20
+ export default async (homeP, endowments) => {
21
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
+ await writeCoreEval('add-STARS-collateral', starsVaultProposalBuilder);
23
+ };
@@ -0,0 +1,22 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { defaultProposalBuilder as vaultProposalBuilder } from '../inter-protocol/add-collateral-core.js';
3
+
4
+ /** @file This is for use in tests in a3p-integration */
5
+
6
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
7
+ const stars2VaultProposalBuilder = async powers => {
8
+ return vaultProposalBuilder(powers, {
9
+ interchainAssetOptions: {
10
+ denom: 'ibc/111C0FFEECAFE111',
11
+ decimalPlaces: 6,
12
+ keyword: 'OLIVES',
13
+ oracleBrand: 'OLIVES',
14
+ proposedName: 'OLIVES',
15
+ },
16
+ });
17
+ };
18
+
19
+ export default async (homeP, endowments) => {
20
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
21
+ await writeCoreEval('add-STARS2-collateral', stars2VaultProposalBuilder);
22
+ };
@@ -0,0 +1,50 @@
1
+ /// <reference types="ses" />
2
+ import { makeHelpers } from '@agoric/deploy-script-support';
3
+
4
+ /** @type {Record<string, import('@agoric/orchestration/src/chain-info.js').ChainInfo>} */
5
+ const chainInfo = {
6
+ hot: {
7
+ allegedName: 'Hot New Chain',
8
+ chainId: 'hot-1',
9
+ connections: {
10
+ 'cosmoshub-4': {
11
+ id: 'connection-99',
12
+ client_id: '07-tendermint-3',
13
+ counterparty: {
14
+ client_id: '07-tendermint-2',
15
+ connection_id: 'connection-1',
16
+ prefix: {
17
+ key_prefix: '',
18
+ },
19
+ },
20
+ state: 3 /* IBCConnectionState.STATE_OPEN */,
21
+ transferChannel: {
22
+ portId: 'transfer',
23
+ channelId: 'channel-1',
24
+ counterPartyChannelId: 'channel-1',
25
+ counterPartyPortId: 'transfer',
26
+ ordering: 1 /* Order.ORDER_UNORDERED */,
27
+ state: 3 /* IBCConnectionState.STATE_OPEN */,
28
+ version: 'ics20-1',
29
+ },
30
+ },
31
+ },
32
+ },
33
+ };
34
+
35
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
36
+ export const defaultProposalBuilder = async () =>
37
+ harden({
38
+ sourceSpec: '@agoric/orchestration/src/proposals/revise-chain-info.js',
39
+ getManifestCall: [
40
+ 'getManifestForReviseChains',
41
+ {
42
+ chainInfo,
43
+ },
44
+ ],
45
+ });
46
+
47
+ export default async (homeP, endowments) => {
48
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
49
+ await writeCoreEval('revise-chain-info', defaultProposalBuilder);
50
+ };
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @file This is for use in tests.
3
+ * Unlike most builder scripts, this one includes the proposal exports as well.
4
+ */
5
+ import {
6
+ deeplyFulfilledObject,
7
+ makeTracer,
8
+ NonNullish,
9
+ } from '@agoric/internal';
10
+ import { E } from '@endo/far';
11
+
12
+ /// <reference types="@agoric/vats/src/core/types-ambient"/>
13
+
14
+ const trace = makeTracer('RestartBasicFlows', true);
15
+
16
+ /**
17
+ * @import {start as StartFn} from '@agoric/orchestration/src/examples/basic-flows.contract.js';
18
+ */
19
+
20
+ /**
21
+ * @param {BootstrapPowers} powers
22
+ */
23
+ export const restartBasicFlows = async ({
24
+ consume: {
25
+ agoricNames,
26
+ board,
27
+ chainStorage,
28
+ chainTimerService,
29
+ cosmosInterchainService,
30
+ localchain,
31
+
32
+ contractKits,
33
+ },
34
+ instance: instances,
35
+ }) => {
36
+ trace(restartBasicFlows.name);
37
+
38
+ // @ts-expect-error unknown instance
39
+ const instance = await instances.consume.basicFlows;
40
+ trace('instance', instance);
41
+ /** @type {StartedInstanceKit<StartFn>} */
42
+ const kit = /** @type {any} */ (await E(contractKits).get(instance));
43
+
44
+ const marshaller = await E(board).getReadonlyMarshaller();
45
+
46
+ const privateArgs = await deeplyFulfilledObject(
47
+ harden({
48
+ agoricNames,
49
+ localchain,
50
+ marshaller,
51
+ orchestrationService: cosmosInterchainService,
52
+ storageNode: E(NonNullish(await chainStorage)).makeChildNode(
53
+ 'basicFlows',
54
+ ),
55
+ timerService: chainTimerService,
56
+ }),
57
+ );
58
+
59
+ await E(kit.adminFacet).restartContract(privateArgs);
60
+ trace('done');
61
+ };
62
+ harden(restartBasicFlows);
63
+
64
+ export const getManifest = () => {
65
+ return {
66
+ manifest: {
67
+ [restartBasicFlows.name]: {
68
+ consume: {
69
+ agoricNames: true,
70
+ board: true,
71
+ chainStorage: true,
72
+ chainTimerService: true,
73
+ cosmosInterchainService: true,
74
+ localchain: true,
75
+
76
+ contractKits: true,
77
+ },
78
+ instance: {
79
+ consume: { basicFlows: true },
80
+ },
81
+ },
82
+ },
83
+ };
84
+ };
85
+
86
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
87
+ export const defaultProposalBuilder = async () =>
88
+ harden({
89
+ // Somewhat unorthodox, source the exports from this builder module
90
+ sourceSpec: '@agoric/builders/scripts/testing/restart-basic-flows.js',
91
+ getManifestCall: [getManifest.name],
92
+ });
93
+
94
+ export default async (homeP, endowments) => {
95
+ // import dynamically so the module can work in CoreEval environment
96
+ const dspModule = await import('@agoric/deploy-script-support');
97
+ const { makeHelpers } = dspModule;
98
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
99
+ await writeCoreEval(restartBasicFlows.name, defaultProposalBuilder);
100
+ };
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @file This is for use in tests in a3p-integration
3
+ * Unlike most builder scripts, this one includes the proposal exports as well.
4
+ */
5
+ import {
6
+ deeplyFulfilledObject,
7
+ makeTracer,
8
+ NonNullish,
9
+ } from '@agoric/internal';
10
+ import { E } from '@endo/far';
11
+
12
+ /// <reference types="@agoric/vats/src/core/types-ambient"/>
13
+
14
+ const trace = makeTracer('StartSA', true);
15
+
16
+ /**
17
+ * @import {start as StartFn} from '@agoric/orchestration/src/examples/send-anywhere.contract.js';
18
+ */
19
+
20
+ /**
21
+ * @param {BootstrapPowers} powers
22
+ */
23
+ export const restartSendAnywhere = async ({
24
+ consume: {
25
+ agoricNames,
26
+ board,
27
+ chainStorage,
28
+ chainTimerService,
29
+ cosmosInterchainService,
30
+ localchain,
31
+
32
+ contractKits,
33
+ },
34
+ instance: instances,
35
+ }) => {
36
+ trace(restartSendAnywhere.name);
37
+
38
+ // @ts-expect-error unknown instance
39
+ const instance = await instances.consume.sendAnywhere;
40
+ trace('instance', instance);
41
+ /** @type {StartedInstanceKit<StartFn>} */
42
+ const kit = /** @type {any} */ (await E(contractKits).get(instance));
43
+
44
+ const marshaller = await E(board).getReadonlyMarshaller();
45
+
46
+ const privateArgs = await deeplyFulfilledObject(
47
+ harden({
48
+ agoricNames,
49
+ localchain,
50
+ marshaller,
51
+ orchestrationService: cosmosInterchainService,
52
+ storageNode: E(NonNullish(await chainStorage)).makeChildNode(
53
+ 'sendAnywhere',
54
+ ),
55
+ timerService: chainTimerService,
56
+ }),
57
+ );
58
+
59
+ await E(kit.adminFacet).restartContract(privateArgs);
60
+ trace('done');
61
+ };
62
+ harden(restartSendAnywhere);
63
+
64
+ export const getManifest = () => {
65
+ return {
66
+ manifest: {
67
+ [restartSendAnywhere.name]: {
68
+ consume: {
69
+ agoricNames: true,
70
+ board: true,
71
+ chainStorage: true,
72
+ chainTimerService: true,
73
+ cosmosInterchainService: true,
74
+ localchain: true,
75
+
76
+ contractKits: true,
77
+ },
78
+ instance: {
79
+ consume: { sendAnywhere: true },
80
+ },
81
+ },
82
+ },
83
+ };
84
+ };
85
+
86
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
87
+ export const defaultProposalBuilder = async () =>
88
+ harden({
89
+ // Somewhat unorthodox, source the exports from this builder module
90
+ sourceSpec: '@agoric/builders/scripts/testing/restart-send-anywhere.js',
91
+ getManifestCall: [getManifest.name],
92
+ });
93
+
94
+ export default async (homeP, endowments) => {
95
+ // import dynamically so the module can work in CoreEval environment
96
+ const dspModule = await import('@agoric/deploy-script-support');
97
+ const { makeHelpers } = dspModule;
98
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
99
+ await writeCoreEval(restartSendAnywhere.name, defaultProposalBuilder);
100
+ };
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @file This is for use in tests in a3p-integration
3
+ * Unlike most builder scripts, this one includes the proposal exports as well.
4
+ */
5
+ import { deeplyFulfilledObject, makeTracer } from '@agoric/internal';
6
+ import { makeStorageNodeChild } from '@agoric/internal/src/lib-chainStorage.js';
7
+ import { E } from '@endo/far';
8
+
9
+ /// <reference types="@agoric/vats/src/core/types-ambient"/>
10
+
11
+ const trace = makeTracer('RestartSA', true);
12
+
13
+ /**
14
+ * @import {start as StartFn} from '@agoric/orchestration/src/examples/stakeIca.contract.js';
15
+ */
16
+
17
+ /**
18
+ * @param {BootstrapPowers} powers
19
+ */
20
+ export const restartStakeAtom = async ({
21
+ consume: {
22
+ agoricNames,
23
+ board,
24
+ chainStorage,
25
+ chainTimerService,
26
+ cosmosInterchainService,
27
+ contractKits,
28
+ },
29
+ instance: instances,
30
+ }) => {
31
+ trace(restartStakeAtom.name);
32
+
33
+ const instance = await instances.consume.stakeAtom;
34
+ trace('instance', instance);
35
+
36
+ /** @type {StartedInstanceKit<StartFn>} */
37
+ const kit = /** @type {any} */ (await E(contractKits).get(instance));
38
+
39
+ const marshaller = await E(board).getReadonlyMarshaller();
40
+
41
+ const privateArgs = await deeplyFulfilledObject(
42
+ harden({
43
+ agoricNames,
44
+ cosmosInterchainService,
45
+ storageNode: makeStorageNodeChild(chainStorage, 'stakeAtom'),
46
+ marshaller,
47
+ timer: chainTimerService,
48
+ }),
49
+ );
50
+
51
+ await E(kit.adminFacet).restartContract(privateArgs);
52
+ trace('done');
53
+ };
54
+ harden(restartStakeAtom);
55
+
56
+ export const getManifest = () => {
57
+ return {
58
+ manifest: {
59
+ [restartStakeAtom.name]: {
60
+ consume: {
61
+ agoricNames: true,
62
+ board: true,
63
+ chainStorage: true,
64
+ chainTimerService: true,
65
+ cosmosInterchainService: true,
66
+ contractKits: true,
67
+ },
68
+ instance: {
69
+ consume: { stakeAtom: true },
70
+ },
71
+ },
72
+ },
73
+ };
74
+ };
75
+
76
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
77
+ export const defaultProposalBuilder = async () =>
78
+ harden({
79
+ // Somewhat unorthodox, source the exports from this builder module
80
+ sourceSpec: '@agoric/builders/scripts/testing/restart-stakeAtom.js',
81
+ getManifestCall: [getManifest.name],
82
+ });
83
+
84
+ export default async (homeP, endowments) => {
85
+ // import dynamically so the module can work in CoreEval environment
86
+ const dspModule = await import('@agoric/deploy-script-support');
87
+ const { makeHelpers } = dspModule;
88
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
89
+ await writeCoreEval(restartStakeAtom.name, defaultProposalBuilder);
90
+ };