Skip to content

Instantly share code, notes, and snippets.

View rphansen91's full-sized avatar

Ryan Hansen rphansen91

  • Antengo
  • San Diego
View GitHub Profile
@rphansen91
rphansen91 / query.js
Last active March 27, 2021 17:16
Moralis Hooks
import React from "react";
import Moralis from "moralis";
const defaultQueryOptions = {
live: false,
skip: false,
filter: () => {},
onCreate: (object, vs) => [object].concat(vs ?? []),
onUpdate: (object, vs) => vs.map((v) => (v.id === object.id ? object : v)),
};
@rphansen91
rphansen91 / .deps...npm...@openzeppelin...contracts...token...ERC1155...ERC1155.sol
Created April 14, 2021 15:50
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.8.1+commit.df193b15.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./extensions/IERC1155MetadataURI.sol";
import "../../utils/Address.sol";
import "../../utils/Context.sol";
import "../../utils/introspection/ERC165.sol";
@rphansen91
rphansen91 / decorate.ts
Last active April 1, 2022 23:04
Generic Decorator
type Fn = (...args: any) => any
type Awaited<T> = T extends PromiseLike<infer U> ? U : T
export function someDecorator<V extends Fn>(method: V) {
// Do some initialization logic here
return async function (...args: Parameters<V>): Promise<Awaited<ReturnType<V>>> {
// Do some args manipulation or validation
const value = await method(...args)