Skip to content

Instantly share code, notes, and snippets.

View sterlu's full-sized avatar

Nikola Vuković sterlu

View GitHub Profile
const rlp = require("rlp");
const web3Utils = require("web3-utils");
/**
* Calculates address of contract created by deployerAddr if CREATE is used (not CREATE2)
**/
const calcAddress = (deployerAddr, nonce) => {
const rlpEncoded = Buffer.from(rlp.encode([deployerAddr, nonce])).toString('hex');
const address = '0x' + web3Utils.sha3('0x' + rlpEncoded).substr(66 - 40);
return address;
@sterlu
sterlu / Savings APR-APY conversion.js
Created February 24, 2020 14:54
Convert between APR & APY yearly returns
const SECONDS_PER_YEAR = 365.25 * 24 * 60 * 60;
const BLOCKS_IN_A_YEAR = SECONDS_PER_YEAR / 14;
/**
* Formula source: http://www.linked8.com/blog/158-apy-to-apr-and-apr-to-apy-calculation-methodologies
*
* @param interest {Number} APY as percentage (ie. 6)
* @param frequency {Number} Compounding frequency (times a year)
* @returns {Number} APR as percentage (ie. 5.82 for APY of 6%)
*/
@sterlu
sterlu / ens-reverse.js
Last active January 12, 2022 10:58
Registering an ENS domain and setting up reverse lookup
// Disclamer:
// We are assuming Web3@1.0 is instantiated with a MetaMask provider or similar
const yourAccount = (await web3.eth.getAccounts())[0].toLowerCase()
function namehash(name) {
var node = '0x0000000000000000000000000000000000000000000000000000000000000000';
if (name !== '') {
var labels = name.split(".");
for(var i = labels.length - 1; i >= 0; i--) {