Skip to content

Instantly share code, notes, and snippets.

View rmeissner's full-sized avatar

Richard Meissner rmeissner

View GitHub Profile
contract Enum {
enum Operation {
Call,
DelegateCall
}
}
contract MasterCopy {
event ChangedMasterCopy(address masterCopy);
@rmeissner
rmeissner / safe_modules_example.md
Created April 21, 2020 11:34
Getting Started with Safe module development

How develop a Safe module

Add dependencies

  • yarn add @gnosis.pm/safe-contracts

  • Optional for testing

    • yarn add eth-lightwallet

Create Safe app with typescript support using yarn as a package manager.

@rmeissner
rmeissner / sapp_sdks_notes.md
Last active September 9, 2020 08:48
Run Safe apps locally
  • Add .env.development with
HTTPS=true
PORT=3002
  • Add http-proxy-middleware
yarn add http-proxy-middleware
  • Add setupProxy.js in ./src with
@rmeissner
rmeissner / safe_sig_gen_uport_eip712.ts
Last active March 12, 2023 19:54
Example Safe signature generation with uport eip712 lib
import EIP712Domain from "eth-typed-data";
import BigNumber from "bignumber.js";
import * as ethUtil from 'ethereumjs-util';
import { ethers } from "ethers";
import axios from "axios";
/*
* Safe relay service example
* * * * * * * * * * * * * * * * * * * */

Template Creation Guide

This guide outlines how to create a template that can be used with https://rimeissner.dev/transaction-templates/

A template is a json file that has a root object with the properties name, inputs, txs.

The inputs are used together with the txs to generated the final transactions. Also a simple interface with input fiels is generated for the specified inputs.

Inputs