start new:
tmux
start new with session name:
tmux new -s myname
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.20; | |
| import "@script/Contracts.s.sol"; | |
| import {Script, console} from "forge-std/Script.sol"; | |
| import {Params, ParamChecker, WETH, OP, WSTETH} from "@script/Params.s.sol"; | |
| import {Common} from "@script/Common.s.sol"; | |
| import {MainnetDeployment} from "@script/MainnetDeployment.s.sol"; | |
| import "@script/Registry.s.sol"; |
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.20; | |
| import "@script/Contracts.s.sol"; | |
| import {Script, console} from "forge-std/Script.sol"; | |
| import {Params, ParamChecker, WETH, OP, WSTETH} from "@script/Params.s.sol"; | |
| import {Common} from "@script/Common.s.sol"; | |
| import {MainnetDeployment} from "@script/MainnetDeployment.s.sol"; | |
| import "@script/Registry.s.sol"; |
| # Address of Pyth contract | |
| # See [https://docs.pyth.network/documentation/pythnet-price-feeds/evm#mainnet] | |
| pythNetworkAddress: "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C" # Optimism Mainnet address | |
| # debug mode | |
| debug: true | |
| # Refresh rate of config in seconds to prevent rate limiting from github | |
| configRefreshRateInSeconds: 3600 | |
| # See [https://docs.pyth.network/documentation/pythnet-price-feeds/price-service#public-endpoints] | |
| priceServiceEndpoint: "https://hermes.pyth.network" | |
| # maximum number of seconds between updates |
| setTimeout(() => { | |
| var css = ` | |
| .input-box-button.full-input-box-button, | |
| .full-input-box-button.full-unclickable, | |
| .full-input-box-button.codebase.full-unclickable, | |
| .full-input-box-button.cursor-flash-box, | |
| .ya-solid-dropdown-menu li, | |
| .ya-solid-dropdown-menu div, | |
| .context-pill.context-pill-default, | |
| div.cursor-button, |
| [ | |
| { | |
| "address": "0xd4c286174ead0c7c64c21f2d121a7e98e25ded34", | |
| "bridgeTransactions": [ | |
| { | |
| "bridgeName": "apxETH Bridge", | |
| "token": "apxETH", | |
| "amount": "95261797000000000000", | |
| "blockHeight": 126537359 | |
| }, |
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.19; | |
| import {CollateralJoinFactory} from "../../../contracts/hai-core/contracts/factories/CollateralJoinFactory.sol"; | |
| import {CollateralJoinFactory} from "../../../contracts/hai-core/contracts/factories/CollateralJoinFactory.sol"; | |
| import {CollateralAuctionHouse} from "../../../contracts/hai-core/contracts/CollateralAuctionHouse.sol"; | |
| import {CollateralAuctionHouseFactory} from "../../../contracts/hai-core/contracts/factories/CollateralAuctionHouseFactory.sol"; | |
| import {SAFEEngine, ISAFEEngine} from "../../../contracts/hai-core/contracts/SAFEEngine.sol"; | |
| import {OracleRelayer, IOracleRelayer} from "../../../contracts/hai-core/contracts/OracleRelayer.sol"; |
| const hdkey = require("hdkey"); | |
| const Wallet = require("ethereumjs-wallet"); | |
| const bip39 = require("bip39"); | |
| function derivePrivateKey(mnemonic, index = 0) { | |
| const seed = bip39.mnemonicToSeedSync(mnemonic); | |
| const root = hdkey.fromMasterSeed(seed); | |
| const masterPrivateKey = root.privateKey.toString("hex"); | |
| const addrNode = root.derive(`m/44'/60'/0'/0/${index}`); |
| [ | |
| { | |
| "id": "080d24abc4cc7a2502e5312e99d9c09a5c975436e5c54c66c0a5d11e2e4c6069i0", | |
| "meta": { | |
| "name": "Moon Diamond 1", | |
| "high_res_img_url": "https://plum-tiny-starfish-276.mypinata.cloud/ipfs/QmaRY1jPjsakncPx91FHcggtiLkKmmV1BjGLygmgBp16rD/1.png", | |
| "attributes": [ | |
| { | |
| "trait_type": "Inscription Number", | |
| "value": "932871" |
| import { useProvider } from "wagmi"; | |
| import { chain, configureChains, createClient, WagmiConfig } from "wagmi"; | |
| import { alchemyProvider } from "wagmi/providers/alchemy"; | |
| import { publicProvider } from "wagmi/providers/public"; | |
| import { useConnectModal } from "@rainbow-me/rainbowkit"; | |
| in _app.js | |
| const { chains, provider } = useMemo( |