/
cardano-web3-pure.ts
30 lines (25 loc) · 1.28 KB
/
cardano-web3-pure.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { compareAddresses } from 'src/common/utils/blockchain';
import { staticImplements } from 'src/common/utils/decorators';
import { isChangenowReceiverAddressCorrect } from 'src/core/blockchain/utils/changenow-receiver-address-validator';
import { TypedWeb3Pure } from 'src/core/blockchain/web3-pure/typed-web3-pure/typed-web3-pure';
import { changenowApiBlockchain } from 'src/features/cross-chain/calculation-manager/providers/changenow-provider/constants/changenow-api-blockchain';
@staticImplements<TypedWeb3Pure>()
export class CardanoWeb3Pure {
public static readonly EMPTY_ADDRESS = '0x0000000000000000000000000000000000000000';
public static get nativeTokenAddress(): string {
return CardanoWeb3Pure.EMPTY_ADDRESS;
}
public static isNativeAddress(address: string): boolean {
return compareAddresses(address, CardanoWeb3Pure.nativeTokenAddress);
}
public static isEmptyAddress(address?: string): boolean {
return address === CardanoWeb3Pure.EMPTY_ADDRESS;
}
public static async isAddressCorrect(address: string): Promise<boolean> {
return isChangenowReceiverAddressCorrect(
address,
changenowApiBlockchain.CARDANO,
/^([1-9A-HJ-NP-Za-km-z]{59,104})|([0-9A-Za-z]{58,104})$/
);
}
}