@agoric/pegasus 0.7.12-dev-b8d6697.0 → 0.7.13-calypso-dev-84eb287.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,22 +1,21 @@
1
1
  {
2
2
  "name": "@agoric/pegasus",
3
- "version": "0.7.12-dev-b8d6697.0+b8d6697",
3
+ "version": "0.7.13-calypso-dev-84eb287.0+84eb287",
4
4
  "description": "Peg-as-us contract",
5
5
  "type": "module",
6
6
  "main": "./src/pegasus.js",
7
7
  "engines": {
8
- "node": ">=14.15.0"
8
+ "node": "^18.12 || ^20.9"
9
9
  },
10
10
  "scripts": {
11
- "build": "yarn build:bundles",
12
- "build:bundles": "node scripts/build-bundles.js",
11
+ "build": "exit 0",
13
12
  "test": "ava",
14
13
  "test:c8": "c8 $C8_OPTIONS ava --config=ava-nesm.config.js",
15
14
  "test:xs": "exit 0",
16
15
  "lint-fix": "yarn lint:eslint --fix",
17
16
  "lint": "run-s --continue-on-error lint:*",
18
17
  "lint:eslint": "eslint .",
19
- "lint:types": "tsc -p jsconfig.json"
18
+ "lint:types": "tsc"
20
19
  },
21
20
  "repository": {
22
21
  "type": "git",
@@ -29,41 +28,49 @@
29
28
  },
30
29
  "homepage": "https://github.com/Agoric/agoric-sdk#readme",
31
30
  "dependencies": {
32
- "@agoric/assert": "0.6.1-dev-b8d6697.0+b8d6697",
33
- "@agoric/ertp": "0.16.3-dev-b8d6697.0+b8d6697",
34
- "@agoric/internal": "0.3.3-dev-b8d6697.0+b8d6697",
35
- "@agoric/notifier": "0.6.3-dev-b8d6697.0+b8d6697",
36
- "@agoric/store": "0.9.3-dev-b8d6697.0+b8d6697",
37
- "@agoric/swingset-vat": "0.32.3-dev-b8d6697.0+b8d6697",
38
- "@agoric/vats": "0.15.1-dev-b8d6697.0+b8d6697",
39
- "@agoric/zoe": "0.26.3-dev-b8d6697.0+b8d6697",
40
- "@endo/bundle-source": "^2.5.1",
41
- "@endo/captp": "^3.1.1",
42
- "@endo/far": "^0.2.18",
43
- "@endo/init": "^0.5.56",
44
- "@endo/nat": "^4.1.27",
45
- "@endo/promise-kit": "^0.2.56"
31
+ "@agoric/assert": "0.6.1-calypso-dev-84eb287.0+84eb287",
32
+ "@agoric/ertp": "0.16.3-calypso-dev-84eb287.0+84eb287",
33
+ "@agoric/internal": "0.3.3-calypso-dev-84eb287.0+84eb287",
34
+ "@agoric/network": "0.1.1-calypso-dev-84eb287.0+84eb287",
35
+ "@agoric/notifier": "0.6.3-calypso-dev-84eb287.0+84eb287",
36
+ "@agoric/store": "0.9.3-calypso-dev-84eb287.0+84eb287",
37
+ "@agoric/swingset-vat": "0.32.3-calypso-dev-84eb287.0+84eb287",
38
+ "@agoric/vats": "0.15.2-calypso-dev-84eb287.0+84eb287",
39
+ "@agoric/vow": "0.1.1-calypso-dev-84eb287.0+84eb287",
40
+ "@agoric/zoe": "0.26.3-calypso-dev-84eb287.0+84eb287",
41
+ "@agoric/zone": "0.2.3-calypso-dev-84eb287.0+84eb287",
42
+ "@endo/bundle-source": "^3.2.3",
43
+ "@endo/captp": "^4.2.0",
44
+ "@endo/far": "^1.1.2",
45
+ "@endo/init": "^1.1.2",
46
+ "@endo/nat": "^5.0.7",
47
+ "@endo/promise-kit": "^1.1.2"
46
48
  },
47
49
  "devDependencies": {
48
- "@agoric/deploy-script-support": "0.10.3-dev-b8d6697.0+b8d6697",
50
+ "@agoric/vat-data": "0.5.3-calypso-dev-84eb287.0+84eb287",
49
51
  "ava": "^5.3.0",
50
- "c8": "^7.13.0",
52
+ "c8": "^9.1.0",
51
53
  "import-meta-resolve": "^2.2.1"
52
54
  },
53
55
  "files": [
54
56
  "scripts/",
55
57
  "src/",
56
- "exported.js",
57
58
  "NEWS.md"
58
59
  ],
59
60
  "ava": {
60
61
  "files": [
61
- "test/**/test-*.js"
62
+ "test/**/*.test.*"
63
+ ],
64
+ "require": [
65
+ "@endo/init/debug.js"
62
66
  ],
63
67
  "timeout": "10m"
64
68
  },
65
69
  "publishConfig": {
66
70
  "access": "public"
67
71
  },
68
- "gitHead": "b8d6697074b899630909440f0ea3caa519cdad44"
72
+ "typeCoverage": {
73
+ "atLeast": 90.6
74
+ },
75
+ "gitHead": "84eb287915c8255d68e845a9b6e10c790f0d54cb"
69
76
  }
@@ -0,0 +1,37 @@
1
+ // @ts-check
2
+ import { prepareVowTools } from '@agoric/vow/vat.js';
3
+ import { makeDurableZone } from '@agoric/zone/durable.js';
4
+ import { makePegasus } from './pegasus.js';
5
+
6
+ /**
7
+ * @import {Remote} from '@agoric/vow';
8
+ */
9
+
10
+ /**
11
+ * @type {ContractStartFn<import('./pegasus.js').Pegasus, never, {}, {
12
+ * board: Remote<BoardDepositFacet>,
13
+ * namesByAddress: Remote<import('@agoric/vats').NameHub>
14
+ * }>}
15
+ */
16
+ export const start = (zcf, privateArgs, baggage) => {
17
+ const zone = makeDurableZone(baggage);
18
+
19
+ const whenZone = zone.subZone('when');
20
+ const { when } = prepareVowTools(whenZone);
21
+
22
+ const { board, namesByAddress } = privateArgs;
23
+
24
+ // start requires that the object passed in must be durable. Given that we
25
+ // haven't made pegasus durable yet, we'll wrap its non-durable methods within
26
+ // an exo object to workaround this requirement.
27
+ // @ts-expect-error makePegasus returns a remotable object
28
+ const publicFacet = zone.exo('PublicFacet', undefined, {
29
+ ...makePegasus({ zcf, board, namesByAddress, when }),
30
+ });
31
+
32
+ // @ts-expect-error XXX durable wrapping non-durable
33
+ return harden({
34
+ publicFacet,
35
+ });
36
+ };
37
+ harden(start);
package/src/courier.js CHANGED
@@ -6,6 +6,12 @@ import { WalletName } from '@agoric/internal';
6
6
  import { E, Far } from '@endo/far';
7
7
  import { makeOncePromiseKit } from './once-promise-kit.js';
8
8
 
9
+ /**
10
+ * @import {DepositFacet} from '@agoric/ertp/src/types.js'
11
+ * @import {Connection} from '@agoric/network';
12
+ * @import {Remote} from '@agoric/vow';
13
+ */
14
+
9
15
  /**
10
16
  * Create or return an existing courier promise kit.
11
17
  *
@@ -29,18 +35,19 @@ export const getCourierPK = (key, keyToCourierPK) => {
29
35
  /**
30
36
  * Create the [send, receive] pair.
31
37
  *
32
- * @typedef {import('@agoric/vats').NameHub} NameHub
38
+ * @import {NameHub} from '@agoric/vats'
33
39
  *
34
40
  * @typedef {object} CourierArgs
35
41
  * @property {ZCF} zcf
36
- * @property {ERef<BoardDepositFacet>} board
37
- * @property {ERef<NameHub>} namesByAddress
42
+ * @property {Remote<BoardDepositFacet>} board
43
+ * @property {Remote<NameHub>} namesByAddress
38
44
  * @property {Denom} sendDenom
39
45
  * @property {Brand} localBrand
40
46
  * @property {(zcfSeat: ZCFSeat, amounts: AmountKeywordRecord) => void} retain
41
47
  * @property {(zcfSeat: ZCFSeat, amounts: AmountKeywordRecord) => void} redeem
42
- * @property {ERef<TransferProtocol>} transferProtocol
43
- * @param {ERef<Connection>} connection
48
+ * @property {Remote<TransferProtocol>} transferProtocol
49
+ * @property {ReturnType<import('@agoric/vow').prepareVowTools>['when']} when
50
+ * @param {Remote<Connection>} connection
44
51
  * @returns {(args: CourierArgs) => Courier}
45
52
  */
46
53
  export const makeCourierMaker =
@@ -54,9 +61,10 @@ export const makeCourierMaker =
54
61
  retain,
55
62
  redeem,
56
63
  transferProtocol,
64
+ when,
57
65
  }) => {
58
66
  /** @type {Sender} */
59
- const send = async (zcfSeat, depositAddress, memo) => {
67
+ const send = async (zcfSeat, depositAddress, memo, opts) => {
60
68
  const tryToSend = async () => {
61
69
  const amount = zcfSeat.getAmountAllocated('Transfer', localBrand);
62
70
  const transferPacket = await E(transferProtocol).makeTransferPacket({
@@ -64,14 +72,14 @@ export const makeCourierMaker =
64
72
  remoteDenom: sendDenom,
65
73
  depositAddress,
66
74
  memo,
75
+ opts,
67
76
  });
68
77
 
69
78
  // Retain the payment. We must not proceed on failure.
70
79
  retain(zcfSeat, { Transfer: amount });
71
80
 
72
81
  // The payment is already escrowed, and proposed to retain, so try sending.
73
- return E(connection)
74
- .send(transferPacket)
82
+ return when(E(connection).send(transferPacket))
75
83
  .then(ack => E(transferProtocol).assertTransferPacketAck(ack))
76
84
  .then(
77
85
  _ => zcfSeat.exit(),
package/src/ibc-trace.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { Far } from '@endo/far';
3
3
  import { Fail } from '@agoric/assert';
4
4
 
5
- import { parse } from '@agoric/swingset-vat/src/vats/network/multiaddr.js';
5
+ import { parse } from '@agoric/network';
6
6
 
7
7
  /**
8
8
  * Return a source-prefixed version of the denomination, as specified in
package/src/ics20.js CHANGED
@@ -17,9 +17,8 @@ import { assert, details as X, Fail } from '@agoric/assert';
17
17
  const ICS20_TRANSFER_SUCCESS_RESULT = 'AQ==';
18
18
 
19
19
  // ibc-go as late as v3 requires the `sender` to be nonempty, but doesn't
20
- // actually use it on the receiving side. We don't need it on the sending side,
21
- // either, so we can just omit it.
22
- export const DUMMY_SENDER_ADDRESS = 'pegasus';
20
+ // actually use it on the receiving side.
21
+ export const DEFAULT_SENDER_ADDRESS = 'pegasus';
23
22
 
24
23
  /**
25
24
  * @param {string} s
@@ -51,7 +50,7 @@ const safeJSONParseObject = s => {
51
50
  */
52
51
  export const parseICS20TransferPacket = async packet => {
53
52
  const ics20Packet = safeJSONParseObject(packet);
54
- const { amount, denom, receiver, memo } = ics20Packet;
53
+ const { amount, denom, receiver, memo, opts } = ics20Packet;
55
54
 
56
55
  assert.typeof(denom, 'string', X`Denom ${denom} must be a string`);
57
56
  assert.typeof(receiver, 'string', X`Receiver ${receiver} must be a string`);
@@ -74,6 +73,7 @@ export const parseICS20TransferPacket = async packet => {
74
73
  remoteDenom: denom,
75
74
  value,
76
75
  memo,
76
+ opts,
77
77
  });
78
78
  };
79
79
 
@@ -89,6 +89,7 @@ export const makeICS20TransferPacket = async ({
89
89
  remoteDenom,
90
90
  depositAddress,
91
91
  memo,
92
+ opts: { sender = DEFAULT_SENDER_ADDRESS },
92
93
  }) => {
93
94
  // We're using Nat as a dynamic check for overflow.
94
95
  const stringValue = String(Nat(value));
@@ -99,7 +100,7 @@ export const makeICS20TransferPacket = async ({
99
100
  amount: stringValue,
100
101
  denom: remoteDenom,
101
102
  receiver: depositAddress,
102
- sender: DUMMY_SENDER_ADDRESS,
103
+ sender,
103
104
  memo,
104
105
  };
105
106
 
package/src/pegasus.js CHANGED
@@ -9,15 +9,15 @@ import {
9
9
  } from '@agoric/zoe/src/contractSupport/index.js';
10
10
  import { makeSubscriptionKit } from '@agoric/notifier';
11
11
 
12
- import '@agoric/vats/exported.js';
13
- import '@agoric/swingset-vat/src/vats/network/types.js';
14
- import '@agoric/zoe/exported.js';
15
-
16
- import '../exported.js';
17
12
  import { IBCSourceTraceDenomTransformer } from './ibc-trace.js';
18
13
  import { ICS20TransferProtocol } from './ics20.js';
19
14
  import { makeCourierMaker, getCourierPK } from './courier.js';
20
15
 
16
+ /**
17
+ * @import {CloseReason, Connection} from '@agoric/network';
18
+ * @import {Remote} from '@agoric/vow';
19
+ */
20
+
21
21
  const DEFAULT_DENOM_TRANSFORMER = IBCSourceTraceDenomTransformer;
22
22
  const DEFAULT_TRANSFER_PROTOCOL = ICS20TransferProtocol;
23
23
 
@@ -30,13 +30,15 @@ const TRANSFER_PROPOSAL_SHAPE = {
30
30
  /**
31
31
  * Make a Pegasus public API.
32
32
  *
33
- * @param {ZCF} zcf the Zoe Contract Facet
34
- * @param {ERef<BoardDepositFacet>} board where to find depositFacets by boardID
35
- * @param {ERef<NameHub>} namesByAddress where to find depositFacets by bech32
33
+ * @param {object} powers
34
+ * @param {ZCF} powers.zcf the Zoe Contract Facet
35
+ * @param {Remote<BoardDepositFacet>} powers.board where to find depositFacets by boardID
36
+ * @param {Remote<NameHub>} powers.namesByAddress where to find depositFacets by bech32
37
+ * @param {ReturnType<import('@agoric/vow').prepareVowTools>['when']} powers.when
36
38
  *
37
- * @typedef {import('@agoric/vats').NameHub} NameHub
39
+ * @import {NameHub} from '@agoric/vats'
38
40
  */
39
- const makePegasus = (zcf, board, namesByAddress) => {
41
+ export const makePegasus = ({ zcf, board, namesByAddress, when }) => {
40
42
  /**
41
43
  * @typedef {object} LocalDenomState
42
44
  * @property {string} localAddr
@@ -61,7 +63,7 @@ const makePegasus = (zcf, board, namesByAddress) => {
61
63
  };
62
64
 
63
65
  /**
64
- * @type {LegacyWeakMap<Peg, LocalDenomState>}
66
+ * @type {LegacyWeakMap<Remote<Peg>, LocalDenomState>}
65
67
  */
66
68
  // Legacy because Mappings mix functions and data
67
69
  const pegToDenomState = makeLegacyWeakMap('Peg');
@@ -104,8 +106,8 @@ const makePegasus = (zcf, board, namesByAddress) => {
104
106
  * @param {object} param0
105
107
  * @param {ReturnType<typeof makeCourierMaker>} param0.makeCourier
106
108
  * @param {LocalDenomState} param0.localDenomState
107
- * @param {ERef<TransferProtocol>} param0.transferProtocol
108
- * @param {ERef<DenomTransformer>} param0.denomTransformer
109
+ * @param {Remote<TransferProtocol>} param0.transferProtocol
110
+ * @param {Remote<DenomTransformer>} param0.denomTransformer
109
111
  * @returns {PegasusConnectionActions}
110
112
  */
111
113
  const makePegasusConnectionActions = ({
@@ -191,6 +193,7 @@ const makePegasus = (zcf, board, namesByAddress) => {
191
193
  zcfMint.mintGains(harden(amounts), zcfSeat);
192
194
  },
193
195
  transferProtocol,
196
+ when,
194
197
  });
195
198
 
196
199
  const courierPK = getCourierPK(receiveDenom, receiveDenomToCourierPK);
@@ -283,6 +286,7 @@ const makePegasus = (zcf, board, namesByAddress) => {
283
286
  transferSeat,
284
287
  ),
285
288
  transferProtocol,
289
+ when,
286
290
  });
287
291
 
288
292
  const { receiveDenomToCourierPK } = localDenomState;
@@ -304,9 +308,9 @@ const makePegasus = (zcf, board, namesByAddress) => {
304
308
  checkAbort = () => {
305
309
  throw reason;
306
310
  };
307
- pegs.forEach(peg => {
311
+ for (const peg of pegs) {
308
312
  pegToDenomState.delete(peg);
309
- });
313
+ }
310
314
  },
311
315
  });
312
316
  return pegasusConnectionActions;
@@ -316,8 +320,8 @@ const makePegasus = (zcf, board, namesByAddress) => {
316
320
  /**
317
321
  * Return a handler that can be used with the Network API.
318
322
  *
319
- * @param {ERef<TransferProtocol>} [transferProtocol=DEFAULT_TRANSFER_PROTOCOL]
320
- * @param {ERef<DenomTransformer>} [denomTransformer=DEFAULT_DENOM_TRANSFORMER]
323
+ * @param {Remote<TransferProtocol>} [transferProtocol]
324
+ * @param {Remote<DenomTransformer>} [denomTransformer]
321
325
  * @returns {PegasusConnectionKit}
322
326
  */
323
327
  makePegasusConnectionKit(
@@ -325,7 +329,7 @@ const makePegasus = (zcf, board, namesByAddress) => {
325
329
  denomTransformer = DEFAULT_DENOM_TRANSFORMER,
326
330
  ) {
327
331
  /**
328
- * @type {LegacyWeakMap<Connection, LocalDenomState>}
332
+ * @type {LegacyWeakMap<Remote<Connection>, LocalDenomState>}
329
333
  */
330
334
  // Legacy because the value contains a JS Set
331
335
  const connectionToLocalDenomState = makeLegacyWeakMap('Connection');
@@ -385,9 +389,8 @@ const makePegasus = (zcf, board, namesByAddress) => {
385
389
  async onReceive(c, packetBytes) {
386
390
  const doReceive = async () => {
387
391
  // Dispatch the packet to the appropriate Peg for this connection.
388
- const parts = await E(transferProtocol).parseTransferPacket(
389
- packetBytes,
390
- );
392
+ const parts =
393
+ await E(transferProtocol).parseTransferPacket(packetBytes);
391
394
 
392
395
  const { remoteDenom: receiveDenom } = parts;
393
396
  assert.typeof(receiveDenom, 'string');
@@ -456,12 +459,13 @@ const makePegasus = (zcf, board, namesByAddress) => {
456
459
  /**
457
460
  * Create a Zoe invitation to transfer assets over network to a deposit address.
458
461
  *
459
- * @param {ERef<Peg>} pegP the peg over which to transfer
462
+ * @param {Remote<Peg>} pegP the peg over which to transfer
460
463
  * @param {DepositAddress} depositAddress the remote receiver's address
461
464
  * @param {string} [memo] the memo to attach to ics transfer packet
465
+ * @param {SenderOptions} [opts] additional sender options
462
466
  * @returns {Promise<Invitation>} to transfer, make an offer of { give: { Transfer: pegAmount } } to this invitation
463
467
  */
464
- async makeInvitationToTransfer(pegP, depositAddress, memo = '') {
468
+ async makeInvitationToTransfer(pegP, depositAddress, memo = '', opts = {}) {
465
469
  // Verify the peg.
466
470
  const peg = await pegP;
467
471
  const denomState = pegToDenomState.get(peg);
@@ -483,29 +487,15 @@ const makePegasus = (zcf, board, namesByAddress) => {
483
487
  */
484
488
  const offerHandler = zcfSeat => {
485
489
  assertProposalShape(zcfSeat, TRANSFER_PROPOSAL_SHAPE);
486
- send(zcfSeat, depositAddress, memo);
490
+ send(zcfSeat, depositAddress, memo, opts);
487
491
  };
488
492
 
489
493
  return zcf.makeInvitation(offerHandler, `pegasus ${sendDenom} transfer`);
490
494
  },
491
495
  });
492
496
  };
497
+ harden(makePegasus);
493
498
 
494
499
  /**
495
500
  * @typedef {ReturnType<typeof makePegasus>} Pegasus
496
501
  */
497
-
498
- /**
499
- * @param {ZCF<{board: ERef<BoardDepositFacet>, namesByAddress: ERef<import('@agoric/vats').NameHub>}>} zcf
500
- */
501
- const start = zcf => {
502
- const { board, namesByAddress } = zcf.getTerms();
503
-
504
- return {
505
- publicFacet: makePegasus(zcf, board, namesByAddress),
506
- };
507
- };
508
-
509
- harden(start);
510
- harden(makePegasus);
511
- export { start, makePegasus };
@@ -3,6 +3,10 @@ import { E, Far } from '@endo/far';
3
3
  import { makeNameHubKit } from '@agoric/vats/src/nameHub.js';
4
4
  import { observeIteration, subscribeEach } from '@agoric/notifier';
5
5
 
6
+ /**
7
+ * @import {Connection, Port, PortAllocator} from '@agoric/network';
8
+ */
9
+
6
10
  export const CONTRACT_NAME = 'Pegasus';
7
11
 
8
12
  const t = 'pegasus';
@@ -19,7 +23,7 @@ export const getManifestForPegasus = ({ restoreRef }, { pegasusRef }) => ({
19
23
  },
20
24
  },
21
25
  listenPegasus: {
22
- consume: { networkVat: t, pegasusConnectionsAdmin: t, zoe: t },
26
+ consume: { portAllocator: t, pegasusConnectionsAdmin: t, zoe: t },
23
27
  produce: { pegasusConnections: t, pegasusConnectionsAdmin: t },
24
28
  instance: {
25
29
  consume: { [CONTRACT_NAME]: t },
@@ -41,12 +45,13 @@ export const startPegasus = async ({
41
45
  },
42
46
  }) => {
43
47
  const [board, namesByAddress] = await Promise.all([boardP, namesByAddressP]);
44
- const terms = { board, namesByAddress };
48
+ const privates = { board, namesByAddress };
45
49
 
46
50
  const { instance } = await E(zoe).startInstance(
47
51
  pegasusInstall,
48
52
  undefined,
49
- terms,
53
+ undefined,
54
+ privates,
50
55
  );
51
56
 
52
57
  produceInstance.resolve(instance);
@@ -69,13 +74,15 @@ export const addPegasusTransferPort = async (
69
74
  const { localAddr, actions } = connectionState;
70
75
  if (actions) {
71
76
  // We're open and ready for business.
72
- pegasusConnectionsAdmin.update(localAddr, connectionState);
77
+ void E(pegasusConnectionsAdmin).update(localAddr, connectionState);
73
78
  } else {
74
79
  // We're closed.
75
- pegasusConnectionsAdmin.delete(localAddr);
80
+ void E(pegasusConnectionsAdmin).delete(localAddr);
76
81
  }
77
82
  },
78
- });
83
+ }).catch(err =>
84
+ console.error('Error observing Pegasus connection kit:', err),
85
+ );
79
86
  return E(port).addListener(
80
87
  Far('listener', {
81
88
  async onAccept(_port, _localAddr, _remoteAddr, _listenHandler) {
@@ -90,7 +97,7 @@ export const addPegasusTransferPort = async (
90
97
  harden(addPegasusTransferPort);
91
98
 
92
99
  export const listenPegasus = async ({
93
- consume: { networkVat, pegasusConnectionsAdmin: pegasusNameAdmin, zoe },
100
+ consume: { portAllocator, pegasusConnectionsAdmin: pegasusNameAdmin, zoe },
94
101
  produce: { pegasusConnections, pegasusConnectionsAdmin },
95
102
  instance: {
96
103
  consume: { [CONTRACT_NAME]: pegasusInstance },
@@ -101,7 +108,7 @@ export const listenPegasus = async ({
101
108
  pegasusConnectionsAdmin.resolve(nameAdmin);
102
109
 
103
110
  const pegasus = await E(zoe).getPublicFacet(pegasusInstance);
104
- const port = await E(networkVat).bind('/ibc-port/pegasus');
111
+ const port = await E(portAllocator).allocateCustomIBCPort('pegasus');
105
112
  return addPegasusTransferPort(port, pegasus, pegasusNameAdmin);
106
113
  };
107
114
  harden(listenPegasus);
package/src/types.js CHANGED
@@ -1,6 +1,9 @@
1
1
  // @ts-check
2
- // eslint-disable-next-line spaced-comment
3
- /// <reference types="ses"/>
2
+
3
+ /// <reference types="ses" />
4
+ /**
5
+ * @import {Bytes, ConnectionHandler} from '@agoric/network';
6
+ */
4
7
 
5
8
  /**
6
9
  * @typedef {string} Denom
@@ -9,10 +12,11 @@
9
12
 
10
13
  /**
11
14
  * @typedef {object} PacketParts
12
- * @property {AmountValue} value
15
+ * @property {import('@agoric/ertp/src/types.js').AmountValue} value
13
16
  * @property {Denom} remoteDenom
14
17
  * @property {DepositAddress} depositAddress
15
18
  * @property {string} memo
19
+ * @property {SenderOptions} opts
16
20
  */
17
21
 
18
22
  /**
@@ -47,7 +51,7 @@
47
51
  */
48
52
 
49
53
  /**
50
- * @typedef {(zcfSeat: ZCFSeat, depositAddress: DepositAddress, memo: string) => Promise<void>} Sender
54
+ * @typedef {(zcfSeat: ZCFSeat, depositAddress: DepositAddress, memo: string, opt: SenderOptions) => Promise<void>} Sender
51
55
  * Successive transfers are not guaranteed to be processed in the order in which they were sent.
52
56
  * @typedef {(parts: PacketParts) => Promise<Bytes>} Receiver
53
57
  * @typedef {object} Courier
@@ -111,3 +115,8 @@
111
115
  * @property {ConnectionHandler} handler
112
116
  * @property {Subscription<PegasusConnection>} subscription
113
117
  */
118
+
119
+ /**
120
+ * @typedef {object} SenderOptions
121
+ * @property {string} [sender] the sender address attached to the packet to receive any refund
122
+ */
package/CHANGELOG.md DELETED
@@ -1,434 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- ### [0.7.11](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.10...@agoric/pegasus@0.7.11) (2023-06-02)
7
-
8
- **Note:** Version bump only for package @agoric/pegasus
9
-
10
-
11
-
12
-
13
-
14
- ### [0.7.10](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.9...@agoric/pegasus@0.7.10) (2023-05-24)
15
-
16
- **Note:** Version bump only for package @agoric/pegasus
17
-
18
-
19
-
20
-
21
-
22
- ### [0.7.9](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.6...@agoric/pegasus@0.7.9) (2023-05-19)
23
-
24
-
25
- ### Bug Fixes
26
-
27
- * use `subscribeEach` to get reconnect benefits ([fb24132](https://github.com/Agoric/agoric-sdk/commit/fb24132f9b4e117e56bae2803994e57c188344f3))
28
- * use atomicTransfers rather than stagings. ([#6577](https://github.com/Agoric/agoric-sdk/issues/6577)) ([65d3f14](https://github.com/Agoric/agoric-sdk/commit/65d3f14c8102993168d2568eed5e6acbcba0c48a))
29
-
30
-
31
-
32
- ### [0.7.8](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.7...@agoric/pegasus@0.7.8) (2023-02-17)
33
-
34
- **Note:** Version bump only for package @agoric/pegasus
35
-
36
-
37
-
38
-
39
-
40
- ### [0.7.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.6...@agoric/pegasus@0.7.7) (2022-12-14)
41
-
42
- **Note:** Version bump only for package @agoric/pegasus
43
-
44
-
45
-
46
-
47
-
48
- ### [0.7.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.5...@agoric/pegasus@0.7.6) (2022-10-18)
49
-
50
- **Note:** Version bump only for package @agoric/pegasus
51
-
52
-
53
-
54
-
55
-
56
- ### [0.7.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.4...@agoric/pegasus@0.7.5) (2022-10-08)
57
-
58
- **Note:** Version bump only for package @agoric/pegasus
59
-
60
-
61
-
62
-
63
-
64
- ### [0.7.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.3...@agoric/pegasus@0.7.4) (2022-10-05)
65
-
66
- **Note:** Version bump only for package @agoric/pegasus
67
-
68
-
69
-
70
-
71
-
72
- ### [0.7.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.2...@agoric/pegasus@0.7.3) (2022-09-20)
73
-
74
-
75
- ### Bug Fixes
76
-
77
- * show more stacks ([#5980](https://github.com/Agoric/agoric-sdk/issues/5980)) ([7e22057](https://github.com/Agoric/agoric-sdk/commit/7e220575af0e5b0607d821675c57a3714f48fd65))
78
-
79
-
80
-
81
- ### [0.7.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.1...@agoric/pegasus@0.7.2) (2022-05-28)
82
-
83
- **Note:** Version bump only for package @agoric/pegasus
84
-
85
-
86
-
87
-
88
-
89
- ### [0.7.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.0...@agoric/pegasus@0.7.1) (2022-05-09)
90
-
91
- **Note:** Version bump only for package @agoric/pegasus
92
-
93
-
94
-
95
-
96
-
97
- ## [0.7.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.6.1...@agoric/pegasus@0.7.0) (2022-04-18)
98
-
99
-
100
- ### ⚠ BREAKING CHANGES
101
-
102
- * consistent Node engine requirement (>=14.15.0)
103
-
104
- ### Features
105
-
106
- * **pegasus:** prepare for governance ([4c921b5](https://github.com/Agoric/agoric-sdk/commit/4c921b501e425e861479c9197bc24d1d09f4a2ac))
107
- * **vats:** remove pegasus from bootstrap ([c384a41](https://github.com/Agoric/agoric-sdk/commit/c384a41c6e494059beb28c09a94e5625faa5f87e))
108
- * implement the durable kind API ([56bad98](https://github.com/Agoric/agoric-sdk/commit/56bad985275787d18c34ac14b377a4d0348d699b)), closes [#4495](https://github.com/Agoric/agoric-sdk/issues/4495)
109
-
110
-
111
- ### Miscellaneous Chores
112
-
113
- * consistent Node engine requirement (>=14.15.0) ([ddc40fa](https://github.com/Agoric/agoric-sdk/commit/ddc40fa525f845ed900512c38b99f01458a3d131))
114
-
115
-
116
-
117
- ### [0.6.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.6.0...@agoric/pegasus@0.6.1) (2022-02-24)
118
-
119
-
120
- ### Features
121
-
122
- * overhaul the virtual object API ([e40674b](https://github.com/Agoric/agoric-sdk/commit/e40674b0b19f29adde2f5e6a460bafb7340d42b6)), closes [#4606](https://github.com/Agoric/agoric-sdk/issues/4606)
123
-
124
-
125
-
126
- ## [0.6.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.5.1...@agoric/pegasus@0.6.0) (2022-02-21)
127
-
128
-
129
- ### ⚠ BREAKING CHANGES
130
-
131
- * **pegasus:** make more robust and remove public state
132
-
133
- ### Features
134
-
135
- * **pegasus:** implement correct result and denom trace handling ([aacf1c3](https://github.com/Agoric/agoric-sdk/commit/aacf1c39f840beb31702f3fcd3565771ccaf7817))
136
- * **pegasus:** make more robust and remove public state ([a5413f7](https://github.com/Agoric/agoric-sdk/commit/a5413f781fc694e3e11804b5288740e9319928ee))
137
- * **pegasus:** properly abort on connection close ([1b17f7a](https://github.com/Agoric/agoric-sdk/commit/1b17f7aa4de11ccd5a1ec26fc7b6fff017d70ac1))
138
- * **pegasus:** rejectStuckTransfers, getRemoteDenomSubscription ([54bf0bc](https://github.com/Agoric/agoric-sdk/commit/54bf0bc4e83172396962295ba76b8af3a8846df9))
139
- * implement persistent stores ([e1050b0](https://github.com/Agoric/agoric-sdk/commit/e1050b010e095b23547a38d48a12e5c8841a7466))
140
-
141
-
142
- ### Bug Fixes
143
-
144
- * **pegasus:** more POLA and less global state ([e7ea320](https://github.com/Agoric/agoric-sdk/commit/e7ea32047f5a87a18c5ed4722d4d6e2163f7f2aa))
145
- * **pegasus:** more robust ics20 JSON parsing ([208109f](https://github.com/Agoric/agoric-sdk/commit/208109f2e4df9e4df5c2371c6a299a42349d5c69))
146
- * **pegasus:** only reject transfers waiting for pegRemote ([f1801f6](https://github.com/Agoric/agoric-sdk/commit/f1801f63ad81ec06fc3b86c3a44e98130b310351))
147
- * **pegasus:** use bigints for nonces ([9065d6e](https://github.com/Agoric/agoric-sdk/commit/9065d6ee205082efd2253e6bd06ee08676535b50))
148
- * **pegasus:** use dummy ICS20-1 transfer `sender` ([c4056bc](https://github.com/Agoric/agoric-sdk/commit/c4056bcd48800b6bfadb4de5eaccb66af6446ef4))
149
- * `rejectStuckTransfers` sends a TransferProtocol-level error ([8374f94](https://github.com/Agoric/agoric-sdk/commit/8374f941597e22ac20f40b959381218f03563f65))
150
- * Enhance TypeScript node_modules traversal depth ([000f738](https://github.com/Agoric/agoric-sdk/commit/000f73850d46dc7272b2399c06ad774dd3b8fe6e))
151
-
152
-
153
-
154
- ### [0.5.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.5.0...@agoric/pegasus@0.5.1) (2021-12-22)
155
-
156
- **Note:** Version bump only for package @agoric/pegasus
157
-
158
-
159
-
160
-
161
-
162
- ## [0.5.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.5...@agoric/pegasus@0.5.0) (2021-12-02)
163
-
164
-
165
- ### ⚠ BREAKING CHANGES
166
-
167
- * **zoe:** must harden `amountKeywordRecord` before passing to ZCF objects
168
-
169
- * chore: fix treasury errors, etc.
170
-
171
- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
172
-
173
- ### Bug Fixes
174
-
175
- * **zoe:** assert that amountKeywordRecord is a copyRecord ([#4069](https://github.com/Agoric/agoric-sdk/issues/4069)) ([fe9a9ff](https://github.com/Agoric/agoric-sdk/commit/fe9a9ff3de86608a0b1f8f9547059f89d45b948d))
176
-
177
-
178
-
179
- ### [0.4.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.4...@agoric/pegasus@0.4.5) (2021-10-13)
180
-
181
- **Note:** Version bump only for package @agoric/pegasus
182
-
183
-
184
-
185
-
186
-
187
- ### [0.4.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.3...@agoric/pegasus@0.4.4) (2021-09-23)
188
-
189
- **Note:** Version bump only for package @agoric/pegasus
190
-
191
-
192
-
193
-
194
-
195
- ### [0.4.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.2...@agoric/pegasus@0.4.3) (2021-09-15)
196
-
197
-
198
- ### Bug Fixes
199
-
200
- * more missing Fars. kill "this" ([#3746](https://github.com/Agoric/agoric-sdk/issues/3746)) ([7bd027a](https://github.com/Agoric/agoric-sdk/commit/7bd027a879f98a9a3f30429ee1b54e6057efec42))
201
-
202
-
203
-
204
- ### [0.4.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.1...@agoric/pegasus@0.4.2) (2021-08-21)
205
-
206
- **Note:** Version bump only for package @agoric/pegasus
207
-
208
-
209
-
210
-
211
-
212
- ### [0.4.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.0...@agoric/pegasus@0.4.1) (2021-08-18)
213
-
214
- **Note:** Version bump only for package @agoric/pegasus
215
-
216
-
217
-
218
-
219
-
220
- ## [0.4.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.12...@agoric/pegasus@0.4.0) (2021-08-17)
221
-
222
-
223
- ### ⚠ BREAKING CHANGES
224
-
225
- * make the run mint within Zoe, and give only the treasury the ability to create a ZCFMint with it
226
-
227
- * chore: change 'makeZoe' to 'makeZoeKit'
228
-
229
- * chore: add "shutdownZoeVat" argument to Zoe, and pass it to `makeIssuerKit` for invitation issuerKit and fee issuerKit
230
-
231
- * chore: manually lint-fix install-on-chain.js
232
-
233
- See https://github.com/Agoric/agoric-sdk/issues/3672 for the issue to fix the root problem
234
-
235
- * BREAKING CHANGE: create the RUN Mint within Zoe (#3647) ([48762aa](https://github.com/Agoric/agoric-sdk/commit/48762aa83a30eaa0a14b2fd87777456758594262)), closes [#3647](https://github.com/Agoric/agoric-sdk/issues/3647)
236
-
237
-
238
-
239
- ### [0.3.12](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.11...@agoric/pegasus@0.3.12) (2021-08-16)
240
-
241
- **Note:** Version bump only for package @agoric/pegasus
242
-
243
-
244
-
245
-
246
-
247
- ### [0.3.11](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.8...@agoric/pegasus@0.3.11) (2021-08-15)
248
-
249
- ### 0.26.10 (2021-07-28)
250
-
251
-
252
- ### Bug Fixes
253
-
254
- * zoe/spawner/pegasus: use unlimited Meter, not metered: true ([04d4fd9](https://github.com/Agoric/agoric-sdk/commit/04d4fd96982ecd02de50f09fa38c6e2800cca527)), closes [#3308](https://github.com/Agoric/agoric-sdk/issues/3308)
255
-
256
-
257
-
258
- ### [0.3.10](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.8...@agoric/pegasus@0.3.10) (2021-08-14)
259
-
260
- ### 0.26.10 (2021-07-28)
261
-
262
-
263
- ### Bug Fixes
264
-
265
- * zoe/spawner/pegasus: use unlimited Meter, not metered: true ([04d4fd9](https://github.com/Agoric/agoric-sdk/commit/04d4fd96982ecd02de50f09fa38c6e2800cca527)), closes [#3308](https://github.com/Agoric/agoric-sdk/issues/3308)
266
-
267
-
268
-
269
- ### [0.3.9](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.8...@agoric/pegasus@0.3.9) (2021-07-28)
270
-
271
-
272
- ### Bug Fixes
273
-
274
- * zoe/spawner/pegasus: use unlimited Meter, not metered: true ([04d4fd9](https://github.com/Agoric/agoric-sdk/commit/04d4fd96982ecd02de50f09fa38c6e2800cca527)), closes [#3308](https://github.com/Agoric/agoric-sdk/issues/3308)
275
-
276
-
277
-
278
- ### [0.3.8](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.7...@agoric/pegasus@0.3.8) (2021-07-01)
279
-
280
- **Note:** Version bump only for package @agoric/pegasus
281
-
282
-
283
-
284
-
285
-
286
- ### [0.3.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.6...@agoric/pegasus@0.3.7) (2021-07-01)
287
-
288
- **Note:** Version bump only for package @agoric/pegasus
289
-
290
-
291
-
292
-
293
-
294
- ### [0.3.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.5...@agoric/pegasus@0.3.6) (2021-06-28)
295
-
296
- **Note:** Version bump only for package @agoric/pegasus
297
-
298
-
299
-
300
-
301
-
302
- ### [0.3.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.4...@agoric/pegasus@0.3.5) (2021-06-25)
303
-
304
- **Note:** Version bump only for package @agoric/pegasus
305
-
306
-
307
-
308
-
309
-
310
- ### [0.3.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.3...@agoric/pegasus@0.3.4) (2021-06-24)
311
-
312
- **Note:** Version bump only for package @agoric/pegasus
313
-
314
-
315
-
316
-
317
-
318
- ### [0.3.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.2...@agoric/pegasus@0.3.3) (2021-06-24)
319
-
320
- **Note:** Version bump only for package @agoric/pegasus
321
-
322
-
323
-
324
-
325
-
326
- ### [0.3.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.1...@agoric/pegasus@0.3.2) (2021-06-23)
327
-
328
- **Note:** Version bump only for package @agoric/pegasus
329
-
330
-
331
-
332
-
333
-
334
- ### [0.3.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.0...@agoric/pegasus@0.3.1) (2021-06-16)
335
-
336
- **Note:** Version bump only for package @agoric/pegasus
337
-
338
-
339
-
340
-
341
-
342
- ## [0.3.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.7...@agoric/pegasus@0.3.0) (2021-06-15)
343
-
344
-
345
- ### ⚠ BREAKING CHANGES
346
-
347
- * **zoe:** new reallocate API to assist with reviewing conservation of rights (#3184)
348
-
349
- ### Bug Fixes
350
-
351
- * Pin ESM to forked version ([54dbb55](https://github.com/Agoric/agoric-sdk/commit/54dbb55d64d7ff7adb395bc4bd9d1461dd2d3c17))
352
-
353
-
354
- ### Code Refactoring
355
-
356
- * **zoe:** new reallocate API to assist with reviewing conservation of rights ([#3184](https://github.com/Agoric/agoric-sdk/issues/3184)) ([f34e5ea](https://github.com/Agoric/agoric-sdk/commit/f34e5eae0812a9823d40d2d05ba98522c7846f2a))
357
-
358
-
359
-
360
- ## [0.2.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.6...@agoric/pegasus@0.2.7) (2021-05-10)
361
-
362
- **Note:** Version bump only for package @agoric/pegasus
363
-
364
-
365
-
366
-
367
-
368
- ## [0.2.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.5...@agoric/pegasus@0.2.6) (2021-05-05)
369
-
370
- **Note:** Version bump only for package @agoric/pegasus
371
-
372
-
373
-
374
-
375
-
376
- ## [0.2.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.4...@agoric/pegasus@0.2.5) (2021-05-05)
377
-
378
-
379
- ### Bug Fixes
380
-
381
- * **pegasus:** update to new solo package ([cf91a04](https://github.com/Agoric/agoric-sdk/commit/cf91a04fa6ce53dc06de0ccb8c8173050134575a))
382
-
383
-
384
-
385
-
386
-
387
- ## [0.2.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.3...@agoric/pegasus@0.2.4) (2021-04-22)
388
-
389
-
390
- ### Bug Fixes
391
-
392
- * rename cosmos-level tokens uagstake/uag to ubld/urun ([0557983](https://github.com/Agoric/agoric-sdk/commit/0557983210571c9c2ba801d68644d71641a3f790))
393
-
394
-
395
-
396
-
397
-
398
- ## [0.2.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.2...@agoric/pegasus@0.2.3) (2021-04-18)
399
-
400
- **Note:** Version bump only for package @agoric/pegasus
401
-
402
-
403
-
404
-
405
-
406
- ## [0.2.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.1...@agoric/pegasus@0.2.2) (2021-04-16)
407
-
408
- **Note:** Version bump only for package @agoric/pegasus
409
-
410
-
411
-
412
-
413
-
414
- ## [0.2.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.0...@agoric/pegasus@0.2.1) (2021-04-14)
415
-
416
- **Note:** Version bump only for package @agoric/pegasus
417
-
418
-
419
-
420
-
421
-
422
- # 0.2.0 (2021-04-13)
423
-
424
-
425
- ### Bug Fixes
426
-
427
- * adjust Pegasus to actually work correctly with pegRemote ([8cd8c72](https://github.com/Agoric/agoric-sdk/commit/8cd8c72bc5fa207471ac2fdd9ac750dbdda7c39f))
428
-
429
-
430
- ### Features
431
-
432
- * install Pegasus on chain bootstrap ([7615292](https://github.com/Agoric/agoric-sdk/commit/76152926942f9c0610ab3d08a45c464856779643))
433
- * integrate pegasus in chain bootstrap ([5c7ecba](https://github.com/Agoric/agoric-sdk/commit/5c7ecba05d0e6ec7ef9fe127ee89e0c79d3e6511))
434
- * move Pegasus contract to SDK ([d0ca2cc](https://github.com/Agoric/agoric-sdk/commit/d0ca2cc155953c63eef5f56f236fa9280984730a))
package/exported.js DELETED
@@ -1,5 +0,0 @@
1
- import './src/types.js';
2
- import '@agoric/notifier/exported.js';
3
- import '@agoric/ertp/exported.js';
4
- import '@agoric/store/exported.js';
5
- import '@agoric/swingset-vat/exported.js';
@@ -1,9 +0,0 @@
1
- #! /usr/bin/env node
2
- import '@endo/init';
3
- import { extractProposalBundles } from '@agoric/deploy-script-support';
4
- import url from 'url';
5
-
6
- import { defaultProposalBuilder } from './init-core.js';
7
-
8
- const dirname = url.fileURLToPath(new URL('.', import.meta.url));
9
- extractProposalBundles([['.', defaultProposalBuilder]], dirname);
@@ -1,20 +0,0 @@
1
- import { makeHelpers } from '@agoric/deploy-script-support';
2
-
3
- /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').ProposalBuilder} */
4
- export const defaultProposalBuilder = async ({ publishRef, install }) =>
5
- harden({
6
- sourceSpec: '../src/proposals/core-proposal.js',
7
- getManifestCall: [
8
- 'getManifestForPegasus',
9
- {
10
- pegasusRef: publishRef(
11
- install('../src/pegasus.js', '../bundles/bundle-pegasus.js'),
12
- ),
13
- },
14
- ],
15
- });
16
-
17
- export default async (homeP, endowments) => {
18
- const { writeCoreProposal } = await makeHelpers(homeP, endowments);
19
- await writeCoreProposal('gov-pegasus', defaultProposalBuilder);
20
- };