mppx 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/tempo/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/client/SessionManager.js +15 -1
- package/dist/tempo/client/SessionManager.js.map +1 -1
- package/dist/tempo/server/Session.d.ts.map +1 -1
- package/dist/tempo/server/Session.js +23 -0
- package/dist/tempo/server/Session.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/session/Chain.d.ts.map +1 -1
- package/dist/tempo/session/Chain.js +29 -0
- package/dist/tempo/session/Chain.js.map +1 -1
- package/package.json +1 -1
- package/src/tempo/client/SessionManager.ts +13 -1
- package/src/tempo/server/Session.test.ts +265 -3
- package/src/tempo/server/Session.ts +30 -0
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/session/Chain.ts +55 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,qykcAAqykc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,MAAM,EAKX,KAAK,GAAG,EACR,KAAK,sBAAsB,EAE5B,MAAM,MAAM,CAAA;AAeb,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,CAAA;AAgBpB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAC,OAAO,SAAS,EAAE,YAAY,CAAC,CAAA;AAEnF;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,cAAc,CAAC,CAOzB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,GAAG,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY9B;
|
|
1
|
+
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,9 @@ function assertUint128(amount) {
|
|
|
49
49
|
throw new VerificationFailedError({ reason: 'cumulativeAmount exceeds uint128 range' });
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
function isTempoAccessKeyAccount(account) {
|
|
53
|
+
return 'accessKeyAddress' in account && typeof account.accessKeyAddress === 'string';
|
|
54
|
+
}
|
|
52
55
|
/**
|
|
53
56
|
* Submit a settle transaction on-chain.
|
|
54
57
|
*/
|
|
@@ -62,6 +65,9 @@ export async function settleOnChain(client, escrowContract, voucher, options) {
|
|
|
62
65
|
const data = encodeFunctionData({ abi: escrowAbi, functionName: 'settle', args });
|
|
63
66
|
return sendFeePayerTx(client, resolved, options.feePayer, escrowContract, data, 'settle');
|
|
64
67
|
}
|
|
68
|
+
if (isTempoAccessKeyAccount(resolved)) {
|
|
69
|
+
return sendAccountTx(client, resolved, escrowContract, encodeFunctionData({ abi: escrowAbi, functionName: 'settle', args }), 'settle');
|
|
70
|
+
}
|
|
65
71
|
return writeContract(client, {
|
|
66
72
|
account: resolved,
|
|
67
73
|
chain: client.chain,
|
|
@@ -84,6 +90,9 @@ export async function closeOnChain(client, escrowContract, voucher, options) {
|
|
|
84
90
|
const data = encodeFunctionData({ abi: escrowAbi, functionName: 'close', args });
|
|
85
91
|
return sendFeePayerTx(client, resolved, options.feePayer, escrowContract, data, 'close');
|
|
86
92
|
}
|
|
93
|
+
if (isTempoAccessKeyAccount(resolved)) {
|
|
94
|
+
return sendAccountTx(client, resolved, escrowContract, encodeFunctionData({ abi: escrowAbi, functionName: 'close', args }), 'close');
|
|
95
|
+
}
|
|
87
96
|
return writeContract(client, {
|
|
88
97
|
account: resolved,
|
|
89
98
|
chain: client.chain,
|
|
@@ -93,6 +102,26 @@ export async function closeOnChain(client, escrowContract, voucher, options) {
|
|
|
93
102
|
args,
|
|
94
103
|
});
|
|
95
104
|
}
|
|
105
|
+
async function sendAccountTx(client, account, to, data, label) {
|
|
106
|
+
const prepared = await prepareTransactionRequest(client, {
|
|
107
|
+
account,
|
|
108
|
+
calls: [{ to, data }],
|
|
109
|
+
});
|
|
110
|
+
prepared.gas = prepared.gas + 5000n;
|
|
111
|
+
const serialized = (await signTransaction(client, {
|
|
112
|
+
...prepared,
|
|
113
|
+
account,
|
|
114
|
+
}));
|
|
115
|
+
const receipt = await sendRawTransactionSync(client, {
|
|
116
|
+
serializedTransaction: serialized,
|
|
117
|
+
});
|
|
118
|
+
if (receipt.status !== 'success') {
|
|
119
|
+
throw new VerificationFailedError({
|
|
120
|
+
reason: `${label} transaction reverted: ${receipt.transactionHash}`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return receipt.transactionHash;
|
|
124
|
+
}
|
|
96
125
|
/**
|
|
97
126
|
* Build, sign, and broadcast a fee-sponsored type-0x76 transaction.
|
|
98
127
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -778,9 +778,21 @@ export function sessionManager(parameters: sessionManager.Parameters): SessionMa
|
|
|
778
778
|
})
|
|
779
779
|
if (!response.ok) {
|
|
780
780
|
const body = await response.text().catch(() => '')
|
|
781
|
+
const detail = (() => {
|
|
782
|
+
if (!body) return ''
|
|
783
|
+
if (!response.headers.get('Content-Type')?.includes('application/problem+json')) {
|
|
784
|
+
return body
|
|
785
|
+
}
|
|
786
|
+
try {
|
|
787
|
+
const problem = JSON.parse(body) as { detail?: string }
|
|
788
|
+
return problem.detail ?? body
|
|
789
|
+
} catch {
|
|
790
|
+
return body
|
|
791
|
+
}
|
|
792
|
+
})()
|
|
781
793
|
const wwwAuth = response.headers.get('WWW-Authenticate') ?? ''
|
|
782
794
|
throw new Error(
|
|
783
|
-
`Close request failed with status ${response.status}${
|
|
795
|
+
`Close request failed with status ${response.status}${detail ? `: ${detail}` : ''}${wwwAuth ? ` [WWW-Authenticate: ${wwwAuth}]` : ''}`,
|
|
784
796
|
)
|
|
785
797
|
}
|
|
786
798
|
const receiptHeader = response.headers.get('Payment-Receipt')
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
Transport as ServerTransport,
|
|
8
8
|
tempo as tempo_server,
|
|
9
9
|
} from 'mppx/server'
|
|
10
|
-
import { Base64 } from 'ox'
|
|
10
|
+
import { Base64, Secp256k1 } from 'ox'
|
|
11
11
|
import {
|
|
12
12
|
type Address,
|
|
13
13
|
createClient,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
signatureToCompactSignature,
|
|
18
18
|
} from 'viem'
|
|
19
19
|
import { waitForTransactionReceipt } from 'viem/actions'
|
|
20
|
-
import { Addresses } from 'viem/tempo'
|
|
20
|
+
import { Account as TempoAccount, Actions, Addresses } from 'viem/tempo'
|
|
21
21
|
import { beforeAll, beforeEach, describe, expect, expectTypeOf, test } from 'vp/test'
|
|
22
22
|
import { WebSocketServer } from 'ws'
|
|
23
23
|
import { nodeEnv } from '~test/config.js'
|
|
@@ -50,7 +50,8 @@ import {
|
|
|
50
50
|
import type * as Methods from '../Methods.js'
|
|
51
51
|
import * as ChannelStore from '../session/ChannelStore.js'
|
|
52
52
|
import { deserializeSessionReceipt } from '../session/Receipt.js'
|
|
53
|
-
import
|
|
53
|
+
import { serializeSessionReceipt } from '../session/Receipt.js'
|
|
54
|
+
import type { SessionCredentialPayload, SessionReceipt } from '../session/Types.js'
|
|
54
55
|
import { signVoucher } from '../session/Voucher.js'
|
|
55
56
|
import * as TempoWs from '../session/Ws.js'
|
|
56
57
|
import { charge, session, settle } from './Session.js'
|
|
@@ -1886,6 +1887,77 @@ describe.runIf(isLocalnet)('session', () => {
|
|
|
1886
1887
|
expect(ch!.settledOnChain).toBe(5000000n)
|
|
1887
1888
|
})
|
|
1888
1889
|
|
|
1890
|
+
test('accepts a Tempo access-key account for settlement', async () => {
|
|
1891
|
+
const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
|
|
1892
|
+
const server = createServer()
|
|
1893
|
+
|
|
1894
|
+
await server.verify({
|
|
1895
|
+
credential: {
|
|
1896
|
+
challenge: makeChallenge({ id: 'settle-access-key-open', channelId }),
|
|
1897
|
+
payload: {
|
|
1898
|
+
action: 'open' as const,
|
|
1899
|
+
type: 'transaction' as const,
|
|
1900
|
+
channelId,
|
|
1901
|
+
transaction: serializedTransaction,
|
|
1902
|
+
cumulativeAmount: '5000000',
|
|
1903
|
+
signature: await signTestVoucher(channelId, 5000000n),
|
|
1904
|
+
},
|
|
1905
|
+
},
|
|
1906
|
+
request: makeRequest(),
|
|
1907
|
+
})
|
|
1908
|
+
|
|
1909
|
+
const privateKey = Secp256k1.randomPrivateKey()
|
|
1910
|
+
const accessKey = TempoAccount.fromSecp256k1(privateKey, {
|
|
1911
|
+
access: recipientAccount,
|
|
1912
|
+
})
|
|
1913
|
+
|
|
1914
|
+
await Actions.accessKey.authorizeSync(client, {
|
|
1915
|
+
account: recipientAccount,
|
|
1916
|
+
accessKey,
|
|
1917
|
+
feeToken: currency,
|
|
1918
|
+
})
|
|
1919
|
+
|
|
1920
|
+
const settleTxHash = await settle(store, client, channelId, {
|
|
1921
|
+
escrowContract,
|
|
1922
|
+
account: accessKey,
|
|
1923
|
+
})
|
|
1924
|
+
expect(settleTxHash).toMatch(/^0x/)
|
|
1925
|
+
|
|
1926
|
+
const ch = await store.getChannel(channelId)
|
|
1927
|
+
expect(ch!.settledOnChain).toBe(5000000n)
|
|
1928
|
+
})
|
|
1929
|
+
|
|
1930
|
+
test('rejects a raw delegated key account with a helpful error', async () => {
|
|
1931
|
+
const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
|
|
1932
|
+
const server = createServer()
|
|
1933
|
+
|
|
1934
|
+
await server.verify({
|
|
1935
|
+
credential: {
|
|
1936
|
+
challenge: makeChallenge({ id: 'settle-raw-access-key-open', channelId }),
|
|
1937
|
+
payload: {
|
|
1938
|
+
action: 'open' as const,
|
|
1939
|
+
type: 'transaction' as const,
|
|
1940
|
+
channelId,
|
|
1941
|
+
transaction: serializedTransaction,
|
|
1942
|
+
cumulativeAmount: '5000000',
|
|
1943
|
+
signature: await signTestVoucher(channelId, 5000000n),
|
|
1944
|
+
},
|
|
1945
|
+
},
|
|
1946
|
+
request: makeRequest(),
|
|
1947
|
+
})
|
|
1948
|
+
|
|
1949
|
+
const rawAccessKey = TempoAccount.fromSecp256k1(Secp256k1.randomPrivateKey())
|
|
1950
|
+
|
|
1951
|
+
await expect(
|
|
1952
|
+
settle(store, client, channelId, {
|
|
1953
|
+
escrowContract,
|
|
1954
|
+
account: rawAccessKey,
|
|
1955
|
+
}),
|
|
1956
|
+
).rejects.toThrow(
|
|
1957
|
+
`Cannot settle channel ${channelId}: tx sender ${rawAccessKey.address} is not the channel payee ${recipientAccount.address}. If using an access key, pass a Tempo access-key account whose address is the payee wallet, not the raw delegated key address.`,
|
|
1958
|
+
)
|
|
1959
|
+
})
|
|
1960
|
+
|
|
1889
1961
|
test('settle rejects when no channel found', async () => {
|
|
1890
1962
|
const fakeChannelId =
|
|
1891
1963
|
'0x0000000000000000000000000000000000000000000000000000000000000000' as Hex
|
|
@@ -1895,6 +1967,196 @@ describe.runIf(isLocalnet)('session', () => {
|
|
|
1895
1967
|
})
|
|
1896
1968
|
})
|
|
1897
1969
|
|
|
1970
|
+
describe('close account shapes', () => {
|
|
1971
|
+
test('root payee account closes successfully', async () => {
|
|
1972
|
+
const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
|
|
1973
|
+
const server = createServer()
|
|
1974
|
+
await server.verify({
|
|
1975
|
+
credential: {
|
|
1976
|
+
challenge: makeChallenge({ id: 'close-root-payee-open', channelId }),
|
|
1977
|
+
payload: {
|
|
1978
|
+
action: 'open' as const,
|
|
1979
|
+
type: 'transaction' as const,
|
|
1980
|
+
channelId,
|
|
1981
|
+
transaction: serializedTransaction,
|
|
1982
|
+
cumulativeAmount: '1000000',
|
|
1983
|
+
signature: await signTestVoucher(channelId, 1000000n),
|
|
1984
|
+
},
|
|
1985
|
+
},
|
|
1986
|
+
request: makeRequest(),
|
|
1987
|
+
})
|
|
1988
|
+
|
|
1989
|
+
const closeReceipt = await server.verify({
|
|
1990
|
+
credential: {
|
|
1991
|
+
challenge: makeChallenge({ id: 'close-root-payee', channelId }),
|
|
1992
|
+
payload: {
|
|
1993
|
+
action: 'close' as const,
|
|
1994
|
+
channelId,
|
|
1995
|
+
cumulativeAmount: '1000000',
|
|
1996
|
+
signature: await signTestVoucher(channelId, 1000000n),
|
|
1997
|
+
},
|
|
1998
|
+
},
|
|
1999
|
+
request: makeRequest(),
|
|
2000
|
+
})
|
|
2001
|
+
|
|
2002
|
+
expect(closeReceipt.status).toBe('success')
|
|
2003
|
+
expect((await store.getChannel(channelId))?.finalized).toBe(true)
|
|
2004
|
+
})
|
|
2005
|
+
|
|
2006
|
+
test('payee access-key account closes successfully', async () => {
|
|
2007
|
+
const accessKey = TempoAccount.fromSecp256k1(Secp256k1.randomPrivateKey(), {
|
|
2008
|
+
access: recipientAccount,
|
|
2009
|
+
})
|
|
2010
|
+
|
|
2011
|
+
await Actions.accessKey.authorizeSync(client, {
|
|
2012
|
+
account: recipientAccount,
|
|
2013
|
+
accessKey,
|
|
2014
|
+
feeToken: currency,
|
|
2015
|
+
})
|
|
2016
|
+
|
|
2017
|
+
const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
|
|
2018
|
+
const server = createServer({ account: accessKey })
|
|
2019
|
+
await server.verify({
|
|
2020
|
+
credential: {
|
|
2021
|
+
challenge: makeChallenge({ id: 'close-access-key-open', channelId }),
|
|
2022
|
+
payload: {
|
|
2023
|
+
action: 'open' as const,
|
|
2024
|
+
type: 'transaction' as const,
|
|
2025
|
+
channelId,
|
|
2026
|
+
transaction: serializedTransaction,
|
|
2027
|
+
cumulativeAmount: '1000000',
|
|
2028
|
+
signature: await signTestVoucher(channelId, 1000000n),
|
|
2029
|
+
},
|
|
2030
|
+
},
|
|
2031
|
+
request: makeRequest(),
|
|
2032
|
+
})
|
|
2033
|
+
|
|
2034
|
+
const closeReceipt = await server.verify({
|
|
2035
|
+
credential: {
|
|
2036
|
+
challenge: makeChallenge({ id: 'close-access-key', channelId }),
|
|
2037
|
+
payload: {
|
|
2038
|
+
action: 'close' as const,
|
|
2039
|
+
channelId,
|
|
2040
|
+
cumulativeAmount: '1000000',
|
|
2041
|
+
signature: await signTestVoucher(channelId, 1000000n),
|
|
2042
|
+
},
|
|
2043
|
+
},
|
|
2044
|
+
request: makeRequest(),
|
|
2045
|
+
})
|
|
2046
|
+
|
|
2047
|
+
expect(closeReceipt.status).toBe('success')
|
|
2048
|
+
expect((await store.getChannel(channelId))?.finalized).toBe(true)
|
|
2049
|
+
})
|
|
2050
|
+
|
|
2051
|
+
test('raw delegated server key fails clearly during close', async () => {
|
|
2052
|
+
const rawAccessKey = TempoAccount.fromSecp256k1(Secp256k1.randomPrivateKey())
|
|
2053
|
+
const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
|
|
2054
|
+
const server = createServer({ account: rawAccessKey, recipient })
|
|
2055
|
+
await server.verify({
|
|
2056
|
+
credential: {
|
|
2057
|
+
challenge: makeChallenge({ id: 'close-raw-access-key-open', channelId }),
|
|
2058
|
+
payload: {
|
|
2059
|
+
action: 'open' as const,
|
|
2060
|
+
type: 'transaction' as const,
|
|
2061
|
+
channelId,
|
|
2062
|
+
transaction: serializedTransaction,
|
|
2063
|
+
cumulativeAmount: '1000000',
|
|
2064
|
+
signature: await signTestVoucher(channelId, 1000000n),
|
|
2065
|
+
},
|
|
2066
|
+
},
|
|
2067
|
+
request: makeRequest(),
|
|
2068
|
+
})
|
|
2069
|
+
|
|
2070
|
+
await expect(
|
|
2071
|
+
server.verify({
|
|
2072
|
+
credential: {
|
|
2073
|
+
challenge: makeChallenge({ id: 'close-raw-access-key', channelId }),
|
|
2074
|
+
payload: {
|
|
2075
|
+
action: 'close' as const,
|
|
2076
|
+
channelId,
|
|
2077
|
+
cumulativeAmount: '1000000',
|
|
2078
|
+
signature: await signTestVoucher(channelId, 1000000n),
|
|
2079
|
+
},
|
|
2080
|
+
},
|
|
2081
|
+
request: makeRequest(),
|
|
2082
|
+
}),
|
|
2083
|
+
).rejects.toThrow(
|
|
2084
|
+
`Cannot close channel ${channelId}: tx sender ${rawAccessKey.address} is not the channel payee ${recipientAccount.address}. If using an access key, pass a Tempo access-key account whose address is the payee wallet, not the raw delegated key address.`,
|
|
2085
|
+
)
|
|
2086
|
+
})
|
|
2087
|
+
|
|
2088
|
+
test('sessionManager.close surfaces problem details from HTTP close failures', async () => {
|
|
2089
|
+
const challenge = makeChallenge({
|
|
2090
|
+
id: 'close-http-failure',
|
|
2091
|
+
channelId: '0x0000000000000000000000000000000000000000000000000000000000000001' as Hex,
|
|
2092
|
+
})
|
|
2093
|
+
let requests = 0
|
|
2094
|
+
|
|
2095
|
+
const fetch = async (_input: RequestInfo | URL, init?: RequestInit) => {
|
|
2096
|
+
requests++
|
|
2097
|
+
|
|
2098
|
+
const authorization = new Headers(init?.headers).get('Authorization')
|
|
2099
|
+
if (!authorization) {
|
|
2100
|
+
return new Response(null, {
|
|
2101
|
+
status: 402,
|
|
2102
|
+
headers: { 'WWW-Authenticate': Challenge.serialize(challenge) },
|
|
2103
|
+
})
|
|
2104
|
+
}
|
|
2105
|
+
|
|
2106
|
+
const credential = Credential.deserialize<SessionCredentialPayload>(authorization)
|
|
2107
|
+
if (credential.payload.action === 'open') {
|
|
2108
|
+
return new Response('ok', {
|
|
2109
|
+
status: 200,
|
|
2110
|
+
headers: {
|
|
2111
|
+
'Payment-Receipt': serializeSessionReceipt({
|
|
2112
|
+
method: 'tempo',
|
|
2113
|
+
intent: 'session',
|
|
2114
|
+
status: 'success',
|
|
2115
|
+
timestamp: new Date().toISOString(),
|
|
2116
|
+
reference: credential.payload.channelId,
|
|
2117
|
+
challengeId: credential.challenge.id,
|
|
2118
|
+
channelId: credential.payload.channelId,
|
|
2119
|
+
acceptedCumulative: credential.payload.cumulativeAmount,
|
|
2120
|
+
spent: credential.payload.cumulativeAmount,
|
|
2121
|
+
units: 1,
|
|
2122
|
+
}),
|
|
2123
|
+
},
|
|
2124
|
+
})
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2127
|
+
if (credential.payload.action === 'close') {
|
|
2128
|
+
return new Response(
|
|
2129
|
+
JSON.stringify({ detail: 'raw delegated key is not the payee wallet' }),
|
|
2130
|
+
{
|
|
2131
|
+
status: 400,
|
|
2132
|
+
headers: { 'Content-Type': 'application/problem+json' },
|
|
2133
|
+
},
|
|
2134
|
+
)
|
|
2135
|
+
}
|
|
2136
|
+
|
|
2137
|
+
throw new Error(
|
|
2138
|
+
`unexpected payment action ${(credential.payload as { action: string }).action}`,
|
|
2139
|
+
)
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
const manager = sessionManager({
|
|
2143
|
+
account: payer,
|
|
2144
|
+
client,
|
|
2145
|
+
escrowContract,
|
|
2146
|
+
fetch,
|
|
2147
|
+
maxDeposit: '1',
|
|
2148
|
+
})
|
|
2149
|
+
|
|
2150
|
+
const response = await manager.fetch('https://api.example.com/resource')
|
|
2151
|
+
expect(response.status).toBe(200)
|
|
2152
|
+
|
|
2153
|
+
await expect(manager.close()).rejects.toThrow(
|
|
2154
|
+
'Close request failed with status 400: raw delegated key is not the payee wallet',
|
|
2155
|
+
)
|
|
2156
|
+
expect(requests).toBe(3)
|
|
2157
|
+
})
|
|
2158
|
+
})
|
|
2159
|
+
|
|
1898
2160
|
describe('non-persistent storage recovery', () => {
|
|
1899
2161
|
test('open on existing on-chain channel initializes settledOnChain from chain', async () => {
|
|
1900
2162
|
const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
|
|
@@ -369,6 +369,22 @@ export declare namespace session {
|
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
+
function assertSettlementSender(parameters: {
|
|
373
|
+
operation: 'close' | 'settle'
|
|
374
|
+
channelId: Hex
|
|
375
|
+
payee: Address
|
|
376
|
+
sender: Address | undefined
|
|
377
|
+
}) {
|
|
378
|
+
const { operation, channelId, payee, sender } = parameters
|
|
379
|
+
if (!sender) return
|
|
380
|
+
if (sender.toLowerCase() === payee.toLowerCase()) return
|
|
381
|
+
throw new BadRequestError({
|
|
382
|
+
reason:
|
|
383
|
+
`Cannot ${operation} channel ${channelId}: tx sender ${sender} is not the channel payee ${payee}. ` +
|
|
384
|
+
'If using an access key, pass a Tempo access-key account whose address is the payee wallet, not the raw delegated key address.',
|
|
385
|
+
})
|
|
386
|
+
}
|
|
387
|
+
|
|
372
388
|
/**
|
|
373
389
|
* One-shot settle: reads highest voucher from store and submits on-chain.
|
|
374
390
|
*/
|
|
@@ -393,6 +409,13 @@ export async function settle(
|
|
|
393
409
|
defaults.escrowContract[chainId as keyof typeof defaults.escrowContract]
|
|
394
410
|
if (!resolvedEscrow) throw new Error(`No escrow contract for chainId ${chainId}.`)
|
|
395
411
|
|
|
412
|
+
assertSettlementSender({
|
|
413
|
+
operation: 'settle',
|
|
414
|
+
channelId,
|
|
415
|
+
payee: channel.payee,
|
|
416
|
+
sender: options?.account?.address ?? client.account?.address,
|
|
417
|
+
})
|
|
418
|
+
|
|
396
419
|
const settledAmount = channel.highestVoucher.cumulativeAmount
|
|
397
420
|
const txHash = await settleOnChain(client, resolvedEscrow, channel.highestVoucher, {
|
|
398
421
|
...(options?.feePayer && options?.account
|
|
@@ -891,6 +914,13 @@ async function handleClose(
|
|
|
891
914
|
throw new InvalidSignatureError({ reason: 'invalid voucher signature' })
|
|
892
915
|
}
|
|
893
916
|
|
|
917
|
+
assertSettlementSender({
|
|
918
|
+
operation: 'close',
|
|
919
|
+
channelId: payload.channelId,
|
|
920
|
+
payee: onChain.payee,
|
|
921
|
+
sender: account?.address ?? client.account?.address,
|
|
922
|
+
})
|
|
923
|
+
|
|
894
924
|
const txHash = await closeOnChain(client, methodDetails.escrowContract, voucher, {
|
|
895
925
|
...(feePayer && account ? { feePayer, account } : { account }),
|
|
896
926
|
})
|