Skip to content

Instantly share code, notes, and snippets.

View crazyrabbitLTC's full-sized avatar

Dennison Bertram crazyrabbitLTC

View GitHub Profile
This is a demo GPT. We use a third party API: Etherscan to get smart contract code from verified contracts. I don't know what their privacy policy is, but I am not recording your data. Check Etherscan.io for their privacy policy.
@crazyrabbitLTC
crazyrabbitLTC / L2 Pooled Liquidity with Uniswap V4 Hooks
Created November 20, 2023 16:31
L2 Pooled Liquidity with Uniswap V4 Hooks
Unified Liquidity Framework for Layer 2 Scaling Solutions via Uniswap V4 Pools
Dennison Bertram
dennison@tally.xyz
1. Introduction
The current Layer 2 (L2) solutions enhance scalability but result in fragmented liquidity. This proposal envisions a pooled liquidity model utilizing Uniswap V4's innovative hook system. By locking funds in a single Uniswap V4 pool contract, we can streamline the transfer of assets between L2 networks without reverting to Layer 1 (L1) for each transaction. The only requirement is the verification of funds to prevent double spending or bridging, ensuring assets remain secured in the pool contract.
2. The Bridging Mechanism
The proposed bridging mechanism is straightforward: users deposit assets into a designated Uniswap V4 pool, which serves as a gateway to L2 networks. The deposited funds are then locked, and users generate a cryptographic proof of their action. This proof, which certifies the uniqueness of the transaction and the non-duplication of assets, enables the reconsti
@crazyrabbitLTC
crazyrabbitLTC / NFT Roles.sol
Last active May 19, 2023 05:16
NFT Roles description
// SPDX-License-Identifier: MIT
// by dennison@tally.xyz
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
contract Roles is ERC1155, AccessControl {
// errors
error NoDuplicateRoles();
@crazyrabbitLTC
crazyrabbitLTC / Ethereum registry Decoded.sol
Created September 30, 2022 19:16
Decoding the Oldest Ethereum Registry interface
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface ABI_0x5564886ca2C518d1964E5FCea4f423b41Db9F561 {
function name(address) external;
function owner(bytes32) external;
function content(bytes32) external;
function addr(bytes32) external;
function reserve(bytes32) external;
function subRegistrar(bytes32) external;
// SPDX-License-Identifier: MIT
pragma solidity ^ 0.8 .4;
// Made with Love by Dennison Bertram @Tally.xyz
import "@openzeppelin/contracts@4.6.0/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts@4.6.0/access/Ownable.sol";
import "@openzeppelin/contracts@4.6.0/utils/cryptography/draft-EIP712.sol";
import "@openzeppelin/contracts@4.6.0/token/ERC721/extensions/draft-ERC721Votes.sol";
import "@openzeppelin/contracts@4.6.0/utils/Counters.sol";
contract MyToken is ERC721, Ownable, EIP712, ERC721Votes {
function _beforeTokenTransfer(address from, address to, uint256 tokenId)
internal override(ERC721, ERC721Votes)
{
require(from == address(0), "Err: token is SOUL BOUND");
super._beforeTokenTransfer(from, to, tokenId);
}
}
function _beforeTokenTransfer(address from, address to, uint256 tokenId)
internal override(ERC721, ERC721Votes)
{
require(true == false, "Err: token is SOUL BOUND");
super._beforeTokenTransfer(from, to, tokenId);
}
}
@crazyrabbitLTC
crazyrabbitLTC / SoulBoundTokenExample.sol
Created May 27, 2022 15:02
An example Soul Bound Token for Governance
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
// Made with Love by Dennison Bertram @Tally.xyz
import "@openzeppelin/contracts@4.6.0/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts@4.6.0/access/Ownable.sol";
import "@openzeppelin/contracts@4.6.0/utils/cryptography/draft-EIP712.sol";
import "@openzeppelin/contracts@4.6.0/token/ERC721/extensions/draft-ERC721Votes.sol";
import "@openzeppelin/contracts@4.6.0/utils/Counters.sol";

0x15dc82b5806c0b6190a6c8b8bf9fdc59b7bbfcab40950efc3e83b11ac2340772

I contributed to the Semaphore Trusted Setup Multi-Party Ceremony.
The following are my contribution signatures:
Circuit: semaphore16
Contributor # 125
Hash: 6d26febd 173f9e51 b1ac3fb1 0d8b710f
d70cbe9c 4a1a0122 2c541bf1 041b717d
59064417 737f9736 26acd89f ff20ef6e
d5808ec7 ee6f2fc6 b8c41822 f00597bb