I hereby claim:
- I am l3wi on github.
- I am lewi (https://keybase.io/lewi) on keybase.
- I have a public key whose fingerprint is 6193 FD4C A672 8932 C14F 7662 A6F2 8FD6 2A45 BBC9
To claim this, I am signing this object:
pragma solidity ^0.5.17; | |
pragma experimental ABIEncoderV2; | |
/** | |
* @dev Wrappers over Solidity's arithmetic operations with added overflow | |
* checks. | |
* | |
* Arithmetic operations in Solidity wrap on overflow. This can easily result | |
* in bugs, because programmers usually assume that an overflow raises an | |
* error, which is the standard behavior in high level programming languages. |
import { ethers } from 'ethers' | |
import { DAO_ADDRESS, DAO_ABI, CLIPPER_ABI, CLIPPER_ADDRESS } from './presets' | |
const atob = (a) => Buffer.from(a, 'base64').toString('binary') | |
const ETH_NODE = 'node' | |
let provider = new ethers.providers.WebSocketProvider(ETH_NODE) | |
const fetchCoupons = async (account) => { | |
let dao = new ethers.Contract(DAO_ADDRESS, DAO_ABI, provider) | |
// Get current Epoch |
const epochPeriod = 28800 | |
const epochStart = 1602201600 | |
const epochOffset = 105 | |
const getWithdrawals = async (delay) => { | |
let dao = new ethers.Contract(data.DAO_ADDRESS, data.DAO_ABI, provider) | |
const epoch = (await dao.epoch()).toNumber() | |
console.log('Getting next epoch LP unlocks') |
import { ethers } from 'ethers' | |
// To use this you need to read the Uniswap v2 contract for a pair/ | |
// PRICE pulled from priceXCumulativeLast | |
// TIMESTAMPS pulled from _blockTimestampLast in getReserves() | |
// Mock Data | |
// In a real scenario you would fetch and store price & timestamp at an interval | |
// to mirror the contract calculating the TWAP on chain | |
const price0 = '529527205677379158060966860839' |
import { ethers } from 'ethers' | |
// To use this you need to read the Uniswap v2 contract for a pair/ | |
// PRICE pulled from priceXCumulativeLast | |
// TIMESTAMPS pulled from _blockTimestampLast in getReserves() | |
// Mock Data | |
// In a real scenario you would fetch and store price & timestamp at an interval | |
// to mirror the contract calculating the TWAP on chain | |
const price0 = '529527205677379158060966860839' |
const Crypto = require('iota.crypto.js') | |
// Vars | |
const trytes = `IEQJQMEBIPXMRRUMMVIRAYDGIODMLU9WBNLSAJBKMXGLBN9MSSAUDIJRYGCBBNJMTWVHTFZCUKKYQXHWCZINYARZN9PXKYUXWIGHKIYSHJVNYQUUF9YJRQZJOHLMUVBWJA9RCOXYBIGFXYWUXMSLBQWGVHFJH9BQNXAIM9HOC9WVBYZJFVDQBYMXLMLNEYSETVYBDLMVVXHUYEMZEQJARFXYVYLR9TPZQFFDKOQTKZDCWZOODEACKEWXOHABGCQLOZXWNIFMZKPQIRWHGMFPUUVBCQGX9SLJBSYUQKQLKGUAZVQHSQNIQY9UJHDCV9IEVMCD9FIRGAH9QQYCQHEXHGUBJPATWWKS9SLEPGLEPFAED99XDYLWKBAXRPKSENENWGOTFCDAYXRGDNFBZEZMDTEGUNC9DLM9J9SMOKMPBPNUTLNNOFUKFUDVXJZQJNDNLJEFZRAJWISPKRBHMJNQJFVBCYFEMXJHVSVZUXLQBNAZEU9GIVTBYHXZI9JUGJHMC9QZYOEWAAKBQZOIYRLTLMWODJLXPMPGNAQISOEODRKJJAOG99ORJPZHXUTUGDODIRNRNLGMCGDASIBVPYCVZCWAQIVGLMLNPVDPAMTCUNNMIMPZBNIRLOUZ9BDGEQFTO9NPAZK9KJZGVRGPQXGZFJ9VBWBJIUDSQGCGKTOKAAGSSJWWMHCLTKRAEWQMTCTNEBZCUMYXCA9KDGHFGHMCAYZI9IJBPZLSZPCVDXZIVIAFKVSCIFIGS9CUKYSQKJAUXBTYOJERATWBUIBGPFQLXFQMMRSPH9TJMOGQUVNMXCAQQGLSBRCMAOEKRRVCZRGTLRJHDFWHUIZUKXXJFDNKHTGEJHVKLLVIKWRSPJNHLHNWM9UJCRSKIDUYUDXKRPNDYWUZWMKLNEYMHXLBQWT9IDKHZLGCECFLQDZMOMCY9DBWTEHUOCZJMCOYUETNTH |
const Crypto = require('iota.crypto.js') | |
const IOTA = require('iota.lib.js') | |
const pify = require('pify') | |
const iota = new IOTA({ provider: 'https://nodes.iota.cafe:443' }) | |
// Vars | |
const bundle = | |
'G9QJBOOSY9UDEZZBX9HPEHIOJRLXGCSTIENORDH9KD9SCHOFHJXLIGGVHJZ99VUSUKFZLYVNQEQAHWLGW' |
I hereby claim:
To claim this, I am signing this object: