Skip to content

Commit d50c9eb

Browse files
committed
Replace transaction with transactionMessage where the latter term was used incorrectly
1 parent 6d85f3c commit d50c9eb

File tree

7 files changed

+106
-96
lines changed

7 files changed

+106
-96
lines changed

Diff for: packages/transaction-messages/README.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ import {
2424
setTransactionMessageLifetimeUsingBlockhash,
2525
} from '@solana/transaction-messages';
2626

27-
const transferTransaction = pipe(
27+
const transferTransactionMessage = pipe(
2828
createTransactionMessage({ version: 0 }),
29-
tx => setTransactionMessageFeePayer(myAddress, tx),
30-
tx => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),
31-
tx => appendTransactionMessageInstruction(getTransferSolInstruction({ source, destination, amount }), tx),
29+
m => setTransactionMessageFeePayer(myAddress, m),
30+
m => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, m),
31+
m => appendTransactionMessageInstruction(getTransferSolInstruction({ source, destination, amount }), m),
3232
);
3333
```
3434

@@ -49,7 +49,7 @@ Given a `TransactionVersion` this method will return an empty transaction having
4949
```ts
5050
import { createTransactionMessage } from '@solana/transaction-messages';
5151

52-
const tx = createTransactionMessage({ version: 0 });
52+
const message = createTransactionMessage({ version: 0 });
5353
```
5454

5555
## Setting the fee payer
@@ -111,7 +111,7 @@ Given a blockhash and the last block height at which that blockhash is considere
111111
import { setTransactionMessageLifetimeUsingBlockhash } from '@solana/transaction-messages';
112112

113113
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
114-
const txWithBlockhashLifetime = setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx);
114+
const txMessageWithBlockhashLifetime = setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, txMessage);
115115
```
116116

117117
#### `setTransactionMessageLifetimeUsingDurableNonce()`
@@ -164,7 +164,7 @@ function handleSubmit() {
164164
// Typescript will upcast `blockhash` to `Blockhash`.
165165
assertIsBlockhash(blockhash);
166166
// At this point, `blockhash` is a `Blockhash` that can be used with the RPC.
167-
const blockhashIsValid = await rpc.isBlockhashValid(blockhash).send();
167+
const { value: blockhashIsValid } = await rpc.isBlockhashValid(blockhash).send();
168168
} catch (e) {
169169
// `blockhash` turned out not to be a base58-encoded blockhash
170170
}

Diff for: packages/transaction-messages/src/__typetests__/transaction-message-typetests.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -65,29 +65,29 @@ setTransactionMessageLifetimeUsingBlockhash(
6565

6666
{
6767
// assertIsTransactionMessageWithBlockhashLifetime
68-
const transaction = null as unknown as BaseTransactionMessage;
68+
const transactionMessage = null as unknown as BaseTransactionMessage;
6969
// @ts-expect-error Should not be blockhash lifetime
70-
transaction satisfies TransactionMessageWithBlockhashLifetime;
70+
transactionMessage satisfies TransactionMessageWithBlockhashLifetime;
7171
// @ts-expect-error Should not satisfy has blockhash
72-
transaction satisfies {
72+
transactionMessage satisfies {
7373
lifetimeConstraint: {
7474
blockhash: Blockhash;
7575
};
7676
};
7777
// @ts-expect-error Should not satisfy has lastValidBlockHeight
78-
transaction satisfies {
78+
transactionMessage satisfies {
7979
lifetimeConstraint: {
8080
lastValidBlockHeight: bigint;
8181
};
8282
};
83-
assertIsTransactionMessageWithBlockhashLifetime(transaction);
84-
transaction satisfies TransactionMessageWithBlockhashLifetime;
85-
transaction satisfies {
83+
assertIsTransactionMessageWithBlockhashLifetime(transactionMessage);
84+
transactionMessage satisfies TransactionMessageWithBlockhashLifetime;
85+
transactionMessage satisfies {
8686
lifetimeConstraint: {
8787
blockhash: Blockhash;
8888
};
8989
};
90-
transaction satisfies {
90+
transactionMessage satisfies {
9191
lifetimeConstraint: {
9292
lastValidBlockHeight: bigint;
9393
};
@@ -233,9 +233,9 @@ null as unknown as BaseTransactionMessage &
233233
// @ts-expect-error missing fee payer
234234
TransactionMessageWithBlockhashLifetime satisfies CompilableTransactionMessage;
235235
{
236-
const transaction = null as unknown as BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime;
236+
const transactionMessage = null as unknown as BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime;
237237
// @ts-expect-error missing fee payer
238-
transaction satisfies CompilableTransactionMessage;
238+
transactionMessage satisfies CompilableTransactionMessage;
239239
}
240240
null as unknown as BaseTransactionMessage &
241241
ITransactionMessageWithFeePayer &

Diff for: packages/transaction-messages/src/blockhash.ts

+23-21
Original file line numberDiff line numberDiff line change
@@ -14,56 +14,58 @@ export interface TransactionMessageWithBlockhashLifetime {
1414
}
1515

1616
export function isTransactionMessageWithBlockhashLifetime(
17-
transaction: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
18-
): transaction is BaseTransactionMessage & TransactionMessageWithBlockhashLifetime {
17+
transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
18+
): transactionMessage is BaseTransactionMessage & TransactionMessageWithBlockhashLifetime {
1919
const lifetimeConstraintShapeMatches =
20-
'lifetimeConstraint' in transaction &&
21-
typeof transaction.lifetimeConstraint.blockhash === 'string' &&
22-
typeof transaction.lifetimeConstraint.lastValidBlockHeight === 'bigint';
20+
'lifetimeConstraint' in transactionMessage &&
21+
typeof transactionMessage.lifetimeConstraint.blockhash === 'string' &&
22+
typeof transactionMessage.lifetimeConstraint.lastValidBlockHeight === 'bigint';
2323
if (!lifetimeConstraintShapeMatches) return false;
2424
try {
25-
assertIsBlockhash(transaction.lifetimeConstraint.blockhash);
25+
assertIsBlockhash(transactionMessage.lifetimeConstraint.blockhash);
2626
return true;
2727
} catch {
2828
return false;
2929
}
3030
}
3131

3232
export function assertIsTransactionMessageWithBlockhashLifetime(
33-
transaction: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
34-
): asserts transaction is BaseTransactionMessage & TransactionMessageWithBlockhashLifetime {
35-
if (!isTransactionMessageWithBlockhashLifetime(transaction)) {
33+
transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
34+
): asserts transactionMessage is BaseTransactionMessage & TransactionMessageWithBlockhashLifetime {
35+
if (!isTransactionMessageWithBlockhashLifetime(transactionMessage)) {
3636
throw new SolanaError(SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME);
3737
}
3838
}
3939

4040
export function setTransactionMessageLifetimeUsingBlockhash<
41-
TTransaction extends BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime,
41+
TTransactionMessage extends BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime,
4242
>(
4343
blockhashLifetimeConstraint: BlockhashLifetimeConstraint,
44-
transaction: TTransaction,
45-
): Omit<TTransaction, 'lifetimeConstraint'> & TransactionMessageWithBlockhashLifetime;
44+
transactionMessage: TTransactionMessage,
45+
): Omit<TTransactionMessage, 'lifetimeConstraint'> & TransactionMessageWithBlockhashLifetime;
4646

4747
export function setTransactionMessageLifetimeUsingBlockhash<
48-
TTransaction extends BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
48+
TTransactionMessage extends
49+
| BaseTransactionMessage
50+
| (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
4951
>(
5052
blockhashLifetimeConstraint: BlockhashLifetimeConstraint,
51-
transaction: TTransaction,
52-
): TransactionMessageWithBlockhashLifetime & TTransaction;
53+
transactionMessage: TTransactionMessage,
54+
): TransactionMessageWithBlockhashLifetime & TTransactionMessage;
5355

5456
export function setTransactionMessageLifetimeUsingBlockhash(
5557
blockhashLifetimeConstraint: BlockhashLifetimeConstraint,
56-
transaction: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
58+
transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),
5759
) {
5860
if (
59-
'lifetimeConstraint' in transaction &&
60-
transaction.lifetimeConstraint.blockhash === blockhashLifetimeConstraint.blockhash &&
61-
transaction.lifetimeConstraint.lastValidBlockHeight === blockhashLifetimeConstraint.lastValidBlockHeight
61+
'lifetimeConstraint' in transactionMessage &&
62+
transactionMessage.lifetimeConstraint.blockhash === blockhashLifetimeConstraint.blockhash &&
63+
transactionMessage.lifetimeConstraint.lastValidBlockHeight === blockhashLifetimeConstraint.lastValidBlockHeight
6264
) {
63-
return transaction;
65+
return transactionMessage;
6466
}
6567
const out = {
66-
...transaction,
68+
...transactionMessage,
6769
lifetimeConstraint: Object.freeze(blockhashLifetimeConstraint),
6870
};
6971
Object.freeze(out);

Diff for: packages/transaction-messages/src/compile/message.ts

+13-8
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,27 @@ type VersionedCompiledTransactionMessage = BaseCompiledTransactionMessage &
2727
}>;
2828

2929
export function compileTransactionMessage(
30-
transaction: CompilableTransactionMessage & Readonly<{ version: 'legacy' }>,
30+
transactionMessage: CompilableTransactionMessage & Readonly<{ version: 'legacy' }>,
3131
): LegacyCompiledTransactionMessage;
3232
export function compileTransactionMessage(
33-
transaction: CompilableTransactionMessage,
33+
transactionMessage: CompilableTransactionMessage,
3434
): VersionedCompiledTransactionMessage;
35-
export function compileTransactionMessage(transaction: CompilableTransactionMessage): CompiledTransactionMessage {
36-
const addressMap = getAddressMapFromInstructions(transaction.feePayer.address, transaction.instructions);
35+
export function compileTransactionMessage(
36+
transactionMessage: CompilableTransactionMessage,
37+
): CompiledTransactionMessage {
38+
const addressMap = getAddressMapFromInstructions(
39+
transactionMessage.feePayer.address,
40+
transactionMessage.instructions,
41+
);
3742
const orderedAccounts = getOrderedAccountsFromAddressMap(addressMap);
3843
return {
39-
...(transaction.version !== 'legacy'
44+
...(transactionMessage.version !== 'legacy'
4045
? { addressTableLookups: getCompiledAddressTableLookups(orderedAccounts) }
4146
: null),
4247
header: getCompiledMessageHeader(orderedAccounts),
43-
instructions: getCompiledInstructions(transaction.instructions, orderedAccounts),
44-
lifetimeToken: getCompiledLifetimeToken(transaction.lifetimeConstraint),
48+
instructions: getCompiledInstructions(transactionMessage.instructions, orderedAccounts),
49+
lifetimeToken: getCompiledLifetimeToken(transactionMessage.lifetimeConstraint),
4550
staticAccounts: getCompiledStaticAccounts(orderedAccounts),
46-
version: transaction.version,
51+
version: transactionMessage.version,
4752
};
4853
}

Diff for: packages/transaction-messages/src/decompile-message.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,14 @@ export function decompileTransactionMessage(
219219

220220
return pipe(
221221
createTransactionMessage({ version: compiledTransactionMessage.version as TransactionVersion }),
222-
tx => setTransactionMessageFeePayer(feePayer, tx),
223-
tx =>
222+
m => setTransactionMessageFeePayer(feePayer, m),
223+
m =>
224224
instructions.reduce((acc, instruction) => {
225225
return appendTransactionMessageInstruction(instruction, acc);
226-
}, tx),
227-
tx =>
226+
}, m),
227+
m =>
228228
'blockhash' in lifetimeConstraint
229-
? setTransactionMessageLifetimeUsingBlockhash(lifetimeConstraint, tx)
230-
: setTransactionMessageLifetimeUsingDurableNonce(lifetimeConstraint, tx),
229+
? setTransactionMessageLifetimeUsingBlockhash(lifetimeConstraint, m)
230+
: setTransactionMessageLifetimeUsingDurableNonce(lifetimeConstraint, m),
231231
);
232232
}

Diff for: packages/transaction-messages/src/durable-nonce.ts

+24-21
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ export interface TransactionMessageWithDurableNonceLifetime<
6262
}
6363

6464
export function assertIsDurableNonceTransactionMessage(
65-
transaction: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime),
66-
): asserts transaction is BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime {
67-
if (!isDurableNonceTransaction(transaction)) {
65+
transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime),
66+
): asserts transactionMessage is BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime {
67+
if (!isDurableNonceTransaction(transactionMessage)) {
6868
throw new SolanaError(SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME);
6969
}
7070
}
@@ -118,13 +118,13 @@ function isAdvanceNonceAccountInstructionData(data: ReadonlyUint8Array): data is
118118
}
119119

120120
export function isDurableNonceTransaction(
121-
transaction: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime),
122-
): transaction is BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime {
121+
transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime),
122+
): transactionMessage is BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime {
123123
return (
124-
'lifetimeConstraint' in transaction &&
125-
typeof transaction.lifetimeConstraint.nonce === 'string' &&
126-
transaction.instructions[0] != null &&
127-
isAdvanceNonceAccountInstruction(transaction.instructions[0])
124+
'lifetimeConstraint' in transactionMessage &&
125+
typeof transactionMessage.lifetimeConstraint.nonce === 'string' &&
126+
transactionMessage.instructions[0] != null &&
127+
isAdvanceNonceAccountInstruction(transactionMessage.instructions[0])
128128
);
129129
}
130130

@@ -143,7 +143,7 @@ function isAdvanceNonceAccountInstructionForNonce<
143143
}
144144

145145
export function setTransactionMessageLifetimeUsingDurableNonce<
146-
TTransaction extends BaseTransactionMessage,
146+
TTransactionMessage extends BaseTransactionMessage,
147147
TNonceAccountAddress extends string = string,
148148
TNonceAuthorityAddress extends string = string,
149149
TNonceValue extends string = string,
@@ -153,49 +153,52 @@ export function setTransactionMessageLifetimeUsingDurableNonce<
153153
nonceAccountAddress,
154154
nonceAuthorityAddress,
155155
}: DurableNonceConfig<TNonceAccountAddress, TNonceAuthorityAddress, TNonceValue>,
156-
transaction: TTransaction | (TransactionMessageWithDurableNonceLifetime & TTransaction),
156+
transactionMessage: TTransactionMessage | (TransactionMessageWithDurableNonceLifetime & TTransactionMessage),
157157
): TransactionMessageWithDurableNonceLifetime<TNonceAccountAddress, TNonceAuthorityAddress, TNonceValue> &
158-
TTransaction {
158+
TTransactionMessage {
159159
let newInstructions: [
160160
AdvanceNonceAccountInstruction<TNonceAccountAddress, TNonceAuthorityAddress>,
161161
...IInstruction[],
162162
];
163163

164-
const firstInstruction = transaction.instructions[0];
164+
const firstInstruction = transactionMessage.instructions[0];
165165
if (firstInstruction && isAdvanceNonceAccountInstruction(firstInstruction)) {
166166
if (isAdvanceNonceAccountInstructionForNonce(firstInstruction, nonceAccountAddress, nonceAuthorityAddress)) {
167-
if (isDurableNonceTransaction(transaction) && transaction.lifetimeConstraint.nonce === nonce) {
168-
return transaction as TransactionMessageWithDurableNonceLifetime<
167+
if (
168+
isDurableNonceTransaction(transactionMessage) &&
169+
transactionMessage.lifetimeConstraint.nonce === nonce
170+
) {
171+
return transactionMessage as TransactionMessageWithDurableNonceLifetime<
169172
TNonceAccountAddress,
170173
TNonceAuthorityAddress,
171174
TNonceValue
172175
> &
173-
TTransaction;
176+
TTransactionMessage;
174177
} else {
175178
// we already have the right first instruction, leave it as-is
176-
newInstructions = [firstInstruction, ...transaction.instructions.slice(1)];
179+
newInstructions = [firstInstruction, ...transactionMessage.instructions.slice(1)];
177180
}
178181
} else {
179182
// we have a different advance nonce instruction as the first instruction, replace it
180183
newInstructions = [
181184
Object.freeze(createAdvanceNonceAccountInstruction(nonceAccountAddress, nonceAuthorityAddress)),
182-
...transaction.instructions.slice(1),
185+
...transactionMessage.instructions.slice(1),
183186
];
184187
}
185188
} else {
186189
// we don't have an existing advance nonce instruction as the first instruction, prepend one
187190
newInstructions = [
188191
Object.freeze(createAdvanceNonceAccountInstruction(nonceAccountAddress, nonceAuthorityAddress)),
189-
...transaction.instructions,
192+
...transactionMessage.instructions,
190193
];
191194
}
192195

193196
return Object.freeze({
194-
...transaction,
197+
...transactionMessage,
195198
instructions: Object.freeze(newInstructions),
196199
lifetimeConstraint: Object.freeze({
197200
nonce,
198201
}),
199202
}) as TransactionMessageWithDurableNonceLifetime<TNonceAccountAddress, TNonceAuthorityAddress, TNonceValue> &
200-
TTransaction;
203+
TTransactionMessage;
201204
}

Diff for: packages/transaction-messages/src/instructions.ts

+23-23
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import { TransactionMessageWithDurableNonceLifetime } from './durable-nonce';
22
import { BaseTransactionMessage } from './transaction-message';
33

4-
export function appendTransactionMessageInstruction<TTransaction extends BaseTransactionMessage>(
5-
instruction: TTransaction['instructions'][number],
6-
transaction: TTransaction,
7-
): TTransaction {
8-
return appendTransactionMessageInstructions([instruction], transaction);
4+
export function appendTransactionMessageInstruction<TTransactionMessage extends BaseTransactionMessage>(
5+
instruction: TTransactionMessage['instructions'][number],
6+
transactionMessage: TTransactionMessage,
7+
): TTransactionMessage {
8+
return appendTransactionMessageInstructions([instruction], transactionMessage);
99
}
1010

11-
export function appendTransactionMessageInstructions<TTransaction extends BaseTransactionMessage>(
12-
instructions: ReadonlyArray<TTransaction['instructions'][number]>,
13-
transaction: TTransaction,
14-
): TTransaction {
11+
export function appendTransactionMessageInstructions<TTransactionMessage extends BaseTransactionMessage>(
12+
instructions: ReadonlyArray<TTransactionMessage['instructions'][number]>,
13+
transactionMessage: TTransactionMessage,
14+
): TTransactionMessage {
1515
return Object.freeze({
16-
...transaction,
17-
instructions: Object.freeze([...transaction.instructions, ...instructions]),
16+
...transactionMessage,
17+
instructions: Object.freeze([...transactionMessage.instructions, ...instructions]),
1818
});
1919
}
2020

@@ -24,19 +24,19 @@ type ExcludeDurableNonce<T> = T extends TransactionMessageWithDurableNonceLifeti
2424
? BaseTransactionMessage & Omit<T, keyof TransactionMessageWithDurableNonceLifetime>
2525
: T;
2626

27-
export function prependTransactionMessageInstruction<TTransaction extends BaseTransactionMessage>(
28-
instruction: TTransaction['instructions'][number],
29-
transaction: TTransaction,
30-
): ExcludeDurableNonce<TTransaction> {
31-
return prependTransactionMessageInstructions([instruction], transaction);
27+
export function prependTransactionMessageInstruction<TTransactionMessage extends BaseTransactionMessage>(
28+
instruction: TTransactionMessage['instructions'][number],
29+
transactionMessage: TTransactionMessage,
30+
): ExcludeDurableNonce<TTransactionMessage> {
31+
return prependTransactionMessageInstructions([instruction], transactionMessage);
3232
}
3333

34-
export function prependTransactionMessageInstructions<TTransaction extends BaseTransactionMessage>(
35-
instructions: ReadonlyArray<TTransaction['instructions'][number]>,
36-
transaction: TTransaction,
37-
): ExcludeDurableNonce<TTransaction> {
34+
export function prependTransactionMessageInstructions<TTransactionMessage extends BaseTransactionMessage>(
35+
instructions: ReadonlyArray<TTransactionMessage['instructions'][number]>,
36+
transactionMessage: TTransactionMessage,
37+
): ExcludeDurableNonce<TTransactionMessage> {
3838
return Object.freeze({
39-
...transaction,
40-
instructions: Object.freeze([...instructions, ...transaction.instructions]),
41-
}) as ExcludeDurableNonce<TTransaction>;
39+
...transactionMessage,
40+
instructions: Object.freeze([...instructions, ...transactionMessage.instructions]),
41+
}) as ExcludeDurableNonce<TTransactionMessage>;
4242
}

0 commit comments

Comments
 (0)