Skip to content

Instantly share code, notes, and snippets.

@yuyasugano
yuyasugano / create_address_p.sh
Last active May 11, 2021 13:25
create a new address in P-Chain No.1
curl -X POST --data '{
"jsonrpc": "2.0",
"id": 3,
"method": "platform.createAddress",
"params": {
"username":"testuser_jp01",
"password":"<your user password>"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
{"jsonrpc":"2.0","result":{"address":"P-fuji1s3056zrcm36y0pzx5d3g9p5quavvpxk2yhssvp"},"id":3
@yuyasugano
yuyasugano / create_address_x.sh
Last active May 11, 2021 13:23
create a new address with the created key store in Avalanche
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :2,
"method" :"avm.createAddress",
"params" :{
"username": "testuser_jp01",
"password": "<your user password>"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X
{"jsonrpc":"2.0","result":{"address":"X-fuji14gnzvppj3ydjdkt49jdgrn67ha4fysk26jwm5g"},"id":2}
@yuyasugano
yuyasugano / create_user.sh
Last active May 11, 2021 13:22
create a new user with KeyStore API in Avalanche
curl -X POST --data '{
"jsonrpc": "2.0",
"id": 1,
"method": "keystore.createUser",
"params": {
"username": "testuser_jp01",
"password": "<your user password>"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore
{"jsonrpc":"2.0","result":{"success":true},"id":1}
@yuyasugano
yuyasugano / bootstrap_p.sh
Last active May 11, 2021 13:21
confirm bootstrap has been completed
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"info.isBootstrapped",
"params": {
"chain":"P"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info
{"jsonrpc":"2.0","result":{"isBootstrapped":true},"id":1}
@yuyasugano
yuyasugano / Coin.sol
Created May 5, 2021 12:08
Avalabs Smart Contract QuickStart
// SPDX-License-Identifier: mit
pragma solidity >= 0.6.2 < 0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract CustomCoin is ERC20 {
string private TOKEN_NAME = "ERC20 Test Token";
string private TOKEN_SYMBOL = "TEST";
uint8 private constant TOKEN_DECIMALS = 18;
@yuyasugano
yuyasugano / executeoperation.sol
Created April 13, 2021 00:19
HashMaskFlanloan executeOperation
function executeOperation(
uint256[] calldata _ids,
// uint256[] calldata _amounts,
address initiator,
bytes calldata params
) external override returns (bool) {
// obtain NCT of specific NFTs
NCT.claim(_ids);
// Sell it on uniswap
@yuyasugano
yuyasugano / constructor.sol
Created April 13, 2021 00:07
HashMaskFlash constructor
INCT public constant NCT = INCT(0x8A9c4dfe8b9D8962B31e4e16F8321C44d48e246E);
IERC721 public constant HASHMASK =
IERC721(0xC2C747E0F7004F9E8817Db2ca4997657a7746928);
INFT20Pair public constant MASK20 =
INFT20Pair(0xc2BdE1A2fA26890c8E6AcB10C91CC6D9c11F4a73);
IUniswapV2Router public constant ROUTER_V2 =
IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
constructor() public {
// approve all deeds to MASK20 NFT pair contract
@yuyasugano
yuyasugano / HashMaskFlash_flashloan.sol
Created April 12, 2021 13:10
HashMaskFlash flashloan
function flashLoan(
uint256[] calldata _ids,
// uint256[] calldata _amounts,
address _operator,
bytes calldata _params
) external flashloansEnabled() {
require(_ids.length < 80, "To many NFTs");
for (uint8 index; index < _ids.length; index++) {
IERC721(nftAddress).safeTransferFrom(
@yuyasugano
yuyasugano / HashMaskFlash.sol
Created April 12, 2021 13:02
HashMaskFlash MASK20
pragma solidity ^0.8.0;
import "../interfaces/INFT20Pair.sol";
contract HashMaskFlash is IFlashLoanReceiver, IERC721Receiver {
INFT20Pair public constant MASK20 =
INFT20Pair(0xc2BdE1A2fA26890c8E6AcB10C91CC6D9c11F4a73);
...
}
@yuyasugano
yuyasugano / Flashswap.sol
Created April 3, 2021 02:37
Flash Swaps sample contract
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.6.6 <0.8.0;
import './utils/SafeMath.sol';
import './UniswapV2Library.sol';
import './interfaces/IUniswapV2Router02.sol';
import './interfaces/IUniswapV2Pair.sol';
import './interfaces/IUniswapV2Factory.sol';
import './interfaces/IERC20.sol';