@agoric/builders 0.1.1-other-dev-3eb1a1d.0 → 0.1.1-other-dev-d15096d.0.d15096d

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.
Files changed (91) hide show
  1. package/package.json +38 -37
  2. package/scripts/inter-protocol/add-STARS.js +8 -3
  3. package/scripts/inter-protocol/add-collateral-core.js +10 -4
  4. package/scripts/inter-protocol/init-core.js +7 -2
  5. package/scripts/inter-protocol/invite-committee-core.js +7 -2
  6. package/scripts/inter-protocol/manual-price-feed.js +5 -1
  7. package/scripts/inter-protocol/price-feed-core.js +5 -1
  8. package/scripts/inter-protocol/replace-electorate-core.js +9 -3
  9. package/scripts/inter-protocol/replace-feeDistributor-combo.js +87 -0
  10. package/scripts/inter-protocol/replace-feeDistributor.js +19 -6
  11. package/scripts/inter-protocol/updatePriceFeeds.js +18 -4
  12. package/scripts/inter-protocol/withdraw-reserve.build.js +73 -0
  13. package/scripts/inter-protocol/withdraw-vbank-reserve-permit.json +6 -0
  14. package/scripts/inter-protocol/withdraw-vbank-reserve.js +67 -0
  15. package/scripts/orchestration/axelar-gmp.build.js +83 -0
  16. package/scripts/orchestration/get-chain-config.js +121 -0
  17. package/scripts/orchestration/helpers.js +46 -0
  18. package/scripts/orchestration/hook-localchain-msg-send.js +35 -0
  19. package/scripts/orchestration/init-basic-flows.js +18 -4
  20. package/scripts/orchestration/init-stakeAtom.js +18 -4
  21. package/scripts/orchestration/init-stakeBld.js +7 -2
  22. package/scripts/orchestration/init-stakeOsmo.js +18 -4
  23. package/scripts/orchestration/write-chain-info.js +7 -2
  24. package/scripts/pegasus/init-core.js +7 -2
  25. package/scripts/smart-wallet/build-game1-start.js +7 -2
  26. package/scripts/smart-wallet/build-wallet-factory2-upgrade.js +7 -2
  27. package/scripts/smart-wallet/build-walletFactory-upgrade.js +7 -2
  28. package/scripts/testing/add-LEMONS.js +7 -2
  29. package/scripts/testing/add-OLIVES.js +7 -2
  30. package/scripts/testing/add-USD-LEMONS.js +23 -0
  31. package/scripts/testing/add-USD-OLIVES.js +23 -0
  32. package/scripts/testing/append-chain-info.js +12 -4
  33. package/scripts/testing/init-auto-stake-it.js +47 -0
  34. package/scripts/testing/init-send-anywhere.js +41 -0
  35. package/scripts/testing/init-swap-anything.js +41 -0
  36. package/scripts/testing/provokeBOYD.js +58 -0
  37. package/scripts/testing/publish-test-info.js +84 -0
  38. package/scripts/testing/recorded-retired-instances.js +86 -0
  39. package/scripts/testing/register-interchain-bank-assets.js +199 -0
  40. package/scripts/testing/replace-feeDistributor-short.js +14 -3
  41. package/scripts/testing/restart-axelar-gmp.js +96 -0
  42. package/scripts/testing/restart-basic-flows.js +5 -3
  43. package/scripts/testing/restart-send-anywhere.js +5 -3
  44. package/scripts/testing/restart-stakeAtom.js +5 -3
  45. package/scripts/testing/restart-valueVow.js +7 -4
  46. package/scripts/testing/start-query-flows.js +47 -25
  47. package/scripts/testing/start-valueVow.js +7 -4
  48. package/scripts/testing/test-upgraded-board.js +20 -0
  49. package/scripts/testing/tweak-chain-info.js +15 -4
  50. package/scripts/testing/{fix-buggy-sendAnywhere.js → upgrade-send-anywhere.js} +19 -21
  51. package/scripts/testing/upgrade-vaultFactory.js +26 -0
  52. package/scripts/vats/add-auction.js +7 -2
  53. package/scripts/vats/init-core.js +7 -2
  54. package/scripts/vats/init-localchain.js +7 -2
  55. package/scripts/vats/init-network.js +7 -2
  56. package/scripts/vats/init-orchestration.js +7 -2
  57. package/scripts/vats/init-transfer.js +7 -2
  58. package/scripts/vats/priceFeedSupport.js +7 -3
  59. package/scripts/vats/probe-zcf-bundle.js +7 -2
  60. package/scripts/vats/replace-provisioning.js +7 -2
  61. package/scripts/vats/replace-zoe.js +7 -2
  62. package/scripts/vats/restart-vats.js +7 -2
  63. package/scripts/vats/revive-kread.js +7 -2
  64. package/scripts/vats/test-localchain.js +7 -2
  65. package/scripts/vats/test-vtransfer.js +7 -2
  66. package/scripts/vats/updateAtomPriceFeed.js +7 -2
  67. package/scripts/vats/updateStAtomPriceFeed.js +7 -2
  68. package/scripts/vats/updateStOsmoPriceFeed.js +7 -2
  69. package/scripts/vats/updateStTiaPriceFeed.js +7 -2
  70. package/scripts/vats/updateStkAtomPriceFeed.js +7 -2
  71. package/scripts/vats/upgrade-agoricNames.js +26 -0
  72. package/scripts/vats/upgrade-asset-reserve.js +26 -0
  73. package/scripts/vats/upgrade-bank.js +9 -4
  74. package/scripts/vats/upgrade-board.js +25 -0
  75. package/scripts/vats/upgrade-mintHolder.js +110 -0
  76. package/scripts/vats/upgrade-orchestration.js +26 -0
  77. package/scripts/vats/upgrade-paRegistry.js +26 -0
  78. package/scripts/vats/upgrade-provisionPool-to-BLD.js +30 -0
  79. package/scripts/vats/upgrade-provisionPool.js +7 -2
  80. package/scripts/vats/upgrade-psm.js +24 -0
  81. package/scripts/vats/upgrade-vats.js +53 -0
  82. package/scripts/vats/upgrade-zcf.js +7 -2
  83. package/scripts/vats/upgrade-zoe.js +7 -2
  84. package/scripts/vats/upgradeScaledPriceAuthorities.js +7 -2
  85. package/scripts/vats/upgradeVaults.js +7 -2
  86. package/index.js +0 -0
  87. package/scripts/fast-usdc/init-fast-usdc.js +0 -242
  88. package/scripts/testing/start-auto-stake-it.js +0 -128
  89. package/scripts/testing/start-buggy-sendAnywhere.js +0 -143
  90. package/scripts/testing/start-send-anywhere.js +0 -136
  91. package/scripts/vats/upgrade-orch-core.js +0 -24
@@ -0,0 +1,83 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { makeHelpers } from '@agoric/deploy-script-support';
3
+ import { parseArgs } from 'node:util';
4
+ import {
5
+ getManifest,
6
+ startAxelarGmp,
7
+ } from '@agoric/orchestration/src/proposals/start-axelar-gmp.js';
8
+ import { assetInfo } from '@agoric/orchestration/src/utils/axelar-static-config.js';
9
+ import { getChainConfig } from './get-chain-config.js';
10
+
11
+ /** @typedef {{ net?: string, peer?: string[] }} PeerChainOpts */
12
+
13
+ /**
14
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
15
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
16
+ * @import {ParseArgsConfig} from 'node:util';
17
+ */
18
+
19
+ /** @type {CoreEvalBuilder} */
20
+ export const defaultProposalBuilder = async (
21
+ { publishRef, install },
22
+ options,
23
+ ) =>
24
+ harden({
25
+ sourceSpec: '@agoric/orchestration/src/proposals/start-axelar-gmp.js',
26
+ getManifestCall: [
27
+ getManifest.name,
28
+ {
29
+ installationRef: publishRef(
30
+ install('@agoric/orchestration/dist/axelar-gmp.contract.bundle.js'),
31
+ ),
32
+ options,
33
+ },
34
+ ],
35
+ });
36
+
37
+ /** @type {DeployScriptFunction} */
38
+ export default async (homeP, endowments) => {
39
+ const { scriptArgs } = endowments;
40
+
41
+ /** @type {ParseArgsConfig['options']} */
42
+ const options = {
43
+ net: {
44
+ type: 'string',
45
+ },
46
+ peer: { type: 'string', multiple: true },
47
+ };
48
+
49
+ /** @type {{ values: PeerChainOpts }} */
50
+ const { values: flags } = parseArgs({ args: scriptArgs, options });
51
+
52
+ const parseAssetInfo = () => {
53
+ if (typeof assetInfo !== 'string') return undefined;
54
+ return JSON.parse(assetInfo);
55
+ };
56
+
57
+ if (!flags.net) throw Error('--net required');
58
+ if (!flags.peer) throw Error('--peer required');
59
+
60
+ const validNets = ['bootstrap', 'devnet', 'emerynet', 'local'];
61
+ if (!validNets.includes(flags.net)) {
62
+ throw Error(`--net must be one of: ${validNets.join(', ')}`);
63
+ }
64
+
65
+ const chainDetails = await getChainConfig({
66
+ net: /** @type {'bootstrap' | 'devnet' | 'emerynet' | 'local'} */ (
67
+ flags.net
68
+ ),
69
+ peers: flags.peer,
70
+ execFileSync,
71
+ });
72
+
73
+ const opts = harden({
74
+ chainInfo: chainDetails,
75
+ assetInfo: parseAssetInfo(),
76
+ });
77
+
78
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
79
+
80
+ await writeCoreEval(startAxelarGmp.name, utils =>
81
+ defaultProposalBuilder(utils, opts),
82
+ );
83
+ };
@@ -0,0 +1,121 @@
1
+ import { IBCConnectionInfoShape } from '@agoric/orchestration/src/typeGuards.js';
2
+ import { mustMatch } from '@endo/patterns';
3
+ import { makeAgd } from '@agoric/orchestration/src/utils/agd-lib.js';
4
+ import * as childProcess from 'node:child_process';
5
+ import fetchedChainInfo from '@agoric/orchestration/src/fetched-chain-info.js';
6
+ import { fetchNetworkConfig } from '@agoric/client-utils';
7
+
8
+ /**
9
+ * @import {IBCChannelID, IBCConnectionID} from '@agoric/vats';
10
+ * @import {CosmosChainInfo, IBCConnectionInfo} from '@agoric/orchestration'
11
+ */
12
+
13
+ /** @param {string[]} strs */
14
+ const parsePeers = strs => {
15
+ /** @type {[name: string, conn: IBCConnectionID, chan: IBCChannelID, denom:string][]} */
16
+ // @ts-expect-error XXX ID syntax should be dynamically checked
17
+ const peerParts = strs.map(s => s.split(':'));
18
+ const badPeers = peerParts.filter(d => d.length !== 4);
19
+ if (badPeers.length) {
20
+ throw Error(
21
+ `peers must be name:connection-X:channel-Y:denom, not ${badPeers.join(', ')}`,
22
+ );
23
+ }
24
+ return peerParts;
25
+ };
26
+
27
+ // TODO: Can these be sourced from chain-registry?
28
+ /**
29
+ * Get the IBC chain configuration based on the provided network and peer inputs.
30
+ *
31
+ * @param {object} args - The arguments object.
32
+ * @param {'bootstrap' | 'devnet' |'emerynet' | 'local' } args.net - Agoric network shorthand (e.g., 'emerynet').
33
+ * @param {string[]} args.peers - The peers to connect .
34
+ * @param {childProcess.execFileSync} [args.execFileSync] - Optional execFileSync function.
35
+ * @returns {Promise<Record<string, CosmosChainInfo>>} A promise that resolves to the chain configuration details keyed by chain name.
36
+ */
37
+
38
+ export const getChainConfig = async ({
39
+ net,
40
+ peers,
41
+ execFileSync = childProcess.execFileSync,
42
+ }) => {
43
+ await null;
44
+
45
+ if (net === 'bootstrap') {
46
+ return {
47
+ agoric: fetchedChainInfo.agoric,
48
+ axelar: fetchedChainInfo.axelar,
49
+ };
50
+ }
51
+
52
+ /** @type {Record<string, CosmosChainInfo>} */
53
+ const chainDetails = {};
54
+
55
+ /** @type {Record<string, IBCConnectionInfo>} */
56
+ const connections = {};
57
+ const portId = 'transfer';
58
+
59
+ const { chainName: chainId, rpcAddrs } = await fetchNetworkConfig(net, {
60
+ fetch,
61
+ });
62
+ // XXX execFileSync bad POLA; these queries can be made with `fetch`
63
+ const agd = makeAgd({ execFileSync }).withOpts({ rpcAddrs });
64
+
65
+ for (const [peerName, myConn, myChan, denom] of parsePeers(peers)) {
66
+ console.debug(peerName, { denom });
67
+ const connInfo = await agd
68
+ .query(['ibc', 'connection', 'end', myConn])
69
+ .then(x => x.connection);
70
+ const { client_id: clientId } = connInfo;
71
+ const clientState = await agd
72
+ .query(['ibc', 'client', 'state', clientId])
73
+ .then(x => x.client_state);
74
+ const { chain_id: peerId } = clientState;
75
+ console.debug(peerName, { chainId: peerId, denom });
76
+ chainDetails[peerName] = {
77
+ namespace: 'cosmos',
78
+ reference: peerId,
79
+ chainId: peerId,
80
+ stakingTokens: [{ denom }],
81
+ bech32Prefix: peerName,
82
+ };
83
+
84
+ const chan = await agd
85
+ .query(['ibc', 'channel', 'end', portId, myChan])
86
+ .then(r => r.channel);
87
+
88
+ /** @type {IBCConnectionInfo} */
89
+ const info = harden({
90
+ client_id: clientId,
91
+ counterparty: {
92
+ client_id: connInfo.counterparty.client_id,
93
+ connection_id: connInfo.counterparty.connection_id,
94
+ },
95
+ id: myConn,
96
+ state: connInfo.state,
97
+ transferChannel: {
98
+ channelId: myChan,
99
+ counterPartyChannelId: chan.counterparty.channel_id,
100
+ counterPartyPortId: chan.counterparty.port_id,
101
+ ordering: chan.ordering,
102
+ portId,
103
+ state: chan.state,
104
+ version: chan.version,
105
+ },
106
+ });
107
+ mustMatch(info, IBCConnectionInfoShape);
108
+ connections[peerId] = info;
109
+ }
110
+
111
+ chainDetails.agoric = {
112
+ namespace: 'cosmos',
113
+ reference: chainId,
114
+ chainId,
115
+ stakingTokens: [{ denom: 'ubld' }],
116
+ connections,
117
+ bech32Prefix: 'agoric',
118
+ };
119
+
120
+ return chainDetails;
121
+ };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @import {DeployScriptEndownments} from '@agoric/deploy-script-support/src/externalTypes.js';
3
+ * @import {CosmosChainInfo, Denom, DenomDetail} from '@agoric/orchestration';
4
+ * @import {ParseArgsConfig} from 'node:util'
5
+ */
6
+
7
+ /**
8
+ * Parse `chainInfo` and `assetInfo` into builder opts
9
+ *
10
+ * NOTE: Ambient authority via `node:util`
11
+ *
12
+ * @param {DeployScriptEndownments['scriptArgs']} scriptArgs
13
+ * @returns {Promise<{
14
+ * chainInfo: Record<string, CosmosChainInfo>;
15
+ * assetInfo: [Denom, DenomDetail & { brandKey?: string }][];
16
+ * }>}
17
+ */
18
+ export const parseChainHubOpts = async scriptArgs => {
19
+ // import dynamically so the modules can work in CoreEval environment
20
+ const { parseArgs } = await import('node:util');
21
+
22
+ /** @type {ParseArgsConfig['options']} */
23
+ const parserOpts = {
24
+ chainInfo: { type: 'string' },
25
+ assetInfo: { type: 'string' },
26
+ };
27
+ const {
28
+ values: { chainInfo, assetInfo },
29
+ } = parseArgs({
30
+ args: scriptArgs,
31
+ options: parserOpts,
32
+ });
33
+
34
+ const parseChainInfo = () => {
35
+ if (typeof chainInfo !== 'string') return undefined;
36
+ return JSON.parse(chainInfo);
37
+ };
38
+ const parseAssetInfo = () => {
39
+ if (typeof assetInfo !== 'string') return undefined;
40
+ return JSON.parse(assetInfo);
41
+ };
42
+ return harden({
43
+ chainInfo: parseChainInfo(),
44
+ assetInfo: parseAssetInfo(),
45
+ });
46
+ };
@@ -0,0 +1,35 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+
3
+ /**
4
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
5
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ */
7
+
8
+ /** @type {CoreEvalBuilder} */
9
+ export const defaultProposalBuilder = async ({ publishRef, install }) => {
10
+ const vatNameToEntrypoint = {
11
+ localchain: '@agoric/vats/src/vat-localchain.js',
12
+ transfer: '@agoric/vats/src/vat-transfer.js',
13
+ };
14
+
15
+ return harden({
16
+ sourceSpec: '@agoric/vats/src/proposals/localchain-hook-msg-send.js',
17
+ getManifestCall: [
18
+ 'getManifestForMsgSendToTransfer',
19
+ {
20
+ bundleRefs: Object.fromEntries(
21
+ Object.entries(vatNameToEntrypoint).map(
22
+ ([name, entrypoint]) =>
23
+ /** @type {const} */ ([name, publishRef(install(entrypoint))]),
24
+ ),
25
+ ),
26
+ },
27
+ ],
28
+ });
29
+ };
30
+
31
+ /** @type {DeployScriptFunction} */
32
+ export default async (homeP, endowments) => {
33
+ const { writeCoreProposal } = await makeHelpers(homeP, endowments);
34
+ await writeCoreProposal('hook-localchain', defaultProposalBuilder);
35
+ };
@@ -1,8 +1,17 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
2
  import { startBasicFlows } from '@agoric/orchestration/src/proposals/start-basic-flows.js';
3
+ import { parseChainHubOpts } from './helpers.js';
3
4
 
4
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
5
- export const defaultProposalBuilder = async ({ publishRef, install }) => {
5
+ /**
6
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
7
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
8
+ */
9
+
10
+ /** @type {CoreEvalBuilder} */
11
+ export const defaultProposalBuilder = async (
12
+ { publishRef, install },
13
+ options,
14
+ ) => {
6
15
  return harden({
7
16
  sourceSpec: '@agoric/orchestration/src/proposals/start-basic-flows.js',
8
17
  getManifestCall: [
@@ -15,13 +24,18 @@ export const defaultProposalBuilder = async ({ publishRef, install }) => {
15
24
  ),
16
25
  ),
17
26
  },
27
+ options,
18
28
  },
19
29
  ],
20
30
  });
21
31
  };
22
32
 
23
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
33
+ /** @type {DeployScriptFunction} */
24
34
  export default async (homeP, endowments) => {
35
+ const { scriptArgs } = endowments;
36
+ const opts = parseChainHubOpts(scriptArgs);
25
37
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
26
- await writeCoreEval(startBasicFlows.name, defaultProposalBuilder);
38
+ await writeCoreEval(startBasicFlows.name, utils =>
39
+ defaultProposalBuilder(utils, opts),
40
+ );
27
41
  };
@@ -1,7 +1,16 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { parseChainHubOpts } from './helpers.js';
2
3
 
3
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
4
- export const defaultProposalBuilder = async ({ publishRef, install }) => {
4
+ /**
5
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
7
+ */
8
+
9
+ /** @type {CoreEvalBuilder} */
10
+ export const defaultProposalBuilder = async (
11
+ { publishRef, install },
12
+ options,
13
+ ) => {
5
14
  return harden({
6
15
  sourceSpec: '@agoric/orchestration/src/proposals/start-stakeAtom.js',
7
16
  getManifestCall: [
@@ -12,13 +21,18 @@ export const defaultProposalBuilder = async ({ publishRef, install }) => {
12
21
  install('@agoric/orchestration/src/examples/stake-ica.contract.js'),
13
22
  ),
14
23
  },
24
+ options,
15
25
  },
16
26
  ],
17
27
  });
18
28
  };
19
29
 
20
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
30
+ /** @type {DeployScriptFunction} */
21
31
  export default async (homeP, endowments) => {
32
+ const { scriptArgs } = endowments;
33
+ const opts = parseChainHubOpts(scriptArgs);
22
34
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
23
- await writeCoreEval('start-stakeAtom', defaultProposalBuilder);
35
+ await writeCoreEval('start-stakeAtom', utils =>
36
+ defaultProposalBuilder(utils, opts),
37
+ );
24
38
  };
@@ -1,7 +1,12 @@
1
1
  // @ts-check
2
2
  import { makeHelpers } from '@agoric/deploy-script-support';
3
3
 
4
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
4
+ /**
5
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
7
+ */
8
+
9
+ /** @type {CoreEvalBuilder} */
5
10
  export const defaultProposalBuilder = async ({ publishRef, install }) =>
6
11
  harden({
7
12
  sourceSpec: '@agoric/orchestration/src/proposals/start-stakeBld.js',
@@ -17,7 +22,7 @@ export const defaultProposalBuilder = async ({ publishRef, install }) =>
17
22
  ],
18
23
  });
19
24
 
20
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
25
+ /** @type {DeployScriptFunction} */
21
26
  export default async (homeP, endowments) => {
22
27
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
23
28
  await writeCoreEval('start-stakeBld', defaultProposalBuilder);
@@ -1,7 +1,16 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { parseChainHubOpts } from './helpers.js';
2
3
 
3
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
4
- export const defaultProposalBuilder = async ({ publishRef, install }) => {
4
+ /**
5
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
7
+ */
8
+
9
+ /** @type {CoreEvalBuilder} */
10
+ export const defaultProposalBuilder = async (
11
+ { publishRef, install },
12
+ options,
13
+ ) => {
5
14
  return harden({
6
15
  sourceSpec: '@agoric/orchestration/src/proposals/start-stakeOsmo.js',
7
16
  getManifestCall: [
@@ -12,13 +21,18 @@ export const defaultProposalBuilder = async ({ publishRef, install }) => {
12
21
  install('@agoric/orchestration/src/examples/stake-ica.contract.js'),
13
22
  ),
14
23
  },
24
+ options,
15
25
  },
16
26
  ],
17
27
  });
18
28
  };
19
29
 
20
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
30
+ /** @type {DeployScriptFunction} */
21
31
  export default async (homeP, endowments) => {
32
+ const { scriptArgs } = endowments;
33
+ const opts = parseChainHubOpts(scriptArgs);
22
34
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
23
- await writeCoreEval('start-stakeOsmo', defaultProposalBuilder);
35
+ await writeCoreEval('start-stakeOsmo', utils =>
36
+ defaultProposalBuilder(utils, opts),
37
+ );
24
38
  };
@@ -1,13 +1,18 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
2
 
3
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
3
+ /**
4
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
5
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ */
7
+
8
+ /** @type {CoreEvalBuilder} */
4
9
  export const defaultProposalBuilder = async () =>
5
10
  harden({
6
11
  sourceSpec: '@agoric/orchestration/src/proposals/init-chain-info.js',
7
12
  getManifestCall: ['getManifestForChainInfo'],
8
13
  });
9
14
 
10
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
15
+ /** @type {DeployScriptFunction} */
11
16
  export default async (homeP, endowments) => {
12
17
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
13
18
  await writeCoreEval('gov-orchestration', defaultProposalBuilder);
@@ -1,6 +1,11 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
2
 
3
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
3
+ /**
4
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
5
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ */
7
+
8
+ /** @type {CoreEvalBuilder} */
4
9
  export const defaultProposalBuilder = async ({ publishRef, install }) =>
5
10
  harden({
6
11
  sourceSpec: '@agoric/pegasus/src/proposals/core-proposal.js',
@@ -17,7 +22,7 @@ export const defaultProposalBuilder = async ({ publishRef, install }) =>
17
22
  ],
18
23
  });
19
24
 
20
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
25
+ /** @type {DeployScriptFunction} */
21
26
  export default async (homeP, endowments) => {
22
27
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
23
28
  await writeCoreEval('gov-pegasus', defaultProposalBuilder);
@@ -8,7 +8,12 @@
8
8
  import { makeHelpers } from '@agoric/deploy-script-support';
9
9
  import { getManifestForGame1 } from '@agoric/smart-wallet/test/start-game1-proposal.js';
10
10
 
11
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
11
+ /**
12
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
13
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
14
+ */
15
+
16
+ /** @type {CoreEvalBuilder} */
12
17
  const game1ProposalBuilder = async ({ publishRef, install }) => {
13
18
  return harden({
14
19
  sourceSpec: '@agoric/smart-wallet/test/start-game1-proposal.js',
@@ -27,7 +32,7 @@ const game1ProposalBuilder = async ({ publishRef, install }) => {
27
32
  });
28
33
  };
29
34
 
30
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
35
+ /** @type {DeployScriptFunction} */
31
36
  export default async (homeP, endowments) => {
32
37
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
33
38
  await writeCoreEval('start-game1', game1ProposalBuilder);
@@ -1,5 +1,10 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
2
 
3
+ /**
4
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
5
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ */
7
+
3
8
  /**
4
9
  * @file
5
10
  * `agoric run scripts/smart-wallet/build-wallet-factory2-upgrade.js`
@@ -7,7 +12,7 @@ import { makeHelpers } from '@agoric/deploy-script-support';
7
12
  * also prints helpful instructions for copying the files and installing them.
8
13
  */
9
14
 
10
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
15
+ /** @type {CoreEvalBuilder} */
11
16
  export const defaultProposalBuilder = async ({ publishRef, install }) =>
12
17
  harden({
13
18
  sourceSpec:
@@ -22,7 +27,7 @@ export const defaultProposalBuilder = async ({ publishRef, install }) =>
22
27
  ],
23
28
  });
24
29
 
25
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
30
+ /** @type {DeployScriptFunction} */
26
31
  export default async (homeP, endowments) => {
27
32
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
28
33
  await writeCoreEval('upgrade-wallet-factory', defaultProposalBuilder);
@@ -8,7 +8,12 @@
8
8
  import { makeHelpers } from '@agoric/deploy-script-support';
9
9
  import { getManifestForUpgrade } from '@agoric/smart-wallet/src/proposals/upgrade-walletFactory-proposal.js';
10
10
 
11
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
11
+ /**
12
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
13
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
14
+ */
15
+
16
+ /** @type {CoreEvalBuilder} */
12
17
  export const defaultProposalBuilder = async ({ publishRef, install }) => {
13
18
  return harden({
14
19
  sourceSpec:
@@ -28,7 +33,7 @@ export const defaultProposalBuilder = async ({ publishRef, install }) => {
28
33
  });
29
34
  };
30
35
 
31
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
36
+ /** @type {DeployScriptFunction} */
32
37
  export default async (homeP, endowments) => {
33
38
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
34
39
  await writeCoreEval('upgrade-walletFactory', defaultProposalBuilder);
@@ -1,9 +1,14 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
2
  import { defaultProposalBuilder as vaultProposalBuilder } from '../inter-protocol/add-collateral-core.js';
3
3
 
4
+ /**
5
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
7
+ */
8
+
4
9
  /** @file This is for use in tests in a3p-integration */
5
10
 
6
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
11
+ /** @type {CoreEvalBuilder} */
7
12
  const starsVaultProposalBuilder = async powers => {
8
13
  return vaultProposalBuilder(powers, {
9
14
  interchainAssetOptions: {
@@ -17,7 +22,7 @@ const starsVaultProposalBuilder = async powers => {
17
22
  });
18
23
  };
19
24
 
20
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
25
+ /** @type {DeployScriptFunction} */
21
26
  export default async (homeP, endowments) => {
22
27
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
23
28
  await writeCoreEval('add-STARS-collateral', starsVaultProposalBuilder);
@@ -1,9 +1,14 @@
1
1
  import { makeHelpers } from '@agoric/deploy-script-support';
2
2
  import { defaultProposalBuilder as vaultProposalBuilder } from '../inter-protocol/add-collateral-core.js';
3
3
 
4
+ /**
5
+ * @import {CoreEvalBuilder} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
7
+ */
8
+
4
9
  /** @file This is for use in tests in a3p-integration */
5
10
 
6
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
11
+ /** @type {CoreEvalBuilder} */
7
12
  const stars2VaultProposalBuilder = async powers => {
8
13
  return vaultProposalBuilder(powers, {
9
14
  interchainAssetOptions: {
@@ -16,7 +21,7 @@ const stars2VaultProposalBuilder = async powers => {
16
21
  });
17
22
  };
18
23
 
19
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
24
+ /** @type {DeployScriptFunction} */
20
25
  export default async (homeP, endowments) => {
21
26
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
27
  await writeCoreEval('add-STARS2-collateral', stars2VaultProposalBuilder);
@@ -0,0 +1,23 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { psmProposalBuilder } from '../inter-protocol/add-collateral-core.js';
3
+
4
+ /**
5
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ */
7
+
8
+ const addUsdLemonsProposalBuilder = async powers => {
9
+ return psmProposalBuilder(powers, {
10
+ anchorOptions: {
11
+ denom: 'ibc/000C0AAAEECAFE000',
12
+ keyword: 'USD_LEMONS',
13
+ decimalPlaces: 6,
14
+ proposedName: 'USD_LEMONS',
15
+ },
16
+ });
17
+ };
18
+
19
+ /** @type {DeployScriptFunction} */
20
+ export default async (homeP, endowments) => {
21
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
+ await writeCoreEval('add-LEMONS-PSM', addUsdLemonsProposalBuilder);
23
+ };
@@ -0,0 +1,23 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { psmProposalBuilder } from '../inter-protocol/add-collateral-core.js';
3
+
4
+ /**
5
+ * @import {DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
6
+ */
7
+
8
+ const addUsdOlivesProposalBuilder = async powers => {
9
+ return psmProposalBuilder(powers, {
10
+ anchorOptions: {
11
+ denom: 'ibc/000C0AAAEECAFE111',
12
+ keyword: 'USD_OLIVES',
13
+ decimalPlaces: 6,
14
+ proposedName: 'USD_OLIVES',
15
+ },
16
+ });
17
+ };
18
+
19
+ /** @type {DeployScriptFunction} */
20
+ export default async (homeP, endowments) => {
21
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
22
+ await writeCoreEval('add-OLIVES-PSM', addUsdOlivesProposalBuilder);
23
+ };