0.5.0-u20.0 • Published 4 months ago

@agoric/casting v0.5.0-u20.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months ago

Agoric Casting

This Agoric Casting package follows ocap broadcasts in a flexible, future-proof way.

TL;DR: You can run yarn demo, or to follow a mailbox castingSpec do:

npx agoric follow -Bhttp://devnet.agoric.net/network-config :mailbox.agoric1foobarbaz -otext

An example of following an on-chain mailbox in code (using this package) is:

// First, obtain a Hardened JS environment via Endo.
import '@endo/init/pre-remoting.js'; // needed only for the next line
import '@agoric/castingSpec/node-fetch-shim.js'; // needed for Node.js
import '@endo/init';

import {
  iterateLatest,
  makeFollower,
  makeLeader,
  makeCastingSpec,
} from '@agoric/casting';

// Iterate over a mailbox follower on the devnet.
const leader = makeLeader('https://devnet.agoric.net/network-config');
const castingSpec = makeCastingSpec(':mailbox.agoric1foobarbaz');
const follower = makeFollower(leader, castingSpec);
for await (const { value } of iterateLatest(follower)) {
  console.log(`here's a mailbox value`, value);
}

Follower options

The followerOpts argument in makeFollower(leader, key, followerOpts) provides an optional bag of options:

  • the integrity option, which has three possibilities:
    • 'strict' - release data only after proving it was validated (may incur waits for one block's data to be validated in the next block),
    • 'optimistic' (default) - release data immediately, but may crash the follower in the future if an already-released value could not be proven,
    • 'none' - release data immediately without validation
  • the decode option is a function to translate buf: Uint8Array into data: string
    • (default) - interpret buf as a utf-8 string, then JSON.parse it
  • the unserializer option can be
    • (default) - release unserialized objects using @agoric/marshal's makeMarshal()
    • null - don't additionally unserialize data before releasing it
    • any unserializer object supporting E(unserializer).unserialize(data)
  • the crasher option can be
    • null (default) follower failures only propagate an exception/rejection
    • any crasher object supporting E(crasher).crash(reason)

Behind the scenes

  • the network config contains enough information to obtain Tendermint RPC nodes for a given Agoric network. You can use makeLeaderFromRpcAddresses directly if you want to avoid fetching a network-config.
  • each follower uses periodic CosmJS state polling (every X milliseconds) which can be refreshed more expediently via a Tendermint subscription to the corresponding state_change event
  • published (string) values are automatically unmarshalled, but without object references. a custom marshaller for your application.
  • the iterateRecent adapter transforms a follower into a local async iterator that produces only the last queried value (with no history reconstruction)

Status

This package currently depends on:

Short-term goals:

0.4.3-dev-e596a01.0

11 months ago

0.4.3-dev-c1ae023.0

11 months ago

0.4.3-dev-059601c.0

10 months ago

0.4.3-dev-8f9f075.0

11 months ago

0.4.3-dev-596ebab.0

11 months ago

0.4.3-dev-34f026b.0

11 months ago

0.4.3-dev-340ef0d.0

11 months ago

0.4.3-dev-eb1d655.0

11 months ago

0.4.3-dev-d268023.0

11 months ago

0.4.3-dev-62aabb6.0

11 months ago

0.4.3-dev-745f2a8.0

10 months ago

0.4.3-dev-4472050.0

10 months ago

0.4.3-dev-6fbd20a.0

10 months ago

0.4.3-dev-493b453.0

11 months ago

0.4.3-dev-7750fde.0

10 months ago

0.5.0-u20.0

6 months ago

0.4.3-dev-160f38d.0

12 months ago

0.4.3-dev-c7a005e.0

10 months ago

0.4.3-dev-d603b6c.0

12 months ago

0.4.3-dev-5b09631.0

11 months ago

0.4.3-dev-a2e9363.0

11 months ago

0.4.3-dev-47bebb8.0

11 months ago

0.4.3-dev-fbae24c.0

11 months ago

0.4.3-dev-45d0417.0

11 months ago

0.4.3-dev-9835fb0.0

10 months ago

0.4.3-dev-fb2d05c.0

11 months ago

0.4.3-dev-5a4fc01.0

11 months ago

0.4.3-dev-0fa2d27.0

11 months ago

0.4.3-dev-02c06c4.0

12 months ago

0.4.3-dev-5fd303a.0

11 months ago

0.4.3-dev-7390224.0

11 months ago

0.4.3-dev-44132c0.0

12 months ago

0.4.3-dev-3f302ba.0

10 months ago

0.4.3-dev-8a52ddd.0

11 months ago

0.4.3-dev-5affa34.0

11 months ago

0.4.3-dev-ad4e83e.0

11 months ago

0.4.3-dev-9e5f628.0

10 months ago

0.4.3-dev-98e940d.0

11 months ago

0.4.3-dev-23e127e.0

11 months ago

0.4.3-dev-3154854.0

11 months ago

0.4.3-dev-be80150.0

11 months ago

0.4.3-dev-140c1be.0

10 months ago

0.4.3-dev-1f25ee2.0

10 months ago

0.4.3-dev-13796d6.0

11 months ago

0.4.3-dev-8c79835.0

11 months ago

0.4.3-dev-c0d9d8e.0

10 months ago

0.4.3-dev-cf1d435.0

11 months ago

0.4.3-dev-a2813f6.0

10 months ago

0.4.3-dev-bdf5c17.0

10 months ago

0.4.3-dev-e7af58f.0

12 months ago

0.4.3-dev-b4b351e.0

11 months ago

0.4.3-dev-6e25d9f.0

10 months ago

0.4.3-dev-2561fb9.0

11 months ago

0.4.3-dev-ef9088c.0

11 months ago

0.4.3-dev-d6a7ffb.0

11 months ago

0.4.3-dev-2f3ca19.0

10 months ago

0.4.3-dev-4a76042.0

11 months ago

0.4.3-dev-e543d46.0

10 months ago

0.4.3-dev-ff9b882.0

11 months ago

0.4.3-dev-fd68b6a.0

12 months ago

0.4.3-dev-3e27c74.0

10 months ago

0.4.3-dev-1dd4589.0

11 months ago

0.4.3-dev-0105e1a.0

11 months ago

0.4.3-dev-e06691f.0

10 months ago

0.4.3-dev-5cfb99b.0

11 months ago

0.4.3-dev-40e0e4e.0

11 months ago

0.4.3-dev-3653dc7.0

11 months ago

0.4.3-dev-bfca51a.0

10 months ago

0.4.3-dev-02967de.0

11 months ago

0.4.3-dev-d35659b.0

10 months ago

0.4.3-dev-21760b0.0

11 months ago

0.4.3-dev-721071e.0

11 months ago

0.4.3-dev-9c97014.0

10 months ago

0.4.3-dev-1d5cb99.0

11 months ago

0.4.3-dev-c236c55.0

11 months ago

0.4.3-dev-78063fc.0

10 months ago

0.4.3-dev-419df4e.0

11 months ago

0.4.3-dev-11c895a.0

11 months ago

0.4.3-dev-d7a0e3b.0

11 months ago

0.4.3-dev-dcf2772.0

11 months ago

0.4.3-dev-e96ff82.0

11 months ago

0.4.3-dev-4b1403a.0

12 months ago

0.4.3-dev-17503a9.0

11 months ago

0.4.3-dev-537ffd0.0

10 months ago

0.4.3-dev-e37a322.0

11 months ago

0.4.3-dev-3ba7ca7.0

11 months ago

0.4.3-dev-e58c081.0

12 months ago

0.4.3-dev-c951fdc.0

11 months ago

0.4.3-dev-ed76c8b.0

12 months ago

0.4.3-dev-d4f2864.0

12 months ago

0.4.3-dev-cb515a8.0

10 months ago

0.4.3-dev-fef1774.0

10 months ago

0.4.3-dev-0a07188.0

10 months ago

0.4.3-dev-c833874.0

10 months ago

0.4.3-dev-9d6cff1.0

11 months ago

0.4.3-dev-bd0b2a9.0

12 months ago

0.4.3-dev-ab3aa11.0

11 months ago

0.4.3-dev-10b789b.0

10 months ago

0.4.3-dev-4c2be7c.0

10 months ago

0.4.3-dev-ca25dd5.0

10 months ago

0.4.3-dev-2837beb.0

12 months ago

0.4.3-dev-1645d7e.0

11 months ago

0.4.3-dev-a66f6a1.0

11 months ago

0.4.3-u18.5

10 months ago

0.4.3-u18.4

10 months ago

0.4.3-u18.3

11 months ago

0.4.3-u18.2

11 months ago

0.4.3-u18.1

11 months ago

0.4.3-u18.0

12 months ago

0.4.3-dev-f4df38c.0

10 months ago

0.4.3-dev-274240a.0

10 months ago

0.4.3-dev-511b789.0

11 months ago

0.4.3-dev-8b9c8db.0

11 months ago

0.4.3-dev-d727cf9.0

11 months ago

0.4.3-dev-0b5aab8.0

12 months ago

0.4.3-dev-3b799b8.0

11 months ago

0.4.3-dev-86e3b2d.0

11 months ago

0.4.3-dev-d4385f0.0

11 months ago

0.4.3-dev-1231911.0

11 months ago

0.4.3-dev-963ebe1.0

11 months ago

0.4.3-dev-324bca1.0

11 months ago

0.4.3-dev-59b1a9f.0

11 months ago

0.4.3-dev-e5813b9.0

10 months ago

0.4.3-dev-ef82fbf.0

11 months ago

0.4.3-dev-4feddb0.0

10 months ago

0.4.3-dev-3b478fb.0

11 months ago

0.4.3-dev-3852448.0

11 months ago

0.4.3-dev-adb17dd.0

10 months ago

0.4.3-dev-59b637f.0

11 months ago

0.4.3-dev-a82d636.0

12 months ago

0.4.3-dev-1682675.0

11 months ago

0.4.3-dev-ef0668a.0

11 months ago

0.4.3-dev-c1d2b71.0

10 months ago

0.4.3-dev-cf56e91.0

11 months ago

0.4.3-dev-aa11d5c.0

11 months ago

0.4.3-dev-1385184.0

12 months ago

0.4.3-dev-6368fcd.0

11 months ago

0.4.3-dev-429a377.0

11 months ago

0.4.3-dev-b5d1abe.0

10 months ago

0.4.3-dev-23120a9.0

11 months ago

0.4.3-dev-9418efc.0

10 months ago

0.4.3-dev-8fd731c.0

11 months ago

0.4.3-dev-b2a7540.0

11 months ago

0.4.3-dev-74ab972.0

11 months ago

0.4.3-dev-39d8f59.0

10 months ago

0.4.3-dev-5939b2a.0

10 months ago

0.4.3-dev-a7bee20.0

11 months ago

0.4.3-dev-8657c4c.0

11 months ago

0.4.3-dev-7b7ceb9.0

10 months ago

0.4.3-dev-3314b25.0

11 months ago

0.4.3-dev-9e124c3.0

10 months ago

0.4.3-dev-d1562a1.0

11 months ago

0.4.3-dev-d19b293.0

11 months ago

0.4.3-dev-945fef1.0

11 months ago

0.4.3-dev-45bab17.0

11 months ago

0.4.3-dev-9cb1472.0

10 months ago

0.4.3-dev-ce195ab.0

11 months ago

0.4.3-dev-16c13df.0

12 months ago

0.4.3-dev-c27cc4f.0

11 months ago

0.4.3-dev-d575daa.0

10 months ago

0.4.3-dev-837776e.0

10 months ago

0.4.3-dev-72248e9.0

11 months ago

0.4.3-dev-76ad0fc.0

11 months ago

0.4.3-dev-a944f4c.0

10 months ago

0.4.3-dev-d8a109e.0

11 months ago

0.4.3-dev-9b34be9.0

11 months ago

0.4.3-dev-83191e7.0

11 months ago

0.4.3-dev-8943c95.0

12 months ago

0.4.3-dev-fb76d70.0

11 months ago

0.4.3-dev-40ad937.0

11 months ago

0.4.3-dev-820badf.0

10 months ago

0.4.3-dev-103e0bc.0

10 months ago

0.4.3-dev-ddff762.0

10 months ago

0.4.3-dev-7e54272.0

11 months ago

0.4.3-u18a.0

9 months ago

0.4.3-dev-56d1c14.0

11 months ago

0.4.3-dev-254e849.0

10 months ago

0.4.3-dev-ff8c142.0

11 months ago

0.4.3-dev-9b8cad2.0

11 months ago

0.4.3-dev-0e4c5b5.0

10 months ago

0.4.3-dev-9c61393.0

11 months ago

0.4.3-dev-5a127d4.0

11 months ago

0.4.3-u19.2

7 months ago

0.4.3-u19.1

8 months ago

0.4.3-dev-6112a8b.0

11 months ago

0.4.3-u19.0

8 months ago

0.4.3-dev-4823e85.0

10 months ago

0.4.3-dev-604ac38.0

12 months ago

0.4.3-dev-5429b84.0

12 months ago

0.4.3-dev-fae2710.0

12 months ago

0.4.3-dev-aba3e48.0

12 months ago

0.4.3-dev-a6b3352.0

12 months ago

0.4.3-dev-ced5d49.0

12 months ago

0.4.3-dev-b4480d8.0

12 months ago

0.4.3-dev-e0e662c.0

12 months ago

0.4.3-dev-25db2b9.0

12 months ago

0.4.3-dev-d122756.0

12 months ago

0.4.3-dev-745d557.0

12 months ago

0.4.3-dev-3007c00.0

12 months ago

0.4.3-dev-7ae1f27.0

12 months ago

0.4.3-dev-ef001c0.0

12 months ago

0.4.3-dev-ad7ac3c.0

12 months ago

0.4.3-dev-acbd3ae.0

12 months ago

0.4.3-dev-5c932ce.0

12 months ago

0.4.3-dev-9c73ae4.0

12 months ago

0.4.3-dev-2ede8c1.0

12 months ago

0.4.3-dev-d7c994b.0

12 months ago

0.4.3-dev-d85c025.0

12 months ago

0.4.3-dev-91a5ada.0

12 months ago

0.4.3-dev-7b8c83c.0

12 months ago

0.4.3-dev-4542cd0.0

12 months ago

0.4.3-dev-a67502b.0

12 months ago

0.4.3-dev-0d3bd96.0

12 months ago

0.4.3-dev-bcab39d.0

12 months ago

0.4.3-dev-1cb7915.0

12 months ago

0.4.3-dev-823c8d1.0

12 months ago

0.4.3-dev-df2faae.0

12 months ago

0.4.3-u17.1

1 year ago

0.4.3-u17.0

1 year ago

0.4.3-u16.2

1 year ago

0.4.3-u16.1

1 year ago

0.4.3-u16.0

1 year ago

0.4.3-u13.0

2 years ago

0.4.3-u14.0

2 years ago

0.4.3-u12.0

2 years ago

0.4.3-u11wf.0

2 years ago

0.4.3-u11.0

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.4

3 years ago

0.3.2

3 years ago

0.3.3

3 years ago

0.3.0

3 years ago

0.3.1

3 years ago

0.2.0

3 years ago