fix: ingest only the relevant properties when constructing `Transactions`

This commit is contained in:
steveluscher 2022-06-07 20:08:52 -07:00
parent 5f3b7bdd16
commit 6f6e5172d3
1 changed files with 18 additions and 10 deletions

View File

@ -258,17 +258,25 @@ export class Transaction {
) {
if (!opts) {
return;
} else if (
Object.prototype.hasOwnProperty.call(opts, 'lastValidBlockHeight')
) {
const newOpts = opts as TransactionBlockhashCtor;
Object.assign(this, newOpts);
this.recentBlockhash = newOpts.blockhash;
this.lastValidBlockHeight = newOpts.lastValidBlockHeight;
}
if (opts.feePayer) {
this.feePayer = opts.feePayer;
}
if (opts.signatures) {
this.signatures = opts.signatures;
}
if (Object.prototype.hasOwnProperty.call(opts, 'lastValidBlockHeight')) {
const {blockhash, lastValidBlockHeight} =
opts as TransactionBlockhashCtor;
this.recentBlockhash = blockhash;
this.lastValidBlockHeight = lastValidBlockHeight;
} else {
const oldOpts = opts as TransactionCtorFields_DEPRECATED;
Object.assign(this, oldOpts);
this.recentBlockhash = oldOpts.recentBlockhash;
const {recentBlockhash, nonceInfo} =
opts as TransactionCtorFields_DEPRECATED;
if (nonceInfo) {
this.nonceInfo = nonceInfo;
}
this.recentBlockhash = recentBlockhash;
}
}