-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Calculate KGCO2 using emission factors
- Loading branch information
1 parent
4a38e42
commit c68d1b7
Showing
2 changed files
with
27 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import { TransactionData } from "../types"; | ||
import emissionFactorTable from '../../emissionFactorTable.json' | ||
|
||
export const getTransactionEmissions = (txns: TransactionData[]) => { | ||
let totalTransactionEmissions = 0; | ||
//Loop through all transactions | ||
for (let i=0; i<txns.length; i++){ | ||
const transactionBlockNumber = parseFloat(txns[i].blockNumber) | ||
//Find closest block number from JSON | ||
for (let j=0; j<emissionFactorTable.length; j++){ | ||
if(transactionBlockNumber>emissionFactorTable[j].blockNumber && transactionBlockNumber<emissionFactorTable[j+1].blockNumber){ | ||
//Find transaction emissions by multiplying gas used by transaction by relevant emission factor for that block range | ||
const transactionEmissions = parseInt(txns[i].gasUsed) * emissionFactorTable[j].emissionFactor | ||
//Add transaction emissions to total | ||
totalTransactionEmissions += transactionEmissions | ||
//Stop the loop for this transaction | ||
break | ||
} | ||
} | ||
} | ||
return totalTransactionEmissions | ||
} |