Skip to content

Releases: tempoxyz/pympp

v0.5.4

03 Apr 05:30
38101df

Choose a tag to compare

Patch Changes

  • Fixed Tempo attribution memos to be deterministically bound to challenge IDs using a keccak256-derived nonce instead of random bytes. Added verify_challenge_binding to enforce that verified payments carry a memo matching the specific challenge being redeemed. (by @brendanryan, #111)

Full Changelog: v0.5.3...v0.5.4

v0.5.3

01 Apr 19:57
ba52420

Choose a tag to compare

Patch Changes

  • Defaulted chain_id to 4217 (mainnet) in the tempo() function, removing the need to pass it explicitly. Updated docs and example code accordingly. (by @brendanryan, #108)
  • Added Python 3.11 support by lowering the requires-python constraint from >=3.12 to >=3.11, updating tooling targets accordingly, and replacing PEP 695 generic syntax with TypeVar for compatibility. (by @brendanryan, #108)

Full Changelog: v0.5.2...v0.5.3

v0.5.2

01 Apr 04:54
352e770

Choose a tag to compare

Patch Changes

  • Fixed optional dependency handling by converting eager imports in mpp.extensions.mcp and mpp.methods.tempo to lazy __getattr__-based loading, so importing these modules without their extras installed no longer raises ImportError at import time. Added clear install hint messages when optional attrs are accessed without the required extras, and added eth-account, eth-hash, attrs, and rlp as declared dependencies for the [tempo] extra. (by @brendanryan, #105)

Full Changelog: v0.5.0...v0.5.2

v0.5.0

31 Mar 04:02
517e204

Choose a tag to compare

Minor Changes

  • Added access key signing support for Tempo transactions. When root_account is set, nonce and gas estimation now use the root account (smart wallet) address, transactions are signed via sign_tx_access_key, and the credential source reflects the root account rather than the access key address. (by @brendanryan, #103)
  • Added RedisStore and SQLiteStore backends to mpp.stores for replay protection, with optional extras (pympp[redis], pympp[sqlite]). Added store parameter to Mpp.__init__ and Mpp.create() that automatically wires the store into intents supporting replay protection. (by @brendanryan, #103)

Patch Changes

  • Raised test coverage by adding tests for edge cases across charge, parsing, server, and store modules, and updated CI to generate and upload XML/HTML coverage reports for Python 3.12. (by @brendanryan, #103)
  • Fixed fail-closed expiry enforcement in ChargeIntent.verify: requests with a missing expires challenge parameter are now rejected instead of silently allowed through. (by @brendanryan, #103)

Full Changelog: v0.4.2...v0.5.0

v0.4.2

20 Mar 22:02
84e7007

Choose a tag to compare

Patch Changes

  • Added atomic put_if_absent method to Store protocol and MemoryStore, replacing the racy get()/put() pattern for charge replay protection. Normalized transaction hashes to lowercase before dedup to prevent mixed-case bypasses. (by @brendanryan, #91)

Full Changelog: v0.4.1...v0.4.2

v0.4.1

18 Mar 23:26
986211f

Choose a tag to compare

Patch Changes

  • Updated the testnet escrow contract address to 0xe1c4d3dce17bc111181ddf716f75bae49e61a336. (by @brendanryan, #90)
  • Updated examples/api-server/README.md to replace references to the external purl tool with the pympp client (python -m mpp.fetch) and corrected the secret_key documentation to reflect that it is read from the MPP_SECRET_KEY env var rather than auto-generated. (by @brendanryan, #90)
  • Added a pluggable Store interface and MemoryStore implementation for transaction hash replay protection in ChargeIntent. When a store is provided, verified tx hashes are recorded and subsequent attempts to reuse the same hash are rejected with a VerificationError. (by @brendanryan, #90)
  • Updated mainnet escrow contract address to 0x33b901018174DDabE4841042ab76ba85D4e24f25. (by @brendanryan, #90)
  • Raised DEFAULT_GAS_LIMIT from 100,000 to 1,000,000 for Tempo AA (type-0x76) transactions to account for their higher intrinsic gas cost (~270k for a single TIP-20 transfer). (by @brendanryan, #90)

Full Changelog: https://github.com/tempoxyz/pympp/commits/v0.4.1

pympp@0.4.0

12 Mar 20:39
fd8d450

Choose a tag to compare

What's Changed

  • tightens up pympp readme by @brendanjryan in #74
  • chore: update mpp.sh → mpp.dev by @brendanjryan in #76
  • chore(ci): add cyclops PR audit workflow by @legion2002 in #77
  • fix: address MPP audit findings by @brendanjryan in #79
  • fix: fail-closed expiry enforcement and cross-endpoint replay prevention by @brendanjryan in #78
  • refactor(pympp): wire method transform_request in Mpp helpers by @brendanjryan in #80
  • refactor: consolidate expires into challenge auth-param only by @brendanjryan in #82
  • fix(server): require explicit secret key and preserve wrapper metadata by @brendanjryan in #81
  • chore: release pympp@0.4.0 by @github-actions[bot] in #75

New Contributors

Full Changelog: https://github.com/tempoxyz/pympp/compare/pympp@0.3.0...pympp@0.4.0

pympp@0.3.0

23 Feb 04:24
d1a99e2

Choose a tag to compare

What's Changed

  • ci: add CI Gate job for branch protection by @brendanjryan in #69
  • test: add additional test coverage by @brendanjryan in #66
  • ci: add pyright, coverage, package validation, concurrency by @brendanjryan in #73
  • fix: preserve key_authorization through 0x78 fee payer envelope roundtrip by @brendanjryan in #70
  • chore: release pympp@0.3.0 by @github-actions[bot] in #71

Full Changelog: https://github.com/tempoxyz/pympp/compare/pympp@0.2.0...pympp@0.3.0

pympp@0.2.0

20 Feb 18:18
c673c7e

Choose a tag to compare

What's Changed

  • feat: add FLY_APP_NAME, HEROKU_APP_NAME, WEBSITE_HOSTNAME to realm detection by @brendanjryan in #63
  • feat: implement full fee payer support by @brendanjryan in #62
  • feat: add integration tests against real Tempo node by @brendanjryan in #60
  • feat: default currency to USDC on mainnet, pathUSD on testnet by @brendanjryan in #67
  • feat: add opaque/meta field for server-defined correlation data by @brendanjryan in #68
  • chore: release pympp@0.2.0 by @github-actions[bot] in #65

Full Changelog: https://github.com/tempoxyz/pympp/compare/pympp@0.1.5...pympp@0.2.0

pympp@0.1.5

18 Feb 01:18
483a945

Choose a tag to compare

What's Changed

  • chore: remove release environment and debug step by @brendanjryan in #57
  • chore: test release pipeline e2e by @brendanjryan in #58
  • chore: release pympp@0.1.5 by @github-actions[bot] in #59

Full Changelog: https://github.com/tempoxyz/pympp/compare/pympp@0.1.4...pympp@0.1.5