Wallet/bitcoin-cash-js/index.js
2018-06-01 17:42:29 +09:00

58 lines
1.8 KiB
JavaScript

var bitcoinCashJsModule = angular.module('bitcoinCashJsModule', []);
var bchjs = require('../node_modules/bitcoincashjs-fork');
bitcoinCashJsModule.constant('MODULE_VERSION', '1.0.0');
bitcoinCashJsModule.provider('bitcoinCashJsService', function() {
var provider = {};
provider.$get = function() {
var service = {};
const Address = bchjs.Address;
const BitpayFormat = Address.BitpayFormat;
const CashAddrFormat = Address.CashAddrFormat;
service.translateAddresses = function(address) {
var result = new Address(address);
return {
'legacy': result.toString(),
'bitpay': result.toString(BitpayFormat),
'cashaddr': result.toString(CashAddrFormat).replace('bitcoincash:', '')
};
}
service.readAddress = function(address) {
var a = address.replace('bitcoincash:', '');
var result = {};
if (a[0] == '1') {
result = Address.fromString(a, 'livenet', 'pubkeyhash');
} else if (a[0] == '3') {
result = Address.fromString(a, 'livenet', 'scripthash');
} else if (a[0] == 'C') {
result = Address.fromString(a, 'livenet', 'pubkeyhash', BitpayFormat);
} else if (a[0] == 'H') {
result = Address.fromString(a, 'livenet', 'scripthash', BitpayFormat);
} else if (a[0] == 'q') {
result = Address.fromString(address, 'livenet', 'pubkeyhash', CashAddrFormat);
} else if (a[0] == 'p') {
result = Address.fromString(address, 'livenet', 'scripthash', CashAddrFormat);
} else {
return null;
}
return {
'legacy': result.toString(),
'bitpay': result.toString(BitpayFormat),
'cashaddr': result.toString(CashAddrFormat).replace('bitcoincash:', '')
}
}
service.getBitcoinCashJs = function() {
return bchjs;
}
return service;
}
return provider;
});