This is a modular proposal for the ERC20x EVM token Standard which extends ERC20.
Modules:
- Primitives:
- transfer to 1 (covered by ERC20. We add a variant which is allowed to invoke hooks)
- flow to 1
- transfer to n
- flow to n
| { | |
| "version": "1.0", | |
| "chainId": "5", | |
| "createdAt": "1692706453217", | |
| "meta": { | |
| "name": "Superfluid VestingScheduler Transactions Batch", | |
| "description": "", | |
| "txBuilderVersion": "1.16.1", | |
| "createdFromSafeAddress": "", | |
| "createdFromOwnerAddress": "", |
| #!/bin/bash | |
| # queries the balance (of native coins, e.g. ETH) of a given account at a given block | |
| # requires an archive node if the block lies more than a couple of blocks in the past | |
| # | |
| # Requirements: python, jq, curl and awk installed and in PATH | |
| # | |
| # usage: get-eth-balance-of-at.sh <ethereum_address> [block_number]" | |
| # env var RPC must be set |
| #!/bin/bash | |
| # deploys an instance of GdaNFTContract to a given network | |
| # usage: deploy.sh <network> <priceMillis> | |
| # env var PRIVKEY needs to be set | |
| # env var <explorer>_API_KEY needed for verification | |
| # env vars can be provided via .env file | |
| set -eu |
| set -eux | |
| # prerequisites: "forge" installed and in PATH, see https://book.getfoundry.sh/getting-started/installation | |
| name=$1 | |
| mkdir $name | |
| cd $name | |
| forge init --no-commit |
| #!/bin/bash | |
| # Queries the native coin amount deposited for a given account with a paymaster. | |
| # Requires cast and python installed | |
| set -eu | |
| #set -x | |
| # Check if exactly two arguments are provided | |
| if [ "$#" -ne 3 ]; then | |
| echo "Usage: $0 <network> <account_address> <threshold_in_ether>" |
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.23; | |
| /* Openzeppelin Contracts */ | |
| import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; | |
| import { ERC20Permit, Nonces } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol"; | |
| import { ERC20Votes } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol"; | |
| /** | |
| * @title Superfluid Token Contract |
| #!/bin/bash | |
| # Script for deploying nodejs applications to the SF cloud ™. | |
| # Requirements: | |
| # - ssh access | |
| # - application name in package.json or provided as env var APP_NAME | |
| # - git url in package.json or provided as env var GIT_URL | |
| # - package-lock.json | |
| # - npm scripts "build" and "start" | |
| # Optional: |
| #!/usr/bin/env node | |
| /* | |
| * usage: RPC=... NR_ADDRS=10 node get-first-addrs.js | |
| * | |
| * This script collects the first N unique addresses transacting on a chain, and saves them to a file. | |
| * | |
| * Environment Variables: | |
| * - (required) RPC: The RPC URL to connect to | |
| * - (optional) NR_ADDRS: The number of unique addresses to collect (default: 10) |
| #!/bin/bash | |
| # usage: airtable-to-json.sh <airtable-url-from-browser> > my-data.json | |
| AIRTABLE_URL=$1 | |
| API_KEY=${AIRTABLE_API_KEY} | |
| # Check if API_KEY is set | |
| if [ -z "$API_KEY" ]; then | |
| echo "Error: AIRTABLE_API_KEY environment variable is not set" |