Skip to content

Instantly share code, notes, and snippets.

View valterlobo's full-sized avatar

Valter Lobo valterlobo

View GitHub Profile
@valterlobo
valterlobo / Vault.sol
Created April 9, 2024 20:54
Vault SMART CONTRACT
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract Vault is Ownable {
package main
import (
"fmt"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/crypto"
)
@valterlobo
valterlobo / gist:0ba1dedf368bb5c1890490b9a13d7802
Created October 8, 2023 00:15
Tag Tracker - Solidity - draft
// Struct to store the attributes for each token
struct TokenData {
int encryptedLat;
int encryptedLon;
string ipfsCid;
uint256 lastUpdated;
}
History TokenData[]
contract PFPMonster is ERC721, ERC721Enumerable, Ownable {
string private _baseURIextended;
uint256 public MAX_SUPPLY = 1888;
uint256 public MAX_TX_MINT = 5;
uint256 public MAX_MINT_PER_WALLET = 5;
uint256 public PRICE_PER_TOKEN_PUBLIC_SALE = 0.069 ether;
uint256 public PRICE_PER_TOKEN_PRE_SALE = 0.0069 ether;
uint256 private currentTokenId = 1;
@valterlobo
valterlobo / ReturnLimitTestWithPagination.sol
Created August 19, 2023 04:17
Returning Arrays of Dynamic Size in Solidity Smart Contracts
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
//Issues of Returning Arrays of Dynamic Size in Solidity Smart Contracts
//https://betterprogramming.pub/issues-of-returning-arrays-of-dynamic-size-in-solidity-smart-contracts-dd1e54424235
contract ReturnLimitTestWithPagination {
uint256[] private array;
function addToArray(uint256 count) external {
@valterlobo
valterlobo / gist:d89da0abfd5d2e44cec0ba6e03148a33
Created August 18, 2023 19:57
List of patterns a Solidity developer has to know.
List of patterns a Solidity developer has to know.
Must-know patters:
- Proxy contracts (transparent, UUPS, minimal, beacon)
- Diamond storage
- Packed storage
@valterlobo
valterlobo / MyToken.sol
Last active August 11, 2023 18:53
Caso esteja utilizando a lib openzenzepelin veja a implementação da extensão ERC20Capped.
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyToken is ERC20Capped, Ownable, ERC20Burnable {
constructor(uint256 cap, uint256 initialSupply)
@valterlobo
valterlobo / .txt
Last active August 18, 2023 04:18
GIT START
git init -b main
#add remote
git remote add origin git@<REMOTE URL>
git add ....
git commit ....
git push --set-upstream origin main
@valterlobo
valterlobo / pass-getting-started.md
Created March 15, 2023 21:32 — forked from layoaster/pass-getting-started.md
Cheat sheet/ getting-started guide to pass

pass cheat sheet/guide

Getting started guide to the unix password manager pass. Manage gpg encripted passwords (files) in a standar directory-like hierarchy. Such files can be copied or stored in a git repository.

Requirements

  1. Install [pass][pass-homepage] (standard unix password manager):

Ubuntu/Debian:

$ sudo apt-get install pass
@valterlobo
valterlobo / TRANSFER_WEB3_PY
Created March 9, 2023 15:37
TRANSFER ETH AND ERC 20
import os
from dotenv import load_dotenv
from web3 import Web3
load_dotenv()
# ERC 20 SEND