Releases: tempoxyz/pympp
Releases · tempoxyz/pympp
v0.5.4
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_bindingto 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
Patch Changes
- Defaulted
chain_idto 4217 (mainnet) in thetempo()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-pythonconstraint from>=3.12to>=3.11, updating tooling targets accordingly, and replacing PEP 695 generic syntax withTypeVarfor compatibility. (by @brendanryan, #108)
Full Changelog: v0.5.2...v0.5.3
v0.5.2
Patch Changes
- Fixed optional dependency handling by converting eager imports in
mpp.extensions.mcpandmpp.methods.tempoto lazy__getattr__-based loading, so importing these modules without their extras installed no longer raisesImportErrorat import time. Added clear install hint messages when optional attrs are accessed without the required extras, and addedeth-account,eth-hash,attrs, andrlpas declared dependencies for the[tempo]extra. (by @brendanryan, #105)
Full Changelog: v0.5.0...v0.5.2
v0.5.0
Minor Changes
- Added access key signing support for Tempo transactions. When
root_accountis set, nonce and gas estimation now use the root account (smart wallet) address, transactions are signed viasign_tx_access_key, and the credential source reflects the root account rather than the access key address. (by @brendanryan, #103) - Added
RedisStoreandSQLiteStorebackends tompp.storesfor replay protection, with optional extras (pympp[redis],pympp[sqlite]). Addedstoreparameter toMpp.__init__andMpp.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 missingexpireschallenge parameter are now rejected instead of silently allowed through. (by @brendanryan, #103)
Full Changelog: v0.4.2...v0.5.0
v0.4.2
Patch Changes
- Added atomic
put_if_absentmethod toStoreprotocol andMemoryStore, replacing the racyget()/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
Patch Changes
- Updated the testnet escrow contract address to
0xe1c4d3dce17bc111181ddf716f75bae49e61a336. (by @brendanryan, #90) - Updated
examples/api-server/README.mdto replace references to the externalpurltool with thepymppclient (python -m mpp.fetch) and corrected thesecret_keydocumentation to reflect that it is read from theMPP_SECRET_KEYenv var rather than auto-generated. (by @brendanryan, #90) - Added a pluggable
Storeinterface andMemoryStoreimplementation for transaction hash replay protection inChargeIntent. When a store is provided, verified tx hashes are recorded and subsequent attempts to reuse the same hash are rejected with aVerificationError. (by @brendanryan, #90) - Updated mainnet escrow contract address to
0x33b901018174DDabE4841042ab76ba85D4e24f25. (by @brendanryan, #90) - Raised
DEFAULT_GAS_LIMITfrom 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
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.0by @github-actions[bot] in #75
New Contributors
- @legion2002 made their first contribution in #77
Full Changelog: https://github.com/tempoxyz/pympp/compare/pympp@0.3.0...pympp@0.4.0
pympp@0.3.0
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.0by @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
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.0by @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
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.5by @github-actions[bot] in #59
Full Changelog: https://github.com/tempoxyz/pympp/compare/pympp@0.1.4...pympp@0.1.5