@agoric/vats 0.15.1 → 0.15.2-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.
Files changed (208) hide show
  1. package/README.md +3 -0
  2. package/index.d.ts +6 -0
  3. package/index.d.ts.map +1 -0
  4. package/index.js +9 -0
  5. package/package.json +43 -48
  6. package/scripts/build-bundles.js +19 -0
  7. package/src/bridge-target.d.ts +193 -0
  8. package/src/bridge-target.d.ts.map +1 -0
  9. package/src/bridge-target.js +316 -0
  10. package/src/bridge.d.ts +14 -4
  11. package/src/bridge.d.ts.map +1 -1
  12. package/src/bridge.js +45 -16
  13. package/src/centralSupply.d.ts +3 -3
  14. package/src/centralSupply.d.ts.map +1 -1
  15. package/src/centralSupply.js +3 -5
  16. package/src/core/README.md +1 -1
  17. package/src/core/basic-behaviors.d.ts +24 -39
  18. package/src/core/basic-behaviors.d.ts.map +1 -1
  19. package/src/core/basic-behaviors.js +63 -63
  20. package/src/core/boot-chain.d.ts +178 -44
  21. package/src/core/boot-chain.d.ts.map +1 -1
  22. package/src/core/boot-chain.js +5 -5
  23. package/src/core/boot-sim.d.ts +5 -43
  24. package/src/core/boot-sim.d.ts.map +1 -1
  25. package/src/core/boot-sim.js +3 -4
  26. package/src/core/boot-solo.d.ts +5 -43
  27. package/src/core/boot-solo.d.ts.map +1 -1
  28. package/src/core/boot-solo.js +4 -5
  29. package/src/core/chain-behaviors.d.ts +10 -26
  30. package/src/core/chain-behaviors.d.ts.map +1 -1
  31. package/src/core/chain-behaviors.js +38 -42
  32. package/src/core/client-behaviors.d.ts +2 -1
  33. package/src/core/client-behaviors.d.ts.map +1 -1
  34. package/src/core/client-behaviors.js +6 -5
  35. package/src/core/core-eval-env.d.ts +40 -0
  36. package/src/core/demoIssuers.d.ts +24 -26
  37. package/src/core/demoIssuers.d.ts.map +1 -1
  38. package/src/core/demoIssuers.js +37 -37
  39. package/src/core/lib-boot.d.ts +17 -53
  40. package/src/core/lib-boot.d.ts.map +1 -1
  41. package/src/core/lib-boot.js +52 -60
  42. package/src/core/promise-space.d.ts +4 -7
  43. package/src/core/promise-space.d.ts.map +1 -1
  44. package/src/core/promise-space.js +15 -16
  45. package/src/core/sim-behaviors.d.ts +3 -3
  46. package/src/core/sim-behaviors.d.ts.map +1 -1
  47. package/src/core/sim-behaviors.js +1 -1
  48. package/src/core/startWalletFactory.d.ts +23 -27
  49. package/src/core/startWalletFactory.d.ts.map +1 -1
  50. package/src/core/startWalletFactory.js +32 -18
  51. package/src/core/types-ambient.d.ts +538 -0
  52. package/src/core/types-ambient.js +1 -0
  53. package/src/core/utils.d.ts +47 -92
  54. package/src/core/utils.d.ts.map +1 -1
  55. package/src/core/utils.js +58 -50
  56. package/src/crc.d.ts +2 -6
  57. package/src/crc.d.ts.map +1 -1
  58. package/src/crc.js +5 -16
  59. package/src/ibc.d.ts +30 -35
  60. package/src/ibc.d.ts.map +1 -1
  61. package/src/ibc.js +740 -491
  62. package/src/lib-board.d.ts +49 -121
  63. package/src/lib-board.d.ts.map +1 -1
  64. package/src/lib-board.js +49 -50
  65. package/src/localchain.d.ts +195 -0
  66. package/src/localchain.d.ts.map +1 -0
  67. package/src/localchain.js +324 -0
  68. package/src/mintHolder.d.ts +6 -4
  69. package/src/mintHolder.d.ts.map +1 -1
  70. package/src/mintHolder.js +19 -21
  71. package/src/nameHub.d.ts +27 -5
  72. package/src/nameHub.d.ts.map +1 -1
  73. package/src/nameHub.js +33 -26
  74. package/src/priceAuthorityRegistry.d.ts +21 -0
  75. package/src/priceAuthorityRegistry.d.ts.map +1 -0
  76. package/src/priceAuthorityRegistry.js +220 -0
  77. package/src/proposals/kread-proposal.d.ts +15 -0
  78. package/src/proposals/kread-proposal.d.ts.map +1 -0
  79. package/src/proposals/kread-proposal.js +24 -0
  80. package/src/proposals/localchain-proposal.d.ts +62 -0
  81. package/src/proposals/localchain-proposal.d.ts.map +1 -0
  82. package/src/proposals/localchain-proposal.js +128 -0
  83. package/src/proposals/localchain-test.d.ts +25 -0
  84. package/src/proposals/localchain-test.d.ts.map +1 -0
  85. package/src/proposals/localchain-test.js +89 -0
  86. package/src/proposals/namesByAddress-fix-proposal.d.ts +22 -0
  87. package/src/proposals/namesByAddress-fix-proposal.d.ts.map +1 -0
  88. package/src/proposals/namesByAddress-fix-proposal.js +55 -0
  89. package/src/proposals/network-proposal.d.ts +23 -8
  90. package/src/proposals/network-proposal.d.ts.map +1 -1
  91. package/src/proposals/network-proposal.js +90 -65
  92. package/src/proposals/probeZcfBundle.d.ts +26 -0
  93. package/src/proposals/probeZcfBundle.d.ts.map +1 -0
  94. package/src/proposals/probeZcfBundle.js +72 -0
  95. package/src/proposals/restart-vats-proposal.d.ts +4 -2
  96. package/src/proposals/restart-vats-proposal.d.ts.map +1 -1
  97. package/src/proposals/restart-vats-proposal.js +20 -8
  98. package/src/proposals/transfer-proposal.d.ts +37 -0
  99. package/src/proposals/transfer-proposal.d.ts.map +1 -0
  100. package/src/proposals/transfer-proposal.js +115 -0
  101. package/src/proposals/upgrade-bank-proposal.d.ts +27 -0
  102. package/src/proposals/upgrade-bank-proposal.d.ts.map +1 -0
  103. package/src/proposals/upgrade-bank-proposal.js +42 -0
  104. package/src/proposals/upgrade-provisionPool-proposal.d.ts +27 -0
  105. package/src/proposals/upgrade-provisionPool-proposal.d.ts.map +1 -0
  106. package/src/proposals/upgrade-provisionPool-proposal.js +67 -0
  107. package/src/proposals/upgrade-zoe-proposal.d.ts +27 -0
  108. package/src/proposals/upgrade-zoe-proposal.d.ts.map +1 -0
  109. package/src/proposals/upgrade-zoe-proposal.js +42 -0
  110. package/src/proposals/vtransfer-echoer.d.ts +24 -0
  111. package/src/proposals/vtransfer-echoer.d.ts.map +1 -0
  112. package/src/proposals/vtransfer-echoer.js +42 -0
  113. package/src/proposals/zcf-only-proposal.d.ts +33 -0
  114. package/src/proposals/zcf-only-proposal.d.ts.map +1 -0
  115. package/src/proposals/zcf-only-proposal.js +36 -0
  116. package/src/proposals/zcf-proposal.d.ts +30 -0
  117. package/src/proposals/zcf-proposal.d.ts.map +1 -0
  118. package/src/proposals/zcf-proposal.js +50 -0
  119. package/src/repl.d.ts +3 -3
  120. package/src/repl.d.ts.map +1 -1
  121. package/src/repl.js +11 -5
  122. package/src/transfer.d.ts +111 -0
  123. package/src/transfer.d.ts.map +1 -0
  124. package/src/transfer.js +260 -0
  125. package/src/types.d.ts +237 -105
  126. package/src/types.js +1 -97
  127. package/src/vat-agoricNames.d.ts +4 -4
  128. package/src/vat-agoricNames.d.ts.map +1 -1
  129. package/src/vat-agoricNames.js +2 -4
  130. package/src/vat-bank.d.ts +217 -149
  131. package/src/vat-bank.d.ts.map +1 -1
  132. package/src/vat-bank.js +96 -68
  133. package/src/vat-board.d.ts +24 -24
  134. package/src/vat-board.d.ts.map +1 -1
  135. package/src/vat-board.js +0 -1
  136. package/src/vat-bridge.d.ts +9 -23
  137. package/src/vat-bridge.d.ts.map +1 -1
  138. package/src/vat-bridge.js +1 -2
  139. package/src/vat-ibc.d.ts +16 -4
  140. package/src/vat-ibc.d.ts.map +1 -1
  141. package/src/vat-ibc.js +20 -9
  142. package/src/vat-localchain.d.ts +37 -0
  143. package/src/vat-localchain.d.ts.map +1 -0
  144. package/src/vat-localchain.js +29 -0
  145. package/src/vat-mints.d.ts +31 -31
  146. package/src/vat-mints.d.ts.map +1 -1
  147. package/src/vat-mints.js +6 -7
  148. package/src/vat-network.d.ts +69 -1
  149. package/src/vat-network.d.ts.map +1 -1
  150. package/src/vat-network.js +45 -3
  151. package/src/vat-priceAuthority.d.ts +4 -4
  152. package/src/vat-priceAuthority.d.ts.map +1 -1
  153. package/src/vat-priceAuthority.js +1 -1
  154. package/src/vat-provisioning.d.ts +6 -6
  155. package/src/vat-provisioning.d.ts.map +1 -1
  156. package/src/vat-provisioning.js +15 -12
  157. package/src/vat-transfer.d.ts +81 -0
  158. package/src/vat-transfer.d.ts.map +1 -0
  159. package/src/vat-transfer.js +63 -0
  160. package/src/vat-zoe.d.ts +4 -1
  161. package/src/vat-zoe.d.ts.map +1 -1
  162. package/src/vat-zoe.js +10 -2
  163. package/src/virtual-purse.d.ts +46 -21
  164. package/src/virtual-purse.d.ts.map +1 -1
  165. package/src/virtual-purse.js +57 -46
  166. package/src/walletFlags.d.ts +2 -2
  167. package/src/walletFlags.js +1 -2
  168. package/tools/bank-utils.d.ts +20 -0
  169. package/tools/bank-utils.d.ts.map +1 -0
  170. package/tools/bank-utils.js +92 -0
  171. package/tools/board-utils.d.ts +39 -0
  172. package/tools/board-utils.d.ts.map +1 -0
  173. package/tools/board-utils.js +92 -0
  174. package/tools/boot-test-utils.d.ts +88 -0
  175. package/tools/boot-test-utils.d.ts.map +1 -0
  176. package/tools/boot-test-utils.js +157 -0
  177. package/tools/fake-bridge.d.ts +18 -0
  178. package/tools/fake-bridge.d.ts.map +1 -0
  179. package/tools/fake-bridge.js +289 -0
  180. package/tools/ibc-utils.d.ts +29 -0
  181. package/tools/ibc-utils.d.ts.map +1 -0
  182. package/tools/ibc-utils.js +115 -0
  183. package/decentral-core-config.json +0 -66
  184. package/decentral-demo-config.json +0 -155
  185. package/decentral-devnet-config.json +0 -216
  186. package/decentral-itest-vaults-config.json +0 -210
  187. package/decentral-main-vaults-config.json +0 -229
  188. package/decentral-test-vaults-config.json +0 -195
  189. package/demo-proposals.json +0 -5
  190. package/exported.js +0 -1
  191. package/jsconfig.build.json +0 -12
  192. package/jsconfig.json +0 -13
  193. package/src/core/types.d.ts +0 -764
  194. package/src/core/types.d.ts.map +0 -1
  195. package/src/core/types.js +0 -347
  196. package/src/provisionPool.d.ts +0 -164
  197. package/src/provisionPool.d.ts.map +0 -1
  198. package/src/provisionPool.js +0 -113
  199. package/src/provisionPoolKit.d.ts +0 -392
  200. package/src/provisionPoolKit.d.ts.map +0 -1
  201. package/src/provisionPoolKit.js +0 -464
  202. package/src/tokens.d.ts +0 -36
  203. package/src/tokens.d.ts.map +0 -1
  204. package/src/tokens.js +0 -37
  205. package/src/types.d.ts.map +0 -1
  206. package/src/vat-sharing.d.ts +0 -54
  207. package/src/vat-sharing.d.ts.map +0 -1
  208. package/src/vat-sharing.js +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"startWalletFactory.d.ts","sourceRoot":"","sources":["startWalletFactory.js"],"names":[],"mappings":"AAyEO;;;;;;;;;;;;;;;;;mCAd6B,OAAO,qCAAqC,EAAE,+BAA+B;oBAC5F;QACpB,YAAkB,EAAE,QAAQ,WAAW,oEAA6D,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACjI,UAAgB,EAAE,UAAU,CAAC;KACxB;yBACoB,OAAO,aAAa,EAAE,mBAAmB;kCAChC,OAAO,aAAa,EAAE,mBAAmB;;;;;8BAqL3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCE;AAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWN;uCAxRY,QAAQ,WAAW,2BAA2B,CAAC,CAAC;;AAH7D;;;;GAIG;AAEH,2CALW,KAAK,UAAU,CAAC,QAChB,6EAAsE,8IAIX"}
1
+ {"version":3,"file":"startWalletFactory.d.ts","sourceRoot":"","sources":["startWalletFactory.js"],"names":[],"mappings":"AAkFO,qnBArBI,eAAe,GACzB,qBAAyB,GACzB,cAAkB,CAAC;IACnB,6BAAmC,EAAE,OAAO,qCAAqC,EAAE,+BAA+B,CAAC;IACnH,cAAoB,EAAE;QACtB,YAAoB,EAAE,OAAO,CAC7B,UAAoB,CACpB,mEAAwE,CAAC,OAAO,CAAC,CACtE,CACF,CAAC,cAAc,CAAC,CAAC;QAC1B,UAAkB,EAAE,UAAU,CAAC;KACxB,CAAC;IACR,mBAAyB,EAAE,OAAO,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/E,4BAAkC,EAAE,OAAO,aAAa,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;CAC5F,CAAC;cAEQ;QACd,sBAA4B,CAAC,EAAE,MAAM,CAAC;KACjC;8BAqLL;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCE;AAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWN;uCAnSY,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;uBAhBtC,gCAAgC;AASvD;;;;;;;;GAQG;AAEH,2CATW,IAAI,CAAC,UAAU,CAAC,QAChB,YAAY,CACtB,OAAW,2CAA2C,EAAE,KAAK,CAC1D;;uBAiHI,CAAC,cAAsB,aAAc;iBAErC,CAAC;mBAIU,kBACH;;8DA+KiiB,gBAA8B,0CAA2C,aAA2B,uCAAyF,yCAAkB;;KAjS1rB"}
@@ -1,4 +1,3 @@
1
- // @ts-check
2
1
  import { makeMap } from 'jessie.js';
3
2
  import { E, Far } from '@endo/far';
4
3
  import { deeplyFulfilled } from '@endo/marshal';
@@ -6,18 +5,22 @@ import { makeTracer, VBankAccount } from '@agoric/internal';
6
5
  import { AmountMath } from '@agoric/ertp';
7
6
  import { ParamTypes } from '@agoric/governance';
8
7
  import { makeStorageNodeChild } from '@agoric/internal/src/lib-chainStorage.js';
8
+ import { Stable } from '@agoric/internal/src/tokens.js';
9
9
  import {
10
10
  makeHistoryReviver,
11
11
  makeBoardRemote,
12
12
  slotToBoardRemote,
13
13
  } from '../../tools/board-utils.js';
14
- import { Stable } from '../tokens.js';
15
14
 
16
15
  const trace = makeTracer('StartWF');
17
16
 
18
17
  /**
19
18
  * @param {ERef<ZoeService>} zoe
20
- * @param {Installation<import('@agoric/smart-wallet/src/walletFactory').prepare>} inst
19
+ * @param {Installation<
20
+ * import('@agoric/smart-wallet/src/walletFactory.js').start
21
+ * >} inst
22
+ *
23
+ *
21
24
  * @typedef {Awaited<ReturnType<typeof startFactoryInstance>>} WalletFactoryStartResult
22
25
  */
23
26
  // eslint-disable-next-line no-unused-vars
@@ -26,8 +29,8 @@ const startFactoryInstance = (zoe, inst) => E(zoe).startInstance(inst);
26
29
  const StableUnit = BigInt(10 ** Stable.displayInfo.decimalPlaces);
27
30
 
28
31
  /**
29
- * Publish an arbitrary wallet state so that clients
30
- * can tell that a wallet has been provisioned.
32
+ * Publish an arbitrary wallet state so that clients can tell that a wallet has
33
+ * been provisioned.
31
34
  *
32
35
  * @param {string[]} oldAddresses
33
36
  * @param {Marshaller} marshaller
@@ -53,22 +56,28 @@ const publishRevivableWalletState = async (
53
56
  };
54
57
 
55
58
  /**
56
- * Register for PLEASE_PROVISION bridge messages and handle
57
- * them by providing a smart wallet from the wallet factory.
59
+ * Register for PLEASE_PROVISION bridge messages and handle them by providing a
60
+ * smart wallet from the wallet factory.
58
61
  *
59
- * @param {BootstrapPowers & ChainStorageVatParams & PromiseSpaceOf<{
60
- * economicCommitteeCreatorFacet: import('@agoric/governance/src/committee.js').CommitteeElectorateCreatorFacet
61
- * econCharterKit: {
62
- * creatorFacet: Awaited<ReturnType<import('@agoric/inter-protocol/src/econCommitteeCharter.js')['prepare']>>['creatorFacet'],
63
- * adminFacet: AdminFacet,
64
- * } ,
65
- * walletBridgeManager: import('../types.js').ScopedBridgeManager;
66
- * provisionWalletBridgeManager: import('../types.js').ScopedBridgeManager;
67
- * }>} powers
62
+ * @param {BootstrapPowers &
63
+ * ChainStorageVatParams &
64
+ * PromiseSpaceOf<{
65
+ * economicCommitteeCreatorFacet: import('@agoric/governance/src/committee.js').CommitteeElectorateCreatorFacet;
66
+ * econCharterKit: {
67
+ * creatorFacet: Awaited<
68
+ * ReturnType<
69
+ * import('@agoric/inter-protocol/src/econCommitteeCharter.js')['start']
70
+ * >
71
+ * >['creatorFacet'];
72
+ * adminFacet: AdminFacet;
73
+ * };
74
+ * walletBridgeManager: import('../types.js').ScopedBridgeManager<'wallet'>;
75
+ * provisionWalletBridgeManager: import('../types.js').ScopedBridgeManager<'provisionWallet'>;
76
+ * }>} powers
68
77
  * @param {{
69
78
  * options?: {
70
- * perAccountInitialValue?: bigint,
71
- * },
79
+ * perAccountInitialValue?: bigint;
80
+ * };
72
81
  * }} [config]
73
82
  */
74
83
  export const startWalletFactory = async (
@@ -100,6 +109,9 @@ export const startWalletFactory = async (
100
109
  },
101
110
  { options: { perAccountInitialValue = (StableUnit * 25n) / 100n } = {} } = {},
102
111
  ) => {
112
+ // The wallet path is read by the cosmos side to check provisioning
113
+ // See `WalletStoragePathSegment` and `GetSmartWalletState` in
114
+ // golang/cosmos/x/swingset/keeper/keeper.go
103
115
  const WALLET_STORAGE_PATH_SEGMENT = 'wallet';
104
116
  const POOL_STORAGE_PATH_SEGMENT = 'provisionPool';
105
117
  const OLD_WALLET_STORAGE_PATH = 'published.wallet';
@@ -143,10 +155,12 @@ export const startWalletFactory = async (
143
155
  slotToBoardRemote,
144
156
  );
145
157
 
158
+ /** @type {() => any} */
146
159
  const reviveOldMetrics = () => {
147
160
  if (!dataReviver.has(OLD_POOL_METRICS_STORAGE_PATH)) {
148
161
  return undefined;
149
162
  }
163
+ /** @type {any} */
150
164
  const oldPoolMetrics = dataReviver.getItem(OLD_POOL_METRICS_STORAGE_PATH);
151
165
  const newBrandFromOldSlotID = makeMap([
152
166
  [oldPoolMetrics.totalMintedProvided.brand.getBoardId(), feeBrand],
@@ -0,0 +1,538 @@
1
+ // Ambient type defs. Cannot use top-level import() because that would turn it into a module.
2
+
3
+ /** This type conflicts with packages/SwingSet/src/vats/plugin-manager.js */
4
+ type Device<T> = 'Device' & { __deviceType__: T };
5
+
6
+ /** (approximately) */
7
+ type DProxy<T = any> = (target: Device<T>) => T;
8
+
9
+ type BootDevices<T> = { vatPowers: { D: DProxy }; devices: T };
10
+
11
+ type BridgeDevice = Device<
12
+ ReturnType<
13
+ typeof import('@agoric/swingset-vat/src/devices/bridge/device-bridge.js').buildRootDeviceNode
14
+ >
15
+ >;
16
+
17
+ type CommandDevice = Device<
18
+ ReturnType<
19
+ typeof import('@agoric/swingset-vat/src/devices/command/device-command.js').buildRootDeviceNode
20
+ >
21
+ >;
22
+
23
+ type MailboxDevice = Device<
24
+ ReturnType<
25
+ typeof import('@agoric/swingset-vat/src/devices/mailbox/device-mailbox.js').buildRootDeviceNode
26
+ >
27
+ >;
28
+
29
+ type PluginDevice = Device<
30
+ ReturnType<
31
+ typeof import('@agoric/swingset-vat/src/devices/plugin/device-plugin.js').buildRootDeviceNode
32
+ >
33
+ >;
34
+
35
+ type TimerDevice = Device<
36
+ ReturnType<
37
+ typeof import('@agoric/swingset-vat/src/devices/timer/device-timer.js').buildRootDeviceNode
38
+ >
39
+ >;
40
+
41
+ type VatAdminDevice = Device<
42
+ import('@agoric/swingset-vat/src/devices/vat-admin/device-vat-admin.js').VatAdminRootDeviceNode
43
+ >;
44
+
45
+ type VattpVat = ERef<
46
+ ReturnType<
47
+ typeof import('@agoric/swingset-vat/src/vats/vattp/vat-vattp.js').buildRootObject
48
+ >
49
+ >;
50
+
51
+ type VatAdminVat = ERef<
52
+ ReturnType<
53
+ typeof import('@agoric/swingset-vat/src/vats/vat-admin/vat-vat-admin.js').buildRootObject
54
+ >
55
+ >;
56
+
57
+ /** @see deliverToController in packages/SwingSet/src/vats/comms/controller.js */
58
+ type TimerVat = ERef<
59
+ ReturnType<
60
+ typeof import('@agoric/swingset-vat/src/vats/timer/vat-timer.js').buildRootObject
61
+ >
62
+ >;
63
+
64
+ type CommsVatRoot = ERef<{
65
+ addRemote: (name: string, tx: unknown, rx: unknown) => void;
66
+ addEgress: (addr: string, ix: number, provider: unknown) => void;
67
+ addIngress: (
68
+ remoteID: string,
69
+ remoteRefID: number,
70
+ label?: string,
71
+ ) => Promise<any>;
72
+ }>;
73
+
74
+ type SwingsetVats = {
75
+ comms: CommsVatRoot;
76
+ timer: TimerVat;
77
+ vatAdmin: VatAdminVat;
78
+ vattp: VattpVat;
79
+ };
80
+
81
+ type ChainStorageVatParams = {
82
+ vatParameters: { chainStorageEntries?: [k: string, v: string][] };
83
+ };
84
+
85
+ type SoloDevices = {
86
+ vatAdmin: VatAdminDevice;
87
+ mailbox: MailboxDevice;
88
+ command: CommandDevice;
89
+ timer: TimerDevice;
90
+ plugin: PluginDevice;
91
+ };
92
+
93
+ type ChainDevices = {
94
+ vatAdmin: VatAdminDevice;
95
+ mailbox: MailboxDevice;
96
+ timer: TimerDevice;
97
+ bridge?: BridgeDevice;
98
+ };
99
+
100
+ type ClientProvider = {
101
+ getChainBundle: () => unknown;
102
+ getChainConfigNotifier: () => Notifier<unknown>;
103
+ };
104
+
105
+ type Producer<T> = {
106
+ resolve: (v: ERef<T>) => void;
107
+ reject: (r: unknown) => void;
108
+ reset: (reason?: unknown) => void;
109
+ };
110
+
111
+ type VatSourceRef = { bundleName?: string; bundleID?: string };
112
+ type VatLoader<Names extends string = keyof WellKnownVats> = <N extends Names>(
113
+ name: N,
114
+ sourceRef?: VatSourceRef,
115
+ ) => Promise<Awaited<WellKnownVats[N]>>;
116
+
117
+ /** callback to assign a property onto the `home` object of the client */
118
+ type PropertyMaker = (addr: string, flags: string[]) => Record<string, unknown>;
119
+
120
+ /** tool to put properties onto the `home` object of the client */
121
+ type ClientManager = {
122
+ assignBundle: (ps: PropertyMaker[]) => void;
123
+ };
124
+ /**
125
+ * @template B - Bidirectional
126
+ * @template C - Consume only
127
+ * @template P - Produce only
128
+ */
129
+ type PromiseSpaceOf<B, C = {}, P = {}> = {
130
+ consume: { [K in keyof (B & C)]: Promise<(B & C)[K]> };
131
+ produce: { [K in keyof (B & P)]: Producer<(B & P)[K]> };
132
+ };
133
+
134
+ type CreateUserBundle = (
135
+ nickname: string,
136
+ clientAddress: string,
137
+ powerFlags: string[],
138
+ ) => Promise<Record<string, Promise<any>>>;
139
+
140
+ type ClientFacet = {
141
+ /**
142
+ * Required for ag-solo, but deprecated in favour of getConfiguration NOTE: we
143
+ * use `any` rather than `unknown` because each client that wants to call a
144
+ * method such as `E(userBundle.bank).deposit(payment)` has to cast
145
+ * userBundle.bank; ideally, the cast is to some useful type. But unknown
146
+ * can't be cast directly to some other type; it has to be cast to any first.
147
+ */
148
+ getChainBundle(): ERef<Record<string, any>>;
149
+ getConfiguration(): AsyncIterable<{
150
+ clientAddress: string;
151
+ clientHome: Record<string, any>;
152
+ }>;
153
+ };
154
+ type ClientCreator = {
155
+ createClientFacet(
156
+ nickname: string,
157
+ clientAddress: string,
158
+ powerFlags: string[],
159
+ ): Promise<ClientFacet>;
160
+ createUserBundle: CreateUserBundle;
161
+ };
162
+
163
+ type WellKnownName = {
164
+ issuer:
165
+ | import('@agoric/internal/src/tokens.js').TokenKeyword
166
+ | 'Invitation'
167
+ | 'AUSD';
168
+ installation:
169
+ | 'centralSupply'
170
+ | 'mintHolder'
171
+ | 'walletFactory'
172
+ | 'provisionPool'
173
+ | 'auctioneer'
174
+ | 'feeDistributor'
175
+ | 'contractGovernor'
176
+ | 'committee'
177
+ | 'noActionElectorate'
178
+ | 'binaryVoteCounter'
179
+ | 'VaultFactory'
180
+ | 'liquidate'
181
+ | 'Pegasus'
182
+ | 'reserve'
183
+ | 'psm'
184
+ | 'scaledPriceAuthority'
185
+ | 'stakeAtom' // test contract
186
+ | 'stakeBld' // test contract
187
+ | 'econCommitteeCharter'
188
+ | 'priceAggregator';
189
+ instance:
190
+ | 'economicCommittee'
191
+ | 'feeDistributor'
192
+ | 'auctioneer'
193
+ | 'VaultFactory'
194
+ | 'VaultFactoryGovernor'
195
+ | 'econCommitteeCharter'
196
+ | 'walletFactory'
197
+ | 'provisionPool'
198
+ | 'reserve'
199
+ | 'reserveGovernor'
200
+ | 'stakeAtom' // test contract
201
+ | 'stakeBld' // test contract
202
+ | 'Pegasus';
203
+ oracleBrand: 'USD';
204
+ uiConfig: 'VaultFactory';
205
+ };
206
+
207
+ type ContractInstallationPromises<
208
+ StartFns extends Record<WellKnownName['installation'], ContractStartFn>,
209
+ > = {
210
+ [Property in keyof StartFns]: Promise<Installation<StartFns[Property]>>;
211
+ };
212
+
213
+ type ContractInstancePromises<
214
+ StartFns extends Record<WellKnownName['instance'], ContractStartFn>,
215
+ > = {
216
+ [Property in keyof StartFns]: Promise<
217
+ import('@agoric/zoe/src/zoeService/utils.js').Instance<StartFns[Property]>
218
+ >;
219
+ };
220
+
221
+ type WellKnownContracts = {
222
+ auctioneer: typeof import('@agoric/inter-protocol/src/auction/auctioneer.js').start;
223
+ centralSupply: typeof import('@agoric/vats/src/centralSupply.js').start;
224
+ committee: typeof import('@agoric/governance/src/committee.js').start;
225
+ contractGovernor: typeof import('@agoric/governance/src/contractGovernor.js').start;
226
+ econCommitteeCharter: typeof import('@agoric/inter-protocol/src/econCommitteeCharter.js').start;
227
+ feeDistributor: typeof import('@agoric/inter-protocol/src/feeDistributor.js').start;
228
+ mintHolder: typeof import('@agoric/vats/src/mintHolder.js').start;
229
+ psm: typeof import('@agoric/inter-protocol/src/psm/psm.js').start;
230
+ provisionPool: typeof import('@agoric/inter-protocol/src/provisionPool.js').start;
231
+ reserve: typeof import('@agoric/inter-protocol/src/reserve/assetReserve.js').start;
232
+ VaultFactory: typeof import('@agoric/inter-protocol/src/vaultFactory/vaultFactory.js').start;
233
+ // no typeof because walletFactory is exporting `start` as a type
234
+ walletFactory: import('@agoric/smart-wallet/src/walletFactory.js').start;
235
+ };
236
+
237
+ type WellKnownSpaces = {
238
+ issuer: {
239
+ produce: Record<WellKnownName['issuer'], Producer<Issuer>>;
240
+ consume: Record<WellKnownName['issuer'], Promise<Issuer>> & {
241
+ BLD: Promise<Issuer<'nat'>>;
242
+ IST: Promise<Issuer<'nat'>>;
243
+ };
244
+ };
245
+ brand: {
246
+ produce: Record<WellKnownName['issuer'], Producer<Brand>> & {
247
+ timer: Producer<import('@agoric/time').TimerBrand>;
248
+ };
249
+ consume: Record<WellKnownName['issuer'], Promise<Brand>> & {
250
+ BLD: Promise<Brand<'nat'>>;
251
+ IST: Promise<Brand<'nat'>>;
252
+ timer: Producer<import('@agoric/time').TimerBrand>;
253
+ };
254
+ };
255
+ oracleBrand: {
256
+ produce: Record<WellKnownName['oracleBrand'], Producer<Brand>>;
257
+ consume: Record<WellKnownName['oracleBrand'], Promise<Brand>>;
258
+ };
259
+ installation: {
260
+ produce: Record<WellKnownName['installation'], Producer<Installation>>;
261
+ consume: Record<
262
+ WellKnownName['installation'],
263
+ Promise<Installation<unknown>>
264
+ > &
265
+ // @ts-expect-error XXX
266
+ ContractInstallationPromises<WellKnownContracts>;
267
+ };
268
+ instance: {
269
+ produce: Record<WellKnownName['instance'], Producer<Instance>>;
270
+ consume: Record<WellKnownName['instance'], Promise<Instance>> &
271
+ // @ts-expect-error XXX
272
+ ContractInstancePromises<WellKnownContracts>;
273
+ };
274
+ uiConfig: {
275
+ produce: Record<WellKnownName['uiConfig'], Producer<Record<string, any>>>;
276
+ consume: Record<WellKnownName['uiConfig'], Promise<Record<string, any>>>;
277
+ };
278
+ };
279
+
280
+ type StartGovernedUpgradableOpts<SF extends GovernableStartFn> = {
281
+ installation: ERef<Installation<SF>>;
282
+ issuerKeywordRecord?: IssuerKeywordRecord;
283
+ governedParams: Record<string, unknown>;
284
+ terms: Omit<
285
+ import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['terms'],
286
+ 'brands' | 'issuers' | 'governedParams' | 'electionManager'
287
+ >;
288
+ privateArgs: Omit<
289
+ // @ts-expect-error XXX
290
+ import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['privateArgs'],
291
+ 'initialPoserInvitation'
292
+ >;
293
+ label: string;
294
+ };
295
+
296
+ type StartGovernedUpgradable = <SF extends GovernableStartFn>(
297
+ opts: StartGovernedUpgradableOpts<SF>,
298
+ ) => Promise<GovernanceFacetKit<SF>>;
299
+
300
+ type StartUpgradableOpts<
301
+ SF extends import('@agoric/zoe/src/zoeService/utils').ContractStartFunction,
302
+ > = {
303
+ installation: ERef<Installation<SF>>;
304
+ issuerKeywordRecord?: IssuerKeywordRecord;
305
+ terms?: Omit<
306
+ import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['terms'],
307
+ 'brands' | 'issuers'
308
+ >;
309
+ privateArgs?: Parameters<SF>[1];
310
+ label: string;
311
+ };
312
+
313
+ type StartUpgradable = <
314
+ SF extends import('@agoric/zoe/src/zoeService/utils').ContractStartFunction,
315
+ >(
316
+ opts: StartUpgradableOpts<SF>,
317
+ ) => Promise<
318
+ import('@agoric/zoe/src/zoeService/utils').StartedInstanceKit<SF> & {
319
+ label: string;
320
+ }
321
+ >;
322
+
323
+ type StartedInstanceKit<
324
+ T extends import('@agoric/zoe/src/zoeService/utils').ContractStartFunction,
325
+ > = import('@agoric/zoe/src/zoeService/utils').StartedInstanceKit<T>;
326
+
327
+ type StartedInstanceKitWithLabel = {
328
+ label: string;
329
+ } & StartedInstanceKit<
330
+ import('@agoric/zoe/src/zoeService/utils').ContractStartFunction
331
+ >;
332
+
333
+ type ChainBootstrapSpaceT = {
334
+ agoricNames: import('../types.js').NameHub;
335
+ agoricNamesAdmin: import('@agoric/vats').NameAdmin;
336
+ bankManager: BankManager;
337
+ bldIssuerKit: RemoteIssuerKit;
338
+ board: import('@agoric/vats').Board;
339
+ bridgeManager: import('../types.js').BridgeManager | undefined;
340
+ chainStorage: StorageNode | null;
341
+ chainTimerService: import('@agoric/time').TimerService;
342
+ client: ClientManager;
343
+ clientCreator: any;
344
+ coreEvalBridgeHandler: import('../types.js').BridgeHandler;
345
+ /** Utilities to support debugging */
346
+ diagnostics: {
347
+ /**
348
+ * Intended to save arguments in durable storage for disaster recovery.
349
+ *
350
+ * Powerful. Can overwrite privateArgs storage for any instance.
351
+ */
352
+ savePrivateArgs: (instance: Instance, privateArgs: unknown) => void;
353
+ };
354
+ /** Super powerful ability to mint IST. ("License to print money") */
355
+ feeMintAccess: FeeMintAccess;
356
+ highPrioritySendersManager:
357
+ | import('@agoric/internal/src/priority-senders.js').PrioritySendersManager
358
+ | undefined
359
+ | null;
360
+ initialSupply: Payment<'nat'>;
361
+ /**
362
+ * Very powerful. Has the private args for critical contract instances such as
363
+ * Vault Factory. ONLY FOR DISASTER RECOVERY
364
+ */
365
+ instancePrivateArgs: Map<Instance, unknown>;
366
+ localchain: import('@agoric/vats/src/localchain.js').LocalChain;
367
+ mints?: MintsVat;
368
+ namesByAddress: import('../types.js').NameHub;
369
+ namesByAddressAdmin: import('../types.js').NamesByAddressAdmin;
370
+ networkVat: NetworkVat;
371
+ orchestration: import('@agoric/orchestration/src/service.js').OrchestrationService;
372
+ pegasusConnections: import('@agoric/vats').NameHubKit;
373
+ pegasusConnectionsAdmin: import('@agoric/vats').NameAdmin;
374
+ priceAuthorityVat: Awaited<PriceAuthorityVat>;
375
+ priceAuthority: import('@agoric/zoe/tools/types.js').PriceAuthority;
376
+ priceAuthorityAdmin: import('@agoric/vats/src/priceAuthorityRegistry').PriceAuthorityRegistryAdmin;
377
+ provisioning: Awaited<ProvisioningVat> | undefined;
378
+ provisionBridgeManager:
379
+ | import('../types.js').ScopedBridgeManager<'provision'>
380
+ | undefined;
381
+ provisionWalletBridgeManager:
382
+ | import('../types.js').ScopedBridgeManager<'provisionWallet'>
383
+ | undefined;
384
+ storageBridgeManager:
385
+ | import('../types.js').ScopedBridgeManager<'storage'>
386
+ | undefined;
387
+ transferMiddleware: import('../transfer.js').TransferMiddleware;
388
+ /**
389
+ * Convenience function for starting a contract (ungoverned) and saving its
390
+ * facets (including adminFacet)
391
+ */
392
+ startUpgradable: StartUpgradable;
393
+ /** kits stored by startUpgradable */
394
+ contractKits: MapStore<Instance, StartedInstanceKitWithLabel>;
395
+ /** Convenience function for starting contracts governed by the Econ Committee */
396
+ startGovernedUpgradable: StartGovernedUpgradable;
397
+ /** kits stored by startGovernedUpgradable */
398
+ governedContractKits: MapStore<
399
+ Instance,
400
+ GovernanceFacetKit<any> & { label: string }
401
+ >;
402
+ /** Used only for testing. Should not appear in any production proposals. */
403
+ testFirstAnchorKit: import('../vat-bank.js').AssetIssuerKit;
404
+ walletBridgeManager:
405
+ | import('../types.js').ScopedBridgeManager<'wallet'>
406
+ | undefined;
407
+ walletFactoryStartResult: import('./startWalletFactory.js').WalletFactoryStartResult;
408
+ provisionPoolStartResult: GovernanceFacetKit<
409
+ typeof import('@agoric/inter-protocol/src/provisionPool.js').start
410
+ >;
411
+ vatStore: import('./utils.js').VatStore;
412
+ vatUpgradeInfo: MapStore;
413
+ zoe: ZoeService;
414
+ };
415
+
416
+ type ChainBootstrapSpace = PromiseSpaceOf<ChainBootstrapSpaceT>;
417
+
418
+ type BootstrapVatParams = {
419
+ argv: {
420
+ hardcodedClientAddresses?: string[];
421
+ FIXME_GCI: string;
422
+ PROVISIONER_INDEX?: number;
423
+ };
424
+ };
425
+
426
+ type BootstrapPowers = BootstrapSpace & {
427
+ zone: import('@agoric/zone').Zone;
428
+ devices: SoloDevices | ChainDevices;
429
+ vats: SwingsetVats;
430
+ vatPowers: { [prop: string]: any; D: DProxy };
431
+ vatParameters: BootstrapVatParams;
432
+ runBehaviors: (manifest: unknown) => Promise<unknown>;
433
+ modules: import('./boot-chain.js').BootstrapModules;
434
+ };
435
+
436
+ type BootstrapSpace = WellKnownSpaces &
437
+ PromiseSpaceOf<
438
+ ChainBootstrapSpaceT & {
439
+ vatAdminSvc: VatAdminSvc;
440
+ },
441
+ {
442
+ loadVat: VatLoader;
443
+ loadCriticalVat: VatLoader;
444
+ },
445
+ {}
446
+ >;
447
+
448
+ type LocalChainVat = ERef<
449
+ ReturnType<typeof import('../vat-localchain.js').buildRootObject>
450
+ >;
451
+
452
+ type TransferVat = ERef<
453
+ ReturnType<typeof import('../vat-transfer.js').buildRootObject>
454
+ >;
455
+
456
+ type ProvisioningVat = ERef<
457
+ ReturnType<typeof import('../vat-provisioning.js').buildRootObject>
458
+ >;
459
+
460
+ type MintsVat = ERef<
461
+ ReturnType<typeof import('../vat-mints.js').buildRootObject>
462
+ >;
463
+
464
+ type PriceAuthorityVat = ERef<
465
+ ReturnType<typeof import('../vat-priceAuthority.js').buildRootObject>
466
+ >;
467
+
468
+ type NetworkVat = ERef<
469
+ ReturnType<typeof import('../vat-network.js').buildRootObject>
470
+ >;
471
+ type IBCVat = ERef<ReturnType<typeof import('../vat-ibc.js').buildRootObject>>;
472
+ type NamedVatPowers = {
473
+ namedVat: PromiseSpaceOf<{
474
+ agoricNames: Awaited<AgoricNamesVat>;
475
+ board: Awaited<BoardVat>;
476
+ }>;
477
+ };
478
+
479
+ type OrchestrationVat = ERef<import('@agoric/orchestration').OrchestrationVat>;
480
+ type ZoeVat = ERef<import('../vat-zoe.js').ZoeVat>;
481
+
482
+ type RemoteIssuerKit = {
483
+ mint: ERef<Mint>;
484
+ issuer: ERef<Issuer>;
485
+ brand: Brand;
486
+ };
487
+ type AgoricNamesVat = ERef<
488
+ ReturnType<typeof import('../vat-agoricNames.js').buildRootObject>
489
+ >;
490
+ type BankVat = ERef<
491
+ ReturnType<typeof import('../vat-bank.js').buildRootObject>
492
+ >;
493
+ type BoardVat = ERef<
494
+ ReturnType<typeof import('../vat-board.js').buildRootObject>
495
+ >;
496
+ type ChainStorageVat = ERef<
497
+ ReturnType<typeof import('../vat-bridge.js').buildRootObject>
498
+ >;
499
+ type BankManager = Awaited<ReturnType<Awaited<BankVat>['makeBankManager']>>;
500
+
501
+ type DemoFaucetPowers = PromiseSpaceOf<{
502
+ mints: MintsVat;
503
+ }>;
504
+
505
+ type SoloVats = {
506
+ spawner: SpawnerVat;
507
+ http: HttpVat;
508
+ network: NetworkVat;
509
+ uploads: UploadsVat;
510
+ bootstrap: unknown;
511
+ };
512
+
513
+ type SpawnerVat = ERef<
514
+ ReturnType<typeof import('@agoric/solo/src/vat-spawner.js').buildRootObject>
515
+ >;
516
+
517
+ type HttpVat = ERef<
518
+ ReturnType<typeof import('@agoric/solo/src/vat-http.js').buildRootObject>
519
+ >;
520
+
521
+ type UploadsVat = ERef<
522
+ ReturnType<typeof import('@agoric/solo/src/vat-uploads.js').buildRootObject>
523
+ >;
524
+
525
+ type WellKnownVats = SwingsetVats & {
526
+ bank: BankVat;
527
+ board: BoardVat;
528
+ bridge: ChainStorageVat;
529
+ ibc: IBCVat;
530
+ localchain: LocalChainVat;
531
+ mints: MintsVat;
532
+ network: NetworkVat;
533
+ orchestration: OrchestrationVat;
534
+ priceAuthority: PriceAuthorityVat;
535
+ provisioning: ProvisioningVat;
536
+ transfer: TransferVat;
537
+ zoe: ZoeVat;
538
+ };
@@ -0,0 +1 @@
1
+ // Dummy file for .d.ts twin to declare ambients