profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/michaelfig/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Michael FIG michaelfig Agoric Regina, SK, Canada https://fig.org/ Software plumber since 1996.

agoric-labs/jessica 20

Jessica - Jessie (secure distributed Javascript) Compiler Architecture

Agoric/eventual-send 3

MOVED TO MONOREPO. Extend a Promise class to implements the eventual-send API (used by the ECMAScript infix-bang proposal).

michaelfig/cacao 3

Cacao (CORS Access-Control-Allow-Origin) Proxy

endojs/Exo 2

A Personal Ledger for managing ERights and Object Capabilities (ocaps)

agoric-labs/solo-main 1

Main implementation for single Agoric Vat Machine

Agoric/acorn-eventual-send 0

(MOVED TO agoric-sdk MONOREPO) Acorn parser plugin for eventual send (wavy dot)

Agoric/bundle-source 0

MOVED TO MONOREPO: Create source bundles from ES Modules that are compatible with Agoric contracts and SwingSet

Agoric/captp 0

MOVED TO MONOREPO. Javascript Capability Transfer Protocol for distributed object programming

Agoric/default-evaluate-options 0

MOVED TO MONOREPO. Agoric default evaluator options

Agoric/evaluate 0

MOVED TO MONOREPO. INSECURE three-argument evaluate function

issue commentAgoric/documentation

zero-install / cloud-IDE option for getting started with agoric-sdk

That's a yet-to-be-solved problem for browsers like Brave that aggressively block iframe service workers, cookies, and local storage, but with Chrome or Firefox, you can navigate your browser to https://local.agoric.com and fill out the form to point to your wallet with gitpod origin.

dckc

comment created time in 20 hours

Pull request review commentAgoric/agoric-sdk

feat(wallet-backend): attach timestamp and sequence metadata

 export function makeWallet({   myAddressNameAdmin,   pursesStateChangeHandler = noActionStateChangeHandler,   inboxStateChangeHandler = noActionStateChangeHandler,+  localTimerService, }) {+  /**+   * The current timestamp, in milliseconds (if it is known).+   *+   * @type {number | undefined}+   */+  let nowMs;++  // Subscribe to the timer service to update our stamp.+  if (localTimerService) {+    observeNotifier(E(localTimerService).makeNotifier(0n, 1000n), {

Arguments are in milliseconds, so it updates every second. The reason is we don't want to burn CPU trying to react to a 1-millisecond interval.

michaelfig

comment created time in 20 hours

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentAgoric/agoric-sdk

feat(wallet-backend): attach timestamp and sequence metadata

 export function makeWallet({    */   const updatePaymentRecord = ({ actions, ...preDisplay }) => {     const displayPayment = fillInSlots(dehydrate(harden(preDisplay)));-    const paymentRecord = { ...preDisplay, actions, displayPayment };-    payments.set(paymentRecord.payment, harden(paymentRecord));+    const paymentRecord = addMeta({+      ...preDisplay,+      actions,+      displayPayment,+    });+    if (payments.has(paymentRecord.payment)) {

Unrelated, but a bug. Without this, the payment record setting could throw.

michaelfig

comment created time in 20 hours

PullRequestReviewEvent

Pull request review commentAgoric/agoric-sdk

feat(wallet-backend): attach timestamp and sequence metadata

 export function makeWallet({   myAddressNameAdmin,   pursesStateChangeHandler = noActionStateChangeHandler,   inboxStateChangeHandler = noActionStateChangeHandler,+  localTimerService, }) {+  /**+   * The current timestamp, in milliseconds (if it is known).+   *+   * @type {number | undefined}+   */+  let nowMs;++  // Subscribe to the timer service to update our stamp.+  if (localTimerService) {+    observeNotifier(E(localTimerService).makeNotifier(0n, 1000n), {+      updateState(bigStamp) {+        // We need to convert the bigint to a number (for easy Javascript date math).+        nowMs = parseInt(`${bigStamp}`, 10);+      },+    });+  }++  let lastSequence = 0;+  const addMeta = record => {+    const { meta: oldMeta = {} } = record;+    const meta = { ...oldMeta };+    if (!meta.sequence) {+      // Add a sequence number to the record.+      lastSequence += 1;

Sequence is guaranteed to be ordered and unique, even if the wallet instantiator didn't supply a timerService.

Timestamps are just informational for human consumption (after formatting). And yes, they may not be granular enough because the timer updates only happen every second.

michaelfig

comment created time in 20 hours

Pull request review commentAgoric/agoric-sdk

feat(wallet-backend): attach timestamp and sequence metadata

 export function makeWallet({   myAddressNameAdmin,   pursesStateChangeHandler = noActionStateChangeHandler,   inboxStateChangeHandler = noActionStateChangeHandler,+  localTimerService, }) {+  /**+   * The current timestamp, in milliseconds (if it is known).+   *+   * @type {number | undefined}+   */+  let nowMs;++  // Subscribe to the timer service to update our stamp.+  if (localTimerService) {+    observeNotifier(E(localTimerService).makeNotifier(0n, 1000n), {+      updateState(bigStamp) {+        // We need to convert the bigint to a number (for easy Javascript date math).+        nowMs = parseInt(`${bigStamp}`, 10);+      },+    });+  }++  let lastSequence = 0;+  const addMeta = record => {

Sure, I'll add a comment to this effect:

record.meta = { sequence: number, creationStamp: number, updatedStamp: number };

Where the Stamps are in milliseconds.

michaelfig

comment created time in 20 hours

PullRequestReviewEvent
PullRequestReviewEvent

push eventAgoric/dapp-card-store

Michael FIG

commit sha 0ea8fedd14d6c8e8539d2bf0593b149d561a424c

fix(App): hack around the lack of a purse selector

view details

push time in 20 hours

push eventAgoric/agoric-sdk

Michael FIG

commit sha 3015ecdd71cbc5d811c2bd88e2d51096919e4754

fix(solo): don't enforce origin identity; we have access tokens While checking that the connections to our private parts (such as the privileged CapTP) matched "localhost" and a few others was a stopgap before we had an accessToken (capability), now it is really a pain that impedes (but does not prevent) more general access when a user wants it. I believe it is now safe to remove this origin check, especially since it can trivially be bypassed, it just is a nuisance.

view details

Michael FIG

commit sha 2e9b4b8c73bd3c1ee4ce15e6a72af11bd3adeef6

Merge pull request #3838 from Agoric/mfig-ignore-solo-web-origin fix(solo): don't enforce origin identity; we have access tokens

view details

push time in a day

delete branch Agoric/agoric-sdk

delete branch : mfig-ignore-solo-web-origin

delete time in a day

PR merged Agoric/agoric-sdk

Reviewers
fix(solo): don't enforce origin identity; we have access tokens security solo

While checking that the connections to our private parts (such as the privileged CapTP) matched "localhost" and a few others was a stopgap before we had an accessToken (capability), now it is really a pain that impedes (but does not prevent) more general access when a user wants it.

I believe it is now safe to remove this origin check, especially since it can trivially be bypassed, it just is a nuisance.

+57 -47

2 comments

1 changed file

michaelfig

pr closed time in a day

push eventAgoric/agoric-sdk

Mark S. Miller

commit sha d48e6a7d58feee15e23c4e936e69596731ceca87

Consolidate primitive vs object testing (#3821) * fix: consolidate primitive vs object testing

view details

Michael FIG

commit sha 3015ecdd71cbc5d811c2bd88e2d51096919e4754

fix(solo): don't enforce origin identity; we have access tokens While checking that the connections to our private parts (such as the privileged CapTP) matched "localhost" and a few others was a stopgap before we had an accessToken (capability), now it is really a pain that impedes (but does not prevent) more general access when a user wants it. I believe it is now safe to remove this origin check, especially since it can trivially be bypassed, it just is a nuisance.

view details

push time in a day

Pull request review commentAgoric/agoric-sdk

fix(solo): don't enforce origin identity; we have access tokens

 export async function makeHTTPListener(basedir, port, host, rawInboundCommand) {       return true;     } -    // Bypass accessToken just for the wallet bridge.-    if (fullPath !== '/private/wallet-bridge') {-      // Validate the private accessToken.-      const accessToken = await getAccessToken(port);-      const reqToken = parsedUrl.searchParams.get('accessToken');--      if (!verifyToken(reqToken, accessToken)) {-        log.error(-          id,-          `Invalid access token ${JSON.stringify(-            reqToken,-          )}; try running "agoric open"`,-        );-        return false;-      }+    if (fullPath === '/private/wallet-bridge') {+      // Bypass accessToken just for the wallet bridge.+      return true;     } -    if (!origin) {-      log.error(id, `Missing origin header`);-      return false;-    }-    const originUrl = new URL(origin);-    const isLocalhost = hostname =>-      hostname.match(/^(localhost|127\.0\.0\.1)$/);+    // Validate the private accessToken.+    const accessToken = await getAccessToken(port);+    const reqToken = parsedUrl.searchParams.get('accessToken'); -    if (['chrome-extension:', 'moz-extension:'].includes(originUrl.protocol)) {-      // Extensions such as metamask are local and can access the wallet.-      // Especially since the access token has been supplied.+    if (verifyToken(reqToken, accessToken)) {

yes, it does address the gitpod vs localhost issue. Thanks!

Great!

The URL surgery to take the localhost URL printed by agoric open and combine it with the right origin is tedious, but that's a separable issue, and not clearly one that's in-scope for agoric-sdk.

You can invoke agoric open --hostport=somehost.domain:7979 to print the URL formatted in a particular way. This may be worth a .bashrc alias to the correct machine.

michaelfig

comment created time in a day

PullRequestReviewEvent

issue commentinformalsystems/ibc-rs

Cannot configure multiple chains with the same `chain_id`

How important and urgent is this requirement for non-unique chain identifiers, Michael?

For me, it is of medium importance (something that should eventually be addressed) but not urgent. I just saw this when trying to understand the meaning of the id field.

Thanks for listening, and please triage as you see fit.

michaelfig

comment created time in a day

PR opened Agoric/agoric-sdk

Reviewers
feat(wallet-backend): attach timestamp and sequence metadata wallet

This provides a unique meta.sequence value to help determine the order of events.

After #3841 is landed, this will provide timing information in the meta creationStamp and updatedStamp properties.

Also, a drive-by promise optimisation.

+168 -95

0 comment

6 changed files

pr created time in a day

push eventAgoric/agoric-sdk

Michael FIG

commit sha 822ee531c4864480ec7514fa3add295c7050d16b

refactor(wallet-backend): supply `addMeta` to initIssuer

view details

Michael FIG

commit sha 56c0c8a8741753469a26a5a89aab8f07f3ce48bc

fix(wallet-backend): get tests passing

view details

push time in a day

PR opened Agoric/agoric-sdk

feat(solo): make client objects appear earlier, parallelise chain solo

This PR makes it possible to work with the REPL and local objects as soon as SwingSet boots, regardless of the external connections (such as agoric and sim-chain).

This also fixes the localTimerService, which was terribly inaccurate before. It uses time in epoch milliseconds, for compatibility with JS proper.

+73 -65

0 comment

5 changed files

pr created time in 2 days

create barnchAgoric/agoric-sdk

branch : mfig-wallet-backend-meta

created branch time in 2 days

create barnchAgoric/agoric-sdk

branch : mfig-solo-responsiveness

created branch time in 2 days

pull request commentAgoric/agoric-sdk

fix(solo): don't enforce origin identity; we have access tokens

@dckc, please try this PR against your gitpod stuff. It should solve Agoric/documentation#554

michaelfig

comment created time in 2 days

PR opened Agoric/agoric-sdk

Reviewers
fix(solo): don't enforce origin identity; we have access tokens security solo

While checking that the connections to our private parts (such as the privileged CapTP) matched "localhost" and a few others was a stopgap before we had an accessToken (capability), now it is really a pain that impedes (but does not prevent) more general access when a user wants it.

I believe it is now safe to remove this origin check, especially since it can trivially be bypassed, it just is a nuisance.

+14 -36

0 comment

1 changed file

pr created time in 2 days

create barnchAgoric/agoric-sdk

branch : mfig-ignore-solo-web-origin

created branch time in 2 days

PullRequestReviewEvent

push eventAgoric/dapp-treasury

Michael FIG

commit sha 08cf135d313568f4537a73593b69f80c95feaa7e

fix(ui): rebrand and update Swap and HQ->Economy

view details

push time in 2 days

push eventAgoric/dapp-treasury

Sean Magin

commit sha 9fe1cdcc4a47b74562f0af6882a99a2d41b26b61

update readme steps

view details

Sean Magin

commit sha 6a983954f6bb29959d0307bbdd5da174faf320d0

update readme

view details

Sean Magin

commit sha da9984f3d164115f8de1271979fb6a436ccdb57d

cleanup Treasury component

view details

Kate Sills

commit sha e4eda0e330e40780fa3805d877663e9d3c162883

Merge pull request #30 from sean-magin/main Update README steps and Treasury component

view details

Kate Sills

commit sha cafe6814c9e7c667fb46acb532b82e2d6f34398f

chore: update for assetKind (#32)

view details

Kate Sills

commit sha 6e97fd1c90d004e18494da7c4803b3309691fdc3

chore: actually try to build in the build step (#33) * chore: actually try to build in the build step

view details

Kate Sills

commit sha 1496f3959444422a7a1f8a444918b08d8e7b447b

chore: include running use-on-chain-config.js in the build step. Only have one build step for simplicity. (#34)

view details

Kate Sills

commit sha b946a55e4b0ee616c26c7df38de6c87c4c55475e

chore: use node 14, not 12 (#35)

view details

Kris Kowal

commit sha 40aec35a36407d54e5b366eeb00d590e1f0d7734

refactor: Relieve dependency on path resolution helper (#37) In preparation for a breaking change to the signature of the helper.

view details

Michael FIG

commit sha 716d5d0b71fdcb78b0e82a624040c73912ebe18a

chore: update linting

view details

Michael FIG

commit sha c90d66d3d596e03ecb9f6fd6eeb00e55d52d0665

Merge pull request #38 from Agoric/mfig-eslint chore: update linting

view details

Michael FIG

commit sha e1817a67a9eeb97f87ac7996d38212ba3ceaef7e

fix(ui): rebrand and update Autoswap->Swap and HQ->Economy

view details

push time in 2 days

push eventAgoric/dapp-treasury

Michael FIG

commit sha 98c165baa1319921a800a6087537a9d42ee62e0c

fix: AmountMathKind -> AssetKind

view details

push time in 2 days