@mijoco/stx_helpers
Advanced tools
Comparing version 0.1.2 to 0.1.3
@@ -5,8 +5,2 @@ import { UserSession } from '@stacks/connect'; | ||
export declare const userSession: UserSession; | ||
export declare const MAGIC_BYTES_TESTNET = "5432"; | ||
export declare const MAGIC_BYTES_TESTNET_NAK = "4e33"; | ||
export declare const MAGIC_BYTES_MAINNET = "5832"; | ||
export declare const MAGIC_BYTES_MAINNET_NAK = "5832"; | ||
export declare const PEGIN_OPCODE = "3C"; | ||
export declare const PEGOUT_OPCODE = "3E"; | ||
export declare function getBalances(api: string, contractId: string, stxAddress: string, cardinal: string, ordinal: string): Promise<AddressObject>; | ||
@@ -38,9 +32,1 @@ export declare function isXverse(): boolean; | ||
export declare const REGTEST_NETWORK: typeof btc.NETWORK; | ||
export declare function getStacksAddressFromPubkey(pubkey: Uint8Array): { | ||
tp2pkh: string; | ||
tp2sh: string; | ||
mp2pkh: string; | ||
mp2sh: string; | ||
}; | ||
export declare function getDataToSign(network: string, amount: number, bitcoinAddress: string): string; | ||
export declare function getStacksSimpleHashOfDataToSign(network: string, amount: number, bitcoinAddress: string): string; |
@@ -35,3 +35,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getStacksSimpleHashOfDataToSign = exports.getDataToSign = exports.getStacksAddressFromPubkey = exports.REGTEST_NETWORK = exports.getNet = exports.getPegWalletAddressFromPublicKey = exports.verifyStacksPricipal = exports.encodeStacksAddress = exports.decodeStacksAddress = exports.checkAddressForNetwork = exports.logUserOut = exports.loginStacksFromHeader = exports.loginStacks = exports.getStacksAddress = exports.isLoggedIn = exports.appDetails = exports.isLeather = exports.isAsigna = exports.isHiro = exports.isXverse = exports.getBalances = exports.PEGOUT_OPCODE = exports.PEGIN_OPCODE = exports.MAGIC_BYTES_MAINNET_NAK = exports.MAGIC_BYTES_MAINNET = exports.MAGIC_BYTES_TESTNET_NAK = exports.MAGIC_BYTES_TESTNET = exports.userSession = void 0; | ||
exports.REGTEST_NETWORK = exports.getNet = exports.getPegWalletAddressFromPublicKey = exports.verifyStacksPricipal = exports.encodeStacksAddress = exports.decodeStacksAddress = exports.checkAddressForNetwork = exports.logUserOut = exports.loginStacksFromHeader = exports.loginStacks = exports.getStacksAddress = exports.isLoggedIn = exports.appDetails = exports.isLeather = exports.isAsigna = exports.isHiro = exports.isXverse = exports.getBalances = exports.userSession = void 0; | ||
const connect_1 = require("@stacks/connect"); | ||
@@ -43,16 +43,5 @@ const c32check_1 = require("c32check"); | ||
const base_1 = require("@scure/base"); | ||
const sha256_1 = require("@noble/hashes/sha256"); | ||
const ripemd160_1 = require("@noble/hashes/ripemd160"); | ||
const P = __importStar(require("micro-packed")); | ||
const utils_1 = require("@scure/btc-signer/lib/utils"); | ||
const encryption_1 = require("@stacks/encryption"); | ||
const appConfig = new connect_1.AppConfig(['store_write', 'publish_data']); | ||
exports.userSession = new connect_1.UserSession({ appConfig }); // we will use this export from other files | ||
let provider; | ||
exports.MAGIC_BYTES_TESTNET = '5432'; // | ||
exports.MAGIC_BYTES_TESTNET_NAK = '4e33'; | ||
exports.MAGIC_BYTES_MAINNET = '5832'; | ||
exports.MAGIC_BYTES_MAINNET_NAK = '5832'; | ||
exports.PEGIN_OPCODE = '3C'; | ||
exports.PEGOUT_OPCODE = '3E'; | ||
function getProvider() { | ||
@@ -270,43 +259,1 @@ if (!provider) | ||
exports.REGTEST_NETWORK = { bech32: 'bcrt', pubKeyHash: 0x6f, scriptHash: 0xc4, wif: 0xc4 }; | ||
function getStacksAddressFromPubkey(pubkey) { | ||
const addresses = { | ||
tp2pkh: publicKeyToStxAddress(pubkey, StacksNetworkVersion.testnetP2PKH), | ||
tp2sh: publicKeyToStxAddress(pubkey, StacksNetworkVersion.testnetP2SH), | ||
mp2pkh: publicKeyToStxAddress(pubkey, StacksNetworkVersion.mainnetP2PKH), | ||
mp2sh: publicKeyToStxAddress(pubkey, StacksNetworkVersion.mainnetP2SH), | ||
}; | ||
//console.log('getStacksAddressFromPubkey: addresses: ', addresses) | ||
return addresses; | ||
} | ||
exports.getStacksAddressFromPubkey = getStacksAddressFromPubkey; | ||
function publicKeyToStxAddress(publicKey, addressVersion = StacksNetworkVersion.mainnetP2PKH) { | ||
return (0, c32check_1.c32address)(addressVersion, base_1.hex.encode(hash160(publicKey))); | ||
} | ||
function hash160(input) { | ||
const sha = (0, sha256_1.sha256)(input); | ||
return (0, ripemd160_1.ripemd160)(sha); | ||
} | ||
var StacksNetworkVersion; | ||
(function (StacksNetworkVersion) { | ||
StacksNetworkVersion[StacksNetworkVersion["mainnetP2PKH"] = 22] = "mainnetP2PKH"; | ||
StacksNetworkVersion[StacksNetworkVersion["mainnetP2SH"] = 20] = "mainnetP2SH"; | ||
StacksNetworkVersion[StacksNetworkVersion["testnetP2PKH"] = 26] = "testnetP2PKH"; | ||
StacksNetworkVersion[StacksNetworkVersion["testnetP2SH"] = 21] = "testnetP2SH"; | ||
})(StacksNetworkVersion || (StacksNetworkVersion = {})); | ||
function getDataToSign(network, amount, bitcoinAddress) { | ||
const net = getNet(network); | ||
const tx = new btc.Transaction({ allowUnknowOutput: true, allowUnknownInputs: true, allowUnknownOutputs: true }); | ||
tx.addOutputAddress(bitcoinAddress, BigInt(amount), net); | ||
const amountBytes = P.U64BE.encode(BigInt(amount)); | ||
const data = (0, utils_1.concatBytes)(amountBytes, tx.getOutput(0).script); | ||
return `Withdraw request for ${amount} satoshis to the bitcoin address ${bitcoinAddress} (${base_1.hex.encode(data)})`; | ||
} | ||
exports.getDataToSign = getDataToSign; | ||
function getStacksSimpleHashOfDataToSign(network, amount, bitcoinAddress) { | ||
const dataToSign = getDataToSign(network, amount, bitcoinAddress); | ||
const msgHash = (0, encryption_1.hashMessage)(dataToSign); | ||
//console.log('getStacksSimpleHashOfDataToSign:dataToSign: ' + hex.encode(dataToSign)) | ||
//console.log('getStacksSimpleHashOfDataToSign:msgHash: ' + hex.encode(msgHash)) | ||
return base_1.hex.encode(msgHash); | ||
} | ||
exports.getStacksSimpleHashOfDataToSign = getStacksSimpleHashOfDataToSign; |
export * from './account'; | ||
export * from './stacks-node'; | ||
export * from './custom-node'; | ||
export * from './payloads'; | ||
export * from './dao'; | ||
@@ -5,0 +6,0 @@ export * from './pox'; |
@@ -20,2 +20,3 @@ "use strict"; | ||
__exportStar(require("./custom-node"), exports); | ||
__exportStar(require("./payloads"), exports); | ||
__exportStar(require("./dao"), exports); | ||
@@ -22,0 +23,0 @@ __exportStar(require("./pox"), exports); |
{ | ||
"name": "@mijoco/stx_helpers", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"main": "index.js", | ||
@@ -5,0 +5,0 @@ "types": "dist/index.d.ts", |
121300
36
3278
13