Skip to content

Instantly share code, notes, and snippets.

View k06a's full-sized avatar
🚀
DeFi dreamer

Anton Bukov k06a

🚀
DeFi dreamer
View GitHub Profile
@k06a
k06a / log_2_rand_0_1.sol
Last active August 25, 2022 14:56
log_2_rand_0_1
/*
* ABDK Math 64.64 Smart Contract Library. Copyright © 2019 by ABDK Consulting.
* Author: Mikhail Vladimirov <mikhail.vladimirov@gmail.com>
*/
pragma solidity ^0.5.7;
/**
* Modified version of this code:
* https://github.com/abdk-consulting/abdk-libraries-solidity/blob/master/ABDKMath64x64.sol#L366
*
pragma solidity ^0.5.0;
import "github.com/OpenZeppelin/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import "github.com/OpenZeppelin/openzeppelin-contracts/contracts/math/SafeMath.sol";
interface IValidatorSet {
function isValidator(address candidate) external view returns(bool);
}
contract BasePool {
@k06a
k06a / StakingPool.sol
Last active August 6, 2019 06:18
StakingPool
pragma solidity ^0.5.0;
import "github.com/OpenZeppelin/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
contract StakingPool1 is ERC20 {
function () public payable {
}
function deposit() public payable {
@k06a
k06a / boolinq3
Last active June 28, 2019 17:21
boolinq3.cpp
#include <functional>
#include <iterator>
#include <iostream>
#include <vector>
#include <list>
#include <unordered_set>
//
pragma solidity ^0.5.0;
contract ERC20 {
using SafeMath for uint256;
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
interface IUniswap {
function getEthToTokenInputPrice(uint256 eth_sold) external view returns(uint256);
function getEthToTokenOutputPrice(uint256 tokens_bought) external view returns(uint256);
function getTokenToEthInputPrice(uint256 tokens_sold) external view returns(uint256);
function getTokenToEthOutputPrice(uint256 eth_bought) external view returns(uint256);
}
interface IBancor {
function getReturnByPath(address[] calldata _path, uint256 _amount) external view
returns (uint256 amount, uint256 conversion_fee);
@k06a
k06a / GasRefund.sol
Created May 18, 2019 09:48
GasRefund
contract GasRefund {
uint256 private _begin;
uint256 private _end;
function refundSupply() public view returns(uint256 supply) {
return _end - _begin;
}
function burn(uint256 n) internal {
uint256 begin = _begin;
@k06a
k06a / GasDiscounter.sol
Last active August 18, 2019 08:57
Universal Gas Discounter
interface IUniswap {
function getEthToTokenInputPrice(uint256 eth_sold) external view returns(uint256);
function getEthToTokenOutputPrice(uint256 tokens_bought) external view returns(uint256);
function ethToTokenSwapInput(uint256 min_tokens, uint256 deadline) external payable returns(uint256);
}
interface IGasToken {
function free(uint256 value) external returns (bool success);
function freeUpTo(uint256 value) public returns (uint256 freed);
function freeFromUpTo(address from, uint256 value) public returns (uint256 freed);
@k06a
k06a / Multisend.sol
Created April 9, 2019 22:49
Multisend
pragma solidity ^0.5.7;
contract Token {
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
event Transfer(address indexed from, address indexed to, uint256 amount);
function transfer(address to, uint256 amount) public returns(bool) {
_transfer(msg.sender, to, amount);
@k06a
k06a / n2-to-n.cpp
Last active February 24, 2019 20:14
n2-to-n
typedef unsigned __int64 u64;
//
// i\j 0 1 2 3 4
// 0 0 2 5 9
// 1 1 4 8
// 2 3 7
// 3 6
// 4
//