Skip to content

Instantly share code, notes, and snippets.

View nhancv's full-sized avatar
🏠
Working from home

Nhan Cao nhancv

🏠
Working from home
View GitHub Profile
@nhancv
nhancv / ERC20FullToken.sol
Last active October 10, 2025 01:53
ERC20, BEP20, TRC20 Token template
// SPDX-License-Identifier: MIT
pragma solidity 0.8.3;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./interfaces/IBurnable.sol";
import "./ERC20Token.sol";
/**
Function to receive approval and execute function in one call.
*/
@nhancv
nhancv / buildspec.yml
Created February 7, 2025 11:11 — forked from jlis/buildspec.yml
AWS CodeBuild Deployment via ECS/ECR
version: 0.2
phases:
pre_build:
commands:
- aws --version
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)
build:
commands:
@nhancv
nhancv / mongodb_upgrade.md
Created April 7, 2021 04:16
Upgrade mongodb from 3.6.3 to 4.4.4

Upgrade mongodb from 3.6.3 to 4.4.4

STOP APPLICATION

BACKUP DATABASE

mongodump --username DB_USERNAME --password DB_PASSWORD --db DB_NAME --out /var/backups/mongobackups/`date +"%m-%d-%y"`

UNINSTALL OLD DATABASE

@nhancv
nhancv / painter.dart
Last active December 29, 2023 14:29
Flutter custom painter: rounded rect and arrow
class _MenuBoxBackground extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final Paint paint = Paint()
..color = Colors.white
..strokeWidth = 1.W
..style = PaintingStyle.fill;
final double triangleH = 10.H;
final double triangleW = 25.0.W;
final double width = size.width;
// SPDX-License-Identifier: GNU GENERAL PUBLIC LICENSE V3
pragma solidity =0.8.3;
contract WBNB {
string public name = "Wrapped BNB";
string public symbol = "WBNB";
uint8 public decimals = 18;
event Approval(address indexed src, address indexed guy, uint wad);
event Transfer(address indexed src, address indexed dst, uint wad);

setup adb

Add platform-tools to your path

echo 'export ANDROID_HOME=/Users/$USER/Library/Android/sdk' >> ~/.bash_profile
echo 'export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools' >> ~/.bash_profile

Refresh your bash profile (or restart your terminal app)

source ~/.bash_profile
@nhancv
nhancv / w_circle_crop.dart
Last active August 28, 2023 13:10
Flutter crop circles, background image, draggable, transparent hole
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:nft/services/safety/base_stateful.dart';
import 'package:nft/widgets/p_appbar_transparency.dart';
import 'package:path_provider/path_provider.dart';
@nhancv
nhancv / Multicall.sol
Created August 11, 2023 00:39
Multicall v2, v3
pragma solidity =0.5.0;
pragma experimental ABIEncoderV2;
/// @title Multicall - Aggregate results from multiple read-only function calls
/// @author Michael Elliot <mike@makerdao.com>
/// @author Joshua Levine <joshua@makerdao.com>
/// @author Nick Johnson <arachnid@notdot.net>
contract Multicall {
struct Call {
@nhancv
nhancv / USDToken.sol
Last active August 3, 2023 05:11
ERC20 implementation, USDT, BUSD
pragma solidity 0.5.16;
/**
* @dev Interface of the ERC20 standard.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
@nhancv
nhancv / WETH.sol
Last active August 2, 2023 08:13
WETH
// SPDX-License-Identifier: GNU GENERAL PUBLIC LICENSE V3
pragma solidity 0.5.16;
contract WETH {
string public name = "Wrapped Ether";
string public symbol = "WETH";
uint8 public decimals = 18;
event Approval(address indexed src, address indexed guy, uint256 wad);
event Transfer(address indexed src, address indexed dst, uint256 wad);