@agoric/pegasus 0.7.13-other-dev-1f26562.0 → 0.7.13-other-dev-3eb1a1d.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.13-other-dev-1f26562.0+1f26562",
3
+ "version": "0.7.13-other-dev-3eb1a1d.0+3eb1a1d",
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
- "test:c8": "c8 $C8_OPTIONS ava --config=ava-nesm.config.js",
13
+ "test:c8": "c8 --all $C8_OPTIONS ava",
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-other-dev-1f26562.0+1f26562",
33
- "@agoric/ertp": "0.16.3-other-dev-1f26562.0+1f26562",
34
- "@agoric/internal": "0.3.3-other-dev-1f26562.0+1f26562",
35
- "@agoric/notifier": "0.6.3-other-dev-1f26562.0+1f26562",
36
- "@agoric/store": "0.9.3-other-dev-1f26562.0+1f26562",
37
- "@agoric/swingset-vat": "0.32.3-other-dev-1f26562.0+1f26562",
38
- "@agoric/vats": "0.15.2-other-dev-1f26562.0+1f26562",
39
- "@agoric/zoe": "0.26.3-other-dev-1f26562.0+1f26562",
40
- "@endo/bundle-source": "2.5.2-upstream-rollup",
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/ertp": "0.16.3-other-dev-3eb1a1d.0+3eb1a1d",
32
+ "@agoric/internal": "0.3.3-other-dev-3eb1a1d.0+3eb1a1d",
33
+ "@agoric/network": "0.1.1-other-dev-3eb1a1d.0+3eb1a1d",
34
+ "@agoric/notifier": "0.6.3-other-dev-3eb1a1d.0+3eb1a1d",
35
+ "@agoric/store": "0.9.3-other-dev-3eb1a1d.0+3eb1a1d",
36
+ "@agoric/swingset-vat": "0.32.3-other-dev-3eb1a1d.0+3eb1a1d",
37
+ "@agoric/vats": "0.15.2-other-dev-3eb1a1d.0+3eb1a1d",
38
+ "@agoric/vow": "0.1.1-other-dev-3eb1a1d.0+3eb1a1d",
39
+ "@agoric/zoe": "0.26.3-other-dev-3eb1a1d.0+3eb1a1d",
40
+ "@agoric/zone": "0.2.3-other-dev-3eb1a1d.0+3eb1a1d",
41
+ "@endo/bundle-source": "^3.5.0",
42
+ "@endo/captp": "^4.4.3",
43
+ "@endo/errors": "^1.2.8",
44
+ "@endo/far": "^1.1.9",
45
+ "@endo/init": "^1.1.7",
46
+ "@endo/nat": "^5.0.13",
47
+ "@endo/promise-kit": "^1.1.8"
46
48
  },
47
49
  "devDependencies": {
48
- "@agoric/deploy-script-support": "0.10.4-other-dev-1f26562.0+1f26562",
49
- "ava": "^5.2.0",
50
- "c8": "^7.13.0",
50
+ "@agoric/vat-data": "0.5.3-other-dev-3eb1a1d.0+3eb1a1d",
51
+ "ava": "^5.3.0",
52
+ "c8": "^10.1.2",
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": "1f265627270d514ab48943f86c668eb58a280552"
72
+ "typeCoverage": {
73
+ "atLeast": 91.21
74
+ },
75
+ "gitHead": "3eb1a1d2d75b2b4a94807cd3bf759bc9fc531f05"
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
@@ -1,11 +1,17 @@
1
1
  // @ts-check
2
- import { details as X } from '@agoric/assert';
2
+ import { X } from '@endo/errors';
3
3
 
4
4
  import { AmountMath } from '@agoric/ertp';
5
5
  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,23 +61,25 @@ 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) => {
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({
63
71
  value: amount.value,
64
72
  remoteDenom: sendDenom,
65
73
  depositAddress,
74
+ memo,
75
+ opts,
66
76
  });
67
77
 
68
78
  // Retain the payment. We must not proceed on failure.
69
79
  retain(zcfSeat, { Transfer: amount });
70
80
 
71
81
  // The payment is already escrowed, and proposed to retain, so try sending.
72
- return E(connection)
73
- .send(transferPacket)
82
+ return when(E(connection).send(transferPacket))
74
83
  .then(ack => E(transferProtocol).assertTransferPacketAck(ack))
75
84
  .then(
76
85
  _ => zcfSeat.exit(),
package/src/ibc-trace.js CHANGED
@@ -1,8 +1,8 @@
1
1
  // @ts-check
2
+ import { Fail } from '@endo/errors';
2
3
  import { Far } from '@endo/far';
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
@@ -1,7 +1,7 @@
1
1
  // @ts-check
2
+ import { assert, X, Fail, annotateError } from '@endo/errors';
2
3
  import { Nat } from '@endo/nat';
3
4
  import { Far } from '@endo/far';
4
- import { assert, details as X, Fail } from '@agoric/assert';
5
5
 
6
6
  /**
7
7
  * @typedef {object} ICS20TransferPacket Packet shape defined at:
@@ -10,15 +10,15 @@ import { assert, details as X, Fail } from '@agoric/assert';
10
10
  * @property {Denom} denom The denomination of the amount
11
11
  * @property {string} sender The sender address
12
12
  * @property {DepositAddress} receiver The receiver deposit address
13
+ * @property {string} memo The packet memo
13
14
  */
14
15
 
15
16
  // As specified in ICS20, the success result is a base64-encoded '\0x1' byte.
16
17
  const ICS20_TRANSFER_SUCCESS_RESULT = 'AQ==';
17
18
 
18
19
  // ibc-go as late as v3 requires the `sender` to be nonempty, but doesn't
19
- // actually use it on the receiving side. We don't need it on the sending side,
20
- // either, so we can just omit it.
21
- export const DUMMY_SENDER_ADDRESS = 'pegasus';
20
+ // actually use it on the receiving side.
21
+ export const DEFAULT_SENDER_ADDRESS = 'pegasus';
22
22
 
23
23
  /**
24
24
  * @param {string} s
@@ -30,7 +30,7 @@ const safeJSONParseObject = s => {
30
30
  try {
31
31
  obj = JSON.parse(s);
32
32
  } catch (e) {
33
- assert.note(e, X`${s} is not valid JSON`);
33
+ annotateError(e, X`${s} is not valid JSON`);
34
34
  throw e;
35
35
  }
36
36
  if (typeof obj !== 'object') {
@@ -50,10 +50,16 @@ const safeJSONParseObject = s => {
50
50
  */
51
51
  export const parseICS20TransferPacket = async packet => {
52
52
  const ics20Packet = safeJSONParseObject(packet);
53
- const { amount, denom, receiver } = ics20Packet;
53
+ const { amount, denom, receiver, memo, opts } = ics20Packet;
54
54
 
55
55
  assert.typeof(denom, 'string', X`Denom ${denom} must be a string`);
56
56
  assert.typeof(receiver, 'string', X`Receiver ${receiver} must be a string`);
57
+ memo === undefined ||
58
+ assert.typeof(
59
+ memo,
60
+ 'string',
61
+ X`Memo ${memo} must be a string or 'undefined'`,
62
+ );
57
63
 
58
64
  // amount is a string in JSON.
59
65
  assert.typeof(amount, 'string', X`Amount ${amount} must be a string`);
@@ -66,6 +72,8 @@ export const parseICS20TransferPacket = async packet => {
66
72
  depositAddress: receiver,
67
73
  remoteDenom: denom,
68
74
  value,
75
+ memo,
76
+ opts,
69
77
  });
70
78
  };
71
79
 
@@ -80,6 +88,8 @@ export const makeICS20TransferPacket = async ({
80
88
  value,
81
89
  remoteDenom,
82
90
  depositAddress,
91
+ memo,
92
+ opts: { sender = DEFAULT_SENDER_ADDRESS },
83
93
  }) => {
84
94
  // We're using Nat as a dynamic check for overflow.
85
95
  const stringValue = String(Nat(value));
@@ -90,7 +100,8 @@ export const makeICS20TransferPacket = async ({
90
100
  amount: stringValue,
91
101
  denom: remoteDenom,
92
102
  receiver: depositAddress,
93
- sender: DUMMY_SENDER_ADDRESS,
103
+ sender,
104
+ memo,
94
105
  };
95
106
 
96
107
  return JSON.stringify(ics20);
@@ -1,7 +1,17 @@
1
1
  // @ts-check
2
- import { assert } from '@agoric/assert';
2
+ import { assert } from '@endo/errors';
3
3
  import { makePromiseKit } from '@endo/promise-kit';
4
4
 
5
+ /**
6
+ * Should be
7
+ * at-import {DetailsToken} from '@endo/errors'
8
+ * but somehow @endo/errors is not exporting that type.
9
+ * See https://github.com/endojs/endo/issues/2339
10
+ * In the meantime...
11
+ *
12
+ * @typedef {{}} DetailsToken
13
+ */
14
+
5
15
  /**
6
16
  * Create a promise kit that will throw an exception if it is resolved or
7
17
  * rejected more than once.
package/src/pegasus.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @ts-check
2
2
 
3
- import { assert, details as X, Fail } from '@agoric/assert';
3
+ import { assert, X, Fail, makeError } from '@endo/errors';
4
4
  import { makeLegacyWeakMap, makeLegacyMap } from '@agoric/store';
5
5
  import { E, Far } from '@endo/far';
6
6
  import {
@@ -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 = ({
@@ -145,7 +147,7 @@ const makePegasus = (zcf, board, namesByAddress) => {
145
147
  // handled it correctly and that flow doesn't need to trigger an
146
148
  // additional UnhandledRejectionWarning in our vat.
147
149
  promise.catch(() => {});
148
- reject(assert.error(X`${receiveDenom} is temporarily unavailable`));
150
+ reject(makeError(X`${receiveDenom} is temporarily unavailable`));
149
151
 
150
152
  // Allow new transfers to be initiated after this rejection.
151
153
  receiveDenomToCourierPK.delete(receiveDenom);
@@ -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');
@@ -357,7 +361,6 @@ const makePegasus = (zcf, board, namesByAddress) => {
357
361
  receiveDenomPublication,
358
362
  remoteDenomSubscription,
359
363
  abort: reason => {
360
- // eslint-disable-next-line no-use-before-define
361
364
  actions.abort(reason);
362
365
  },
363
366
  };
@@ -385,9 +388,8 @@ const makePegasus = (zcf, board, namesByAddress) => {
385
388
  async onReceive(c, packetBytes) {
386
389
  const doReceive = async () => {
387
390
  // Dispatch the packet to the appropriate Peg for this connection.
388
- const parts = await E(transferProtocol).parseTransferPacket(
389
- packetBytes,
390
- );
391
+ const parts =
392
+ await E(transferProtocol).parseTransferPacket(packetBytes);
391
393
 
392
394
  const { remoteDenom: receiveDenom } = parts;
393
395
  assert.typeof(receiveDenom, 'string');
@@ -424,7 +426,7 @@ const makePegasus = (zcf, board, namesByAddress) => {
424
426
  abort,
425
427
  } = connectionToLocalDenomState.get(c);
426
428
  connectionToLocalDenomState.delete(c);
427
- const err = assert.error(X`pegasusConnectionHandler closed`);
429
+ const err = makeError(X`pegasusConnectionHandler closed`);
428
430
  receiveDenomPublication.fail(err);
429
431
  /** @type {PegasusConnection} */
430
432
  const state = harden({
@@ -456,11 +458,13 @@ const makePegasus = (zcf, board, namesByAddress) => {
456
458
  /**
457
459
  * Create a Zoe invitation to transfer assets over network to a deposit address.
458
460
  *
459
- * @param {ERef<Peg>} pegP the peg over which to transfer
461
+ * @param {Remote<Peg>} pegP the peg over which to transfer
460
462
  * @param {DepositAddress} depositAddress the remote receiver's address
463
+ * @param {string} [memo] the memo to attach to ics transfer packet
464
+ * @param {SenderOptions} [opts] additional sender options
461
465
  * @returns {Promise<Invitation>} to transfer, make an offer of { give: { Transfer: pegAmount } } to this invitation
462
466
  */
463
- async makeInvitationToTransfer(pegP, depositAddress) {
467
+ async makeInvitationToTransfer(pegP, depositAddress, memo = '', opts = {}) {
464
468
  // Verify the peg.
465
469
  const peg = await pegP;
466
470
  const denomState = pegToDenomState.get(peg);
@@ -482,29 +486,15 @@ const makePegasus = (zcf, board, namesByAddress) => {
482
486
  */
483
487
  const offerHandler = zcfSeat => {
484
488
  assertProposalShape(zcfSeat, TRANSFER_PROPOSAL_SHAPE);
485
- send(zcfSeat, depositAddress);
489
+ send(zcfSeat, depositAddress, memo, opts);
486
490
  };
487
491
 
488
492
  return zcf.makeInvitation(offerHandler, `pegasus ${sendDenom} transfer`);
489
493
  },
490
494
  });
491
495
  };
496
+ harden(makePegasus);
492
497
 
493
498
  /**
494
499
  * @typedef {ReturnType<typeof makePegasus>} Pegasus
495
500
  */
496
-
497
- /**
498
- * @param {ZCF<{board: ERef<BoardDepositFacet>, namesByAddress: ERef<import('@agoric/vats').NameHub>}>} zcf
499
- */
500
- const start = zcf => {
501
- const { board, namesByAddress } = zcf.getTerms();
502
-
503
- return {
504
- publicFacet: makePegasus(zcf, board, namesByAddress),
505
- };
506
- };
507
-
508
- harden(start);
509
- harden(makePegasus);
510
- 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,9 +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
18
+ * @property {string} memo
19
+ * @property {SenderOptions} opts
15
20
  */
16
21
 
17
22
  /**
@@ -46,7 +51,7 @@
46
51
  */
47
52
 
48
53
  /**
49
- * @typedef {(zcfSeat: ZCFSeat, depositAddress: DepositAddress) => Promise<void>} Sender
54
+ * @typedef {(zcfSeat: ZCFSeat, depositAddress: DepositAddress, memo: string, opt: SenderOptions) => Promise<void>} Sender
50
55
  * Successive transfers are not guaranteed to be processed in the order in which they were sent.
51
56
  * @typedef {(parts: PacketParts) => Promise<Bytes>} Receiver
52
57
  * @typedef {object} Courier
@@ -110,3 +115,8 @@
110
115
  * @property {ConnectionHandler} handler
111
116
  * @property {Subscription<PegasusConnection>} subscription
112
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,450 +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.13-u11.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.12...@agoric/pegasus@0.7.13-u11.0) (2023-08-24)
7
-
8
- **Note:** Version bump only for package @agoric/pegasus
9
-
10
-
11
-
12
-
13
-
14
- ### [0.7.12](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.11...@agoric/pegasus@0.7.12) (2023-06-09)
15
-
16
- **Note:** Version bump only for package @agoric/pegasus
17
-
18
-
19
-
20
-
21
-
22
- ### [0.7.11](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.10...@agoric/pegasus@0.7.11) (2023-06-02)
23
-
24
- **Note:** Version bump only for package @agoric/pegasus
25
-
26
-
27
-
28
-
29
-
30
- ### [0.7.10](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.9...@agoric/pegasus@0.7.10) (2023-05-24)
31
-
32
- **Note:** Version bump only for package @agoric/pegasus
33
-
34
-
35
-
36
-
37
-
38
- ### [0.7.9](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.6...@agoric/pegasus@0.7.9) (2023-05-19)
39
-
40
-
41
- ### Bug Fixes
42
-
43
- * use `subscribeEach` to get reconnect benefits ([fb24132](https://github.com/Agoric/agoric-sdk/commit/fb24132f9b4e117e56bae2803994e57c188344f3))
44
- * use atomicTransfers rather than stagings. ([#6577](https://github.com/Agoric/agoric-sdk/issues/6577)) ([65d3f14](https://github.com/Agoric/agoric-sdk/commit/65d3f14c8102993168d2568eed5e6acbcba0c48a))
45
-
46
-
47
-
48
- ### [0.7.8](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.7...@agoric/pegasus@0.7.8) (2023-02-17)
49
-
50
- **Note:** Version bump only for package @agoric/pegasus
51
-
52
-
53
-
54
-
55
-
56
- ### [0.7.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.6...@agoric/pegasus@0.7.7) (2022-12-14)
57
-
58
- **Note:** Version bump only for package @agoric/pegasus
59
-
60
-
61
-
62
-
63
-
64
- ### [0.7.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.5...@agoric/pegasus@0.7.6) (2022-10-18)
65
-
66
- **Note:** Version bump only for package @agoric/pegasus
67
-
68
-
69
-
70
-
71
-
72
- ### [0.7.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.4...@agoric/pegasus@0.7.5) (2022-10-08)
73
-
74
- **Note:** Version bump only for package @agoric/pegasus
75
-
76
-
77
-
78
-
79
-
80
- ### [0.7.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.3...@agoric/pegasus@0.7.4) (2022-10-05)
81
-
82
- **Note:** Version bump only for package @agoric/pegasus
83
-
84
-
85
-
86
-
87
-
88
- ### [0.7.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.2...@agoric/pegasus@0.7.3) (2022-09-20)
89
-
90
-
91
- ### Bug Fixes
92
-
93
- * show more stacks ([#5980](https://github.com/Agoric/agoric-sdk/issues/5980)) ([7e22057](https://github.com/Agoric/agoric-sdk/commit/7e220575af0e5b0607d821675c57a3714f48fd65))
94
-
95
-
96
-
97
- ### [0.7.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.1...@agoric/pegasus@0.7.2) (2022-05-28)
98
-
99
- **Note:** Version bump only for package @agoric/pegasus
100
-
101
-
102
-
103
-
104
-
105
- ### [0.7.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.0...@agoric/pegasus@0.7.1) (2022-05-09)
106
-
107
- **Note:** Version bump only for package @agoric/pegasus
108
-
109
-
110
-
111
-
112
-
113
- ## [0.7.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.6.1...@agoric/pegasus@0.7.0) (2022-04-18)
114
-
115
-
116
- ### ⚠ BREAKING CHANGES
117
-
118
- * consistent Node engine requirement (>=14.15.0)
119
-
120
- ### Features
121
-
122
- * **pegasus:** prepare for governance ([4c921b5](https://github.com/Agoric/agoric-sdk/commit/4c921b501e425e861479c9197bc24d1d09f4a2ac))
123
- * **vats:** remove pegasus from bootstrap ([c384a41](https://github.com/Agoric/agoric-sdk/commit/c384a41c6e494059beb28c09a94e5625faa5f87e))
124
- * implement the durable kind API ([56bad98](https://github.com/Agoric/agoric-sdk/commit/56bad985275787d18c34ac14b377a4d0348d699b)), closes [#4495](https://github.com/Agoric/agoric-sdk/issues/4495)
125
-
126
-
127
- ### Miscellaneous Chores
128
-
129
- * consistent Node engine requirement (>=14.15.0) ([ddc40fa](https://github.com/Agoric/agoric-sdk/commit/ddc40fa525f845ed900512c38b99f01458a3d131))
130
-
131
-
132
-
133
- ### [0.6.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.6.0...@agoric/pegasus@0.6.1) (2022-02-24)
134
-
135
-
136
- ### Features
137
-
138
- * overhaul the virtual object API ([e40674b](https://github.com/Agoric/agoric-sdk/commit/e40674b0b19f29adde2f5e6a460bafb7340d42b6)), closes [#4606](https://github.com/Agoric/agoric-sdk/issues/4606)
139
-
140
-
141
-
142
- ## [0.6.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.5.1...@agoric/pegasus@0.6.0) (2022-02-21)
143
-
144
-
145
- ### ⚠ BREAKING CHANGES
146
-
147
- * **pegasus:** make more robust and remove public state
148
-
149
- ### Features
150
-
151
- * **pegasus:** implement correct result and denom trace handling ([aacf1c3](https://github.com/Agoric/agoric-sdk/commit/aacf1c39f840beb31702f3fcd3565771ccaf7817))
152
- * **pegasus:** make more robust and remove public state ([a5413f7](https://github.com/Agoric/agoric-sdk/commit/a5413f781fc694e3e11804b5288740e9319928ee))
153
- * **pegasus:** properly abort on connection close ([1b17f7a](https://github.com/Agoric/agoric-sdk/commit/1b17f7aa4de11ccd5a1ec26fc7b6fff017d70ac1))
154
- * **pegasus:** rejectStuckTransfers, getRemoteDenomSubscription ([54bf0bc](https://github.com/Agoric/agoric-sdk/commit/54bf0bc4e83172396962295ba76b8af3a8846df9))
155
- * implement persistent stores ([e1050b0](https://github.com/Agoric/agoric-sdk/commit/e1050b010e095b23547a38d48a12e5c8841a7466))
156
-
157
-
158
- ### Bug Fixes
159
-
160
- * **pegasus:** more POLA and less global state ([e7ea320](https://github.com/Agoric/agoric-sdk/commit/e7ea32047f5a87a18c5ed4722d4d6e2163f7f2aa))
161
- * **pegasus:** more robust ics20 JSON parsing ([208109f](https://github.com/Agoric/agoric-sdk/commit/208109f2e4df9e4df5c2371c6a299a42349d5c69))
162
- * **pegasus:** only reject transfers waiting for pegRemote ([f1801f6](https://github.com/Agoric/agoric-sdk/commit/f1801f63ad81ec06fc3b86c3a44e98130b310351))
163
- * **pegasus:** use bigints for nonces ([9065d6e](https://github.com/Agoric/agoric-sdk/commit/9065d6ee205082efd2253e6bd06ee08676535b50))
164
- * **pegasus:** use dummy ICS20-1 transfer `sender` ([c4056bc](https://github.com/Agoric/agoric-sdk/commit/c4056bcd48800b6bfadb4de5eaccb66af6446ef4))
165
- * `rejectStuckTransfers` sends a TransferProtocol-level error ([8374f94](https://github.com/Agoric/agoric-sdk/commit/8374f941597e22ac20f40b959381218f03563f65))
166
- * Enhance TypeScript node_modules traversal depth ([000f738](https://github.com/Agoric/agoric-sdk/commit/000f73850d46dc7272b2399c06ad774dd3b8fe6e))
167
-
168
-
169
-
170
- ### [0.5.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.5.0...@agoric/pegasus@0.5.1) (2021-12-22)
171
-
172
- **Note:** Version bump only for package @agoric/pegasus
173
-
174
-
175
-
176
-
177
-
178
- ## [0.5.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.5...@agoric/pegasus@0.5.0) (2021-12-02)
179
-
180
-
181
- ### ⚠ BREAKING CHANGES
182
-
183
- * **zoe:** must harden `amountKeywordRecord` before passing to ZCF objects
184
-
185
- * chore: fix treasury errors, etc.
186
-
187
- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
188
-
189
- ### Bug Fixes
190
-
191
- * **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))
192
-
193
-
194
-
195
- ### [0.4.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.4...@agoric/pegasus@0.4.5) (2021-10-13)
196
-
197
- **Note:** Version bump only for package @agoric/pegasus
198
-
199
-
200
-
201
-
202
-
203
- ### [0.4.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.3...@agoric/pegasus@0.4.4) (2021-09-23)
204
-
205
- **Note:** Version bump only for package @agoric/pegasus
206
-
207
-
208
-
209
-
210
-
211
- ### [0.4.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.2...@agoric/pegasus@0.4.3) (2021-09-15)
212
-
213
-
214
- ### Bug Fixes
215
-
216
- * more missing Fars. kill "this" ([#3746](https://github.com/Agoric/agoric-sdk/issues/3746)) ([7bd027a](https://github.com/Agoric/agoric-sdk/commit/7bd027a879f98a9a3f30429ee1b54e6057efec42))
217
-
218
-
219
-
220
- ### [0.4.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.1...@agoric/pegasus@0.4.2) (2021-08-21)
221
-
222
- **Note:** Version bump only for package @agoric/pegasus
223
-
224
-
225
-
226
-
227
-
228
- ### [0.4.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.4.0...@agoric/pegasus@0.4.1) (2021-08-18)
229
-
230
- **Note:** Version bump only for package @agoric/pegasus
231
-
232
-
233
-
234
-
235
-
236
- ## [0.4.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.12...@agoric/pegasus@0.4.0) (2021-08-17)
237
-
238
-
239
- ### ⚠ BREAKING CHANGES
240
-
241
- * make the run mint within Zoe, and give only the treasury the ability to create a ZCFMint with it
242
-
243
- * chore: change 'makeZoe' to 'makeZoeKit'
244
-
245
- * chore: add "shutdownZoeVat" argument to Zoe, and pass it to `makeIssuerKit` for invitation issuerKit and fee issuerKit
246
-
247
- * chore: manually lint-fix install-on-chain.js
248
-
249
- See https://github.com/Agoric/agoric-sdk/issues/3672 for the issue to fix the root problem
250
-
251
- * 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)
252
-
253
-
254
-
255
- ### [0.3.12](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.11...@agoric/pegasus@0.3.12) (2021-08-16)
256
-
257
- **Note:** Version bump only for package @agoric/pegasus
258
-
259
-
260
-
261
-
262
-
263
- ### [0.3.11](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.8...@agoric/pegasus@0.3.11) (2021-08-15)
264
-
265
- ### 0.26.10 (2021-07-28)
266
-
267
-
268
- ### Bug Fixes
269
-
270
- * 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)
271
-
272
-
273
-
274
- ### [0.3.10](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.8...@agoric/pegasus@0.3.10) (2021-08-14)
275
-
276
- ### 0.26.10 (2021-07-28)
277
-
278
-
279
- ### Bug Fixes
280
-
281
- * 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)
282
-
283
-
284
-
285
- ### [0.3.9](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.8...@agoric/pegasus@0.3.9) (2021-07-28)
286
-
287
-
288
- ### Bug Fixes
289
-
290
- * 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)
291
-
292
-
293
-
294
- ### [0.3.8](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.7...@agoric/pegasus@0.3.8) (2021-07-01)
295
-
296
- **Note:** Version bump only for package @agoric/pegasus
297
-
298
-
299
-
300
-
301
-
302
- ### [0.3.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.6...@agoric/pegasus@0.3.7) (2021-07-01)
303
-
304
- **Note:** Version bump only for package @agoric/pegasus
305
-
306
-
307
-
308
-
309
-
310
- ### [0.3.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.5...@agoric/pegasus@0.3.6) (2021-06-28)
311
-
312
- **Note:** Version bump only for package @agoric/pegasus
313
-
314
-
315
-
316
-
317
-
318
- ### [0.3.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.4...@agoric/pegasus@0.3.5) (2021-06-25)
319
-
320
- **Note:** Version bump only for package @agoric/pegasus
321
-
322
-
323
-
324
-
325
-
326
- ### [0.3.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.3...@agoric/pegasus@0.3.4) (2021-06-24)
327
-
328
- **Note:** Version bump only for package @agoric/pegasus
329
-
330
-
331
-
332
-
333
-
334
- ### [0.3.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.2...@agoric/pegasus@0.3.3) (2021-06-24)
335
-
336
- **Note:** Version bump only for package @agoric/pegasus
337
-
338
-
339
-
340
-
341
-
342
- ### [0.3.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.1...@agoric/pegasus@0.3.2) (2021-06-23)
343
-
344
- **Note:** Version bump only for package @agoric/pegasus
345
-
346
-
347
-
348
-
349
-
350
- ### [0.3.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.3.0...@agoric/pegasus@0.3.1) (2021-06-16)
351
-
352
- **Note:** Version bump only for package @agoric/pegasus
353
-
354
-
355
-
356
-
357
-
358
- ## [0.3.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.7...@agoric/pegasus@0.3.0) (2021-06-15)
359
-
360
-
361
- ### ⚠ BREAKING CHANGES
362
-
363
- * **zoe:** new reallocate API to assist with reviewing conservation of rights (#3184)
364
-
365
- ### Bug Fixes
366
-
367
- * Pin ESM to forked version ([54dbb55](https://github.com/Agoric/agoric-sdk/commit/54dbb55d64d7ff7adb395bc4bd9d1461dd2d3c17))
368
-
369
-
370
- ### Code Refactoring
371
-
372
- * **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))
373
-
374
-
375
-
376
- ## [0.2.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.6...@agoric/pegasus@0.2.7) (2021-05-10)
377
-
378
- **Note:** Version bump only for package @agoric/pegasus
379
-
380
-
381
-
382
-
383
-
384
- ## [0.2.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.5...@agoric/pegasus@0.2.6) (2021-05-05)
385
-
386
- **Note:** Version bump only for package @agoric/pegasus
387
-
388
-
389
-
390
-
391
-
392
- ## [0.2.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.4...@agoric/pegasus@0.2.5) (2021-05-05)
393
-
394
-
395
- ### Bug Fixes
396
-
397
- * **pegasus:** update to new solo package ([cf91a04](https://github.com/Agoric/agoric-sdk/commit/cf91a04fa6ce53dc06de0ccb8c8173050134575a))
398
-
399
-
400
-
401
-
402
-
403
- ## [0.2.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.3...@agoric/pegasus@0.2.4) (2021-04-22)
404
-
405
-
406
- ### Bug Fixes
407
-
408
- * rename cosmos-level tokens uagstake/uag to ubld/urun ([0557983](https://github.com/Agoric/agoric-sdk/commit/0557983210571c9c2ba801d68644d71641a3f790))
409
-
410
-
411
-
412
-
413
-
414
- ## [0.2.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.2...@agoric/pegasus@0.2.3) (2021-04-18)
415
-
416
- **Note:** Version bump only for package @agoric/pegasus
417
-
418
-
419
-
420
-
421
-
422
- ## [0.2.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.1...@agoric/pegasus@0.2.2) (2021-04-16)
423
-
424
- **Note:** Version bump only for package @agoric/pegasus
425
-
426
-
427
-
428
-
429
-
430
- ## [0.2.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.2.0...@agoric/pegasus@0.2.1) (2021-04-14)
431
-
432
- **Note:** Version bump only for package @agoric/pegasus
433
-
434
-
435
-
436
-
437
-
438
- # 0.2.0 (2021-04-13)
439
-
440
-
441
- ### Bug Fixes
442
-
443
- * adjust Pegasus to actually work correctly with pegRemote ([8cd8c72](https://github.com/Agoric/agoric-sdk/commit/8cd8c72bc5fa207471ac2fdd9ac750dbdda7c39f))
444
-
445
-
446
- ### Features
447
-
448
- * install Pegasus on chain bootstrap ([7615292](https://github.com/Agoric/agoric-sdk/commit/76152926942f9c0610ab3d08a45c464856779643))
449
- * integrate pegasus in chain bootstrap ([5c7ecba](https://github.com/Agoric/agoric-sdk/commit/5c7ecba05d0e6ec7ef9fe127ee89e0c79d3e6511))
450
- * 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
- };