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
| ssh [email protected] "journalctl --user -n ${NR_LINES:-50} -f -u $1" |
| #!/bin/bash | |
| # This is a simple tool for deploying simple applications (mainly nodejs based ones) to the SF sandbox. | |
| # If run without any env vars set, it will do this on the server: | |
| # - clone the git repository specified in package.json | |
| # - (if a local file .env.prod exists) create a file .env on the server with the same content | |
| # - run "npm ci && npm run build" | |
| # - create a systemd service for the application and start it (command: "npm run start") | |
| # - (if a local file cron.json exists) setup cron jobs accordingly | |
| # |
| #!/bin/bash | |
| set -eu | |
| set +x | |
| # Usage: ./deploy_with_proxy.sh <contract_name> <constructor_types> <arg1> <arg2> ... | |
| # Example: ./deploy_with_proxy.sh MyContract "uint256,address" 42 0x1234567890123456789012345678901234567890 | |
| # Requires: RPC and PRIVKEY env vars set, build artifacts in directory out/ | |
| # Uses the deterministic deployment proxy contract at 0x4e59b44847b379578588920cA78FbF26c0B4956C | |
| # see https://github.com/Arachnid/deterministic-deployment-proxy for more details |
| #!/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" |
| #!/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 | |
| # 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: |
| // 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 | |
| # 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>" |
| 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 |