Skip to content

Instantly share code, notes, and snippets.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
interface CallProxy{
function anyCall(
address _to,
bytes calldata _data,
address _fallback,
uint256 _toChainID,
@m-bo-one
m-bo-one / Disperse.sol
Last active May 14, 2022 16:31
Disperse tokens
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/utils/Context.sol";
contract Disperse is Context {
function disperseEther(
address payable[] calldata recipients,
@m-bo-one
m-bo-one / sendTx.js
Last active October 27, 2021 09:22
Ethers + accessList estimation
async function sendTx(contract, method, params = []) {
console.log(`Sending tx for contracts "${contract.address}" with method name "${method}" and params: "${params}"`);
const gasEstimation = await contract.estimateGas[method](...params);
const unsignedTx = await contract.populateTransaction[method](...params);
const payload = {};
const { accessList, gasUsed: gasUsedHex } = await ethers.provider.send("eth_createAccessList", [unsignedTx]);
const gasUsed = ethers.BigNumber.from(gasUsedHex);
if (gasUsed >= gasEstimation) {
@m-bo-one
m-bo-one / SigmaToken.sol
Created September 16, 2021 20:23
test erc20
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract SigmaToken is ERC20, Ownable {
constructor(
string memory _name,
string memory _symbol,
pragma solidity >=0.7.0 <0.8.0;
contract Test {
mapping(address => bool) private data;
function set(bool res) public payable {
data[msg.sender] = res;
}
function get() public view returns(bool) {
pragma solidity >=0.7.0 <0.8.0;
interface ERC20 {
function totalSupply() external view returns (uint supply);
function balanceOf(address _owner) external view returns (uint balance);
function transfer(address _to, uint _value) external returns (bool success);
function transferFrom(address _from, address _to, uint _value) external returns (bool success);
function approve(address _spender, uint _value) external returns (bool success);
function allowance(address _owner, address _spender) external view returns (uint remaining);
function decimals() external view returns(uint digits);
did:3:bafyreihtwhjauja2ogqdanvh5f3fyhixkifwcgk7xo22qlqknlv7sx2f5m
import sys
if sys.version_info[0] >= 3:
xrange = range
def list_partitate(elems):
if not isinstance(elems, list):
return False
@m-bo-one
m-bo-one / debt.sol
Last active October 29, 2017 22:05
pragma solidity ^0.4.18;
contract Debt {
address owner;
int public balance;
mapping(address => int) public debts;
event Borrow(address user, int amount);
event Refund(address user, int amount);
{
// you may set specific environment variables here
// e.g "env": { "PATH": "$HOME/go/bin:$PATH" }
// in values, $PATH and ${PATH} are replaced with
// the corresponding environment(PATH) variable, if it exists.
"env": {"GOPATH": "$HOME/go", "PATH": "$PATH:$GOPATH/bin" },
"fmt_cmd": ["goimports"],
// enable comp-lint, this will effectively disable the live linter