From 1545e48f41c5f3feab4027d59c0a9796444338cc Mon Sep 17 00:00:00 2001 From: slokh Date: Tue, 17 Mar 2026 10:36:01 -0700 Subject: [PATCH] chore: update moderato escrow contract address Update testnet escrow contract to 0xe1c4d3dce17bc111181ddf716f75bae49e61a336. Replace hardcoded addresses in tests with imports from defaults. Co-authored-by: Amp Amp-Thread-ID: https://ampcode.com/threads/T-019cfcd7-f22b-70e2-80c0-cbf26fafc32b --- .changeset/update-moderato-escrow.md | 5 +++++ src/tempo/client/ChannelOps.test.ts | 6 +++++- src/tempo/client/Session.test.ts | 3 ++- src/tempo/internal/defaults.test.ts | 2 +- src/tempo/internal/defaults.ts | 2 +- src/tempo/server/Session.test.ts | 6 +++++- src/tempo/server/Sse.test.ts | 3 ++- src/tempo/server/internal/transport.test.ts | 3 ++- src/tempo/session/ChannelStore.test.ts | 3 ++- src/tempo/session/Sse.test.ts | 3 ++- 10 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 .changeset/update-moderato-escrow.md diff --git a/.changeset/update-moderato-escrow.md b/.changeset/update-moderato-escrow.md new file mode 100644 index 00000000..35b0308c --- /dev/null +++ b/.changeset/update-moderato-escrow.md @@ -0,0 +1,5 @@ +--- +"mppx": patch +--- + +Updated Moderato (testnet) escrow contract address to `0xe1c4d3dce17bc111181ddf716f75bae49e61a336`. diff --git a/src/tempo/client/ChannelOps.test.ts b/src/tempo/client/ChannelOps.test.ts index 86080fb9..e93a7d89 100644 --- a/src/tempo/client/ChannelOps.test.ts +++ b/src/tempo/client/ChannelOps.test.ts @@ -7,6 +7,10 @@ import { deployEscrow, openChannel } from '~test/tempo/session.js' import { accounts, asset, chain, client, fundAccount, http } from '~test/tempo/viem.js' import type { Challenge } from '../../Challenge.js' import * as Credential from '../../Credential.js' +import { + chainId as chainIdDefaults, + escrowContract as escrowContractDefaults, +} from '../internal/defaults.js' import { verifyVoucher } from '../session/Voucher.js' import { createClosePayload, @@ -17,7 +21,7 @@ import { tryRecoverChannel, } from './ChannelOps.js' -const escrow42431 = '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address +const escrow42431 = escrowContractDefaults[chainIdDefaults.testnet] as Address const localAccount = privateKeyToAccount( '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', diff --git a/src/tempo/client/Session.test.ts b/src/tempo/client/Session.test.ts index fa0fa069..d59e0dcb 100644 --- a/src/tempo/client/Session.test.ts +++ b/src/tempo/client/Session.test.ts @@ -6,6 +6,7 @@ import { deployEscrow, openChannel } from '~test/tempo/session.js' import { accounts, asset, chain, client, fundAccount } from '~test/tempo/viem.js' import * as Challenge from '../../Challenge.js' import * as Credential from '../../Credential.js' +import { chainId, escrowContract as escrowContractDefaults } from '../internal/defaults.js' import type { SessionCredentialPayload } from '../session/Types.js' import { session } from './Session.js' @@ -22,7 +23,7 @@ const pureClient = createClient({ transport: http('http://127.0.0.1'), }) -const escrowAddress = '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address +const escrowAddress = escrowContractDefaults[chainId.testnet] as Address const recipient = '0x2222222222222222222222222222222222222222' as Address const currency = '0x3333333333333333333333333333333333333333' as Address diff --git a/src/tempo/internal/defaults.test.ts b/src/tempo/internal/defaults.test.ts index 9e6b730b..d1d38c84 100644 --- a/src/tempo/internal/defaults.test.ts +++ b/src/tempo/internal/defaults.test.ts @@ -53,7 +53,7 @@ describe('escrowContract', () => { }) test('testnet escrow contract', () => { - expect(escrowContract[chainId.testnet]).toBe('0x542831e3E4Ace07559b7C8787395f4Fb99F70787') + expect(escrowContract[chainId.testnet]).toBe('0xe1c4d3dce17bc111181ddf716f75bae49e61a336') }) }) diff --git a/src/tempo/internal/defaults.ts b/src/tempo/internal/defaults.ts index 7c1c1d81..7f095ad4 100644 --- a/src/tempo/internal/defaults.ts +++ b/src/tempo/internal/defaults.ts @@ -32,7 +32,7 @@ export const decimals = 6 /** Default payment-channel escrow contract addresses per chain. */ export const escrowContract = { [chainId.mainnet]: '0x33b901018174DDabE4841042ab76ba85D4e24f25', - [chainId.testnet]: '0x542831e3E4Ace07559b7C8787395f4Fb99F70787', + [chainId.testnet]: '0xe1c4d3dce17bc111181ddf716f75bae49e61a336', } as const satisfies Record /** Default RPC URLs for each Tempo chain. */ diff --git a/src/tempo/server/Session.test.ts b/src/tempo/server/Session.test.ts index 294b6236..7f5b686b 100644 --- a/src/tempo/server/Session.test.ts +++ b/src/tempo/server/Session.test.ts @@ -18,6 +18,10 @@ import { InvalidSignatureError, } from '../../Errors.js' import * as Store from '../../Store.js' +import { + chainId as chainIdDefaults, + escrowContract as escrowContractDefaults, +} from '../internal/defaults.js' import type * as Methods from '../Methods.js' import * as ChannelStore from '../session/ChannelStore.js' import type { SessionReceipt } from '../session/Types.js' @@ -1309,7 +1313,7 @@ describe('monotonicity and TOCTOU (unit tests)', () => { token: '0x0000000000000000000000000000000000000003' as Address, authorizedSigner: '0x0000000000000000000000000000000000000004' as Address, chainId: 42431, - escrowContract: '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address, + escrowContract: escrowContractDefaults[chainIdDefaults.testnet] as Address, deposit: 10000000n, settledOnChain: 0n, highestVoucherAmount: 5000000n, diff --git a/src/tempo/server/Sse.test.ts b/src/tempo/server/Sse.test.ts index 159f547f..a4a25116 100644 --- a/src/tempo/server/Sse.test.ts +++ b/src/tempo/server/Sse.test.ts @@ -1,5 +1,6 @@ import type { Address, Hex } from 'viem' import { describe, expect, test } from 'vitest' +import { chainId, escrowContract as escrowContractDefaults } from '../internal/defaults.js' import type * as ChannelStore from '../session/ChannelStore.js' import { serve, toResponse } from '../session/Sse.js' @@ -33,7 +34,7 @@ function seedChannel( token: '0x0000000000000000000000000000000000000003' as Address, authorizedSigner: '0x0000000000000000000000000000000000000004' as Address, chainId: 42431, - escrowContract: '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address, + escrowContract: escrowContractDefaults[chainId.testnet] as Address, deposit: balance, settledOnChain: 0n, highestVoucherAmount: balance, diff --git a/src/tempo/server/internal/transport.test.ts b/src/tempo/server/internal/transport.test.ts index a6e2c477..06bfb5f8 100644 --- a/src/tempo/server/internal/transport.test.ts +++ b/src/tempo/server/internal/transport.test.ts @@ -2,6 +2,7 @@ import { Challenge, Credential } from 'mppx' import type { Address, Hex } from 'viem' import { describe, expect, test } from 'vitest' import * as Store from '../../../Store.js' +import { chainId, escrowContract as escrowContractDefaults } from '../../internal/defaults.js' import * as ChannelStore from '../../session/ChannelStore.js' import { sse } from './transport.js' @@ -23,7 +24,7 @@ function seedChannel( token: '0x0000000000000000000000000000000000000003' as Address, authorizedSigner: '0x0000000000000000000000000000000000000004' as Address, chainId: 42431, - escrowContract: '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address, + escrowContract: escrowContractDefaults[chainId.testnet] as Address, deposit: balance, settledOnChain: 0n, highestVoucherAmount: balance, diff --git a/src/tempo/session/ChannelStore.test.ts b/src/tempo/session/ChannelStore.test.ts index 5459bb1a..e911c58f 100644 --- a/src/tempo/session/ChannelStore.test.ts +++ b/src/tempo/session/ChannelStore.test.ts @@ -1,6 +1,7 @@ import type { Address, Hex } from 'viem' import { describe, expect, test } from 'vitest' import * as Store from '../../Store.js' +import { chainId, escrowContract as escrowContractDefaults } from '../internal/defaults.js' import * as ChannelStore from './ChannelStore.js' const channelId = '0x0000000000000000000000000000000000000000000000000000000000000001' as Hex @@ -14,7 +15,7 @@ function makeChannel(overrides?: Partial): ChannelStore.Stat token: '0x0000000000000000000000000000000000000003' as Address, authorizedSigner: '0x0000000000000000000000000000000000000004' as Address, chainId: 42431, - escrowContract: '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address, + escrowContract: escrowContractDefaults[chainId.testnet] as Address, deposit: 10_000_000n, settledOnChain: 0n, highestVoucherAmount: 10_000_000n, diff --git a/src/tempo/session/Sse.test.ts b/src/tempo/session/Sse.test.ts index 1960a317..eefd2179 100644 --- a/src/tempo/session/Sse.test.ts +++ b/src/tempo/session/Sse.test.ts @@ -1,5 +1,6 @@ import type { Address, Hex } from 'viem' import { describe, expect, test } from 'vitest' +import { chainId, escrowContract as escrowContractDefaults } from '../internal/defaults.js' import type * as ChannelStore from './ChannelStore.js' import { formatNeedVoucherEvent, formatReceiptEvent, parseEvent, serve } from './Sse.js' import type { NeedVoucherEvent, SessionReceipt } from './Types.js' @@ -218,7 +219,7 @@ describe('serve', () => { token: '0x0000000000000000000000000000000000000003' as Address, authorizedSigner: '0x0000000000000000000000000000000000000004' as Address, chainId: 42431, - escrowContract: '0x542831e3E4Ace07559b7C8787395f4Fb99F70787' as Address, + escrowContract: escrowContractDefaults[chainId.testnet] as Address, deposit: balance, settledOnChain: 0n, highestVoucherAmount: balance,