Skip to content

Instantly share code, notes, and snippets.

Ricardo Guilherme Schmidt 3esmit

View GitHub Profile
View Identity.sol
pragma solidity >=0.5.0 <0.7.0;
import "./Account.sol";
import "./ERC725.sol";
import "../cryptography/ECDSA.sol";
import "../common/Controlled.sol";
/**
* @author Ricardo Guilherme Schmidt (Status Research & Development GmbH)
* @notice Defines an account which can be setup by a owner address (multisig contract), recovered by a recover address (a sort of secret multisig contract), and execute actions from a list of addresses (authorized contracts, extensions, etc)
View pendingTxStatusNetwork.md

I propose the use of Status Network infrastructure to do this.

    graph TB
        ethereum["Ethereum Network"]
        server["Status.im Service"]
        subgraph Status Network
            public["Public Chat"]
            private["Private Messages"]
            nodes["User Nodes"] 
View secretmultisigrecovery.js
const EmbarkJS = require('Embark/EmbarkJS');
const MultisigRecovery = require('Embark/contracts/MultisigRecovery')
config({
namesystem: {
enabled: true,
available_providers: ["ens"],
provider: "ens",
register: {
rootDomain: "eth",
View MerkleMultiProof.sol
pragma solidity >=0.5.0 <0.7.0;
/**
* @author Ricardo Guilherme Schmidt (Status Research & Development GmbH)
* @notice simplified multi proofs
*/
library MerkleMultiProof {
/**
* @notice Calculates a merkle root using multiple leafs at same time
* @param leafs out of order sequence of leafs and it's siblings
View MultisigAccount.sol
pragma solidity >=0.5.0 <0.6.0;
/**
* @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
*
* These functions can be used to verify that a message was signed by the holder
* of the private keys of a given address.
*/
library ECDSA {
/**
@3esmit
3esmit / config.json
Created Oct 2, 2019
Status.im statusd mailserver config (change <your-ip>)
View config.json
{
"Rendezvous": true,
"ListenAddr": "0.0.0.0:30304",
"AdvertiseAddr": "<your-ip>",
"APIModules": "eth,net,web3,admin",
"NoDiscovery": false,
"WhisperConfig": {
"Enabled": true,
"EnableMailServer": true,
"LightClient": false,
@3esmit
3esmit / color-eth-address.css
Created Apr 9, 2019
Color(ful) Eth Address React Component
View color-eth-address.css
.eth-address {
padding: 3px;
border-radius: 8px;
position: relative;
display: inline-grid;
box-shadow: 1px 1px 1px 1px #CCCC;
border-top: solid 1px #FFFC;
border-left: solid 1px #FFFC;
}
@3esmit
3esmit / embark_install.sh
Last active Jan 8, 2019
embark (ethereum development framework) install snippet for ubuntu 18.10
View embark_install.sh
#!/usr/bin/env bash
NVM_LINK="https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh"
GETH_LINK="https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-amd64-1.8.20-24d727b6.tar.gz"
IPFS_LINK="https://dist.ipfs.io/go-ipfs/v0.4.18/go-ipfs_v0.4.18_linux-amd64.tar.gz"
# Install NVM
wget -qO- $NVM_LINK | bash
source ~/.bashrc
@3esmit
3esmit / PaymentChannel.sol
Last active Dec 10, 2018
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.5.1+commit.c8a2cb62.js&optimize=false&gist=fce237c187d1f54eacb2c434553b2dd2
View PaymentChannel.sol
pragma solidity >=0.5.0 <0.6.0;
interface Token {
function approve(address _spender, uint256 _value) external returns (bool success);
function allowance(address _owner, address _spender) external view returns (uint256 remaining);
function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
}
interface PaymentChannel {}
View phase1.zokrates
import "LIBSNARK/sha256packed"
def hash(field[16] deck) -> (field[2]):
field res = 0
for field i in 0..16 do
res = res + deck[i] * (2**(4*i))
endfor
h0, h1 = sha256packed(0, 0, 0, res)
return [h0, h1]
You can’t perform that action at this time.