Releases: tempoxyz/pympp
Releases · tempoxyz/pympp
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
pympp@0.1.4
What's Changed
- feat(tempo): add fee sponsorship via tempo_sendTransaction by @brendanjryan in #1
- refactor: use pytempo for TempoTransaction instead of manual RLP encoding by @brendanjryan in #2
- refactor: use pytempo exclusively for sponsored-only transactions by @brendanjryan in #3
- feat: migrate to pytempo typed API by @brendanjryan in #4
- Fleshes out examples by @brendanjryan in #5
- fix: use standard eth_getTransactionCount and set fee_token by @brendanjryan in #8
- feat: add HMAC-SHA256 challenge ID generation by @brendanjryan in #10
- fix: return 402 for failed receipts per IETF spec by @brendanjryan in #11
- fix: tempo payment method parity with TypeScript SDK by @brendanjryan in #12
- fix: update credential format to match new spec with ChallengeEcho by @brendanjryan in #9
- spec: remove failed receipt state, return 402 for failures by @gakonst in #13
- fix: client robustness improvements by @brendanjryan in #14
- feat: mpay TypeScript SDK parity by @brendanjryan in #15
- feat: add parseUnits syntactic sugar for human-readable amounts by @brendanjryan in #17
- examples: add @requires_payment decorator endpoint to api-server by @brendanjryan in #18
- feat: simplify server API — Mpay.create(), flat charge(amount=), smart defaults by @brendanjryan in #19
- feat: add stream payment intent with payment channels by @brendanjryan in #20
- Add PyPI publish workflow with trusted publishing by @brendanjryan in #23
- chore: initial release by @brendanjryan in #24
- feat: make intents explicit in tempo() — remove implicit ChargeIntent default by @brendanjryan in #22
- fix: use correct changelogs action ref by @brendanjryan in #25
- fix: add write permissions to release workflow by @brendanjryan in #26
- chore: release
mpay@0.1.1by @github-actions[bot] in #27 - fix: add release environment and permissions to release workflow by @brendanjryan in #28
- refactor: switch payment token from AlphaUSD to PathUSD by @gakonst in #29
- chore: use published pytempo from PyPI by @brendanjryan in #31
- refactor: remove streaming support by @brendanjryan in #32
- feat: auto-generate attribution memo for MPP transactions by @brendanjryan in #34
- rename: mpay → pympp by @brendanjryan in #35
- Tighten README to match mppx style by @brendanjryan in #36
- rename @requires_payment decorator to @pay by @brendanjryan in #37
- feat: align with TypeScript SDK and spec by @brendanjryan in #33
- fix: HMAC-bound challenge IDs for MCP transport + add description/externalId to ChargeRequest by @brendanjryan in #38
- feat: mandate JCS (RFC 8785) for canonical JSON serialization of request parameter by @brendanjryan in #39
- fix: include empty fields in HMAC challenge ID computation by @brendanjryan in #40
- fix: reject duplicate params and require method in receipts by @brendanjryan in #41
- docs: align README format with mppx by @brendanjryan in #42
- chore: release
pympp@0.1.0by @github-actions[bot] in #30 - fix: persist checkout credentials for publish workflow by @brendanjryan in #43
- chore: test publish pipeline by @brendanjryan in #44
- chore: release
pympp@0.1.1by @github-actions[bot] in #45 - fix: use Python 3.12 in publish workflow by @brendanjryan in #46
- chore: release
pympp@0.1.2by @github-actions[bot] in #47 - fix: correct transferWithMemo selector, event topic, and gas estimation by @brendanjryan in #50
- chore: use changelogs python-version input by @brendanjryan in #52
- chore: release
pympp@0.1.3by @github-actions[bot] in #51 - fix: client imports no longer pull in server dependencies by @brendanjryan in #53
- fix: sort imports to satisfy ruff I001 by @brendanjryan in #55
- chore: release
pympp@0.1.4by @github-actions[bot] in #54 - debug: test twine upload directly by @brendanjryan in #56
New Contributors
- @brendanjryan made their first contribution in #1
- @gakonst made their first contribution in #13
- @github-actions[bot] made their first contribution in #27
Full Changelog: https://github.com/tempoxyz/pympp/commits/pympp@0.1.4