ox 1.0.0-beta.9 → 1.0.1
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 +1151 -0
- package/dist/core/AbiParameters.d.ts.map +1 -1
- package/dist/core/AbiParameters.js +4 -1
- package/dist/core/AbiParameters.js.map +1 -1
- package/dist/core/Rlp.d.ts +27 -5
- package/dist/core/Rlp.d.ts.map +1 -1
- package/dist/core/Rlp.js +40 -4
- package/dist/core/Rlp.js.map +1 -1
- package/dist/core/RpcSchema.d.ts +1 -1
- package/dist/core/Siwe.d.ts +4 -4
- package/dist/core/Siwe.js +5 -5
- package/dist/core/Siwe.js.map +1 -1
- package/dist/core/internal/abiParameters.d.ts +1 -1
- package/dist/core/internal/abiParameters.d.ts.map +1 -1
- package/dist/core/internal/abiParameters.js +22 -4
- package/dist/core/internal/abiParameters.js.map +1 -1
- package/dist/core/internal/rpcSchemas/eth.d.ts +36 -0
- package/dist/core/internal/rpcSchemas/eth.d.ts.map +1 -1
- package/dist/erc4337/EntryPoint.d.ts +1072 -1
- package/dist/erc4337/EntryPoint.d.ts.map +1 -1
- package/dist/erc4337/EntryPoint.js +872 -0
- package/dist/erc4337/EntryPoint.js.map +1 -1
- package/dist/erc4337/RpcSchema.d.ts +2 -2
- package/dist/erc4337/RpcSchema.d.ts.map +1 -1
- package/dist/erc4337/UserOperation.d.ts +39 -10
- package/dist/erc4337/UserOperation.d.ts.map +1 -1
- package/dist/erc4337/UserOperation.js +62 -48
- package/dist/erc4337/UserOperation.js.map +1 -1
- package/dist/erc4337/UserOperationGas.d.ts +9 -5
- package/dist/erc4337/UserOperationGas.d.ts.map +1 -1
- package/dist/erc4337/UserOperationGas.js +17 -15
- package/dist/erc4337/UserOperationGas.js.map +1 -1
- package/dist/erc4337/UserOperationReceipt.d.ts +4 -4
- package/dist/erc4337/UserOperationReceipt.d.ts.map +1 -1
- package/dist/erc4337/UserOperationReceipt.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/tempo/Channel.d.ts +8 -14
- package/dist/tempo/Channel.d.ts.map +1 -1
- package/dist/tempo/Channel.js +4 -8
- package/dist/tempo/Channel.js.map +1 -1
- package/dist/tempo/KeyAuthorization.d.ts +5 -5
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +4 -4
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/MultisigConfig.d.ts +37 -85
- package/dist/tempo/MultisigConfig.d.ts.map +1 -1
- package/dist/tempo/MultisigConfig.js +39 -83
- package/dist/tempo/MultisigConfig.js.map +1 -1
- package/dist/tempo/PoolId.d.ts +8 -7
- package/dist/tempo/PoolId.d.ts.map +1 -1
- package/dist/tempo/PoolId.js +10 -6
- package/dist/tempo/PoolId.js.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +32 -30
- package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.js +56 -51
- package/dist/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/tempo/Transaction.d.ts +16 -5
- package/dist/tempo/Transaction.d.ts.map +1 -1
- package/dist/tempo/Transaction.js +34 -7
- package/dist/tempo/Transaction.js.map +1 -1
- package/dist/tempo/TransactionReceipt.d.ts +3 -3
- package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
- package/dist/tempo/TransactionReceipt.js +8 -1
- package/dist/tempo/TransactionReceipt.js.map +1 -1
- package/dist/tempo/TransactionRequest.d.ts +15 -2
- package/dist/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/tempo/TransactionRequest.js +65 -29
- package/dist/tempo/TransactionRequest.js.map +1 -1
- package/dist/tempo/TxEnvelopeTempo.d.ts +2 -3
- package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/tempo/TxEnvelopeTempo.js +5 -6
- package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
- package/dist/tempo/index.d.ts +6 -26
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +6 -26
- package/dist/tempo/index.js.map +1 -1
- package/dist/zod/Abi.d.ts +214 -0
- package/dist/zod/Abi.d.ts.map +1 -0
- package/dist/zod/Abi.js +5 -0
- package/dist/zod/Abi.js.map +1 -0
- package/dist/zod/AbiConstructor.d.ts +58 -0
- package/dist/zod/AbiConstructor.d.ts.map +1 -0
- package/dist/zod/AbiConstructor.js +18 -0
- package/dist/zod/AbiConstructor.js.map +1 -0
- package/dist/zod/AbiError.d.ts +20 -0
- package/dist/zod/AbiError.d.ts.map +1 -0
- package/dist/zod/AbiError.js +9 -0
- package/dist/zod/AbiError.js.map +1 -0
- package/dist/zod/AbiEvent.d.ts +23 -0
- package/dist/zod/AbiEvent.d.ts.map +1 -0
- package/dist/zod/AbiEvent.js +11 -0
- package/dist/zod/AbiEvent.js.map +1 -0
- package/dist/zod/AbiFallback.d.ts +16 -0
- package/dist/zod/AbiFallback.d.ts.map +1 -0
- package/dist/zod/AbiFallback.js +16 -0
- package/dist/zod/AbiFallback.js.map +1 -0
- package/dist/zod/AbiFunction.d.ts +109 -0
- package/dist/zod/AbiFunction.d.ts.map +1 -0
- package/dist/zod/AbiFunction.js +26 -0
- package/dist/zod/AbiFunction.js.map +1 -0
- package/dist/zod/AbiItem.d.ts +216 -0
- package/dist/zod/AbiItem.d.ts.map +1 -0
- package/dist/zod/AbiItem.js +26 -0
- package/dist/zod/AbiItem.js.map +1 -0
- package/dist/zod/AbiParameter.d.ts +32 -0
- package/dist/zod/AbiParameter.d.ts.map +1 -0
- package/dist/zod/AbiParameter.js +28 -0
- package/dist/zod/AbiParameter.js.map +1 -0
- package/dist/zod/AbiParameters.d.ts +30 -0
- package/dist/zod/AbiParameters.d.ts.map +1 -0
- package/dist/zod/AbiParameters.js +6 -0
- package/dist/zod/AbiParameters.js.map +1 -0
- package/dist/zod/AbiReceive.d.ts +6 -0
- package/dist/zod/AbiReceive.d.ts.map +1 -0
- package/dist/zod/AbiReceive.js +7 -0
- package/dist/zod/AbiReceive.js.map +1 -0
- package/dist/zod/RpcSchema.d.ts +1 -0
- package/dist/zod/RpcSchema.d.ts.map +1 -1
- package/dist/zod/Solidity.d.ts +15 -0
- package/dist/zod/Solidity.d.ts.map +1 -0
- package/dist/zod/Solidity.js +41 -0
- package/dist/zod/Solidity.js.map +1 -0
- package/dist/zod/TypedData.d.ts +226 -0
- package/dist/zod/TypedData.d.ts.map +1 -0
- package/dist/zod/TypedData.js +84 -0
- package/dist/zod/TypedData.js.map +1 -0
- package/dist/zod/internal/rpcSchemas/Eth.d.ts +1 -0
- package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
- package/dist/zod/internal/rpcSchemas/Eth.js +5 -0
- package/dist/zod/internal/rpcSchemas/Eth.js.map +1 -1
- package/dist/zod/tempo/AuthorizationTempo.d.ts +0 -20
- package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.d.ts +503 -67
- package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.js +32 -15
- package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +216 -34
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.d.ts +0 -6
- package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.js +0 -2
- package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +1479 -333
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/tempo/Transaction.js +65 -16
- package/dist/zod/tempo/Transaction.js.map +1 -1
- package/dist/zod/tempo/TransactionRequest.d.ts +410 -57
- package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.js +81 -18
- package/dist/zod/tempo/TransactionRequest.js.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts +225 -18
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.js +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.js.map +1 -1
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +0 -3
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
- package/dist/zod/tempo/z.d.ts +0 -1
- package/dist/zod/tempo/z.d.ts.map +1 -1
- package/dist/zod/tempo/z.js +0 -1
- package/dist/zod/tempo/z.js.map +1 -1
- package/dist/zod/z.d.ts +12 -0
- package/dist/zod/z.d.ts.map +1 -1
- package/dist/zod/z.js +12 -0
- package/dist/zod/z.js.map +1 -1
- package/package.json +62 -11
- package/src/core/AbiParameters.ts +3 -1
- package/src/core/Rlp.ts +66 -3
- package/src/core/RpcSchema.ts +1 -1
- package/src/core/Siwe.ts +6 -6
- package/src/core/_test/AbiParameters.decode.test.ts +101 -12
- package/src/core/_test/AbiParameters.encode.test.ts +68 -0
- package/src/core/_test/Rlp.test.ts +101 -0
- package/src/core/_test/Siwe.test.ts +6 -8
- package/src/core/internal/abiParameters.ts +22 -5
- package/src/core/internal/rpcSchemas/eth.ts +36 -0
- package/src/erc4337/EntryPoint.ts +875 -1
- package/src/erc4337/RpcSchema.ts +4 -2
- package/src/erc4337/UserOperation.ts +130 -60
- package/src/erc4337/UserOperationGas.ts +36 -28
- package/src/erc4337/UserOperationReceipt.ts +15 -7
- package/src/erc4337/_test/EntryPoint.test.ts +48 -0
- package/src/erc4337/_test/RpcSchema.test-d.ts +56 -0
- package/src/erc4337/_test/UserOperation.snap-d.ts +31 -0
- package/src/erc4337/_test/UserOperation.test.ts +221 -5
- package/src/erc4337/_test/UserOperationGas.test.ts +30 -1
- package/src/index.ts +2 -2
- package/src/tempo/Channel.test.ts +2 -23
- package/src/tempo/Channel.ts +10 -22
- package/src/tempo/KeyAuthorization.test.ts +22 -0
- package/src/tempo/KeyAuthorization.ts +9 -9
- package/src/tempo/MultisigConfig.test.ts +54 -37
- package/src/tempo/MultisigConfig.ts +59 -134
- package/src/tempo/PoolId.test.ts +7 -41
- package/src/tempo/PoolId.ts +15 -10
- package/src/tempo/SignatureEnvelope.test.ts +118 -17
- package/src/tempo/SignatureEnvelope.ts +77 -72
- package/src/tempo/Transaction.test.ts +0 -15
- package/src/tempo/Transaction.ts +63 -12
- package/src/tempo/TransactionReceipt.test.ts +76 -0
- package/src/tempo/TransactionReceipt.ts +11 -5
- package/src/tempo/TransactionRequest.test.ts +174 -1
- package/src/tempo/TransactionRequest.ts +84 -32
- package/src/tempo/TxEnvelopeTempo.test.ts +2 -2
- package/src/tempo/TxEnvelopeTempo.ts +7 -7
- package/src/tempo/e2e.test.ts +228 -50
- package/src/tempo/index.ts +6 -26
- package/src/version.ts +1 -1
- package/src/zod/Abi.ts +5 -0
- package/src/zod/AbiConstructor.ts +24 -0
- package/src/zod/AbiError.ts +9 -0
- package/src/zod/AbiEvent.ts +11 -0
- package/src/zod/AbiFallback.ts +22 -0
- package/src/zod/AbiFunction.ts +32 -0
- package/src/zod/AbiItem.ts +28 -0
- package/src/zod/AbiParameter.ts +36 -0
- package/src/zod/AbiParameters.ts +7 -0
- package/src/zod/AbiReceive.ts +7 -0
- package/src/zod/Solidity.ts +83 -0
- package/src/zod/TypedData.ts +111 -0
- package/src/zod/_test/Abi.test-d.ts +46 -0
- package/src/zod/_test/Abi.test.ts +163 -0
- package/src/zod/_test/TypedData.test-d.ts +20 -0
- package/src/zod/_test/TypedData.test.ts +87 -0
- package/src/zod/_test/z.test-d.ts +6 -0
- package/src/zod/_test/z.test.ts +17 -0
- package/src/zod/internal/rpcSchemas/Eth.ts +6 -0
- package/src/zod/tempo/KeyAuthorization.ts +34 -15
- package/src/zod/tempo/SignatureEnvelope.ts +0 -2
- package/src/zod/tempo/Transaction.ts +84 -22
- package/src/zod/tempo/TransactionRequest.ts +86 -20
- package/src/zod/tempo/TxEnvelopeTempo.ts +1 -1
- package/src/zod/tempo/_test/KeyAuthorization.test.ts +53 -0
- package/src/zod/tempo/_test/SignatureEnvelope.test.ts +0 -2
- package/src/zod/tempo/_test/Transaction.test.ts +155 -0
- package/src/zod/tempo/_test/TransactionRequest.test.ts +44 -0
- package/src/zod/tempo/z.ts +0 -1
- package/src/zod/z.ts +12 -0
- package/dist/tempo/TokenId.d.ts +0 -87
- package/dist/tempo/TokenId.d.ts.map +0 -1
- package/dist/tempo/TokenId.js +0 -123
- package/dist/tempo/TokenId.js.map +0 -1
- package/dist/zod/tempo/TokenId.d.ts +0 -6
- package/dist/zod/tempo/TokenId.d.ts.map +0 -1
- package/dist/zod/tempo/TokenId.js +0 -14
- package/dist/zod/tempo/TokenId.js.map +0 -1
- package/src/CHANGELOG.md +0 -820
- package/src/tempo/TokenId.bench.ts +0 -36
- package/src/tempo/TokenId.test.ts +0 -79
- package/src/tempo/TokenId.ts +0 -141
- package/src/zod/tempo/TokenId.ts +0 -15
- package/src/zod/tempo/_test/TokenId.test-d.ts +0 -17
- package/src/zod/tempo/_test/TokenId.test.ts +0 -21
|
@@ -35,6 +35,48 @@ const rpc = {
|
|
|
35
35
|
type: '0x76',
|
|
36
36
|
} as const
|
|
37
37
|
|
|
38
|
+
/** Mined shape as serialized by the tempo node (absent optionals are `null`). */
|
|
39
|
+
const nodeRpc = {
|
|
40
|
+
accessList: [],
|
|
41
|
+
aaAuthorizationList: [],
|
|
42
|
+
blockHash:
|
|
43
|
+
'0xa27e7b87e6f558014cb357e8361579de7f8bff8c2f39beb47e5cc75cd7bbba40',
|
|
44
|
+
blockNumber: '0x5a',
|
|
45
|
+
blockTimestamp: '0x6a4d7ca5',
|
|
46
|
+
calls: [
|
|
47
|
+
{
|
|
48
|
+
data: null,
|
|
49
|
+
input:
|
|
50
|
+
'0x5c559d2000000000000000000000000000000000000000000000000000000000abf52baf',
|
|
51
|
+
to: '0xfdc0000000000000000000000000000000000000',
|
|
52
|
+
value: '0x0',
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
chainId: '0x539',
|
|
56
|
+
feePayerSignature: null,
|
|
57
|
+
feeToken: '0x20c0000000000000000000000000000000000000',
|
|
58
|
+
from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
|
|
59
|
+
gas: '0x81fb2',
|
|
60
|
+
gasPrice: '0x23c34600',
|
|
61
|
+
hash: '0x76e9adc3b5f6262159d49582a64b8696ecf5864ac5237f72b5c0797ca380e9d4',
|
|
62
|
+
keyAuthorization: null,
|
|
63
|
+
maxFeePerGas: '0x2aea5400',
|
|
64
|
+
maxPriorityFeePerGas: '0x0',
|
|
65
|
+
nonce: '0x0',
|
|
66
|
+
nonceKey: '0x0',
|
|
67
|
+
signature: {
|
|
68
|
+
r: '0xc5363149ebd9b247cd6948469677efbed1c58be3a79ec020ff767e41196b464',
|
|
69
|
+
s: '0x701c441f1ce3ca8dd0bff969924db2c8817a7dec1ade02c39c79bd57c8d0089d',
|
|
70
|
+
type: 'secp256k1',
|
|
71
|
+
v: '0x0',
|
|
72
|
+
yParity: '0x0',
|
|
73
|
+
},
|
|
74
|
+
transactionIndex: '0x0',
|
|
75
|
+
type: '0x76',
|
|
76
|
+
validAfter: null,
|
|
77
|
+
validBefore: null,
|
|
78
|
+
} as const
|
|
79
|
+
|
|
38
80
|
describe('Tempo', () => {
|
|
39
81
|
test('decodes a tempo transaction', () => {
|
|
40
82
|
const decoded = z.decode(z_Transaction.Tempo, rpc)
|
|
@@ -71,6 +113,119 @@ describe('Tempo', () => {
|
|
|
71
113
|
type: '0x76',
|
|
72
114
|
})
|
|
73
115
|
})
|
|
116
|
+
|
|
117
|
+
test('decodes a node transaction (null optionals)', () => {
|
|
118
|
+
const decoded = z.decode(z_Transaction.Tempo, nodeRpc)
|
|
119
|
+
expect(decoded).toMatchInlineSnapshot(`
|
|
120
|
+
{
|
|
121
|
+
"accessList": [],
|
|
122
|
+
"blockHash": "0xa27e7b87e6f558014cb357e8361579de7f8bff8c2f39beb47e5cc75cd7bbba40",
|
|
123
|
+
"blockNumber": 90n,
|
|
124
|
+
"blockTimestamp": 1783463077n,
|
|
125
|
+
"calls": [
|
|
126
|
+
{
|
|
127
|
+
"data": "0x5c559d2000000000000000000000000000000000000000000000000000000000abf52baf",
|
|
128
|
+
"to": "0xfdc0000000000000000000000000000000000000",
|
|
129
|
+
"value": 0n,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
"chainId": 1337,
|
|
133
|
+
"feeToken": "0x20c0000000000000000000000000000000000000",
|
|
134
|
+
"from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
|
|
135
|
+
"gas": 532402n,
|
|
136
|
+
"gasPrice": 600000000n,
|
|
137
|
+
"hash": "0x76e9adc3b5f6262159d49582a64b8696ecf5864ac5237f72b5c0797ca380e9d4",
|
|
138
|
+
"maxFeePerGas": 720000000n,
|
|
139
|
+
"maxPriorityFeePerGas": 0n,
|
|
140
|
+
"nonce": 0n,
|
|
141
|
+
"nonceKey": 0n,
|
|
142
|
+
"signature": {
|
|
143
|
+
"signature": {
|
|
144
|
+
"r": "0x0c5363149ebd9b247cd6948469677efbed1c58be3a79ec020ff767e41196b464",
|
|
145
|
+
"s": "0x701c441f1ce3ca8dd0bff969924db2c8817a7dec1ade02c39c79bd57c8d0089d",
|
|
146
|
+
"yParity": 0,
|
|
147
|
+
},
|
|
148
|
+
"type": "secp256k1",
|
|
149
|
+
},
|
|
150
|
+
"transactionIndex": 0,
|
|
151
|
+
"type": "tempo",
|
|
152
|
+
}
|
|
153
|
+
`)
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
test('maps `aaAuthorizationList` to `authorizationList`', () => {
|
|
157
|
+
const decoded = z.decode(z_Transaction.Tempo, {
|
|
158
|
+
...nodeRpc,
|
|
159
|
+
aaAuthorizationList: [
|
|
160
|
+
{
|
|
161
|
+
address: '0xfdc0000000000000000000000000000000000000',
|
|
162
|
+
chainId: '0x539',
|
|
163
|
+
nonce: '0x1',
|
|
164
|
+
signature: {
|
|
165
|
+
r: '0xc5363149ebd9b247cd6948469677efbed1c58be3a79ec020ff767e41196b464',
|
|
166
|
+
s: '0x701c441f1ce3ca8dd0bff969924db2c8817a7dec1ade02c39c79bd57c8d0089d',
|
|
167
|
+
type: 'secp256k1',
|
|
168
|
+
yParity: '0x0',
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
})
|
|
173
|
+
expect(decoded.type === 'tempo' && decoded.authorizationList)
|
|
174
|
+
.toMatchInlineSnapshot(`
|
|
175
|
+
[
|
|
176
|
+
{
|
|
177
|
+
"address": "0xfdc0000000000000000000000000000000000000",
|
|
178
|
+
"chainId": 1337,
|
|
179
|
+
"nonce": 1n,
|
|
180
|
+
"signature": {
|
|
181
|
+
"signature": {
|
|
182
|
+
"r": "0x0c5363149ebd9b247cd6948469677efbed1c58be3a79ec020ff767e41196b464",
|
|
183
|
+
"s": "0x701c441f1ce3ca8dd0bff969924db2c8817a7dec1ade02c39c79bd57c8d0089d",
|
|
184
|
+
"yParity": 0,
|
|
185
|
+
},
|
|
186
|
+
"type": "secp256k1",
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
]
|
|
190
|
+
`)
|
|
191
|
+
|
|
192
|
+
const encoded = z.encode(z_Transaction.Tempo, decoded)
|
|
193
|
+
expect(
|
|
194
|
+
'aaAuthorizationList' in encoded && encoded.aaAuthorizationList,
|
|
195
|
+
).toHaveLength(1)
|
|
196
|
+
expect(encoded).not.toHaveProperty('authorizationList')
|
|
197
|
+
})
|
|
198
|
+
})
|
|
199
|
+
|
|
200
|
+
describe('PendingTempo', () => {
|
|
201
|
+
test('decodes a pending node transaction', () => {
|
|
202
|
+
const decoded = z.decode(z_Transaction.PendingTempo, {
|
|
203
|
+
...nodeRpc,
|
|
204
|
+
blockHash: null,
|
|
205
|
+
blockNumber: null,
|
|
206
|
+
blockTimestamp: undefined,
|
|
207
|
+
gasPrice: '0x2aea5400',
|
|
208
|
+
transactionIndex: null,
|
|
209
|
+
})
|
|
210
|
+
expect(decoded).toMatchObject({
|
|
211
|
+
blockHash: null,
|
|
212
|
+
blockNumber: null,
|
|
213
|
+
gasPrice: 720000000n,
|
|
214
|
+
transactionIndex: null,
|
|
215
|
+
type: 'tempo',
|
|
216
|
+
})
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
test('decodes via the `Pending` union', () => {
|
|
220
|
+
const decoded = z.decode(z_Transaction.Pending, {
|
|
221
|
+
...nodeRpc,
|
|
222
|
+
blockHash: null,
|
|
223
|
+
blockNumber: null,
|
|
224
|
+
blockTimestamp: undefined,
|
|
225
|
+
transactionIndex: null,
|
|
226
|
+
})
|
|
227
|
+
expect(decoded).toMatchObject({ type: 'tempo' })
|
|
228
|
+
})
|
|
74
229
|
})
|
|
75
230
|
|
|
76
231
|
describe('Transaction', () => {
|
|
@@ -44,6 +44,50 @@ describe('TransactionRequest', () => {
|
|
|
44
44
|
)
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
+
test('gas-model hints and capabilities round-trip', () => {
|
|
48
|
+
const hints = {
|
|
49
|
+
capabilities: { balanceDiffs: true },
|
|
50
|
+
keyData: '0x0578',
|
|
51
|
+
keyId: '0xcccccccccccccccccccccccccccccccccccccccc',
|
|
52
|
+
keyType: 'webAuthn',
|
|
53
|
+
multisigInit: {
|
|
54
|
+
salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
55
|
+
threshold: 2,
|
|
56
|
+
owners: [
|
|
57
|
+
{
|
|
58
|
+
owner: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
59
|
+
weight: 1,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
owner: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
|
|
63
|
+
weight: 1,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
multisigSignatureCount: 2,
|
|
68
|
+
} as const
|
|
69
|
+
|
|
70
|
+
const decoded = z.decode(z_TransactionRequest.TransactionRequest, {
|
|
71
|
+
...rpc,
|
|
72
|
+
...hints,
|
|
73
|
+
})
|
|
74
|
+
expect(decoded).toMatchObject(hints)
|
|
75
|
+
|
|
76
|
+
const encoded = z.encode(z_TransactionRequest.TransactionRequest, decoded)
|
|
77
|
+
expect(encoded).toMatchObject(hints)
|
|
78
|
+
expect(encoded).toEqual(core_TransactionRequest.toRpc(decoded))
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
test('feeToken is withheld until the fee payer signs (TIP-76)', () => {
|
|
82
|
+
const decoded = z.decode(z_TransactionRequest.TransactionRequest, rpc)
|
|
83
|
+
const pending = z.encode(z_TransactionRequest.TransactionRequest, {
|
|
84
|
+
...decoded,
|
|
85
|
+
feePayer: true,
|
|
86
|
+
})
|
|
87
|
+
expect(pending.feeToken).toBeUndefined()
|
|
88
|
+
expect(pending.feePayer).toBe(true)
|
|
89
|
+
})
|
|
90
|
+
|
|
47
91
|
test('rejects an invalid request', () => {
|
|
48
92
|
expect(
|
|
49
93
|
z.safeDecode(z_TransactionRequest.TransactionRequest, {
|
package/src/zod/tempo/z.ts
CHANGED
|
@@ -6,7 +6,6 @@ export * as PoolId from './PoolId.js'
|
|
|
6
6
|
export * as RpcSchemaTempo from './RpcSchemaTempo.js'
|
|
7
7
|
export * as SignatureEnvelope from './SignatureEnvelope.js'
|
|
8
8
|
export * as Tick from './Tick.js'
|
|
9
|
-
export * as TokenId from './TokenId.js'
|
|
10
9
|
export * as TokenRole from './TokenRole.js'
|
|
11
10
|
export * as Transaction from './Transaction.js'
|
|
12
11
|
export * as TransactionReceipt from './TransactionReceipt.js'
|
package/src/zod/z.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
/* eslint-disable jsdoc-js/require-jsdoc, jsdoc-js/require-description, jsdoc-js/require-example */
|
|
2
2
|
export * from 'zod/mini'
|
|
3
|
+
export * as Abi from './Abi.js'
|
|
4
|
+
export * as AbiConstructor from './AbiConstructor.js'
|
|
5
|
+
export * as AbiError from './AbiError.js'
|
|
6
|
+
export * as AbiEvent from './AbiEvent.js'
|
|
7
|
+
export * as AbiFallback from './AbiFallback.js'
|
|
8
|
+
export * as AbiFunction from './AbiFunction.js'
|
|
9
|
+
export * as AbiItem from './AbiItem.js'
|
|
10
|
+
export * as AbiParameter from './AbiParameter.js'
|
|
11
|
+
export * as AbiParameters from './AbiParameters.js'
|
|
12
|
+
export * as AbiReceive from './AbiReceive.js'
|
|
3
13
|
export * as AccountProof from './AccountProof.js'
|
|
4
14
|
export * as AccessList from './AccessList.js'
|
|
5
15
|
export * as Address from './Address.js'
|
|
@@ -15,11 +25,13 @@ export * as Log from './Log.js'
|
|
|
15
25
|
export * as RpcResponse from './RpcResponse.js'
|
|
16
26
|
export * as RpcSchema from './RpcSchema.js'
|
|
17
27
|
export * as Signature from './Signature.js'
|
|
28
|
+
export * as Solidity from './Solidity.js'
|
|
18
29
|
export * as StateOverrides from './StateOverrides.js'
|
|
19
30
|
export * as Transaction from './Transaction.js'
|
|
20
31
|
export * as TransactionEnvelope from './TransactionEnvelope.js'
|
|
21
32
|
export * as TransactionReceipt from './TransactionReceipt.js'
|
|
22
33
|
export * as TransactionRequest from './TransactionRequest.js'
|
|
34
|
+
export * as TypedData from './TypedData.js'
|
|
23
35
|
export * as TxEnvelopeEip1559 from './TxEnvelopeEip1559.js'
|
|
24
36
|
export * as TxEnvelopeEip2930 from './TxEnvelopeEip2930.js'
|
|
25
37
|
export * as TxEnvelopeEip4844 from './TxEnvelopeEip4844.js'
|
package/dist/tempo/TokenId.d.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import * as Address from '../core/Address.js';
|
|
2
|
-
import * as Hex from '../core/Hex.js';
|
|
3
|
-
export type TokenId = bigint;
|
|
4
|
-
export type TokenIdOrAddress = TokenId | Address.Address;
|
|
5
|
-
/**
|
|
6
|
-
* Converts a token ID or address to a token ID.
|
|
7
|
-
*
|
|
8
|
-
* TIP-20 is Tempo's native token standard for stablecoins with deterministic addresses
|
|
9
|
-
* derived from sequential token IDs (prefix `0x20c0`).
|
|
10
|
-
*
|
|
11
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts twoslash
|
|
15
|
-
* import { TokenId } from 'ox/tempo'
|
|
16
|
-
*
|
|
17
|
-
* const tokenId = TokenId.from(1n)
|
|
18
|
-
* ```
|
|
19
|
-
*
|
|
20
|
-
* @param tokenIdOrAddress - The token ID or address.
|
|
21
|
-
* @returns The token ID.
|
|
22
|
-
*/
|
|
23
|
-
export declare function from(tokenIdOrAddress: TokenIdOrAddress | number): TokenId;
|
|
24
|
-
/**
|
|
25
|
-
* Converts a TIP-20 token address to a token ID.
|
|
26
|
-
*
|
|
27
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```ts twoslash
|
|
31
|
-
* import { TokenId } from 'ox/tempo'
|
|
32
|
-
*
|
|
33
|
-
* const tokenId = TokenId.fromAddress(
|
|
34
|
-
* '0x20c0000000000000000000000000000000000001'
|
|
35
|
-
* )
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* @param address - The token address.
|
|
39
|
-
* @returns The token ID.
|
|
40
|
-
*/
|
|
41
|
-
export declare function fromAddress(address: Address.Address): TokenId;
|
|
42
|
-
/**
|
|
43
|
-
* Converts a TIP-20 token ID to an address.
|
|
44
|
-
*
|
|
45
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* ```ts twoslash
|
|
49
|
-
* import { TokenId } from 'ox/tempo'
|
|
50
|
-
*
|
|
51
|
-
* const address = TokenId.toAddress(1n)
|
|
52
|
-
* ```
|
|
53
|
-
*
|
|
54
|
-
* @param tokenId - The token ID.
|
|
55
|
-
* @returns The address.
|
|
56
|
-
*/
|
|
57
|
-
export declare function toAddress(tokenId: TokenIdOrAddress): Address.Address;
|
|
58
|
-
/**
|
|
59
|
-
* Computes a deterministic TIP-20 token address from a sender address and salt.
|
|
60
|
-
*
|
|
61
|
-
* The address is computed as: `TIP20_PREFIX (12 bytes) || keccak256(abi.encode(sender, salt))[:8]`
|
|
62
|
-
*
|
|
63
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* ```ts twoslash
|
|
67
|
-
* import { TokenId } from 'ox/tempo'
|
|
68
|
-
*
|
|
69
|
-
* const id = TokenId.compute({
|
|
70
|
-
* sender: '0x1234567890123456789012345678901234567890',
|
|
71
|
-
* salt: '0x0000000000000000000000000000000000000000000000000000000000000001'
|
|
72
|
-
* })
|
|
73
|
-
* ```
|
|
74
|
-
*
|
|
75
|
-
* @param value - The sender address and salt.
|
|
76
|
-
* @returns The computed TIP-20 token id.
|
|
77
|
-
*/
|
|
78
|
-
export declare function compute(value: compute.Value): bigint;
|
|
79
|
-
export declare namespace compute {
|
|
80
|
-
type Value = {
|
|
81
|
-
/** The salt (32 bytes). */
|
|
82
|
-
salt: Hex.Hex;
|
|
83
|
-
/** The sender address. */
|
|
84
|
-
sender: Address.Address;
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=TokenId.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TokenId.d.ts","sourceRoot":"","sources":["../../src/tempo/TokenId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAOzE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAiB7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAQpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAapD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAY,KAAK,GAAG;QAClB,2BAA2B;QAC3B,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;QACb,0BAA0B;QAC1B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;KACxB,CAAA;CACF"}
|
package/dist/tempo/TokenId.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { keccak_256 } from '@noble/hashes/sha3.js';
|
|
2
|
-
import * as Address from '../core/Address.js';
|
|
3
|
-
import * as Bytes from '../core/Bytes.js';
|
|
4
|
-
import * as Hex from '../core/Hex.js';
|
|
5
|
-
const tip20Prefix = '0x20c0';
|
|
6
|
-
/**
|
|
7
|
-
* Converts a token ID or address to a token ID.
|
|
8
|
-
*
|
|
9
|
-
* TIP-20 is Tempo's native token standard for stablecoins with deterministic addresses
|
|
10
|
-
* derived from sequential token IDs (prefix `0x20c0`).
|
|
11
|
-
*
|
|
12
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```ts twoslash
|
|
16
|
-
* import { TokenId } from 'ox/tempo'
|
|
17
|
-
*
|
|
18
|
-
* const tokenId = TokenId.from(1n)
|
|
19
|
-
* ```
|
|
20
|
-
*
|
|
21
|
-
* @param tokenIdOrAddress - The token ID or address.
|
|
22
|
-
* @returns The token ID.
|
|
23
|
-
*/
|
|
24
|
-
export function from(tokenIdOrAddress) {
|
|
25
|
-
if (typeof tokenIdOrAddress === 'bigint' ||
|
|
26
|
-
typeof tokenIdOrAddress === 'number')
|
|
27
|
-
return BigInt(tokenIdOrAddress);
|
|
28
|
-
return fromAddress(tokenIdOrAddress);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Converts a TIP-20 token address to a token ID.
|
|
32
|
-
*
|
|
33
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```ts twoslash
|
|
37
|
-
* import { TokenId } from 'ox/tempo'
|
|
38
|
-
*
|
|
39
|
-
* const tokenId = TokenId.fromAddress(
|
|
40
|
-
* '0x20c0000000000000000000000000000000000001'
|
|
41
|
-
* )
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @param address - The token address.
|
|
45
|
-
* @returns The token ID.
|
|
46
|
-
*/
|
|
47
|
-
export function fromAddress(address) {
|
|
48
|
-
const resolved = address;
|
|
49
|
-
// The TIP-20 prefix check is case-insensitive, but most inputs are already
|
|
50
|
-
// lowercase, so peek the prefix bytes before falling back to a full
|
|
51
|
-
// `.toLowerCase()`.
|
|
52
|
-
const c2 = resolved.charCodeAt(2);
|
|
53
|
-
const c3 = resolved.charCodeAt(3);
|
|
54
|
-
const c4 = resolved.charCodeAt(4);
|
|
55
|
-
const c5 = resolved.charCodeAt(5);
|
|
56
|
-
const isPrefix = c2 === 50 /* '2' */ &&
|
|
57
|
-
c3 === 48 /* '0' */ &&
|
|
58
|
-
(c4 === 99 || c4 === 67) /* 'c' or 'C' */ &&
|
|
59
|
-
c5 === 48; /* '0' */
|
|
60
|
-
if (!isPrefix)
|
|
61
|
-
throw new Error('invalid tip20 address.');
|
|
62
|
-
// The trailing 36 hex characters encode the token id big-endian.
|
|
63
|
-
return BigInt(`0x${resolved.slice(tip20Prefix.length)}`);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Converts a TIP-20 token ID to an address.
|
|
67
|
-
*
|
|
68
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```ts twoslash
|
|
72
|
-
* import { TokenId } from 'ox/tempo'
|
|
73
|
-
*
|
|
74
|
-
* const address = TokenId.toAddress(1n)
|
|
75
|
-
* ```
|
|
76
|
-
*
|
|
77
|
-
* @param tokenId - The token ID.
|
|
78
|
-
* @returns The address.
|
|
79
|
-
*/
|
|
80
|
-
export function toAddress(tokenId) {
|
|
81
|
-
if (typeof tokenId === 'string') {
|
|
82
|
-
Address.assert(tokenId);
|
|
83
|
-
return tokenId;
|
|
84
|
-
}
|
|
85
|
-
const tokenIdHex = Hex.fromNumber(tokenId, { size: 18 });
|
|
86
|
-
return Hex.concat(tip20Prefix, tokenIdHex);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Computes a deterministic TIP-20 token address from a sender address and salt.
|
|
90
|
-
*
|
|
91
|
-
* The address is computed as: `TIP20_PREFIX (12 bytes) || keccak256(abi.encode(sender, salt))[:8]`
|
|
92
|
-
*
|
|
93
|
-
* [TIP-20 Token Standard](https://docs.tempo.xyz/protocol/tip20/overview)
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```ts twoslash
|
|
97
|
-
* import { TokenId } from 'ox/tempo'
|
|
98
|
-
*
|
|
99
|
-
* const id = TokenId.compute({
|
|
100
|
-
* sender: '0x1234567890123456789012345678901234567890',
|
|
101
|
-
* salt: '0x0000000000000000000000000000000000000000000000000000000000000001'
|
|
102
|
-
* })
|
|
103
|
-
* ```
|
|
104
|
-
*
|
|
105
|
-
* @param value - The sender address and salt.
|
|
106
|
-
* @returns The computed TIP-20 token id.
|
|
107
|
-
*/
|
|
108
|
-
export function compute(value) {
|
|
109
|
-
// ABI encoding of (address, bytes32) is the 32-byte left-padded address
|
|
110
|
-
// followed by the 32-byte salt. Build that 64-byte buffer directly and hash
|
|
111
|
-
// it, instead of round-tripping through `AbiParameters.encode`.
|
|
112
|
-
const buffer = new Uint8Array(64);
|
|
113
|
-
const addressBytes = Bytes.fromHex(value.sender);
|
|
114
|
-
buffer.set(addressBytes, 12);
|
|
115
|
-
buffer.set(Bytes.fromHex(value.salt, { size: 32 }), 32);
|
|
116
|
-
const hash = keccak_256(buffer);
|
|
117
|
-
// First 8 bytes of the digest, big-endian.
|
|
118
|
-
let id = 0n;
|
|
119
|
-
for (let i = 0; i < 8; i++)
|
|
120
|
-
id = (id << 8n) | BigInt(hash[i]);
|
|
121
|
-
return id;
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=TokenId.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../src/tempo/TokenId.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod/mini';
|
|
2
|
-
/** TIP-20 token id schema (non-negative bigint). */
|
|
3
|
-
export declare const TokenId: z.ZodMiniBigInt<bigint>;
|
|
4
|
-
/** Codec decoding a TIP-20 token address into a token id. */
|
|
5
|
-
export declare const address: z.ZodMiniCodec<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniBigInt<bigint>>;
|
|
6
|
-
//# sourceMappingURL=TokenId.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TokenId.d.ts","sourceRoot":"","sources":["../../../src/zod/tempo/TokenId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,oDAAoD;AACpD,eAAO,MAAM,OAAO,yBAE2C,CAAA;AAE/D,6DAA6D;AAC7D,eAAO,MAAM,OAAO,kFAGlB,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/* eslint-disable jsdoc-js/require-jsdoc, jsdoc-js/require-description, jsdoc-js/require-example */
|
|
2
|
-
import * as core_TokenId from '../../tempo/TokenId.js';
|
|
3
|
-
import * as z_Address from '../Address.js';
|
|
4
|
-
import * as z from 'zod/mini';
|
|
5
|
-
/** TIP-20 token id schema (non-negative bigint). */
|
|
6
|
-
export const TokenId = z
|
|
7
|
-
.bigint()
|
|
8
|
-
.check(z.refine((value) => value >= 0n, 'expected token id'));
|
|
9
|
-
/** Codec decoding a TIP-20 token address into a token id. */
|
|
10
|
-
export const address = z.codec(z_Address.Address, TokenId, {
|
|
11
|
-
decode: (value) => core_TokenId.fromAddress(value),
|
|
12
|
-
encode: (value) => core_TokenId.toAddress(value),
|
|
13
|
-
});
|
|
14
|
-
//# sourceMappingURL=TokenId.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../../src/zod/tempo/TokenId.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,oDAAoD;AACpD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAA;AAE/D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;IACzD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC;CACjD,CAAC,CAAA"}
|