Skip to content

Instantly share code, notes, and snippets.

View WietseWind's full-sized avatar
⌨️
Focusing

Wietse Wind WietseWind

⌨️
Focusing
View GitHub Profile
@WietseWind
WietseWind / generate20accounts.mjs
Last active October 31, 2023 14:06
Send TX on Xahau mainnet
import { generate, utils, signAndSubmit } from 'xrpl-accountlib'
for (let i = 0; i < 20; i++) {
const account = generate.familySeed({ algorithm: 'ed25519' })
console.log(`${account.address}\t${account.secret.familySeed}\t${account.keypair.privateKey}`)
}
@WietseWind
WietseWind / b2m.mjs
Created October 30, 2023 23:50
B2M (Burn to Mint) XRPL Mainnet to Xahau Mainnet
import { derive, utils, signAndSubmit } from 'xrpl-accountlib'
import { TxData } from 'xrpl-txdata'
import { XrplClient } from 'xrpl-client'
import { xpop, setEndpoints as xpopEndpoints } from 'xpop'
import fetch from 'node-fetch'
// The above needs:
// npm install xrpl-accountlib xrpl-txdata xrpl-client xpop node-fetch
const account = derive.familySeed('s....secret')
@WietseWind
WietseWind / output.txt
Last active October 20, 2023 11:57
Xumm Fee Calc 2.6
Sample output:
>> xumm2.6-feecalc-as-is.js
┌──────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │
├──────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ input │ 10 │ 12 │ 24 │ 100 │ 500 │ 1200 │ 10000 │ 20000 │ 50000 │
│ -------- │ '-----' │ '-----' │ '-----' │ '-----' │ '-----' │ '-----' │ '-----' │ '-----' │ '-----' │
│ base │ '12' │ '12' │ '24' │ '100' │ '500' │ '1200' │ '10000' │ '20000' │ '50000' │
│ medium │ '14' │ '14' │ '28' │ '118' │ '592' │ '1419' │ '11715' │ '23200' │ '56498' │
@WietseWind
WietseWind / b2m-flood.mjs
Last active October 10, 2023 13:42
Flood (performance testing) burn & mint (B2M)
// This script mass burns & mass (async) mints using B2M
// The script takes Sequence, etc. into account & auto-recovers
// if Sequence is no longer in sync due to a missed/fallen out tx.
import { derive, utils, signAndSubmit } from "xrpl-accountlib"
import WebSocket from 'ws'
import { XrplClient } from "xrpl-client"
import fetch from "node-fetch"
import ReconnectingWebSocket from "reconnecting-websocket"
import { EventEmitter } from 'node:events'
@WietseWind
WietseWind / rekey-xrpl-validator-account.mjs
Last active October 9, 2023 13:34
Validator keys to XRPL account (by @RichardAH)
// Reworked (2) version of https://github.com/RichardAH/xrpl-tools/blob/master/validator-address-tool/vatool.js
// Testnet faucet:
// curl -X POST -H 'content-type:application/json' --data '{"destination":"ryyyyyyyyyyyyyyy", "xrpAmount": "1010" }' https://faucet.altnet.rippletest.net/accounts
// Run:
// node index.mjs pxxxxxxxxxxxxxxxx ryyyyyyyyyyyyyyyyyyyyy wss://testnet.xrpl-labs.com
//   ^^ Validator key ^^ Rekey to (address) ^^ Optional: node, default: ws://localhost:6005
import { codec as RAC } from 'ripple-address-codec'
@WietseWind
WietseWind / sample.js
Last active August 11, 2023 23:18
XRPL Accountlib & XRPL Client together
//
// NOTE! THERE'S A BETTER METHOD NOW:
// https://github.com/WietseWind/xrpl-accountlib#-however-since-version-210-this-lib-bundles-xrpl-client-as-well-and-comes-with-helpers-to-prepare-transactions--submit-transactions-
//
const lib = require('xrpl-accountlib')
const { XrplClient } = require('xrpl-client')
const secret = 's...'
const account = 'r...' // Can be derived
@WietseWind
WietseWind / batchfinish.mjs
Created August 1, 2023 05:54
Batch Escrow Finish on XRPTipBot account
import { derive, utils, signAndSubmit } from "xrpl-accountlib"
import { XrplClient } from "xrpl-client"
const account = derive.familySeed("... FAMILY SEED OF ACCOUNT TO SIGN FINISH TX WITH ...")
const tipbotAccount = 'rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY'
const xrplTime = Math.round(new Date() / 1000) - 946684800
const client = new XrplClient()
const networkInfo = await utils.txNetworkAndAccountValues(client, account)
@WietseWind
WietseWind / readme.md
Created July 20, 2023 22:12
Get IPv6 client DUID from EdgeOS dhcpv6 Lease
  1. Find client: cat /run/dhcpdv6.leases
  2. Get ia-na value.

If not starting with \000\000\000, slicing required.

Python script to turn DUID into needed format:

import binascii

# Replace the string below with your IA_NA data
@WietseWind
WietseWind / paychan.json
Last active July 20, 2023 13:14
PayChan in Xumm
// Creating the channel
{
"txjson": {
"TransactionType": "PaymentChannelCreate",
"Amount": "1000000",
"Destination": "rfHn6cB5mmqZ6fHZ4fdemCDSxqLTijgMwo",
"PublicKey": "037E3F11237DF2E0EBFE3B5872A5BB76F1C05DE079BA44E157E7896F0AFC7F7BE8", // Only needed if not the signer
"SettleDelay": 1
}
}
@WietseWind
WietseWind / index.mjs
Created June 19, 2023 18:30
Custom Definitions with XRPL Accountlib
const { XrplClient } = require('xrpl-client')
const { sign, derive, XrplDefinitions } = require('xrpl-accountlib')
const client = new XrplClient('wss://hooks-testnet-v3.xrpl-labs.com')
const account = derive.familySeed("s....")
const liveDefinitions = await client.send({ command: 'server_definitions' })
const definitions = new XrplDefinitions(liveDefinitions)