Skip to content

Instantly share code, notes, and snippets.

View mfornet's full-sized avatar
🌎
on earth

Marcelo Fornet mfornet

🌎
on earth
View GitHub Profile
@mfornet
mfornet / block_70972580.json
Created July 30, 2022 17:29
Aurora mainnet block
{
"chain_id": 1313161554,
"hash": "0x5294c883e6ad190be96e0b4caa9804fe009acfd0305c670c7494ba7b0a3a2043",
"parent_hash": "0xec02dc8ca27e9e5b28f1c3368357bc5423992f089650913940c38d8577718bd2",
"height": 70972580,
"miner": "0x622b39b9f59fa464ac5caed8498378c837839eb5",
"timestamp": 1659201420239469394,
"gas_limit": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"gas_used": "0xb4a2a",
"logs_bloom": "0x01200000000c0000000000008010008000000000000000100000600010000000000000000000000000100000200040000000000001040000000000000020000000400010000000010000000800080024000000000000000000010000000000000000000a050000000000000000000000601000000000000000000010000000010000010000000084000000010000000080000010000000080000004000000000020000000008080000040000000100000000000000000000000000009008000008000002000002000000000010000000000000080000001400000000000000800010000000000000000000100400002000208000020000080000000000000000",
@mfornet
mfornet / fast_bit_truncate.py
Created June 11, 2022 00:12
Find proper shift to bring a number down to less than `n` bits
def shift_slow(n, bits):
shift = 0
while n >= 2**bits:
n >>= 1
shift += 1
return shift
def compute_logbits(bits):
# Compute logbits
N = 2000
R = 5
def matmul(a, b):
c = [[0] * R for _ in range(R)]
for i in range(R):
for j in range(R):
for k in range(R):
c[i][j] += a[i][k] * b[k][j]
@mfornet
mfornet / a_request.py
Created May 23, 2022 11:25
Validators Ordered
import requests
import json
url = "https://archival-rpc.mainnet.near.org/"
payload = json.dumps({
"jsonrpc": "2.0",
"id": "dontcare",
"method": "EXPERIMENTAL_validators_ordered",
"params": [
for j in range(1, 100):
for i in range(1, 100):
b = i**j
b_s, i_s, j_s = map(str, (b, i, j))
if b_s.startswith('1') and b_s.endswith(i_s + j_s):
x = b_s[1:-len(i_s + j_s)]
print(f"{b} = 1^{x} * {i}^{j}")
@mfornet
mfornet / client.rs
Last active February 11, 2022 22:46
Macros expanded for rainbow bridge contracts
#![feature(prelude_import)]
#[prelude_import]
use std::prelude::rust_2018::*;
#[macro_use]
extern crate std;
use borsh::{BorshDeserialize, BorshSerialize};
use eth_types::*;
use near_plugins::{only, pause, FullAccessKeyFallback, Ownable, Pausable, Upgradable};
use near_sdk::collections::UnorderedMap;
use near_sdk::AccountId;
@mfornet
mfornet / Front.sol
Last active November 19, 2021 13:29
Multicontract Update
//SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.7;
interface Router {
function get_implementatino_address() external returns (address);
}
contract Front {
Router router;
This file has been truncated, but you can view the full file.
╔════════════════════════════════════════════╀═════════╀══════╀════════╀══════════════════════╀════════╗
β•‘ address β”‚ tickets β”‚ wins β”‚ aurora β”‚ eth β”‚ kyc β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 0xdabd4c9c5e5f3ca23e6316f92eec1419066223a5 β”‚ 2442 β”‚ 84 β”‚ 4200 β”‚ 29475000000000000000 β”‚ passed β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 0x4467554da9e6e79ef5f90f0c0fcbf7d645c394cf β”‚ 1876 β”‚ 43 β”‚ 2150 β”‚ 22912500000000000000 β”‚ passed β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 0x9da59d5b67ae4b05a3c2c93feeb3ce82a3cb6f7a β”‚ 1626 β”‚ 42 β”‚ 2100 β”‚ 19800000000000000000 β”‚ passed β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 0x47705c55e46802ddf233d7497a5f4e1b4a423b83 β”‚ 1223 β”‚ 39 β”‚ 1950 β”‚ 148000
@mfornet
mfornet / near-borsh-io.md
Last active November 18, 2021 04:30
Borsh I/O in NEAR Smart Contracts

Borsh I/O in NEAR Smart Contracts

Manual encoding single parameter

pub fn set_status_borsh(&mut self, #[serializer(borsh)] message: Vec<u8>) {}

To call this function you need to pass arguments borsh serialized, and those bytes encoded as base64