@@ -74,15 +74,22 @@ export default class TransactionFactory {
74
74
* A Buffer[] (Legacy Transaction)
75
75
* This method returns the right transaction.
76
76
*
77
- * @param rawData - Either a Buffer or a Buffer[]
77
+ * @param data - A Buffer or Buffer[]
78
78
* @param txOptions - The transaction options
79
79
*/
80
- public static fromBlockBodyData ( rawData : Buffer | Buffer [ ] , txOptions : TxOptions = { } ) {
81
- if ( Buffer . isBuffer ( rawData ) ) {
82
- return this . fromRawData ( rawData , txOptions )
83
- } else if ( Array . isArray ( rawData ) ) {
84
- // It is a legacy transaction
85
- return Transaction . fromValuesArray ( rawData , txOptions )
80
+ public static fromBlockBodyData ( data : Buffer | Buffer [ ] , txOptions : TxOptions = { } ) {
81
+ if ( Buffer . isBuffer ( data ) ) {
82
+ return this . fromSerializedData ( data , txOptions )
83
+ } else if ( Array . isArray ( data ) ) {
84
+ if ( data . length === 6 || data . length === 9 ) {
85
+ // It is a legacy transaction
86
+ return Transaction . fromValuesArray ( data , txOptions )
87
+ } else if ( data . length === 8 || data . length === 11 ) {
88
+ // It is an Access List Transaction
89
+ return AccessListEIP2930Transaction . fromValuesArray ( data , txOptions )
90
+ } else {
91
+ throw new Error ( 'Cannot decode transaction: unknown array length' )
92
+ }
86
93
} else {
87
94
throw new Error ( 'Cannot decode transaction: unknown type input' )
88
95
}
0 commit comments