Skip to content

adding ymax-alpha-1 proposals #260

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

amessbee
Copy link

Closes #258

adopt a passed proposal

When a proposal passes on agoric-3 Mainnet, it should be included in the history that this synthetic image tracks.

  • before this PR, change any fromTag using latest (such as a3p-integration) to use a fixed version (otherwise they will fail when this PR changes latest and they pick it up)
  • before merging this PR, include a link to a PR that adopts its fromTag use-${proposalName} (where proposalName is the part of the agoric-3-proposals proposal directory name after the colon, cf. a3p-integration/proposals)
  • after this PR merges, merge that other PR

image building process

This should not affect other repos but be prepared that it might.

@agoric/synthetic-chain library

These need to be published to be consumed in other apps. It's not yet on 1.0 so breaking changes are allowed, but please don't make them gratuitously.

  • indicate in the PR description when you expect these to be published and by whom (it's currently a manual process)

tooling improvements

As long as it passes CI it should be fine.

Copy link

semanticdiff-com bot commented Jul 18, 2025

Review changes with  SemanticDiff

Changed Files
File Status
  .gitignore Unsupported file format
  proposals/100:ymax-alpha1/.gitignore Unsupported file format
  proposals/100:ymax-alpha1/.yarnrc.yml  0% smaller
  proposals/100:ymax-alpha1/Makefile Unsupported file format
  proposals/100:ymax-alpha1/README.md Unsupported file format
  proposals/100:ymax-alpha1/eval.sh Unsupported file format
  proposals/100:ymax-alpha1/package.json  0% smaller
  proposals/100:ymax-alpha1/submission/b1-06934dae7861f141432664315f14def6ca9dc2790dba3fab70246ae1d1cf4f9bbe4688406eb9b8e60153da16a89af4d3105f17d6a40873d836f74051c7c9e954.json  0% smaller
  proposals/100:ymax-alpha1/submission/b1-1cfec33f0aea5488aefbbe6b861bf5211081ea139f1bc8bd03540c7b35d6dcb7342b5be675e183cbf2b9d3cd0f9098a2a5e4cf349ce56f11df33835d26d938d7.json  0% smaller
  proposals/100:ymax-alpha1/submission/b1-2127a1e2f296c89c04280272f3e110f4e4b56d98804200d001c9e49d9926e7d3130c81995ab3976a5962cd2199abeb2915a6c458c8700a2116bc6c01639e1f73.json  0% smaller
  proposals/100:ymax-alpha1/submission/b1-d217fb17508ebe5c94e9ab432a9d6f5aea5fba810f7e5d7cc1785a6235e378e8eb117199624eb2f0061fc39126150d6f833617d0c2c26a979b36b0bb81d88a61.json  0% smaller
  proposals/100:ymax-alpha1/submission/eval-access-token-setup-permit.json  0% smaller
  proposals/100:ymax-alpha1/submission/eval-access-token-setup.js  0% smaller
  proposals/100:ymax-alpha1/submission/eval-chain-info-permit.json  0% smaller
  proposals/100:ymax-alpha1/submission/eval-chain-info.js  0% smaller
  proposals/100:ymax-alpha1/submission/eval-ymax0-permit.json  0% smaller
  proposals/100:ymax-alpha1/submission/eval-ymax0.js  0% smaller
  proposals/100:ymax-alpha1/test.sh Unsupported file format
  proposals/100:ymax-alpha1/test/deploy.test.js  0% smaller
  proposals/100:ymax-alpha1/tx.json  0% smaller
  proposals/100:ymax-alpha1/yarn.lock Unsupported file format
  proposals/101:ymax-usdc-resolve/.gitignore Unsupported file format
  proposals/101:ymax-usdc-resolve/.yarnrc.yml  0% smaller
  proposals/101:ymax-usdc-resolve/Makefile Unsupported file format
  proposals/101:ymax-usdc-resolve/README.md Unsupported file format
  proposals/101:ymax-usdc-resolve/eval.sh Unsupported file format
  proposals/101:ymax-usdc-resolve/package.json  0% smaller
  proposals/101:ymax-usdc-resolve/submission/b1-81c0224cb5466dfa9b5d14bc94d19ed1b0ca7aa47d22dadd0f538f14a59d70a596aa37850ec89aba796873f912708bd6144a91693e643af7a98602c70fbe052f.json  0% smaller
  proposals/101:ymax-usdc-resolve/submission/eval-usdc-resolve-permit.json  0% smaller
  proposals/101:ymax-usdc-resolve/submission/eval-usdc-resolve.js  0% smaller
  proposals/101:ymax-usdc-resolve/test.sh Unsupported file format
  proposals/101:ymax-usdc-resolve/test/deploy.test.js  0% smaller
  proposals/101:ymax-usdc-resolve/tx.json  0% smaller
  proposals/101:ymax-usdc-resolve/yarn.lock Unsupported file format

Copy link

changeset-bot bot commented Jul 18, 2025

⚠️ No Changeset found

Latest commit: d09489c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@amessbee amessbee changed the title adding ymax alpha-1 proposals adding ymax-alpha-1 proposals Jul 18, 2025
@amessbee amessbee requested a review from mujahidkay July 18, 2025 10:42
@amessbee
Copy link
Author

@mujahidkay even though this is still a draft, and can you review and provide feedback. Thanks.

@amessbee amessbee force-pushed the ms/ymax-alpha1-proposals branch 2 times, most recently from 4df8e4b to 6580a0e Compare July 18, 2025 16:38
};

// This test is skipped because it requires USDC which is not available until 101 passes.
test.skip('ymax0 is in agoricNames.instance', async t => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't skip the test.
Change the test to show that ymax0 is not in vstorage.

Also test that chain-info and access-token worked, i.e. that they put something in vstorage. As in multichain-testing

Checking for consistency of the poc brand between vbankAsset and brand is particularly helpful

@turadg
Copy link
Member

turadg commented Jul 23, 2025

Since #84 I don't think the Makefile is necessary.

scripts/add-proposal.ts 100 ymax-alpha1

If the files aren't in the cache it'l prompt you to fetch them so you might have to also do,

scripts/fetch-all-bundles.ts
rm -rf proposals/100*
scripts/add-proposal.ts 100 ymax-alpha1

Copy link
Member

@dckc dckc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any critical problems, so I was going to approve, but I realize: this includes 101, which hasn't passed yet.

So we have to either wait or split 101 out to its own PR.

const bodyContent = parsedValue.body.slice(1); // Remove '#' prefix
const brandEntries = JSON.parse(bodyContent);

const poc26Entry = brandEntries.find(([name]) => name === 'PoC26');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that since we know they're entries of a keyed collection, this .find(...) is equivalent to fromEntries(brandEntries).PoC26

The steps to parse a vstorage value... repeating them makes it hard to tell whether each repetition is doing the same thing as the others.

Consider using these utilities from ymax.test.js in the a3p-integration test:

const getCellValues = ({ value }) => {
  return JSON.parse(value).values;
};

const getCapDataStructure = cell => {
  const { body, slots } = JSON.parse(cell);
  const structure = JSON.parse(body.replace(/^#/, ''));
  return { structure, slots };
};

Then you can use something like this to get the brand or vbankAsset collection:

  const instance = Object.fromEntries(
    getCapDataStructure(getCellValues(instanceRaw).at(-1)).structure,
  );

brandKeys.forEach((key, index) => {
console.log(`${(index + 1).toString().padStart(2, ' ')}. ${key}`);
});
console.log(`\nTotal brands: ${brandKeys.length}`);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why console.log rather than t.log?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.


t.false(
instanceNames.includes('ymax0'),
'ymax0 should not be in vstorage yet',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"should not" is a little strong - it should be there; maybe "no ymax0 instance in vstorage yet" or some such.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

t.log('vBank board ID:', vBankBoardId);

t.is(brandBoardId, vBankBoardId, 'PoC26 brand board IDs should match');
} catch (error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why catch errors?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

@@ -0,0 +1,242 @@
// @ts-check
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see anything wrong with this test, but it would be easier to be confident that it's right if it were more concise.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bit concise now after using getCapDataStructure :)

@@ -0,0 +1,47 @@
# This Makefile is here to help you find out what went on the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did you end up using add-proposal.ts? if so, then you might as well get rid of the Makefile.

And I'm not inclined to check tx.json, so I have a mild preference for removing it from this PR. (not critical)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using Makefile for now as I had already done what add-proposal.ts is supposed to do. Will be handy next time.

Comment on lines 14 to 23
echo "[$PROPOSAL] Checking if ymax0 instance is registered in agoricNames"
AGORIC_NAMES=$(agd q vstorage data published.agoricNames.instance -o json)
echo "$AGORIC_NAMES"

if echo "$AGORIC_NAMES" | grep -q "ymax0"; then
echo "[$PROPOSAL] ymax0 found in agoricNames"
else
echo "[$PROPOSAL] ERROR: ymax0 not found in agoricNames"
exit 1
fi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a test; i.e. something that belongs in test.sh.

It also looks redundant w.r.t. 101...deploy.test.js

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, redundant and removed now.

@@ -0,0 +1,6 @@
# CoreEvalProposal to deploy USDC resolve to fix ymax-alpha1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can't land this until 101 passes

We can either

  • wait
  • move the 101 stuff to a separate PR and land the 100 stuff

important

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. I don't have a preference. Let me know if you do.

};

// Retry up to 6 minutes (block time ~6s)
const maxTries = 60;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have to touch old proposals? Isn't the way their tests run fixed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason, this was failing, and I added a wait, and it passed CI. But looks like it's a depot issue. Partly discussed in slack thread.

amessbee added 2 commits July 24, 2025 16:46
wip: updates

chore: try a bunch for vstorage

chore: try a bunch for vstorage

chore: test ymax0 instance after usdc resolves

chore: adding more tests with agd

fix: lint

chore: update Makefil to get tx.json
@amessbee amessbee force-pushed the ms/ymax-alpha1-proposals branch from 6d323b8 to d09489c Compare July 24, 2025 11:48
@amessbee amessbee marked this pull request as ready for review July 24, 2025 16:57
@dckc dckc self-requested a review July 25, 2025 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

add YMax alpha 1 (proposal 100) to a3p
3 participants