151 lines
5.9 KiB
TypeScript
151 lines
5.9 KiB
TypeScript
jest.mock('react-native-encrypted-storage', () => ({
|
|
setItem: jest.fn(() => Promise.resolve()),
|
|
getItem: jest.fn(() => Promise.resolve()),
|
|
removeItem: jest.fn(() => Promise.resolve()),
|
|
clear: jest.fn(() => Promise.resolve())
|
|
}));
|
|
|
|
jest.mock('../stores/Stores', () => ({
|
|
SettingsStore: {
|
|
settings: {
|
|
display: {
|
|
removeDecimalSpaces: false
|
|
}
|
|
}
|
|
},
|
|
nodeInfoStore: {
|
|
nodeInfo: {
|
|
isTestNet: true,
|
|
isRegTest: false
|
|
}
|
|
}
|
|
}));
|
|
|
|
import AddressUtils from './AddressUtils';
|
|
|
|
describe('AddressUtils', () => {
|
|
describe('scriptPubKeyToAddress', () => {
|
|
test('should correctly decode a P2WSH scriptPubKey - testnet', () => {
|
|
let scriptPubKey, expectedAddress;
|
|
scriptPubKey =
|
|
'002008737603b10129fc2dcb2e5167eb556ba2c84aec6622ff4d46767d186f63150d';
|
|
expectedAddress =
|
|
'tb1qppehvqa3qy5lctwt9egk0664dw3vsjhvvc307n2xwe73smmrz5xsrsq8yw';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey =
|
|
'0020a1157ce5620e1e93ad8a98a9765971c89b5920a343add041b47ec34b7302d951';
|
|
expectedAddress =
|
|
'tb1q5y2heetzpc0f8tv2nz5hvkt3ezd4jg9rgwkaqsd50mp5kuczm9gssy38uc';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey =
|
|
'0020983cca35d586a96de538166552d2773ed291b96a3af65917560ee7eda5e9e106';
|
|
expectedAddress =
|
|
'tb1qnq7v5dw4s65kmefczej495nh8mffrwt28tm9j96kpmn7mf0fuyrqs8aldv';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey =
|
|
'0020c273ca3b47fcab3a53c9cc4daacfb37d921e62014c794f6d25606f43797fc0f0';
|
|
expectedAddress =
|
|
'tb1qcfeu5w68lj4n557fe3x64nan0kfpucspf3u57mf9vph5x7tlcrcquq4gza';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
});
|
|
|
|
test('should correctly decode a P2SH scriptPubKey - testnet', () => {
|
|
let scriptPubKey, expectedAddress;
|
|
scriptPubKey = 'a91426101b3dae044fddcd71e6dfe831ebe383f23a5887';
|
|
expectedAddress = '2MviUxfcKQdqszQPxofWjY4gCFQifcfG31b';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey = 'a914b40fce0fca1eefcec03e61e833bf6326c11ccaf087';
|
|
expectedAddress = '2N9fJYxagvUGVCcN4utpBhRMgG7eLAjZT9F';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey = 'a9142d2ecbffc89a98365e2b45e90f00d3f6edec68d687';
|
|
expectedAddress = '2MwN8TRK2jz44dBxvcebZzbqAYLC1MV3e3N';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
});
|
|
|
|
test('should correctly decode a P2WPKH scriptPubKey - testnet', () => {
|
|
let scriptPubKey, expectedAddress;
|
|
|
|
scriptPubKey =
|
|
'00201ff7ed9fecf23980cb3e6d9db8331054942aee8ca34b7190450e20a69ffeeda2';
|
|
expectedAddress =
|
|
'tb1qrlm7m8lv7gucpje7dkwmsvcs2j2z4m5v5d9hryz9pcs2d8l7ak3q2c7047';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey = '0014def7b24f3e42b0858240cf3b993a3d44a7f5abe9';
|
|
expectedAddress = 'tb1qmmmmyne7g2cgtqjqeuaejw3agjnlt2lftcxm8w';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey = '0014e8550bc74d38fd002481339349ed4780cb1d77b3';
|
|
expectedAddress = 'tb1qap2sh36d8r7sqfypxwf5nm28sr936aan8980fa';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey = '0014647f217856160110ce3abcc8cc2ec77ff39561ad';
|
|
expectedAddress = 'tb1qv3ljz7zkzcq3pn36hnyvctk80lee2cddknywz0';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
});
|
|
|
|
test('should correctly decode a P2TR scriptPubKey - testnet', () => {
|
|
let scriptPubKey, expectedAddress;
|
|
|
|
scriptPubKey =
|
|
'5120fb3c4af6e6471fe9319afcfd25eb3daf2b83e5be7411b1932bb36ed84701337f';
|
|
expectedAddress =
|
|
'tb1plv7y4ahxgu07jvv6ln7jt6ea4u4c8ed7wsgmryetkdhds3cpxdlsp8yh6m';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey =
|
|
'512071d18973aa5daf214d500de76c1b860fcac1228260af21a62d5f6eed74cb0547';
|
|
expectedAddress =
|
|
'tb1pw8gcjua2tkhjzn2sphnkcxuxpl9vzg5zvzhjrf3dtahw6axtq4rsnn9w4l';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey =
|
|
'5120bd6b2524312d1ce75e7e00676b1da2f6b72a846ca767b3009f09b471623a5865';
|
|
expectedAddress =
|
|
'tb1ph44j2fp395wwwhn7qpnkk8dz76mj4prv5anmxqylpx68zc36tpjs7hyrpn';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
|
|
scriptPubKey =
|
|
'5120ad55091d54ca1938cebe01f5435790c352021df23d8153a301cd90d06171ceed';
|
|
expectedAddress =
|
|
'tb1p442sj825egvn3n47q865x4uscdfqy80j8kq48gcpekgdqct3emksxu4anx';
|
|
expect(AddressUtils.scriptPubKeyToAddress(scriptPubKey)).toBe(
|
|
expectedAddress
|
|
);
|
|
});
|
|
});
|
|
});
|