Skip to content

Instantly share code, notes, and snippets.

@yurenju
yurenju / blogger-to-hugo.js
Created July 16, 2023 09:44
blogger-to-hugo.js
const { XMLParser } = require("fast-xml-parser");
const TurndownService = require("turndown");
const moment = require("moment");
const shell = require("shelljs");
const fetch = require("node-fetch");
const yaml = require("js-yaml");
const fs = require("fs");
const path = require("path");
@yurenju
yurenju / Ship.sol
Created January 6, 2022 07:52
OpenZeppelin BeaconProxy
pragma solidity 0.8.7;
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
contract Ship is Initializable {
string public name;
uint256 public fuel;
function initialize(string memory _name, uint256 _fuel) external initializer {
name = _name;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender)
external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
import dotenv from "dotenv";
import { getDefaultProvider, Wallet } from "ethers";
import { deployContract } from "ethereum-waffle";
import SKETokenArtifact from "../build/SKEToken.json";
import { SKEToken } from "../types/ethers-contracts/SKEToken";
dotenv.config();
async function deploy() {
const mnemonic = process.env["MNEMONIC"] || "";
import { use, expect } from "chai";
import { solidity, MockProvider, deployContract } from "ethereum-waffle";
import SKETokenArtifact from "../build/SKEToken.json";
import { SKEToken } from "../types/ethers-contracts/SKEToken";
use(solidity);
describe("Counter smart contract", () => {
const provider = new MockProvider();
const [wallet] = provider.getWallets();
const SKEToken = artifacts.require("SKEToken");
contract("2nd SKEToken test", async ([deployer, user1]) => {
it("should put 10000 SKEToken in the first account", async () => {
const token = await SKEToken.new(10000, { from: deployer });
let balance = await token.balanceOf(deployer);
assert.equal(balance.valueOf(), 10000);
});
});
ropsten: {
provider: () =>
new HDWalletProvider(
process.env["MNEMONIC"],
`https://ropsten.infura.io/v3/939fb730f6cd4449aeb9f101cca7277e`
),
network_id: 3, // Ropsten's id
gas: 5500000, // Ropsten has a lower block limit than mainnet
confirmations: 2, // # of confs to wait between deployments. (default: 0)
timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
import { use, expect } from "chai";
import { solidity, createMockProvider, getWallets, deployContract } from 'ethereum-waffle'
import * as ERC20TokenJSON from '../build/ERC20Token.json'
import { ERC20Token } from '../typed-contracts/ERC20Token'
use(solidity);
describe('Counter smart contract', () => {
const provider = createMockProvider();
const [wallet] = getWallets(provider);
if __name__ == '__main__':
num_traders = 100
num_arbitrageurs = 10
trader_dai = 10000
trader_eth = 1000
uniswap_dai = 1000000
uniswap_eth = 10000
model = UniswapModel(num_traders, num_arbitrageurs, trader_dai, trader_eth, uniswap_dai, uniswap_eth)
for i in range(100):
class UniswapModel(Model):
def __init__(self, num_traders, num_arbitrageurs, trader_dai, trader_eth, uniswap_dai, uniswap_eth):
super().__init__()
self.num_traders = num_traders
self.schedule = RandomActivation(self)
self.uniswap = Uniswap(1, self, uniswap_dai, uniswap_eth)
for i in range(num_traders):
trader = Trader(i, self, trader_eth, trader_dai, i < num_arbitrageurs)
self.schedule.add(trader)