라이트코인 포크뜬 알트코인입니다...
bitcoinjs를 사용해서 웹지갑을 만드려고 하는데 알트코인이다 보니 네트워크 쪽에 값을 적어줘야 연동이 될거 같은데...
잘 모르겠더라고요ㅠㅠ
혹시 연동 방법이나 다른 알트코인으로 웹지갑 만드신분 있으시면 도움좀 부탁드립니다ㅠ
아 그리고 블록이 쌓여있는 데이터, 개인키 정보는 어디에 저장이 되는지 아시면 답변 부탁드려요ㅠ
좋은하루 되세요~
라이트코인 포크뜬 알트코인입니다...
bitcoinjs를 사용해서 웹지갑을 만드려고 하는데 알트코인이다 보니 네트워크 쪽에 값을 적어줘야 연동이 될거 같은데...
잘 모르겠더라고요ㅠㅠ
혹시 연동 방법이나 다른 알트코인으로 웹지갑 만드신분 있으시면 도움좀 부탁드립니다ㅠ
아 그리고 블록이 쌓여있는 데이터, 개인키 정보는 어디에 저장이 되는지 아시면 답변 부탁드려요ㅠ
좋은하루 되세요~
network prefix는 포크하신 버전따라 다를 수 있는데
src/chainparam.cpp에
base58Prefixes쪽 보시고
const bip32 = require("bip32");
const bip39 = require("bip39");
const bitcoin = require("bitcoinjs-lib");
const PATH= "m/44'/0'/0'/0/0"
// 여기서 바꾸신 값을 맞춰서 넣으시면 되고
const customPrefix = {
BTC: {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'bc',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80
}
}
//니모닉(seeds)에서 개인키, 지갑주소
bip39.mnemonicToSeed(seeds).then(buffer => {
let root = bip32.fromSeed(buffer, customPrefix["BTC"]);
let xprv = root.toBase58(); //개인키
let address = root.derivePath(PATH).getAddress(); //지갑주소
});
//WIF
cons KEY = bitcoin.ECPair.fromWIF(bitcoin.HDNode.fromBase58(xprv, customPrefix["BTC"]).derivePath(PATH).keyPair.toWIF(), customPrefix["BTC"]);
//트랜잭션 생성 및 서명
let tx = new bitcoin.TransactionBuilder();
tx.addInput("d18e7106e5492baf8f3929d2d573d27d89277f3825d3836aa86ea1d843b5158b", 1); //UTXO
tx.addOutput("12idKQBikRgRuZEbtxXQ4WFYB7Wa3hZzhT", 149000); //보낼 금액
tx.sign(0, KEY); //서명
let txHex = tx.build().toHex(); //rpc function sendrawtransaction에서 hexstring
let txid = bitcoin.Transaction.fromHex(txHex).getId(); //txid
대충 이런식으로 하시면 됩니다.
자세한건 아래 링크에서 보시면 될겁니다
(게시글이 오래돼서 함수 파라미터 및 리턴이 좀 달라진게 있어요)
https://medium.com/@orweinberger/how-to-create-a-raw-transaction-using-bitcoinjs-lib-1347a502a3a
블록데이터(UTXO포함)는 익스플로어에서 받아오면 되구요
개인키 관리는 방법이 너무 다양해서...