Skip to content

Instantly share code, notes, and snippets.

fn main() {
hack();
}
fn hack() {
let scale: felt252 = 1000000000000000000000000000;
let deposit: felt252 = 0x38790ce2af72fa75;
let withdraw: felt252 = 0x54b59354072c77ad;
let accumulator: felt252 = 0xb6793fc03db6bc15d492b1956ce62920000000;
@ptisserand
ptisserand / lib.cairo
Last active February 5, 2025 12:57
Starknet: enum in map
#[derive(Drop, Serde, Copy, PartialEq, Debug, starknet::Store)]
pub enum Choice {
STRK,
BTC,
}
#[starknet::interface]
pub trait IHelloStarknet<TContractState> {
fn create_elem(ref self: TContractState, choice: Choice) -> u256;
fn get_elem(self: @TContractState, elem_id: u256) -> Choice;
@ptisserand
ptisserand / lib.cairo
Created August 20, 2024 10:27
OZ 0.15.1 ERC721 custom token_uri
// SPDX-License-Identifier: MIT
// Compatible with OpenZeppelin Contracts for Cairo ^0.15.0
#[starknet::contract]
mod MyToken {
use openzeppelin::introspection::src5::SRC5Component;
use openzeppelin::token::erc721::ERC721Component;
use openzeppelin::token::erc721::ERC721HooksEmptyImpl;
use openzeppelin::token::erc721::interface::{IERC721Metadata, IERC721MetadataCamelOnly};
@ptisserand
ptisserand / starkbeats.md
Last active May 21, 2024 21:41
Starkbeats

StarkBeats

StarkBeats is an experiment for an onchain music tracker on Starknet.

For alpha version only notes and scores will be stored onchain, audio synthesis will be done on client side.

For beta version synthesis parameters will be stored onchain.

@ptisserand
ptisserand / Scarb.toml
Created July 22, 2023 18:35
Contract declaration error
[package]
name = "splitter"
version = "0.1.0"
[dependencies]
starknet = ">=2.0.1"
[[target.starknet-contract]]
sierra = true
casm = true
@ptisserand
ptisserand / erc.sierra.dart
Last active July 15, 2023 07:28
Dart code generated from Cairo 1 contract
import 'package:starknet/starknet.dart';
import 'erc.sierra.g.dart';
void main() async {
Felt contractAddress = Felt.fromHexString(
"0x53813135446812b36f67e5b363813df086d88544ce17c742376082b8e997e29");
final account = account0;
final erc20 = Erc(account: account, address: contractAddress);
@ptisserand
ptisserand / Dockerfile
Last active January 6, 2023 14:56
Dockerfile for cairo environment development
FROM ubuntu:22.04
LABEL org.opencontainers.image.authors="[email protected]"
ARG USER=rob
ARG USER_ID=1000
ARG GROUP=starknet
ARG GROUP_ID=1000
# Create new user
RUN \
@ptisserand
ptisserand / str_to_felt
Last active July 21, 2022 06:54
starknet edu utils
#!/bin/bash
#
# Copy in the same directory as utils.py
# Set executable rights:
# $ chmod uog+x ./str_to_felt
# Run:
# $ ./str_to_felt HENRI
# 310400406089
#
@ptisserand
ptisserand / main.mo
Last active June 10, 2022 20:45
blog post
import HashMap "mo:base/HashMap";
import Iter "mo:base/Iter";
import Nat "mo:base/Nat";
import Hash "mo:base/Hash";
import Principal "mo:base/Principal";
import Result "mo:base/Result";
import Text "mo:base/Text";
import Time "mo:base/Time";
import TrieMap "mo:base/TrieMap";
import TrieSet "mo:base/TrieSet";
@ptisserand
ptisserand / extract_private.py
Created May 2, 2022 18:16
Extract private key from Terra Station Wallet export
#!/usr/bin/env python
#
# Extract private key from Terra Station Wallet exported private key
#
# python ./extract_private.py "DATA FROM 'Export Wallet' - 'Private Key'" "your password"
#
# Your private key base64 encoded will be print on stdout
#
import sys