Skip to content

refactor(offchain): consume canonical BalanceTracker + MechMarketplace, bump OA 0.21.26#1005

Merged
DIvyaNautiyal07 merged 7 commits into
offchain-epicfrom
feat/consume-canonical-contracts-and-oa-0.21.26
Jul 6, 2026
Merged

refactor(offchain): consume canonical BalanceTracker + MechMarketplace, bump OA 0.21.26#1005
DIvyaNautiyal07 merged 7 commits into
offchain-epicfrom
feat/consume-canonical-contracts-and-oa-0.21.26

Conversation

@DIvyaNautiyal07

Copy link
Copy Markdown
Contributor

Summary

Follow-up to the mech-interact offchain PR series. mech v0.34.2-rc1 and open-autonomy v0.21.26 shipped the canonical contracts; drop the 3 slim duplicates and consume the canonicals as third_party.

Changes

Contract swaps (in packages.json + agents/trader/aea-config.yaml):

  • mech_marketplace — slim → open-autonomy 0.21.26 canonical (bafybeigrcnjaycggulxyx2tsjub4ssjij66d7nfzsavo6gd54hm7beliiu)
  • balance_tracker — NEW third_party (mech's token variant, extended with build_deposit_for_data; bafybeie7xvhpyztpixha7kjx6z6deyvvsk5er4xpdkpgqc65q552xpvi6e)
  • balance_tracker_fixed_price_native — slim → mech's canonical (bafybeibzobebmwsi3sd4a5ubrrbmhm6dqjh4fmxpqmzcycklk5vet3xqce)

Dropped: balance_tracker_fixed_price_token from packages.json + aea-config.yaml. mech-interact rewired to call mech's canonical balance_tracker with the token variant's methods.

Bumps:

  • mech-interact upstream_pin: v0.32.4-rc1v0.32.5-rc1
  • mech_interact_abci hash: → bafybeig3vt6yfncdydjyg2uzmhjv5nc62jjapi5ow7ht3mw2dwah7n3b64
  • open-autonomy 0.21.23 → 0.21.26, open-aea* 2.2.7 → 2.2.9 across pyproject.toml and every package YAML pinning the ledger plugin
  • uv.lock regenerated

Verification

  • uv lock clean
  • autonomy packages sync completes
  • autonomy packages lock --check green

Depends on

Marked draft until mech-interact tags v0.32.5-rc1.

🤖 Generated with Claude Code

DIvyaNautiyal07 and others added 5 commits July 6, 2026 14:15
…e, bump OA 0.21.26

Follow-up to the mech-interact offchain PR series. Mech v0.34.2-rc1
and open-autonomy v0.21.26 shipped the canonical contracts; drop the
3 slim duplicates that this branch was carrying and consume the
canonicals as third_party.

Contract swaps in packages.json + agents/trader/aea-config.yaml:
- valory/mech_marketplace: slim -> open-autonomy 0.21.26 canonical
- valory/balance_tracker: NEW third_party (mech's token variant,
  extended with build_deposit_for_data)
- valory/balance_tracker_fixed_price_native: slim -> mech's canonical

Dropped: valory/balance_tracker_fixed_price_token from packages.json
and aea-config.yaml. mech-interact rewired to call mech's canonical
balance_tracker with the token variant's methods.

Bumps:
- mech-interact upstream_pin: v0.32.4-rc1 -> v0.32.5-rc1
- mech_interact_abci hash: bafybeig3vt6yfncdydjyg2uzmhjv5nc62jjapi5ow7ht3mw2dwah7n3b64
- open-autonomy 0.21.23 -> 0.21.26, open-aea 2.2.7 -> 2.2.9 across
  pyproject.toml and all package YAMLs that pin the ledger plugin
- uv.lock regenerated

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…native dirs

Prior commit swapped the third_party hashes but the branch was
carrying pre-swap local files for both packages (only __init__.py,
contract.py, contract.yaml — no build/). CI's
'autonomy packages sync' then saw 'already present locally', kept
the stale-and-incomplete tree, and computed a hash that didn't
match the declared canonical hash:

  Error: Hashes for (contract, valory/mech_marketplace:0.1.0)
  does not match; Calculated: bafybeidpc6u6qi5c26...;
  Expected: bafybeigrcnjaycggulxyx2...

Removed both directories from tracking. balance_tracker was never
locally present. Autonomy sync now pulls all three canonicals
fresh from IPFS in CI.

Local `autonomy packages lock --check` clean after the delete +
resync.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tching hash

Downstream of valory-xyz/mech v0.34.2-rc2 (open-aea-ledger-ethereum
2.2.7 -> 2.2.9 in mech's own contract YAMLs) and mech-interact PR #99
follow-up commit republishing mech_interact_abci with the new mech
contract references. Bumps three hashes in packages.json + agents/
trader/aea-config.yaml:

- balance_tracker: bafybeie7xvhpy... -> bafybeiayyxl64... (mech v0.34.2-rc2)
- balance_tracker_fixed_price_native: bafybeibzobebm... -> bafybeihyaxqky... (mech v0.34.2-rc2)
- mech_interact_abci: bafybeickbhbvv... -> bafybeicjuaguc... (mech-interact republished)

Verification: autonomy packages lock --check green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Downstream of mech-interact release v0.32.4-rc2 which ships:
- the canonical-BalanceTracker refactor (offchain path calls the
  released mech contracts, not mech-interact's slim duplicates)
- OA 0.21.26 / open-aea 2.2.9 pins matching mech's own bump
- the review-round-2..5 fixes for the offchain executor

Bumps:
- pyproject.toml upstream_pins:
  valory-xyz/mech-interact@v0.32.5-rc1 -> @v0.32.4-rc2
- packages.json + trader aea-config.yaml:
  mech_interact_abci: bafybeicjuaguc... -> bafybeifwuwtsi...

Verification: autonomy packages lock --check green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eases

Rebased the OA 0.21.26 canonicals branch onto origin/offchain-epic (was
targeting main) and bumped every [tool.tomte] upstream_pin to the
freshly-released tag that ships against open-autonomy 0.21.26 /
open-aea 2.2.9:

- valory-xyz/genai:          v7.2.1        -> v7.2.2
- valory-xyz/funds-manager:  v3.1.1        -> v3.1.2
- valory-xyz/omen-protocol:  v0.1.1        -> v0.1.3
- valory-xyz/mech: (added)   v0.34.2-rc2   (source for balance_tracker*)
- valory-xyz/kv-store:       v0.6.0        -> feat/bump-open-aea-2.2.9-open-autonomy-0.21.26
                                              (PR #17 head, tag pending)

mech-interact stays at v0.32.4-rc2. Third-party hashes in packages.json
were already at the rc2 values; `autonomy packages sync` + `lock` clean.

Verified:
  - autonomy packages lock --check           OK
  - tomte tox -e black-check isort-check mypy flake8 darglint  OK
  - tomte tox -e check-third-party-hashes    OK (7/8 upstreams reachable;
      kv-store branch ref not fetchable via the tag-only path, tolerated)
  - autonomy push-all                        OK

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@DIvyaNautiyal07 DIvyaNautiyal07 force-pushed the feat/consume-canonical-contracts-and-oa-0.21.26 branch from a7f3c4f to ef0c74e Compare July 6, 2026 08:52
@DIvyaNautiyal07 DIvyaNautiyal07 marked this pull request as ready for review July 6, 2026 09:02
kv-store PR #17 tagged v0.7.1 (contains OA 0.21.26 / open-aea 2.2.9
pins matching the fleet). Replace the pre-release branch-ref pin
in [tool.tomte] upstream_pins with the tag so
`tomte tox -e check-third-party-hashes` resolves against a stable
tag instead of a moving branch head.

Verification: autonomy packages lock --check green; tomte tox -e
check-third-party-hashes green (all 53 third-party hashes
consistent with 8 reachable upstreams).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@OjusWiZard OjusWiZard left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Automated multi-agent review — 3 findings, all about files the version bump missed (anchored to nearest changed lines since the affected files aren't in the diff).

Comment thread pyproject.toml
Comment thread pyproject.toml
Comment thread packages/packages.json
…cals

Review missed three pin sites outside the diffed packages:

- .github/workflows/release.yaml: bumped 3 valory/open-autonomy-user
  docker image tags 0.21.23 -> 0.21.26 (lines 18, 55, 98) and the
  two `autonomy build-image -e open-autonomy==0.21.23` args (lines
  68, 111). Without the bump a release cut from this branch would
  build images on the old toolchain while packages inside expect
  0.21.26.

- tox.ini:77: `[Authorized Packages]` liccheck entry
  open-autonomy 0.21.23 -> 0.21.26. `tomte tox -e liccheck` (via
  .github/workflows/common_checks.yaml:67) matches this as an
  exact-version spec, so the mismatch would fail CI.

- .gitignore: added the three newly third-party contracts
  (mech_marketplace / balance_tracker /
  balance_tracker_fixed_price_native) alongside the existing
  ignored siblings so they don't reappear as untracked dirs after
  every `autonomy packages sync`.

Verification: autonomy packages lock --check green (text/CI-config
only, no package fingerprint changes).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@DIvyaNautiyal07 DIvyaNautiyal07 merged commit 1570620 into offchain-epic Jul 6, 2026
23 checks passed
@DIvyaNautiyal07 DIvyaNautiyal07 deleted the feat/consume-canonical-contracts-and-oa-0.21.26 branch July 6, 2026 11:52

@bennyjo bennyjo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Second review: verified clean end-to-end. All swapped hashes in packages.json match the pinned upstream tags byte-for-byte (mech v0.34.2-rc2, mech-interact v0.32.4-rc2, open-autonomy v0.21.26; mech_marketplace's CID is identical across all three sources), no dangling references to the deleted contract wrappers, and the deposit-redirect checks from the deleted slim wrappers survive fail-closed in the pinned mech-interact skill (402 payTo validated against the on-chain tracker registry, asset against the tracker's token(), refusing to deposit on any read failure or mismatch). Open-autonomy audit-fsm/audit-resilience ran clean, and CI is fully green including lock_check on three OSes.

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.

3 participants