Fix TransactionResponse to have chainId instead of legacy networkId (#700).

This commit is contained in:
Richard Moore 2020-01-11 03:34:59 -05:00
parent 4151c0eacd
commit 72b3bc9909
No known key found for this signature in database
GPG Key ID: 665176BE8E9DC651

@ -328,29 +328,40 @@ export class Formatter {
}
*/
let result = Formatter.check(this.formats.transaction, transaction);
let result: TransactionResponse = Formatter.check(this.formats.transaction, transaction);
let networkId = transaction.networkId;
if (transaction.chainId != null) {
let chainId = transaction.chainId;
// geth-etc returns chainId
if (transaction.chainId != null && networkId == null && result.v == null) {
networkId = transaction.chainId;
if (isHexString(chainId)) {
chainId = BigNumber.from(chainId).toNumber();
}
result.chainId = chainId;
} else {
let chainId = transaction.networkId;
// geth-etc returns chainId
if (chainId == null && result.v == null) {
chainId = transaction.chainId;
}
if (isHexString(chainId)) {
chainId = BigNumber.from(chainId).toNumber();
}
if (typeof(chainId) !== "number" && result.v != null) {
chainId = (result.v - 35) / 2;
if (chainId < 0) { chainId = 0; }
chainId = parseInt(chainId);
}
if (typeof(chainId) !== "number") { chainId = 0; }
result.chainId = chainId;
}
if (isHexString(networkId)) {
networkId = BigNumber.from(networkId).toNumber();
}
if (typeof(networkId) !== "number" && result.v != null) {
networkId = (result.v - 35) / 2;
if (networkId < 0) { networkId = 0; }
networkId = parseInt(networkId);
}
if (typeof(networkId) !== "number") { networkId = 0; }
result.networkId = networkId;
// 0x0000... should actually be null
if (result.blockHash && result.blockHash.replace(/0/g, "") === "x") {
result.blockHash = null;