dotwallet
Version:
A DotWallet helper library
76 lines (64 loc) • 1.43 kB
text/typescript
const md5 = require("md5");
const crypto = require("crypto");
export enum SupportCoinType {
BTC = "BTC",
BSV = "BSV",
ETH = "ETH"
}
export interface Vout{
address:string;
amount:number;
}
export interface DotWalletResult {
code:number;
msg:string;
data:any;
}
export interface MircoOrderInformation{
order_sn:string;
pay_txid:string;
}
export interface DepositBalance{
confirm:number;
unconfirm:number;
totalSize:number;
totalCount:number;
totalFee:number;
}
export interface PushChainResult{
orderID:string;
txID:string;
fee:number;
}
export interface DepositAccount{
coinType:string;
usage:string;
address:string;
}
export class DWError extends Error {
public code:number;
constructor(code:number, msg?:string) {
super(msg)
this.name = 'DotWalletError';
}
};
export function CreateSignature(queryData:any, app_secret:string):string{
let str = "";
const secret = md5(app_secret);
for (let key in queryData) {
if (key != "sign" && key !="opreturn" ) {
if (str) {
str += "&" + key + "=" + queryData[key];
} else {
str = key + "=" + queryData[key];
}
}
}
str += "&secret=" + secret;
str = str.toUpperCase();
const sign = crypto
.createHmac("sha256", secret)
.update(str, "utf8")
.digest("hex");
return sign;
}