Skip to content

Instantly share code, notes, and snippets.

View shramee's full-sized avatar
🥳
Coding party

Shramee Srivastav shramee

🥳
Coding party
View GitHub Profile
@shramee
shramee / ipa.md
Last active August 19, 2025 05:34

IPA (Inner Product Argument) Commitment Scheme

Overview

This implementation provides an optimized Inner Product Argument (IPA) commitment scheme that only multiplies half of the elements in each vector during each prover round, improving efficiency over naive implementations.

Mathematical Foundation

The IPA scheme operates with the following components:

@shramee
shramee / simple-pretty-merkle-proof.circom
Created August 3, 2025 12:12
Basic Simple Merkle Membership Proof
pragma circom 2.0.0;
include "circomlib/circuits/poseidon.circom";
include "circomlib/circuits/comparators.circom";
include "circomlib/circuits/mux1.circom";
template BinarySelectorHasher() {
signal input i; // Must be 0 or 1
signal input a; // Input
signal input b; // Sibling

Bulletproofs++ Protocol Documentation

As describe in section 5 Arithmetic Circuits of Bulletproofs++ paper.

1. Arithmetic Circuit Protocol

Implemented in mod.rs

From section 5.3 Full Protocol Description (of 5 Arithmetic circuits),

Protocol: Arithmetic Circuit Protocol $\langle\mathcal{P}_{ac}, \mathcal{V}_{ac}\rangle$

OnlyDust shields

Shield:

<a href="https://app.onlydust.xyz/projects/6196eca8-5467-4587-b9f7-8ebebab0f841">
<img src="https://img.shields.io/badge/An%20OnlyDust%20project-%23000?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAAAXNSR0IArs4c6QAABNNJREFUOE9tlGtQ1FUchp/z/+8usLCArOAuICyggwpI4mVEQzNJVMQZb6WpqTikXSxDDC2bMUv9YAw2loWUOo06lo02XsoUL2NqogmmgmCgcleQ24Jclt09zeLo2OV8O7/3Pc+cOXPeV/A/S57B96Zm/Gu7m1MLsqYvOv+sZVNeXvwrg/rGhgcF7hEioP3fx8WzA7keDRGk1hst2cOiDl+rDR061qWf8S/y8lOMMvaB6ZFrv25SbWHGHhHm4+++Anz3CiGcTzhPgTJluJ6Yqzk9g3ULdmw+S3P38Bkflbv9JFv29nFszjyIqkg185fZwieqKZKSlcuSPLLfO2YEteNLaF0lxMBuF7QXKJGKLe7Vb3RT9y+5rsaT+vE+3BEJUTkN+VWJynf1FbY5slFHDH77FxeFLg7OPrvYy6Ms1//sBNTIfkB9NoSvEkLIXmABDfMiLNn7vBdtpuC3XBpPzyPY/c5XQ7pi3nTpppyu5G67Q2l+y/NI7wU+VU+idSQ6x29EjMxAKJXguJ8iNAlHxRykOg9b9XjjLpPfrDU0HNuEX+xO1OjCDtJGmMXAfOs/3lleNvHwSCXSqXV2GVCCl4NoAsftMtRLkWIy1hlz0B+covsZU8o6RNx18AfiIiAmy4Fu2twDB9RDHICJi1ihH0KW1mxXhEbB3gw6/xbACvZb0JyXLOKo+3Yp/VInKwUExXyO27pDMCwJwtfj7Img9bQHTefbnT11IOu9
@shramee
shramee / loops.cairo
Created October 25, 2022 07:50
Loops with jmp in Cairo (Starknet).
// Dynamic allocation in Cairo is done using the `alloc` function,
// which itself is implemented in Cairo using the
// [segments](https://www.cairo-lang.org/docs/how_cairo_works/segments.html) mechanism.
// Thanks to this mechanism, `alloc` allocates an array of an arbitrary size,
// which does not need to be specified in the call.
//
// The function `sqr_array` should compute and return an array
// of the square values of a given array.
// Write the body of `sqr_array` using the given helper function
// `_inner_sqr_array` and check that the program output
@shramee
shramee / String-to-felt.js
Last active October 12, 2022 19:11
Converts a string to felt, @uses BigInt
function asciiToFelt(str) {
if ( ! isNaN( str ) ) return '' + str;
var arr1 = [];
for (var n = 0, l = str.length; n < l; n++) {
const hex = Number(str.charCodeAt(n)).toString(16);
arr1.push(hex);
}
let hex = arr1.join("");
if ( hex %2 ) hex = '0' + hex;
return BigInt('0x' + hex).toString();
@shramee
shramee / google-reviews.php
Last active January 20, 2025 23:39
Get and shows google reviews
<?php
/**
* Get google reviews
* @return array Google reviews data
*/
function get_google_reviews(){
// URL to fetch
$google_api = 'https://maps.googleapis.com/maps/api/place/details/json?placeid=<your_place_id>&sensor=true&key=<key>';
@shramee
shramee / mongodb-aggregations.js
Created November 26, 2021 03:46
NTU SDI 4.3: Mongo DB aggregation pipelines with restaurants sample data
// region Setup database client
const { MongoClient } = require( 'mongodb' );
// Server to connect to
const uri = "mongodb://localhost:27017";
const dbServer = new MongoClient( uri );
// endregion Setup database client
@shramee
shramee / sdi-vehicles-drivers-sequelize.js
Created November 1, 2021 08:20
Resets the database for NTU SDI vehicles and driver database
async function addDataToDB() {
try {
// Destructive operation do only when needed
// await sequelize.sync( {force: true} );
await Vehicle.create( {
type: 'car',
carPlateNo: 'SA882'
} );
@shramee
shramee / fb-hide-ads.css
Created November 3, 2020 16:13
Hide sponsored stuff on FB
/* Distracting top tabs */
a[aria-label="Watch"], a[aria-label="Marketplace"], a[aria-label="Groups"], a[aria-label="Gaming"] {
/* Make invisible */
opacity: 0;
}
/* Distracting top tabs on hover (mouseover) */
a[aria-label="Watch"]:hover, a[aria-label="Marketplace"]:hover, a[aria-label="Groups"]:hover, a[aria-label="Gaming"]:hover {
/* Slightly visible on hover */
opacity: .5;