@agoric/orchestration 0.1.1-dev-33a5708.0 → 0.1.1-dev-db6d589.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 (36) hide show
  1. package/package.json +17 -16
  2. package/src/cosmos-api.d.ts +11 -1
  3. package/src/cosmos-api.d.ts.map +1 -1
  4. package/src/cosmos-api.ts +15 -0
  5. package/src/examples/send-anywhere.contract.d.ts +3 -3
  6. package/src/examples/send-anywhere.contract.d.ts.map +1 -1
  7. package/src/examples/send-anywhere.contract.js +40 -13
  8. package/src/examples/send-anywhere.flows.d.ts +559 -2
  9. package/src/examples/send-anywhere.flows.d.ts.map +1 -1
  10. package/src/examples/send-anywhere.flows.js +105 -28
  11. package/src/examples/stake-ica.contract.d.ts +1 -0
  12. package/src/examples/stake-ica.contract.d.ts.map +1 -1
  13. package/src/exos/README.md +1 -0
  14. package/src/exos/chain-hub-admin.d.ts +2 -2
  15. package/src/exos/chain-hub-admin.d.ts.map +1 -1
  16. package/src/exos/chain-hub-admin.js +5 -7
  17. package/src/exos/chain-hub.d.ts +19 -8
  18. package/src/exos/chain-hub.d.ts.map +1 -1
  19. package/src/exos/chain-hub.js +75 -17
  20. package/src/exos/cosmos-orchestration-account.d.ts +2 -0
  21. package/src/exos/cosmos-orchestration-account.d.ts.map +1 -1
  22. package/src/exos/cosmos-orchestration-account.js +67 -2
  23. package/src/exos/orchestrator.d.ts +1 -1
  24. package/src/exos/remote-chain-facade.d.ts +1 -1
  25. package/src/orchestration-api.d.ts +4 -4
  26. package/src/orchestration-api.d.ts.map +1 -1
  27. package/src/orchestration-api.ts +6 -3
  28. package/src/proposals/start-send-anywhere.js +4 -0
  29. package/src/utils/address.d.ts +4 -1
  30. package/src/utils/address.d.ts.map +1 -1
  31. package/src/utils/address.js +32 -2
  32. package/src/utils/chain-info.d.ts +4 -0
  33. package/src/utils/chain-info.d.ts.map +1 -0
  34. package/src/utils/chain-info.js +11 -0
  35. package/src/utils/start-helper.d.ts +2 -1
  36. package/src/utils/start-helper.d.ts.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/orchestration",
3
- "version": "0.1.1-dev-33a5708.0+33a5708",
3
+ "version": "0.1.1-dev-db6d589.0+db6d589",
4
4
  "description": "Chain abstraction for Agoric's orchestration clients",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -33,19 +33,20 @@
33
33
  },
34
34
  "homepage": "https://github.com/Agoric/agoric-sdk#readme",
35
35
  "dependencies": {
36
- "@agoric/async-flow": "0.1.1-dev-33a5708.0+33a5708",
37
- "@agoric/cosmic-proto": "0.4.1-dev-33a5708.0+33a5708",
38
- "@agoric/ertp": "0.16.3-dev-33a5708.0+33a5708",
39
- "@agoric/internal": "0.3.3-dev-33a5708.0+33a5708",
40
- "@agoric/network": "0.1.1-dev-33a5708.0+33a5708",
41
- "@agoric/notifier": "0.6.3-dev-33a5708.0+33a5708",
42
- "@agoric/store": "0.9.3-dev-33a5708.0+33a5708",
43
- "@agoric/time": "0.3.3-dev-33a5708.0+33a5708",
44
- "@agoric/vat-data": "0.5.3-dev-33a5708.0+33a5708",
45
- "@agoric/vats": "0.15.2-dev-33a5708.0+33a5708",
46
- "@agoric/vow": "0.1.1-dev-33a5708.0+33a5708",
47
- "@agoric/zoe": "0.26.3-dev-33a5708.0+33a5708",
48
- "@agoric/zone": "0.2.3-dev-33a5708.0+33a5708",
36
+ "@agoric/async-flow": "0.1.1-dev-db6d589.0+db6d589",
37
+ "@agoric/cosmic-proto": "0.4.1-dev-db6d589.0+db6d589",
38
+ "@agoric/ertp": "0.16.3-dev-db6d589.0+db6d589",
39
+ "@agoric/internal": "0.3.3-dev-db6d589.0+db6d589",
40
+ "@agoric/network": "0.1.1-dev-db6d589.0+db6d589",
41
+ "@agoric/notifier": "0.6.3-dev-db6d589.0+db6d589",
42
+ "@agoric/store": "0.9.3-dev-db6d589.0+db6d589",
43
+ "@agoric/time": "0.3.3-dev-db6d589.0+db6d589",
44
+ "@agoric/vat-data": "0.5.3-dev-db6d589.0+db6d589",
45
+ "@agoric/vats": "0.15.2-dev-db6d589.0+db6d589",
46
+ "@agoric/vow": "0.1.1-dev-db6d589.0+db6d589",
47
+ "@agoric/zoe": "0.26.3-dev-db6d589.0+db6d589",
48
+ "@agoric/zone": "0.2.3-dev-db6d589.0+db6d589",
49
+ "@cosmjs/encoding": "^0.32.4",
49
50
  "@endo/base64": "^1.0.9",
50
51
  "@endo/errors": "^1.2.9",
51
52
  "@endo/far": "^1.1.10",
@@ -54,7 +55,7 @@
54
55
  "@noble/hashes": "^1.5.0"
55
56
  },
56
57
  "devDependencies": {
57
- "@agoric/swingset-liveslots": "0.10.3-dev-33a5708.0+33a5708",
58
+ "@agoric/swingset-liveslots": "0.10.3-dev-db6d589.0+db6d589",
58
59
  "@chain-registry/client": "^1.47.4",
59
60
  "@cosmjs/amino": "^0.33.0",
60
61
  "@cosmjs/proto-signing": "^0.33.0",
@@ -97,5 +98,5 @@
97
98
  "typeCoverage": {
98
99
  "atLeast": 97.84
99
100
  },
100
- "gitHead": "33a57081edfa8bb33e2b61bb96528cf98ed07e34"
101
+ "gitHead": "db6d58920be363874b45206b746e838043dfe179"
101
102
  }
@@ -12,7 +12,7 @@ import type { IBCChannelID, IBCConnectionID, IBCPortID } from '@agoric/vats';
12
12
  import type { TargetApp, TargetRegistration } from '@agoric/vats/src/bridge-target.js';
13
13
  import type { LocalIbcAddress, RemoteIbcAddress } from '@agoric/vats/tools/ibc-utils.js';
14
14
  import { PFM_RECEIVER } from './exos/chain-hub.js';
15
- import type { AmountArg, BaseChainInfo, CosmosChainAddress, Denom, DenomAmount } from './types.js';
15
+ import type { AccountId, AmountArg, BaseChainInfo, CosmosChainAddress, Denom, DenomAmount } from './types.js';
16
16
  /**
17
17
  * @example
18
18
  *
@@ -251,6 +251,16 @@ export interface IcaAccount extends IcaAccountMethods {
251
251
  export interface LiquidStakingMethods {
252
252
  liquidStake: (amount: AmountArg) => Promise<void>;
253
253
  }
254
+ /**
255
+ * Noble is the gateway to transferring USDC among Cosmos chains. We can
256
+ * transfer funds from any cosmos account using depositForBurn().
257
+ */
258
+ export interface NobleMethods {
259
+ /** burn USDC on Noble and mint on a destination chain via CCTP */
260
+ depositForBurn: (mintRecipient: AccountId, amount: AmountArg,
261
+ /** if specified, only this account can call MsgReceive on the destination chain */
262
+ caller?: AccountId) => Promise<void>;
263
+ }
254
264
  /** Methods supported only on Agoric chain accounts */
255
265
  export interface LocalAccountMethods extends StakingAccountActions {
256
266
  /** deposit payment (from zoe, for example) to the account */
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos-api.d.ts","sourceRoot":"","sources":["cosmos-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmos-api.d.ts","sourceRoot":"","sources":["cosmos-api.ts"],"names":[],"mappings":"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"}
package/src/cosmos-api.ts CHANGED
@@ -34,6 +34,7 @@ import type {
34
34
  } from '@agoric/vats/tools/ibc-utils.js';
35
35
  import { PFM_RECEIVER } from './exos/chain-hub.js';
36
36
  import type {
37
+ AccountId,
37
38
  AmountArg,
38
39
  BaseChainInfo,
39
40
  CosmosChainAddress,
@@ -317,6 +318,20 @@ export interface LiquidStakingMethods {
317
318
  liquidStake: (amount: AmountArg) => Promise<void>;
318
319
  }
319
320
 
321
+ /**
322
+ * Noble is the gateway to transferring USDC among Cosmos chains. We can
323
+ * transfer funds from any cosmos account using depositForBurn().
324
+ */
325
+ export interface NobleMethods {
326
+ /** burn USDC on Noble and mint on a destination chain via CCTP */
327
+ depositForBurn: (
328
+ mintRecipient: AccountId,
329
+ amount: AmountArg,
330
+ /** if specified, only this account can call MsgReceive on the destination chain */
331
+ caller?: AccountId,
332
+ ) => Promise<void>;
333
+ }
334
+
320
335
  // TODO support StakingAccountQueries
321
336
  /** Methods supported only on Agoric chain accounts */
322
337
  export interface LocalAccountMethods extends StakingAccountActions {
@@ -12,9 +12,9 @@ export function contract(zcf: ZCF, privateArgs: OrchestrationPowers & {
12
12
  chainInfo?: Record<string, CosmosChainInfo>;
13
13
  marshaller: Marshaller;
14
14
  storageNode: Remote<StorageNode>;
15
- }, zone: Zone, { chainHub, orchestrateAll, vowTools, zoeTools }: OrchestrationTools): Promise<{
15
+ }, zone: Zone, { chainHub, orchestrate, vowTools, zoeTools }: OrchestrationTools): Promise<{
16
16
  publicFacet: import("@endo/exo").Guarded<{
17
- makeSendInvitation(): Promise<globalThis.Invitation<Vow<void>, {
17
+ makeSendInvitation(): Promise<globalThis.Invitation<Vow<undefined>, {
18
18
  chainName: string;
19
19
  destAddr: string;
20
20
  }>>;
@@ -33,7 +33,7 @@ export const start: (zcf: globalThis.ZCF<Record<string, unknown>>, privateArgs:
33
33
  storageNode: Remote<StorageNode>;
34
34
  }, baggage: import("@agoric/vat-data").Baggage) => Promise<{
35
35
  publicFacet: import("@endo/exo").Guarded<{
36
- makeSendInvitation(): Promise<globalThis.Invitation<Vow<void>, {
36
+ makeSendInvitation(): Promise<globalThis.Invitation<Vow<undefined>, {
37
37
  chainName: string;
38
38
  destAddr: string;
39
39
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"send-anywhere.contract.d.ts","sourceRoot":"","sources":["send-anywhere.contract.js"],"names":[],"mappings":"AAUA;;;;;GAKG;AAEH,qEAKE;AAgBK,8BAVI,GAAG,eACH,mBAAmB,GAAG;IAC5B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC;CAClC,QACO,IAAI,oDACJ,kBAAkB;;;;;;;;;;;GA8D5B;AAGD;gBAvEiB,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;gBAC9C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;gBAC/B,UAAU;iBACT,OAAO,WAAW,CAAC;;;;;;;;;;;;GAoE0C;yCAxFrB,0BAA0B;2BAC9B,uBAAuB;iCAAvB,uBAAuB;qCAAvB,uBAAuB;4BAH/C,aAAa;0BACpB,cAAc;wCACqB,0BAA0B;yBAFtD,aAAa"}
1
+ {"version":3,"file":"send-anywhere.contract.d.ts","sourceRoot":"","sources":["send-anywhere.contract.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AAEH,qEAKE;AAoBK,8BAVI,GAAG,eACH,mBAAmB,GAAG;IAC5B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC;CAClC,QACO,IAAI,iDACJ,kBAAkB;;;;;;;;;;;GAkF5B;AAGD;gBA3FiB,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;gBAC9C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;gBAC/B,UAAU;iBACT,OAAO,WAAW,CAAC;;;;;;;;;;;;GAwF0C;yCAhHrB,0BAA0B;2BAC9B,uBAAuB;iCAAvB,uBAAuB;qCAAvB,uBAAuB;4BAH/C,aAAa;0BACpB,cAAc;wCACqB,0BAA0B;yBAFtD,aAAa"}
@@ -5,7 +5,10 @@ import { prepareChainHubAdmin } from '../exos/chain-hub-admin.js';
5
5
  import { AnyNatAmountShape } from '../typeGuards.js';
6
6
  import { withOrchestration } from '../utils/start-helper.js';
7
7
  import { registerChainsAndAssets } from '../utils/chain-hub-helper.js';
8
- import * as flows from './send-anywhere.flows.js';
8
+ import {
9
+ makeNobleAccount as makeNobleAccountFlow,
10
+ sendIt,
11
+ } from './send-anywhere.flows.js';
9
12
  import * as sharedFlows from './shared.flows.js';
10
13
 
11
14
  /**
@@ -24,6 +27,10 @@ export const SingleNatAmountRecord = M.and(
24
27
  harden(SingleNatAmountRecord);
25
28
 
26
29
  /**
30
+ * Send assets currently in an ERTP purse to an account on another chain. This
31
+ * currently supports IBC and CCTP transfers. It could eventually support other
32
+ * protocols, like Axelar GMP or IBC Eureka.
33
+ *
27
34
  * Orchestration contract to be wrapped by withOrchestration for Zoe
28
35
  *
29
36
  * @param {ZCF} zcf
@@ -40,7 +47,7 @@ export const contract = async (
40
47
  zcf,
41
48
  privateArgs,
42
49
  zone,
43
- { chainHub, orchestrateAll, vowTools, zoeTools },
50
+ { chainHub, orchestrate, vowTools, zoeTools },
44
51
  ) => {
45
52
  const creatorFacet = prepareChainHubAdmin(zone, chainHub);
46
53
 
@@ -49,27 +56,47 @@ export const contract = async (
49
56
  /** @type {(msg: string) => Vow<void>} */
50
57
  const log = msg => vowTools.watch(E(logNode).setValue(msg));
51
58
 
52
- const { makeLocalAccount } = orchestrateAll(sharedFlows, {});
59
+ const makeLocalAccount = orchestrate(
60
+ 'makeLocalAccount',
61
+ {},
62
+ sharedFlows.makeLocalAccount,
63
+ );
64
+ const makeNobleAccount = orchestrate(
65
+ 'makeNobleAccountFlow',
66
+ {},
67
+ makeNobleAccountFlow,
68
+ );
69
+
70
+ const { brands } = zcf.getTerms();
71
+
53
72
  /**
54
- * Setup a shared local account for use in async-flow functions. Typically,
73
+ * Set up a shared local account for use in async-flow functions. Typically,
55
74
  * exo initState functions need to resolve synchronously, but `makeOnce`
56
75
  * allows us to provide a Promise. When using this inside a flow, we must
57
76
  * await it to ensure the account is available for use.
58
77
  *
59
- * @type {any} sharedLocalAccountP expects a Promise but this is a vow
78
+ * @type {any} sharedLocalAccountP expects a Promise but this is a vow UNTIL
60
79
  * https://github.com/Agoric/agoric-sdk/issues/9822
61
80
  */
62
81
  const sharedLocalAccountP = zone.makeOnce('localAccount', () =>
63
82
  makeLocalAccount(),
64
83
  );
65
-
84
+ // UNTIL https://github.com/Agoric/agoric-sdk/issues/9822.
85
+ /** @type {any} nobleAccountP */
86
+ const nobleAccountP = zone.makeOnce('nobleAccount', () => makeNobleAccount());
66
87
  // orchestrate uses the names on orchestrationFns to do a "prepare" of the associated behavior
67
- const orchFns = orchestrateAll(flows, {
68
- chainHub,
69
- log,
70
- sharedLocalAccountP,
71
- zoeTools,
72
- });
88
+ const sendAnywhere = orchestrate(
89
+ 'sendAnywhere',
90
+ {
91
+ log,
92
+ chainHub,
93
+ sharedLocalAccountP,
94
+ nobleAccountP,
95
+ USDC: brands.USDC,
96
+ zoeTools,
97
+ },
98
+ sendIt,
99
+ );
73
100
 
74
101
  const publicFacet = zone.exo(
75
102
  'Send PF',
@@ -79,7 +106,7 @@ export const contract = async (
79
106
  {
80
107
  makeSendInvitation() {
81
108
  return zcf.makeInvitation(
82
- orchFns.sendIt,
109
+ sendAnywhere,
83
110
  'send',
84
111
  undefined,
85
112
  M.splitRecord({ give: SingleNatAmountRecord }),