0.4.3-u17.1 • Published 9 months ago

@agoric/casting v0.4.3-u17.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
9 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-b0e0292.0

10 months ago

0.4.3-dev-7d15388.0

10 months ago

0.4.3-dev-feae722.0

10 months ago

0.4.3-dev-442f07c.0

10 months ago

0.4.3-dev-813e54c.0

10 months ago

0.4.3-dev-fdbffa0.0

10 months ago

0.4.3-dev-18a1b58.0

10 months ago

0.4.3-dev-483939c.0

10 months ago

0.4.3-dev-43dd3ec.0

10 months ago

0.4.3-dev-e3b41dc.0

10 months ago

0.4.3-dev-7d1dfc0.0

10 months ago

0.4.3-dev-b232bfe.0

10 months ago

0.4.3-dev-0b1501a.0

10 months ago

0.4.3-dev-7ceb7f7.0

10 months ago

0.4.3-dev-4bc297d.0

10 months ago

0.4.3-dev-edc7176.0

10 months ago

0.4.3-dev-b61865e.0

10 months ago

0.4.3-dev-4a1e4c3.0

10 months ago

0.4.3-dev-5b3e4d0.0

10 months ago

0.4.3-dev-681b352.0

10 months ago

0.4.3-dev-9f30228.0

10 months ago

0.4.3-dev-437c03b.0

10 months ago

0.4.3-dev-77c6d29.0

10 months ago

0.4.3-dev-fdb7004.0

10 months ago

0.4.3-dev-2670a4e.0

10 months ago

0.4.3-dev-69f8e4b.0

10 months ago

0.4.3-dev-7940ef4.0

10 months ago

0.4.3-dev-70bc20f.0

10 months ago

0.4.3-dev-f245412.0

10 months ago

0.4.3-dev-0cd32a5.0

10 months ago

0.4.3-dev-c9ce088.0

10 months ago

0.4.3-dev-6909994.0

10 months ago

0.4.3-dev-097ef82.0

10 months ago

0.4.3-dev-fd12d05.0

10 months ago

0.4.3-dev-f46aec9.0

10 months ago

0.4.3-dev-b282e92.0

10 months ago

0.4.3-dev-fb3af6c.0

11 months ago

0.4.3-dev-3e9ff43.0

10 months ago

0.4.3-dev-074c43c.0

11 months ago

0.4.3-dev-67a57a4.0

10 months ago

0.4.3-dev-3573033.0

11 months ago

0.4.3-dev-2abdc28.0

10 months ago

0.4.3-dev-a7d06d8.0

11 months ago

0.4.3-dev-88fe8c9.0

11 months ago

0.4.3-dev-74be420.0

10 months ago

0.4.3-dev-0fbe81c.0

11 months ago

0.4.3-dev-607ed82.0

10 months ago

0.4.3-dev-ad7f655.0

10 months ago

0.4.3-dev-ef9ed26.0

11 months ago

0.4.3-dev-3aa0690.0

10 months ago

0.4.3-u17.1

10 months ago

0.4.3-u17.0

10 months ago

0.4.3-dev-c1156cd.0

11 months ago

0.4.3-dev-c27a7e6.0

11 months ago

0.4.3-dev-f6ca68a.0

10 months ago

0.4.3-dev-bc8900d.0

11 months ago

0.4.3-dev-12c0dab.0

11 months ago

0.4.3-dev-80f5cb1.0

11 months ago

0.4.3-dev-d9700fb.0

11 months ago

0.4.3-dev-f991204.0

10 months ago

0.4.3-dev-741bbd1.0

10 months ago

0.4.3-dev-394a500.0

11 months ago

0.4.3-dev-3c66f4b.0

11 months ago

0.4.3-dev-bf1e645.0

10 months ago

0.4.3-dev-67275c2.0

11 months ago

0.4.3-dev-ebdf706.0

11 months ago

0.4.3-dev-0c8c6c4.0

10 months ago

0.4.3-dev-17c73b7.0

11 months ago

0.4.3-dev-b31bd09.0

11 months ago

0.4.3-dev-f6011d0.0

11 months ago

0.4.3-dev-45b9216.0

11 months ago

0.4.3-dev-a9e951a.0

10 months ago

0.4.3-dev-c068d08.0

10 months ago

0.4.3-dev-661af66.0

11 months ago

0.4.3-dev-43345a5.0

11 months ago

0.4.3-dev-9cdb01d.0

10 months ago

0.4.3-dev-6ee57ba.0

10 months ago

0.4.3-dev-3386e64.0

11 months ago

0.4.3-dev-7ab749c.0

11 months ago

0.4.3-dev-f9057b6.0

10 months ago

0.4.3-dev-1976c50.0

11 months ago

0.4.3-dev-9ced650.0

11 months ago

0.4.3-dev-2c51185.0

11 months ago

0.4.3-dev-d33a853.0

11 months ago

0.4.3-dev-a66b840.0

10 months ago

0.4.3-dev-d6f50e3.0

11 months ago

0.4.3-dev-813208a.0

11 months ago

0.4.3-dev-00f86bb.0

10 months ago

0.4.3-dev-ecc38fc.0

11 months ago

0.4.3-dev-f291362.0

10 months ago

0.4.3-dev-42d1d4f.0

11 months ago

0.4.3-dev-c56c51e.0

11 months ago

0.4.3-dev-e67cd91.0

10 months ago

0.4.3-dev-99a3a43.0

11 months ago

0.4.3-dev-2e66067.0

10 months ago

0.4.3-dev-3b97a9f.0

10 months ago

0.4.3-dev-a48b2ce.0

10 months ago

0.4.3-dev-f29ecb3.0

10 months ago

0.4.3-dev-3656582.0

10 months ago

0.4.3-dev-914bee2.0

10 months ago

0.4.3-dev-bd19a6f.0

11 months ago

0.4.3-dev-b5575d3.0

10 months ago

0.4.3-dev-bd64eda.0

11 months ago

0.4.3-dev-daff9eb.0

11 months ago

0.4.3-dev-f6191c2.0

10 months ago

0.4.3-dev-97e3f7b.0

11 months ago

0.4.3-dev-b7ef552.0

11 months ago

0.4.3-dev-8787ee6.0

11 months ago

0.4.3-dev-66e4cc0.0

10 months ago

0.4.3-dev-c04c91c.0

10 months ago

0.4.3-dev-4492e10.0

11 months ago

0.4.3-dev-cfec54b.0

10 months ago

0.4.3-dev-07f6885.0

10 months ago

0.4.3-dev-d12673b.0

12 months ago

0.4.3-dev-1f816f9.0

11 months ago

0.4.3-dev-5cd99ea.0

12 months ago

0.4.3-dev-de95355.0

11 months 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-dev-af5e7ab.0

12 months ago

0.4.3-dev-e3b1b71.0

12 months ago

0.4.3-dev-9986152.0

11 months ago

0.4.3-dev-1875030.0

12 months ago

0.4.3-dev-ee2126b.0

12 months ago

0.4.3-dev-74a89a7.0

11 months ago

0.4.3-dev-6d97bc4.0

11 months ago

0.4.3-dev-644c210.0

11 months ago

0.4.3-dev-aaa0def.0

11 months ago

0.4.3-dev-e6a0e81.0

12 months ago

0.4.3-dev-92f2510.0

12 months ago

0.4.3-dev-c4f6a03.0

12 months ago

0.4.3-dev-b6379da.0

11 months ago

0.4.3-dev-b9f5667.0

11 months ago

0.4.3-dev-aedfac6.0

11 months ago

0.4.3-dev-e6c4837.0

11 months ago

0.4.3-dev-ddf71d7.0

12 months ago

0.4.3-dev-fc104e8.0

12 months ago

0.4.3-u13.0

2 years ago

0.4.3-dev-7f12e80.0

11 months ago

0.4.3-dev-1dd604b.0

12 months ago

0.4.3-dev-fc07a0f.0

12 months ago

0.4.3-dev-4696a6a.0

12 months ago

0.4.3-dev-ae69fbd.0

12 months ago

0.4.3-dev-e8c4189.0

12 months ago

0.4.3-dev-b1d610d.0

12 months ago

0.4.3-dev-8a8fed3.0

12 months ago

0.4.3-dev-20cb52f.0

12 months ago

0.4.3-dev-8718c07.0

12 months ago

0.4.3-dev-f98da63.0

11 months ago

0.4.3-dev-b6c58f2.0

11 months ago

0.4.3-dev-bef1be9.0

11 months ago

0.4.3-dev-179572e.0

11 months ago

0.4.3-dev-dfc7a48.0

11 months ago

0.4.3-dev-a14b527.0

12 months ago

0.4.3-dev-8981d86.0

11 months ago

0.4.3-dev-b84a426.0

11 months ago

0.4.3-u14.0

1 year ago

0.4.3-dev-d3223ae.0

12 months ago

0.4.3-dev-c4520c5.0

11 months ago

0.4.3-dev-13c10cc.0

11 months ago

0.4.3-dev-e1baf4e.0

12 months ago

0.4.3-dev-173e1d8.0

12 months ago

0.4.3-dev-c7eca9b.0

12 months ago

0.4.3-dev-0eaf7cc.0

11 months ago

0.4.3-dev-7296b47.0

11 months ago

0.4.3-dev-a9dd2ce.0

11 months ago

0.4.3-dev-f7e3252.0

12 months ago

0.4.3-dev-30eddae.0

12 months ago

0.4.3-dev-e8c27f8.0

12 months ago

0.4.3-dev-279e654.0

11 months ago

0.4.3-dev-a18dbbf.0

11 months ago

0.4.3-dev-369fa7c.0

12 months ago

0.4.3-dev-c1ec381.0

12 months ago

0.4.3-dev-e141f05.0

12 months ago

0.4.3-dev-ad1e50e.0

11 months ago

0.4.3-dev-5b61dc2.0

11 months ago

0.4.3-dev-77fcd1a.0

12 months ago

0.4.3-dev-bf791ed.0

12 months ago

0.4.3-dev-d32d6ce.0

11 months ago

0.4.3-dev-77eeafc.0

12 months ago

0.4.3-dev-7a08c6a.0

11 months ago

0.4.3-dev-9c9e5cf.0

12 months ago

0.4.3-dev-03f13e7.0

11 months ago

0.4.3-dev-0c96ea5.0

12 months ago

0.4.3-dev-46e77e4.0

11 months 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

2 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