Recent events have shown that the auto-approval for user proxies is way too dangerous.
Security of users' NFTs should come before the convenience of auto approving collection for trading.
This is why I decided to remove the files in this gist.
import { IocContract } from '@adonisjs/fold' | |
import PostsLoader from './load/Posts' | |
export default class ETLProvider { | |
constructor (protected $container: IocContract) { | |
} | |
public register (): void { | |
// register bindings |
/* for gsap transform */ | |
.split-text__line, | |
.split-text__letter, | |
.split-text__word { | |
display: inline-block; | |
} | |
/* don't break "words" wrapper */ | |
.split-text__word { | |
white-space: nowrap; |
did:3:bafyreiavdrl6ptxuqdefz7qod35zqyuzrasoosemcvskvsjoost5je3lxq |
FROM node:14 as builder | |
WORKDIR /home/node/app | |
COPY package*.json ./ | |
RUN npm install | |
COPY . . | |
RUN npm run build | |
FROM node:14 as installer | |
WORKDIR /home/node/app |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<script src="https://cdn.jsdelivr.net/npm/ethers@5.4.7/dist/ethers.umd.min.js"></script> | |
</head> | |
<body> | |
<script> |
contract ERC721 { | |
// take OpenZeppelin contract and add this at the end: | |
uint256 private _lastTokenId; | |
// uncomment next line if you need totalSupply | |
// uint256 public totalSupply; | |
/// @dev be careful this function expects recipients to all be unique and not be address(0) | |
function _airdrop(address[] calldata recipients) internal virtual { |
function getERC20Contract(address) { | |
return new ethers.Contract(address, [{ | |
anonymous: false, | |
inputs: [ | |
{ indexed: true, internalType: 'address', name: 'from', type: 'address' }, | |
{ indexed: true, internalType: 'address', name: 'to', type: 'address' }, | |
{ indexed: false, internalType: 'uint256', name: 'amount', type: 'uint256' }, | |
], | |
name: 'Transfer', | |
type: 'event', |
import {getUnnamedAccounts, ethers} from 'hardhat'; | |
async function main() { | |
await network.provider.send('evm_setAutomine', [false]); | |
let snapshot = null; | |
async function mine() { | |
let blockNumber = parseInt(await network.provider.send('eth_blockNumber'), 16); | |
let block = await network.provider.send('eth_getBlockByNumber', [`0x${blockNumber.toString(16)}`, false]); | |
console.log(`${blockNumber}: ${block?.hash}`); |