|
1 | | -import 'should'; |
| 1 | +import should = require('should'); |
2 | 2 |
|
3 | 3 | import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test'; |
4 | 4 | import { BitGoAPI } from '@bitgo/sdk-api'; |
5 | 5 | import { HashToken } from '../../src'; |
6 | 6 | import HashUtils from '../../src/lib/utils'; |
| 7 | +import { mainnetAddress, testnetAddress } from '../resources/hash'; |
7 | 8 |
|
8 | 9 | describe('Hash Tokens', function () { |
9 | 10 | let bitgo: TestBitGoAPI; |
@@ -51,4 +52,87 @@ describe('Hash Tokens', function () { |
51 | 52 | it('should return denomination for YLDS token on hash using hash as coinFamily', function () { |
52 | 53 | HashUtils.getTokenDenomsUsingCoinFamily('hash').should.deepEqual(['uylds.fcc']); |
53 | 54 | }); |
| 55 | + |
| 56 | + describe('Address Validation', () => { |
| 57 | + it('should get address details without memoId', function () { |
| 58 | + const mainnetAddressDetails = mainnetHashToken.getAddressDetails(mainnetAddress.noMemoIdAddress); |
| 59 | + mainnetAddressDetails.address.should.equal(mainnetAddress.noMemoIdAddress); |
| 60 | + should.not.exist(mainnetAddressDetails.memoId); |
| 61 | + |
| 62 | + const testnetAddressDetails = testnetHashToken.getAddressDetails(testnetAddress.noMemoIdAddress); |
| 63 | + testnetAddressDetails.address.should.equal(testnetAddress.noMemoIdAddress); |
| 64 | + should.not.exist(testnetAddressDetails.memoId); |
| 65 | + }); |
| 66 | + |
| 67 | + it('should get address details with memoId', function () { |
| 68 | + const mainnetAddressDetails = mainnetHashToken.getAddressDetails(mainnetAddress.validMemoIdAddress); |
| 69 | + mainnetAddressDetails.address.should.equal(mainnetAddress.validMemoIdAddress.split('?')[0]); |
| 70 | + mainnetAddressDetails.memoId.should.equal('2'); |
| 71 | + |
| 72 | + const testnetAddressDetails = testnetHashToken.getAddressDetails(testnetAddress.validMemoIdAddress); |
| 73 | + testnetAddressDetails.address.should.equal(testnetAddress.validMemoIdAddress.split('?')[0]); |
| 74 | + testnetAddressDetails.memoId.should.equal('2'); |
| 75 | + }); |
| 76 | + |
| 77 | + it('should throw on multiple memo id address', () => { |
| 78 | + (() => { |
| 79 | + mainnetHashToken.getAddressDetails(mainnetAddress.multipleMemoIdAddress); |
| 80 | + }).should.throw(); |
| 81 | + (() => { |
| 82 | + testnetHashToken.getAddressDetails(testnetAddress.multipleMemoIdAddress); |
| 83 | + }).should.throw(); |
| 84 | + }); |
| 85 | + |
| 86 | + it('should validate wallet receive address', async function () { |
| 87 | + const receiveAddress = { |
| 88 | + address: 'tp1496r8u4a48k6khknrhzd6c8cm3c64ewxy5p2rj?memoId=7', |
| 89 | + coinSpecific: { |
| 90 | + rootAddress: 'tp1496r8u4a48k6khknrhzd6c8cm3c64ewxy5p2rj', |
| 91 | + memoID: '7', |
| 92 | + }, |
| 93 | + }; |
| 94 | + const isValid = await testnetHashToken.isWalletAddress(receiveAddress); |
| 95 | + isValid.should.equal(true); |
| 96 | + }); |
| 97 | + |
| 98 | + it('should validate account addresses correctly', () => { |
| 99 | + should.equal(mainnetHashToken._utils.isValidAddress(mainnetAddress.address1), true); |
| 100 | + should.equal(mainnetHashToken._utils.isValidAddress(mainnetAddress.address2), true); |
| 101 | + should.equal(mainnetHashToken._utils.isValidAddress(mainnetAddress.address3), false); |
| 102 | + should.equal(mainnetHashToken._utils.isValidAddress(mainnetAddress.address4), false); |
| 103 | + should.equal(mainnetHashToken._utils.isValidAddress('dfjk35y'), false); |
| 104 | + should.equal(mainnetHashToken._utils.isValidAddress(undefined as unknown as string), false); |
| 105 | + should.equal(mainnetHashToken._utils.isValidAddress(''), false); |
| 106 | + should.equal(mainnetHashToken._utils.isValidAddress(mainnetAddress.validMemoIdAddress), true); |
| 107 | + should.equal(mainnetHashToken._utils.isValidAddress(mainnetAddress.multipleMemoIdAddress), false); |
| 108 | + |
| 109 | + should.equal(testnetHashToken._utils.isValidAddress(testnetAddress.address1), true); |
| 110 | + should.equal(testnetHashToken._utils.isValidAddress(testnetAddress.address2), true); |
| 111 | + should.equal(testnetHashToken._utils.isValidAddress(testnetAddress.address3), false); |
| 112 | + should.equal(testnetHashToken._utils.isValidAddress(testnetAddress.address4), false); |
| 113 | + should.equal(testnetHashToken._utils.isValidAddress('dfjk35y'), false); |
| 114 | + should.equal(testnetHashToken._utils.isValidAddress(undefined as unknown as string), false); |
| 115 | + should.equal(testnetHashToken._utils.isValidAddress(''), false); |
| 116 | + should.equal(testnetHashToken._utils.isValidAddress(testnetAddress.validMemoIdAddress), true); |
| 117 | + should.equal(testnetHashToken._utils.isValidAddress(testnetAddress.multipleMemoIdAddress), false); |
| 118 | + }); |
| 119 | + |
| 120 | + it('should validate validator addresses correctly', () => { |
| 121 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress(mainnetAddress.validatorAddress1), true); |
| 122 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress(mainnetAddress.validatorAddress2), true); |
| 123 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress(mainnetAddress.validatorAddress3), false); |
| 124 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress(mainnetAddress.validatorAddress4), false); |
| 125 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress('dfjk35y'), false); |
| 126 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress(undefined as unknown as string), false); |
| 127 | + should.equal(mainnetHashToken._utils.isValidValidatorAddress(''), false); |
| 128 | + |
| 129 | + should.equal(testnetHashToken._utils.isValidValidatorAddress(testnetAddress.validatorAddress1), true); |
| 130 | + should.equal(testnetHashToken._utils.isValidValidatorAddress(testnetAddress.validatorAddress2), true); |
| 131 | + should.equal(testnetHashToken._utils.isValidValidatorAddress(testnetAddress.validatorAddress3), false); |
| 132 | + should.equal(testnetHashToken._utils.isValidValidatorAddress(testnetAddress.validatorAddress4), false); |
| 133 | + should.equal(testnetHashToken._utils.isValidValidatorAddress('dfjk35y'), false); |
| 134 | + should.equal(testnetHashToken._utils.isValidValidatorAddress(undefined as unknown as string), false); |
| 135 | + should.equal(testnetHashToken._utils.isValidValidatorAddress(''), false); |
| 136 | + }); |
| 137 | + }); |
54 | 138 | }); |
0 commit comments