@agoric/orchestration 0.1.1-dev-fd6c64a.0 → 0.1.1-dev-69f57d5.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 (61) hide show
  1. package/package.json +16 -16
  2. package/src/cctp-chain-info.d.ts +65 -0
  3. package/src/cctp-chain-info.d.ts.map +1 -0
  4. package/src/cctp-chain-info.js +52 -0
  5. package/src/chain-capabilities.d.ts +4 -1
  6. package/src/chain-capabilities.d.ts.map +1 -1
  7. package/src/chain-capabilities.js +1 -1
  8. package/src/chain-info.d.ts +562 -55
  9. package/src/chain-info.d.ts.map +1 -1
  10. package/src/chain-info.js +21 -5
  11. package/src/cosmos-api.d.ts +17 -6
  12. package/src/cosmos-api.d.ts.map +1 -1
  13. package/src/cosmos-api.ts +16 -8
  14. package/src/ethereum-api.d.ts +6 -5
  15. package/src/ethereum-api.d.ts.map +1 -1
  16. package/src/ethereum-api.ts +7 -5
  17. package/src/examples/auto-stake-it-tap-kit.d.ts +1 -1
  18. package/src/examples/auto-stake-it-tap-kit.d.ts.map +1 -1
  19. package/src/examples/auto-stake-it-tap-kit.js +1 -1
  20. package/src/examples/auto-stake-it.contract.d.ts +3 -22
  21. package/src/examples/auto-stake-it.contract.d.ts.map +1 -1
  22. package/src/examples/basic-flows.contract.d.ts +2 -11
  23. package/src/examples/basic-flows.contract.d.ts.map +1 -1
  24. package/src/examples/send-anywhere.contract.d.ts +3 -23
  25. package/src/examples/send-anywhere.contract.d.ts.map +1 -1
  26. package/src/examples/staking-combinations.contract.d.ts +1 -11
  27. package/src/examples/staking-combinations.contract.d.ts.map +1 -1
  28. package/src/examples/swap.contract.d.ts +2 -11
  29. package/src/examples/swap.contract.d.ts.map +1 -1
  30. package/src/examples/swap.contract.js +2 -2
  31. package/src/exos/chain-hub-admin.d.ts +7 -7
  32. package/src/exos/chain-hub-admin.d.ts.map +1 -1
  33. package/src/exos/chain-hub-admin.js +13 -11
  34. package/src/exos/chain-hub.d.ts +13 -10
  35. package/src/exos/chain-hub.d.ts.map +1 -1
  36. package/src/exos/chain-hub.js +65 -32
  37. package/src/exos/local-chain-facade.d.ts +3 -23
  38. package/src/exos/local-chain-facade.d.ts.map +1 -1
  39. package/src/exos/orchestrator.d.ts +2 -12
  40. package/src/exos/orchestrator.d.ts.map +1 -1
  41. package/src/exos/orchestrator.js +2 -7
  42. package/src/exos/remote-chain-facade.d.ts +4 -14
  43. package/src/exos/remote-chain-facade.d.ts.map +1 -1
  44. package/src/exos/remote-chain-facade.js +21 -8
  45. package/src/fetched-chain-info.d.ts +676 -86
  46. package/src/fetched-chain-info.js +553 -41
  47. package/src/orchestration-api.d.ts +30 -5
  48. package/src/orchestration-api.d.ts.map +1 -1
  49. package/src/orchestration-api.ts +33 -7
  50. package/src/typeGuards.d.ts +4 -1
  51. package/src/typeGuards.d.ts.map +1 -1
  52. package/src/typeGuards.js +25 -6
  53. package/src/types.d.ts +0 -1
  54. package/src/types.d.ts.map +1 -1
  55. package/src/types.ts +0 -1
  56. package/src/utils/registry.d.ts +2 -12
  57. package/src/utils/registry.d.ts.map +1 -1
  58. package/src/utils/registry.js +4 -2
  59. package/src/utils/start-helper.d.ts +12 -3
  60. package/src/utils/start-helper.d.ts.map +1 -1
  61. package/src/utils/start-helper.js +13 -2
@@ -8,7 +8,7 @@ import type { Timestamp } from '@agoric/time';
8
8
  import type { QueryManyFn } from '@agoric/vats/src/localchain.js';
9
9
  import type { ResolvedPublicTopic } from '@agoric/zoe/src/contractSupport/topics.js';
10
10
  import type { Passable } from '@endo/marshal';
11
- import type { AgoricChainMethods, ChainInfo, CosmosChainAccountMethods, CosmosChainInfo, IBCMsgTransferOptions, KnownChains, LocalAccountMethods, ICQQueryFunction } from './types.js';
11
+ import type { AgoricChainMethods, CosmosChainAccountMethods, CosmosChainInfo, IBCMsgTransferOptions, KnownChains, LocalAccountMethods, ICQQueryFunction, KnownNamespace } from './types.js';
12
12
  import type { ResolvedContinuingOfferResult } from './utils/zoe-tools.js';
13
13
  /**
14
14
  * A denom that designates a path to a token type on some blockchain.
@@ -68,6 +68,25 @@ export type CosmosChainAddress = {
68
68
  value: string;
69
69
  encoding: 'bech32' | 'ethereum';
70
70
  };
71
+ /**
72
+ * Info used to identify blockchains across ecosystems
73
+ * @see {@link https://chainagnostic.org/CAIPs/caip-2}
74
+ */
75
+ export interface BaseChainInfo<N extends KnownNamespace = KnownNamespace> {
76
+ /** CAIP-2 namespace, e.g. 'cosmos', 'eip155' */
77
+ namespace: N;
78
+ /** CAIP-2 reference, `e.g. `1`, `agoric-3` */
79
+ reference: N extends 'eip155' ? `${number}` : string;
80
+ /**
81
+ * Circle CCTP Destination Domain
82
+ * @see {@link https://developers.circle.com/stablecoins/supported-domains}
83
+ */
84
+ cctpDestinationDomain?: number;
85
+ }
86
+ /**
87
+ * Shape that `ChainHub` is expecting
88
+ */
89
+ export type ChainInfo = Readonly<BaseChainInfo | CosmosChainInfo>;
71
90
  /**
72
91
  * A value that can be converted mechanically to an AccountId.
73
92
  * @see {@link ChainHub.resolveAccountId}
@@ -78,23 +97,29 @@ export type AccountIdArg = AccountId | CosmosChainAddress;
78
97
  *
79
98
  * The methods available depend on the chain and its capabilities.
80
99
  */
81
- export type OrchestrationAccount<CI extends ChainInfo> = OrchestrationAccountCommon & (CI extends CosmosChainInfo ? CI['chainId'] extends `agoric${string}` ? LocalAccountMethods : CosmosChainAccountMethods<CI> : object);
100
+ export type OrchestrationAccount<CI extends Partial<ChainInfo>> = OrchestrationAccountCommon & (CI extends {
101
+ chainId: string;
102
+ } ? CI['chainId'] extends `agoric${string}` ? LocalAccountMethods : CosmosChainAccountMethods<CI> : object);
82
103
  /**
83
104
  * An object for access the core functions of a remote chain.
84
105
  *
85
106
  * Note that "remote" can mean the local chain; it's just that
86
107
  * accounts are treated as remote/arms length for consistency.
87
108
  */
88
- export interface Chain<CI extends ChainInfo> {
109
+ export interface Chain<CI extends Partial<ChainInfo>> {
89
110
  getChainInfo: () => Promise<CI>;
90
111
  /**
91
112
  * Creates a new Orchestration Account on the current Chain.
92
113
  * @returns an object that controls the account
93
114
  */
94
- makeAccount: () => Promise<OrchestrationAccount<CI>>;
115
+ makeAccount: () => CI extends {
116
+ chainId: string;
117
+ } ? Promise<OrchestrationAccount<CI>> : never;
95
118
  query: CI extends {
96
119
  icqEnabled: true;
97
- } ? ICQQueryFunction : CI['chainId'] extends `agoric${string}` ? QueryManyFn : never;
120
+ } ? ICQQueryFunction : CI extends {
121
+ chainId: string;
122
+ } ? CI['chainId'] extends `agoric${string}` ? QueryManyFn : never : never;
98
123
  }
99
124
  /**
100
125
  * Used with `orch.getDenomInfo('ibc/1234')`. See {@link Orchestrator.getDenomInfo}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration-api.d.ts","sourceRoot":"","sources":["orchestration-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestration-api.d.ts","sourceRoot":"","sources":["orchestration-api.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,13 @@ import type { ResolvedPublicTopic } from '@agoric/zoe/src/contractSupport/topics
11
11
  import type { Passable } from '@endo/marshal';
12
12
  import type {
13
13
  AgoricChainMethods,
14
- ChainInfo,
15
14
  CosmosChainAccountMethods,
16
15
  CosmosChainInfo,
17
16
  IBCMsgTransferOptions,
18
17
  KnownChains,
19
18
  LocalAccountMethods,
20
19
  ICQQueryFunction,
20
+ KnownNamespace,
21
21
  } from './types.js';
22
22
  import type { ResolvedContinuingOfferResult } from './utils/zoe-tools.js';
23
23
 
@@ -88,6 +88,27 @@ export type CosmosChainAddress = {
88
88
  encoding: 'bech32' | 'ethereum';
89
89
  };
90
90
 
91
+ /**
92
+ * Info used to identify blockchains across ecosystems
93
+ * @see {@link https://chainagnostic.org/CAIPs/caip-2}
94
+ */
95
+ export interface BaseChainInfo<N extends KnownNamespace = KnownNamespace> {
96
+ /** CAIP-2 namespace, e.g. 'cosmos', 'eip155' */
97
+ namespace: N;
98
+ /** CAIP-2 reference, `e.g. `1`, `agoric-3` */
99
+ reference: N extends 'eip155' ? `${number}` : string;
100
+ /**
101
+ * Circle CCTP Destination Domain
102
+ * @see {@link https://developers.circle.com/stablecoins/supported-domains}
103
+ */
104
+ cctpDestinationDomain?: number;
105
+ }
106
+
107
+ /**
108
+ * Shape that `ChainHub` is expecting
109
+ */
110
+ export type ChainInfo = Readonly<BaseChainInfo | CosmosChainInfo>;
111
+
91
112
  /**
92
113
  * A value that can be converted mechanically to an AccountId.
93
114
  * @see {@link ChainHub.resolveAccountId}
@@ -99,9 +120,9 @@ export type AccountIdArg = AccountId | CosmosChainAddress;
99
120
  *
100
121
  * The methods available depend on the chain and its capabilities.
101
122
  */
102
- export type OrchestrationAccount<CI extends ChainInfo> =
123
+ export type OrchestrationAccount<CI extends Partial<ChainInfo>> =
103
124
  OrchestrationAccountCommon &
104
- (CI extends CosmosChainInfo
125
+ (CI extends { chainId: string }
105
126
  ? CI['chainId'] extends `agoric${string}`
106
127
  ? LocalAccountMethods
107
128
  : CosmosChainAccountMethods<CI>
@@ -113,21 +134,26 @@ export type OrchestrationAccount<CI extends ChainInfo> =
113
134
  * Note that "remote" can mean the local chain; it's just that
114
135
  * accounts are treated as remote/arms length for consistency.
115
136
  */
116
- export interface Chain<CI extends ChainInfo> {
137
+ export interface Chain<CI extends Partial<ChainInfo>> {
117
138
  getChainInfo: () => Promise<CI>;
118
139
 
119
140
  // "makeAccount" suggests an operation within a vat
141
+ // TODO: scope to { icaEnabled: true }. Currently, only scoped to `namespace: 'cosmos'` chains
120
142
  /**
121
143
  * Creates a new Orchestration Account on the current Chain.
122
144
  * @returns an object that controls the account
123
145
  */
124
- makeAccount: () => Promise<OrchestrationAccount<CI>>;
146
+ makeAccount: () => CI extends { chainId: string }
147
+ ? Promise<OrchestrationAccount<CI>>
148
+ : never;
125
149
  // FUTURE supply optional port object; also fetch port object
126
150
 
127
151
  query: CI extends { icqEnabled: true }
128
152
  ? ICQQueryFunction
129
- : CI['chainId'] extends `agoric${string}`
130
- ? QueryManyFn
153
+ : CI extends { chainId: string }
154
+ ? CI['chainId'] extends `agoric${string}`
155
+ ? QueryManyFn
156
+ : never
131
157
  : never;
132
158
 
133
159
  // TODO provide a way to get the local denom/brand/whatever for this chain
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @import {TypedPattern} from '@agoric/internal';
3
- * @import {CosmosAssetInfo, ChainInfo, CosmosChainInfo, DenomAmount, DenomInfo, AmountArg, CosmosValidatorAddress, OrchestrationPowers, ForwardInfo, IBCMsgTransferOptions, AccountIdArg} from './types.js';
3
+ * @import {CosmosAssetInfo, CosmosChainInfo, DenomAmount, DenomInfo, AmountArg, CosmosValidatorAddress, OrchestrationPowers, ForwardInfo, IBCMsgTransferOptions, AccountIdArg, BaseChainInfo, ChainInfo} from './types.js';
4
4
  * @import {Any as Proto3Msg} from '@agoric/cosmic-proto/google/protobuf/any.js';
5
5
  * @import {TxBody} from '@agoric/cosmic-proto/cosmos/tx/v1beta1/tx.js';
6
6
  * @import {Coin} from '@agoric/cosmic-proto/cosmos/base/v1beta1/coin.js';
@@ -40,6 +40,8 @@ export const IBCConnectionIDShape: import("@endo/patterns").Matcher;
40
40
  export const IBCConnectionInfoShape: import("@endo/patterns").Matcher;
41
41
  /** @type {TypedPattern<CosmosAssetInfo>} */
42
42
  export const CosmosAssetInfoShape: TypedPattern<CosmosAssetInfo>;
43
+ /** @type {TypedPattern<BaseChainInfo>} */
44
+ export const BaseChainInfoShape: TypedPattern<BaseChainInfo>;
43
45
  /** @type {TypedPattern<CosmosChainInfo>} */
44
46
  export const CosmosChainInfoShape: TypedPattern<CosmosChainInfo>;
45
47
  /** @type {TypedPattern<ChainInfo>} */
@@ -109,6 +111,7 @@ import type { AccountIdArg } from './types.js';
109
111
  import type { TypedPattern } from '@agoric/internal';
110
112
  import type { Any as Proto3Msg } from '@agoric/cosmic-proto/google/protobuf/any.js';
111
113
  import type { CosmosAssetInfo } from './types.js';
114
+ import type { BaseChainInfo } from './types.js';
112
115
  import type { CosmosChainInfo } from './types.js';
113
116
  import type { ChainInfo } from './types.js';
114
117
  import type { Coin } from '@agoric/cosmic-proto/cosmos/base/v1beta1/coin.js';
@@ -1 +1 @@
1
- {"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH;;;GAQE;;;;;;;AAcF;;;;GAIG;AACH,8BAFU,aAAa,YAAY,CAAC,CAEqC;AAEzE,sCAAsC;AACtC,0BADW,aAAa,SAAS,CAAC,CACoC;AAGtE,gBAAgB;AAChB,iEAA4C;AAE5C,gBAAgB;AAChB,mEAQG;AAEH,gBAAgB;AAChB,oEAA+C;AAE/C,gBAAgB;AAChB,sEASG;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CASrC;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CAatC;AAEF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CAG/B;AACH,0DAAqC;AAErC,iCAAiC;AACjC,wBADW,aAAa,IAAI,CAAC,CAK3B;AAGF,gDAAgD;AAChD,6BADW,aAAa,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAM1C;AAGF,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CAIlC;AAGF,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CACkC;AAGtE,0CAA0C;AAC1C,gCADW,aAAa,MAAM,CAAC,KAAK,CAAC,CAAC,CAIpC;AAGF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CACsC;AAExE;;;;;GAKG;AACH,8BALU,aAAa;IAClB,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC,CAQH;AAEF,sCAAsC;AACtC,2DAGE;AAEF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CACmC;;;;;;;;;AAmBrE;;;;GAIG;AACH,+DAQE;AAEF;;;GAGG;AACH,mEAGE;AAEF,gDAAgD;AAChD,uCADW,aAAa,mBAAmB,CAAC,CAO1C;AAYF,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CAWlC;AAGF;;;;GAIG;AACH,+BAFU,aAAa,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAU1D;AAEF;;;GAGG;AACH,sCAHU,aAAa,qBAAqB,CAAC,CAc3C;kCAhR8L,YAAY;kCAD7K,kBAAkB;sCAEd,6CAA6C;qCADgH,YAAY;qCAAZ,YAAY;+BAAZ,YAAY;0BAGrL,kDAAkD;+BAHuH,YAAY;iCAK9K,qBAAqB;iCAL6I,YAAY;+BAAZ,YAAY;4CAAZ,YAAY;+BAIhL,sBAAsB;yCAJ8I,YAAY;iCAAZ,YAAY;2CAAZ,YAAY"}
1
+ {"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH;;;GAQE;;;;;;;AAcF;;;;GAIG;AACH,8BAFU,aAAa,YAAY,CAAC,CAEqC;AAEzE,sCAAsC;AACtC,0BADW,aAAa,SAAS,CAAC,CACoC;AAGtE,gBAAgB;AAChB,iEAA4C;AAE5C,gBAAgB;AAChB,mEAQG;AAEH,gBAAgB;AAChB,oEAA+C;AAE/C,gBAAgB;AAChB,sEASG;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CASrC;AAWH,0CAA0C;AAC1C,iCADW,aAAa,aAAa,CAAC,CAIpC;AAGF,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CAetC;AAGF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CAC2C;AAG7E,0DAAqC;AAErC,iCAAiC;AACjC,wBADW,aAAa,IAAI,CAAC,CAK3B;AAGF,gDAAgD;AAChD,6BADW,aAAa,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAM1C;AAGF,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CAIlC;AAGF,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CACkC;AAGtE,0CAA0C;AAC1C,gCADW,aAAa,MAAM,CAAC,KAAK,CAAC,CAAC,CAIpC;AAGF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CACsC;AAExE;;;;;GAKG;AACH,8BALU,aAAa;IAClB,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC,CAQH;AAEF,sCAAsC;AACtC,2DAGE;AAEF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CACmC;;;;;;;;;AAmBrE;;;;GAIG;AACH,+DAQE;AAEF;;;GAGG;AACH,mEAGE;AAEF,gDAAgD;AAChD,uCADW,aAAa,mBAAmB,CAAC,CAO1C;AAYF,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CAWlC;AAGF;;;;GAIG;AACH,+BAFU,aAAa,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAU1D;AAEF;;;GAGG;AACH,sCAHU,aAAa,qBAAqB,CAAC,CAc3C;kCAnS6M,YAAY;kCAD5L,kBAAkB;sCAEd,6CAA6C;qCAD+H,YAAY;mCAAZ,YAAY;qCAAZ,YAAY;+BAAZ,YAAY;0BAGpM,kDAAkD;+BAHsI,YAAY;iCAK7L,qBAAqB;iCAL4J,YAAY;+BAAZ,YAAY;4CAAZ,YAAY;+BAI/L,sBAAsB;yCAJ6J,YAAY;iCAAZ,YAAY;2CAAZ,YAAY"}
package/src/typeGuards.js CHANGED
@@ -4,7 +4,7 @@ import { M } from '@endo/patterns';
4
4
 
5
5
  /**
6
6
  * @import {TypedPattern} from '@agoric/internal';
7
- * @import {CosmosAssetInfo, ChainInfo, CosmosChainInfo, DenomAmount, DenomInfo, AmountArg, CosmosValidatorAddress, OrchestrationPowers, ForwardInfo, IBCMsgTransferOptions, AccountIdArg} from './types.js';
7
+ * @import {CosmosAssetInfo, CosmosChainInfo, DenomAmount, DenomInfo, AmountArg, CosmosValidatorAddress, OrchestrationPowers, ForwardInfo, IBCMsgTransferOptions, AccountIdArg, BaseChainInfo, ChainInfo} from './types.js';
8
8
  * @import {Any as Proto3Msg} from '@agoric/cosmic-proto/google/protobuf/any.js';
9
9
  * @import {TxBody} from '@agoric/cosmic-proto/cosmos/tx/v1beta1/tx.js';
10
10
  * @import {Coin} from '@agoric/cosmic-proto/cosmos/base/v1beta1/coin.js';
@@ -90,25 +90,44 @@ export const CosmosAssetInfoShape = M.splitRecord({
90
90
  ),
91
91
  });
92
92
 
93
+ const ChainInfoRequiredShape = {
94
+ namespace: M.string(),
95
+ reference: M.string(),
96
+ };
97
+
98
+ const ChainInfoOptionalShape = {
99
+ cctpDestinationDomain: M.number(),
100
+ };
101
+
102
+ /** @type {TypedPattern<BaseChainInfo>} */
103
+ export const BaseChainInfoShape = M.splitRecord(
104
+ ChainInfoRequiredShape,
105
+ ChainInfoOptionalShape,
106
+ );
107
+ harden(BaseChainInfoShape);
108
+
93
109
  /** @type {TypedPattern<CosmosChainInfo>} */
94
110
  export const CosmosChainInfoShape = M.splitRecord(
95
111
  {
96
112
  chainId: M.string(),
113
+ bech32Prefix: M.string(),
114
+ ...ChainInfoRequiredShape,
97
115
  },
98
116
  {
99
- bech32Prefix: M.string(),
100
117
  connections: M.record(),
101
- stakingTokens: M.arrayOf({ denom: M.string() }),
102
118
  // UNTIL https://github.com/Agoric/agoric-sdk/issues/9326
103
119
  icqEnabled: M.boolean(),
104
120
  pfmEnabled: M.boolean(),
121
+ stakingTokens: M.arrayOf({ denom: M.string() }),
122
+ ...ChainInfoOptionalShape,
105
123
  },
106
124
  );
125
+ harden(CosmosChainInfoShape);
107
126
 
108
127
  /** @type {TypedPattern<ChainInfo>} */
109
- export const ChainInfoShape = M.splitRecord({
110
- chainId: M.string(),
111
- });
128
+ export const ChainInfoShape = M.or(CosmosChainInfoShape, BaseChainInfoShape);
129
+ harden(ChainInfoShape);
130
+
112
131
  export const DenomShape = M.string();
113
132
 
114
133
  /** @type {TypedPattern<Coin>} */
package/src/types.d.ts CHANGED
@@ -2,7 +2,6 @@
2
2
  import type { ZCF } from '@agoric/zoe';
3
3
  export type * from './chain-info.js';
4
4
  export type * from './cosmos-api.js';
5
- export type * from './ethereum-api.js';
6
5
  export type * from './exos/chain-hub.js';
7
6
  export type * from './exos/combine-invitation-makers.js';
8
7
  export type * from './exos/cosmos-interchain-service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,qCAAqC,CAAC;AACzD,mBAAmB,qCAAqC,CAAC;AACzD,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,yBAAyB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mBAAmB,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAChD,eAAe,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,qCAAqC,CAAC;AACzD,mBAAmB,qCAAqC,CAAC;AACzD,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,yBAAyB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mBAAmB,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAChD,eAAe,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACvC"}
package/src/types.ts CHANGED
@@ -4,7 +4,6 @@ import type { ZCF } from '@agoric/zoe';
4
4
 
5
5
  export type * from './chain-info.js';
6
6
  export type * from './cosmos-api.js';
7
- export type * from './ethereum-api.js';
8
7
  export type * from './exos/chain-hub.js';
9
8
  export type * from './exos/combine-invitation-makers.js';
10
9
  export type * from './exos/cosmos-interchain-service.js';
@@ -1,16 +1,6 @@
1
1
  export function convertChainInfo(registry: Pick<ChainRegistryClient, "chains" | "ibcData">): Promise<{
2
- [k: string]: Readonly<{
3
- bech32Prefix?: string;
4
- chainId: string;
5
- connections?: Record<string, IBCConnectionInfo>;
6
- icqEnabled?: boolean;
7
- pfmEnabled?: boolean;
8
- stakingTokens?: Readonly<Array<{
9
- denom: string;
10
- }>>;
11
- icaEnabled?: boolean;
12
- }>;
2
+ [k: string]: CosmosChainInfo;
13
3
  }>;
14
4
  import type { ChainRegistryClient } from '@chain-registry/client';
15
- import type { IBCConnectionInfo } from '../cosmos-api.js';
5
+ import type { CosmosChainInfo } from '../cosmos-api.js';
16
6
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["registry.js"],"names":[],"mappings":"AAqFO,2CAFI,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,SAAS,CAAC;;;;;;;;;;;;GA8CzD;yCAvHqC,wBAAwB;uCACT,kBAAkB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["registry.js"],"names":[],"mappings":"AAqFO,2CAFI,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,SAAS,CAAC;;GAgDzD;yCAzHqC,wBAAwB;qCACT,kBAAkB"}
@@ -79,7 +79,7 @@ function toConnectionEntry(ibcInfo, name, chainInfo) {
79
79
  }
80
80
 
81
81
  /**
82
- * Converts the given chain info to our local config format
82
+ * Converts the given cosmos chain info to our local config format
83
83
  *
84
84
  * @param {Pick<ChainRegistryClient, 'chains' | 'ibcData'>} registry
85
85
  */
@@ -92,9 +92,11 @@ export const convertChainInfo = async registry => {
92
92
  chainInfo[chain.chain_name] = {
93
93
  bech32Prefix: chain.bech32_prefix,
94
94
  chainId: chain.chain_id,
95
- stakingTokens: chain.staking?.staking_tokens,
96
95
  // UNTIL https://github.com/Agoric/agoric-sdk/issues/9326
97
96
  icqEnabled: chain.chain_name === 'osmosis',
97
+ namespace: 'cosmos',
98
+ reference: chain.chain_id,
99
+ stakingTokens: chain.staking?.staking_tokens,
98
100
  };
99
101
  }
100
102
 
@@ -1,4 +1,6 @@
1
- export function provideOrchestration(zcf: ZCF, baggage: Baggage, remotePowers: OrchestrationPowers, marshaller: Marshaller): {
1
+ export function provideOrchestration(zcf: ZCF, baggage: Baggage, remotePowers: OrchestrationPowers, marshaller: Marshaller, opts?: {
2
+ chainInfoValueShape?: WithOrchestrationOpts["chainInfoValueShape"];
3
+ }): {
2
4
  makeOrchestrateKit: (zone: Zone) => {
3
5
  orchestrate: <HC, GF extends import("../orchestration-api.js").OrchestrationFlow<import("@agoric/async-flow").GuestInterface<HC>>>(durableName: string, hostCtx: HC, guestFn: GF) => HostForGuest<GF>;
4
6
  orchestrateAll: <HC extends Record<string, any>, GFM extends {
@@ -7,8 +9,8 @@ export function provideOrchestration(zcf: ZCF, baggage: Baggage, remotePowers: O
7
9
  };
8
10
  baggage: Baggage;
9
11
  chainHub: import("@endo/exo").Guarded<{
10
- registerChain(name: string, chainInfo: import("../cosmos-api.js").CosmosChainInfo): void;
11
- updateChain(chainName: string, chainInfo: import("../cosmos-api.js").CosmosChainInfo): void;
12
+ registerChain(name: string, chainInfo: import("../orchestration-api.js").ChainInfo): void;
13
+ updateChain(chainName: string, chainInfo: import("../orchestration-api.js").ChainInfo): void;
12
14
  getChainInfo<K extends string>(chainName: K): import("@agoric/vow").Vow<ActualChainInfo<K>>;
13
15
  registerConnection(primaryChainId: string, counterpartyChainId: string, connectionInfo: import("../cosmos-api.js").IBCConnectionInfo): void;
14
16
  updateConnection(primaryChainId: string, counterpartyChainId: string, connectionInfo: import("../cosmos-api.js").IBCConnectionInfo): void;
@@ -88,6 +90,12 @@ export type WithOrchestrationOpts = {
88
90
  * published to vstorage
89
91
  */
90
92
  publishAccountInfo?: boolean | undefined;
93
+ /**
94
+ * - Overrides the default valueShape
95
+ * for ChainHub's `chainInfos: MapStore`. Intended to support a legacy version
96
+ * of ChainHub for FastUSDC.
97
+ */
98
+ chainInfoValueShape?: Pattern;
91
99
  };
92
100
  export type OrchestrationTools = Omit<ReturnType<typeof provideOrchestration>, "zone">;
93
101
  import type { Baggage } from '@agoric/vat-data';
@@ -97,4 +105,5 @@ import type { Remote } from '@agoric/vow';
97
105
  import type { CosmosInterchainService } from '../exos/exo-interfaces.js';
98
106
  import type { TimerService } from '@agoric/time';
99
107
  import type { NameHub } from '@agoric/vats';
108
+ import type { Pattern } from '@endo/patterns';
100
109
  //# sourceMappingURL=start-helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start-helper.d.ts","sourceRoot":"","sources":["start-helper.js"],"names":[],"mappings":"AAqDO,0CANI,GAAG,WACH,OAAO,gBACP,mBAAmB,cACnB,UAAU;+BAiGR,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA1CD,CAAC;;;;;;;;;;;;;;;;;;;;;sBAuHykY,CAAC;;;;;;;;;;;;;;;;;;;;EA5C1lY;AA+BM,kCAfgC,EAAE,SAA3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,EAGhC,EAAE,SAFM,mBAAmB,GAAG;IAC/B,UAAU,EAAE,UAAU,CAAC;CACvB,EACQ,CAAC,cACH,CACN,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EACZ,WAAW,EAAE,EAAE,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,kBAAkB,KACtB,OAAO,CAAC,CAAC,CAAC,SACP,qBAAqB,GACnB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAczE;kCArMU;IACR,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC;IAC/B,oBAAoB,EAAE,OAAO,uBAAuB,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,OAAO,CAAC,CAAC;CAC9B;;;;;;;;;iCAwJU,IAAI,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,EAAE,MAAM,CAAC;6BAtKzC,kBAAkB;0BAGrB,cAAc;gCALR,gCAAgC;4BAIpC,aAAa;6CAEI,2BAA2B;kCALtC,cAAc;6BAEnB,cAAc"}
1
+ {"version":3,"file":"start-helper.d.ts","sourceRoot":"","sources":["start-helper.js"],"names":[],"mappings":"AA2DO,0CARI,GAAG,WACH,OAAO,gBACP,mBAAmB,cACnB,UAAU,SAElB;IAA4D,mBAAmB,GAAvE,qBAAqB,CAAC,qBAAqB,CAAC;CACpD;+BAmGU,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA5DX,CAAC;;;;;;;;;;;;;;;;;;;;;sBA2IqlX,CAAC;;;;;;;;;;;;;;;;;;;;EA9C5lX;AA+BM,kCAfgC,EAAE,SAA3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,EAGhC,EAAE,SAFM,mBAAmB,GAAG;IAC/B,UAAU,EAAE,UAAU,CAAC;CACvB,EACQ,CAAC,cACH,CACN,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EACZ,WAAW,EAAE,EAAE,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,kBAAkB,KACtB,OAAO,CAAC,CAAC,CAAC,SACP,qBAAqB,GACnB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAgBzE;kCA/MU;IACR,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC;IAC/B,oBAAoB,EAAE,OAAO,uBAAuB,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,OAAO,CAAC,CAAC;CAC9B;;;;;;;;;;;;;0BAQU,OAAO;;iCAwJP,IAAI,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,EAAE,MAAM,CAAC;6BA/KzC,kBAAkB;0BAGrB,cAAc;gCALR,gCAAgC;4BAIpC,aAAa;6CAGI,2BAA2B;kCANtC,cAAc;6BAEnB,cAAc;6BAGd,gBAAgB"}
@@ -19,6 +19,7 @@ import { makeZcfTools } from './zcf-tools.js';
19
19
  * @import {NameHub} from '@agoric/vats';
20
20
  * @import {Remote} from '@agoric/vow';
21
21
  * @import {Zone} from '@agoric/zone';
22
+ * @import {Pattern} from '@endo/patterns';
22
23
  * @import {CosmosInterchainService} from '../exos/exo-interfaces.js';
23
24
  */
24
25
 
@@ -37,6 +38,9 @@ import { makeZcfTools } from './zcf-tools.js';
37
38
  * @property {boolean} [publishAccountInfo] - Controls whether account
38
39
  * information (address, channel identifiers for ICAs) should be automatically
39
40
  * published to vstorage
41
+ * @property {Pattern} [chainInfoValueShape] - Overrides the default valueShape
42
+ * for ChainHub's `chainInfos: MapStore`. Intended to support a legacy version
43
+ * of ChainHub for FastUSDC.
40
44
  */
41
45
 
42
46
  /**
@@ -49,6 +53,8 @@ import { makeZcfTools } from './zcf-tools.js';
49
53
  * @param {Baggage} baggage
50
54
  * @param {OrchestrationPowers} remotePowers
51
55
  * @param {Marshaller} marshaller
56
+ * @param {object} [opts]
57
+ * @param {WithOrchestrationOpts['chainInfoValueShape']} [opts.chainInfoValueShape]
52
58
  * @internal
53
59
  */
54
60
  export const provideOrchestration = (
@@ -56,6 +62,7 @@ export const provideOrchestration = (
56
62
  baggage,
57
63
  remotePowers,
58
64
  marshaller,
65
+ opts = {},
59
66
  ) => {
60
67
  // separate zones
61
68
  const zones = (() => {
@@ -78,7 +85,9 @@ export const provideOrchestration = (
78
85
 
79
86
  const vowTools = prepareVowTools(zones.vows);
80
87
 
81
- const chainHub = makeChainHub(zones.chainHub, agoricNames, vowTools);
88
+ const chainHub = makeChainHub(zones.chainHub, agoricNames, vowTools, {
89
+ chainInfoValueShape: opts.chainInfoValueShape,
90
+ });
82
91
 
83
92
  const zoeTools = makeZoeTools(zcf, vowTools);
84
93
 
@@ -213,11 +222,13 @@ export const withOrchestration =
213
222
  (contractFn, opts) => async (zcf, privateArgs, baggage) => {
214
223
  const { marshaller, ...allOrchPowers } = privateArgs;
215
224
  const { storageNode: _, ...requiredOrchPowers } = allOrchPowers;
225
+ const { publishAccountInfo, chainInfoValueShape } = opts ?? {};
216
226
  const { zone, ...tools } = provideOrchestration(
217
227
  zcf,
218
228
  baggage,
219
- opts?.publishAccountInfo ? allOrchPowers : requiredOrchPowers,
229
+ publishAccountInfo ? allOrchPowers : requiredOrchPowers,
220
230
  marshaller,
231
+ { chainInfoValueShape },
221
232
  );
222
233
  return contractFn(zcf, privateArgs, zone, tools);
223
234
  };