Skip to content

Instantly share code, notes, and snippets.

View vitorsouzaalmeida's full-sized avatar

Vitor S. Almeida vitorsouzaalmeida

View GitHub Profile
@vitorsouzaalmeida
vitorsouzaalmeida / fizzbuzz.ts
Created October 11, 2022 13:08 — forked from Grubba27/fizzbuzz.ts
FizzBuzz made in typelevel
type Reverse<A> =
`${A}` extends `${infer AH}${infer AT}`
? `${Reverse<AT>}${AH}` : A
type Digs = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
type DigsNext<I = Digs, R = {}> =
I extends [infer Head, infer Next, ...infer Tail]
@vitorsouzaalmeida
vitorsouzaalmeida / Metadata.d.ts
Last active May 23, 2024 04:45
Metaplex Metadata interface
/// <reference types="node" />
/// Locale: node_modules/@metaplex-foundation/mpl-token-metadata/dist/src/accounts/Metadata.d.ts
import { Borsh, Account, AnyPublicKey, StringPublicKey } from '@metaplex-foundation/mpl-core';
import { AccountInfo, Connection, PublicKey } from '@solana/web3.js';
import { Buffer } from 'buffer';
import { Edition } from './Edition';
import { MasterEdition } from './MasterEdition';
import { Uses } from './Uses';
@vitorsouzaalmeida
vitorsouzaalmeida / transferNft.js
Created April 8, 2022 01:01
Transfer a NFT with Solana Web3.js
// Every req.body.{} is from Postman
const nftAddress = await new web3.PublicKey(req.body.nftAddress);
const getNftATA = await spl.Token.getAssociatedTokenAddress(
spl.ASSOCIATED_TOKEN_PROGRAM_ID,
spl.TOKEN_PROGRAM_ID,
nftAddress,
mintAuthority.publicKey
);
import {
Metadata,
MasterEdition,
CreateMetadataV2,
DataV2,
CreateMasterEditionV3,
} from "@metaplex-foundation/mpl-token-metadata";
const BN = require("bn.js");
@vitorsouzaalmeida
vitorsouzaalmeida / index.ts
Created March 28, 2022 21:19
Transfer Token Ethereum
export async function TransferPlayerClash(ctx: any, req: any, res: any) {
try {
const { web3, settings } = ctx;
let interfaceJson = [
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
@vitorsouzaalmeida
vitorsouzaalmeida / start.md
Last active April 22, 2025 14:27
Como iniciar no Rust?

A maneira mais comum para começar a estudar Rust é ler o livro oficial da linguagem. Irá ensinar sobre vários dos conceitos mais importantes sobre a linguagem.

A leitura pode ser acompanhada por:

PT-BR

Como comecei?

Minha primeira linha de código foi com 11 anos (copiava, modificava e fazia umas coisa simples em bash e python). Comecei a estudar desenvolvimento de forma mais séria dos 16 em diante. Com 17 consegui meu primeiro emprego e também com 17 trabalhando com blockchain.

Como conseguir seu primeiro emprego?

Pratique Learn in Public, escreva mais, mais open-source, codifique mais. Não tem segredo. Leia meu artigo How i got a new job writing one article e Como foi minha primeira experiência sendo Tech Lead que conta mais sobre meu primeiro emprego.

É possível conseguir o primeiro emprego em menos de 1 ano?

@vitorsouzaalmeida
vitorsouzaalmeida / lib.rs
Created December 17, 2021 12:55
Solana program and test in JavaScript
use anchor_lang::prelude::*; // Import de algumas coisas
declare_id!("CJSaikztCUF1bMPhrLP1Q4GtGMNgEZ4ELb5qeVBBcB7s"); // Declara um id
#[program] // Define o programa - isso nos permite chamar no frontend dps
pub mod myepicproject { // pub mod é um modulo e nos permite definir varias funcoes e variaveis
use super::*;
pub fn initialize(ctx: Context<Initialize>) -> ProgramResult {
// Funcao que recebe o contexto e produz o resultado
Ok(())

Que materiais recomendo para começar em web3?

O repositório web3brasil tem materil traduzido ou produzido em pt-br e em inglês. Também recomendo para começar praticando com alguns projetos do buildspace, que tem diversos passo a passo para começar com Ethereum, Solana etc, seguindo a mesma linha o Web3 University, Solana CookBook

Que techs recomendo?

Rust, JavaScript, React.js, Anchor...

Comunidades?

Você pode entrar no Discord do Fantom Kittens, Anchor, Metaplex entre outros que você pode ir achando por ai.

@vitorsouzaalmeida
vitorsouzaalmeida / App.js
Created December 11, 2021 21:09
Button to connect your Phantom wallet
/*
* We are going to be using the useEffect hook!
Code based on buildspace
*/
import React, { useEffect, useState } from 'react';
import './App.css';
const App = () => {
/*