Skip to content

Instantly share code, notes, and snippets.

View livingrock7's full-sized avatar

livingrock livingrock7

View GitHub Profile
if (shouldForwardWithERC20Forwarder) {
oracleAggregatorContract = blockchain.getContract(
blockchain.getOracleAggregatorAbi(),
blockchain.getOracleAggregatorContractAddress()
);
erc20ForwarderPreFlightCheck = await preFlightChecksService.getPreFlightChecks(
networkId,
oracleAggregatorContract,
request
@livingrock7
livingrock7 / preFlight.js
Created August 29, 2021 20:34
pre flight checks for paying gas in ERC20 token
const appRoot = require("app-root-path");
var log = require(`${appRoot}/config/winston`).logger(module);
const config = require(`${appRoot}/config`);
const cache = require(`${appRoot}/src/services/caching`);
const ethers = require("ethers");
const {
getGasPriceKey,
} = require(`${appRoot}/src/controllers/utils/cache-utils`);
const TOKEN_GAS_PRICE_THRESHOLD_PERCENTAGE =
config.TOKEN_GAS_PRICE_THRESHOLD_PERCENTAGE;
@livingrock7
livingrock7 / DappGasTank.sol
Created August 22, 2021 17:43
Dapp Gas Tank Draft
pragma solidity 0.6.2;
pragma experimental ABIEncoderV2;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
@livingrock7
livingrock7 / app.js
Created August 1, 2021 01:14
web3 - custom - eip712 sign
import React, { useState, useEffect } from "react";
import "../App.css";
import Button from "@material-ui/core/Button";
import {
NotificationContainer,
NotificationManager
} from "react-notifications";
import "react-notifications/lib/notifications.css";
import Backdrop from '@material-ui/core/Backdrop';
import CircularProgress from '@material-ui/core/CircularProgress';
@livingrock7
livingrock7 / App.js
Created July 15, 2021 06:59
USDC double permit (permit & executePermitWithDeposit) idle deposit forwarder client side code integration
import React, { useState, useEffect } from "react";
import "../App.css";
import Button from "@material-ui/core/Button";
import {
NotificationContainer,
NotificationManager
} from "react-notifications";
import "react-notifications/lib/notifications.css";
import Backdrop from '@material-ui/core/Backdrop';
import CircularProgress from '@material-ui/core/CircularProgress';
@livingrock7
livingrock7 / BiconomySwapper.sol
Created July 14, 2021 19:04
Biconomy Swapper Contract meta tx compliant
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity 0.8.0;
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "../libs/Ownable.sol";
import "../libs/BaseRelayRecipient.sol";
interface ISwapRouter {
struct ExactInputSingleParams {
@livingrock7
livingrock7 / App.js
Created July 14, 2021 19:01
client side uni V3 biconomy swapper
import React, { useState, useEffect } from "react";
import "../App.css";
import Button from "@material-ui/core/Button";
import {
NotificationContainer,
NotificationManager
} from "react-notifications";
import "react-notifications/lib/notifications.css";
import Backdrop from '@material-ui/core/Backdrop';
import CircularProgress from '@material-ui/core/CircularProgress';
@livingrock7
livingrock7 / web3_EIP2771_BSC.js
Created June 1, 2021 18:07
oddz | personal sign EIP2771 web3
import React, { useState, useEffect } from "react";
import "../App.css";
import Button from "@material-ui/core/Button";
import {
NotificationContainer,
NotificationManager
} from "react-notifications";
import "react-notifications/lib/notifications.css";
import Backdrop from '@material-ui/core/Backdrop';
import CircularProgress from '@material-ui/core/CircularProgress';
@livingrock7
livingrock7 / App.js
Created April 24, 2021 17:21
rage test
import React, { useState, useEffect } from "react";
import { Biconomy } from "@biconomy/mexa";
import Web3 from "web3";
const abi = require("./RageToken.json");
const abiRageFactory = require("./RageFactory.json").abi;
const abiRageContest = require("./RageContest.json");
const sigUtil = require("eth-sig-util");
// GineteToken contract address
import React, { useState, useEffect } from "react";
import "../App.css";
import Button from "@material-ui/core/Button";
import {
NotificationContainer,
NotificationManager
} from "react-notifications";
import "react-notifications/lib/notifications.css";
import Backdrop from '@material-ui/core/Backdrop';
import CircularProgress from '@material-ui/core/CircularProgress';