Skip to content

Instantly share code, notes, and snippets.

View vit0rr's full-sized avatar

vitor vit0rr

View GitHub Profile
@vit0rr
vit0rr / transfer.rs
Created December 7, 2021 19:47
Transfer token ownership to another account
use solana_program::{
account_info::{next_account_info, AccountInfo},
entrypoint::ProgramResult,
program_error::ProgramError,
msg,
pubkey::Pubkey,
program_pack::{Pack, IsInitialized},
sysvar::{rent::Rent, Sysvar},
program::invoke
};
@vit0rr
vit0rr / example.rs
Created December 7, 2021 19:48
Find PDA
...
escrow_info.expected_amount = amount;
Escrow::pack(escrow_info, &mut escrow_account.try_borrow_mut_data()?)?;
let (pda, _bump_seed) = Pubkey::find_program_address(&[b"escrow"], program_id);
@vit0rr
vit0rr / lib.rs
Created December 8, 2021 19:11
Smart contract - Enviar SOL para um vault usando CPI
use anchor_lang::prelude::*;
use anchor_spl::token::{self, Mint, TokenAccount, Transfer, MintTo};
use anchor_lang::solana_program::program_option::COption;
#[program]
pub mod dog_money {
use super::*;
pub fn initialize_user(ctx: Context<InitializeUser>, amount: u64, nonce: u8) -> ProgramResult {
let user_data = &mut ctx.accounts.user_data;
user_data.first_deposit = ctx.accounts.clock.unix_timestamp;
@vit0rr
vit0rr / lib.rs
Last active December 9, 2021 14:41
//! This example demonstrates the use of the `anchor_spl::token` CPI client to freeze account.
use anchor_lang::prelude::*;
use anchor_spl::token::{self, SetAuthority};
declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
#[program]
mod token_proxy {
use super::*;
@vit0rr
vit0rr / 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 = () => {
/*
@vit0rr
vit0rr / starterweb3.md
Last active June 10, 2024 17:15
start-web3

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.

@vit0rr
vit0rr / 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(())

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?

@vit0rr
vit0rr / start.md
Last active November 20, 2022 12:22
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:

@vit0rr
vit0rr / 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",
},