Skip to content

Instantly share code, notes, and snippets.

View fkfk's full-sized avatar
🤔

TANAKA, Koutarou fkfk

🤔
View GitHub Profile
@fkfk
fkfk / index.js
Created March 2, 2019 13:56
connect ElectrumX server
const Socket = require('json-rpc-tls').Socket;
Socket.tlsSocket('electrum-mona.nope.work', 50002, {
rejectUnauthorized: false
}).then(async (socket) => {
socket.setEncoding('utf8')
socket.setKeepAlive(true, 0)
socket.setNoDelay(true)
const banner = await Socket.request(socket, 1, 'server.banner', [])
@fkfk
fkfk / index.html
Created June 1, 2019 20:23
mpurse sign message example
<!DOCTYPE html>
<html lang="ja">
<head>
<title>mpurse sign message example</title>
<meta charset="UTF-8">
</head>
<body>
<script>
window.addEventListener("load", async (ev) => {
if (window.mpurse) {
const {
bip32,
payments
} = require('bitcoinjs-lib')
const mnemonic = require('./external/mnemonic.js') // https://github.com/ggozad/mnemonic.js
const buffer = require("safe-buffer")
const words = "like like like like like like like like like like like like" // your mnemonic
const network = {
bip32: {
@fkfk
fkfk / sig.js
Last active September 11, 2019 03:09
test multisig
const bitcoin = require('bitcoinjs-lib')
// for testnet
/*
const network = {
messagePrefix: '\x19Monacoin Signed Message:\n',
bip32: {
public: 0x043587cf,
private: 0x04358394
},
@fkfk
fkfk / monacoin.dart
Created July 1, 2019 01:04
use monacoin
import 'package:bitcoin_flutter/bitcoin_flutter.dart';
import 'package:bip32/bip32.dart' as bip32;
import 'package:bip39/bip39.dart' as bip39;
final MONACOIN = new NetworkType(
messagePrefix: '\x19Monacoin Signed Message:\n',
bech32: 'mona',
bip32: new Bip32Type(
public: 0x0488b21e,
private: 0x0488ade4
@fkfk
fkfk / verify-message-by-bitcoinjs-message.js
Last active July 17, 2019 05:51
verify monacoin message
const bitcoinMessage = require('bitcoinjs-message')
const messagePrefix = "\x19Monacoin Signed Message:\n"
const address = 'MU4FQNVv75wEU5a2TTBs7ZRMrpHU5nLEk5'
const message = 'hello'
const signature = 'IPL7L5NAMAPnLYFIeUaFAddK+IaFi9Q0FdsoMft2gl3IDdeUzBttq/kcUQz1AkiW32ohIGpXVrqH5VeO9B3CMtc='
console.log(bitcoinMessage.verify(message, address, signature, messagePrefix))
const pushdata = require('pushdata-bitcoin')
const MAX_SIGNATURE_SIZE = 73
const COMPRESSED_PUBKEY_SIZE = 33
const VERSION_SIZE = 4
const LOCKTIME_SIZE = 4
// txin size
const PREVIOUS_OUTPUT_SIZE = 36