aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/util/token_registry_wrapper.ts
blob: 5065a180210406bb1b573a5f5e61f96e50839139 (plain) (blame)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import {ContractInstance, Token} from './types';

export class TokenRegWrapper {
  private tokenReg: ContractInstance;
  constructor(tokenRegContractInstance: ContractInstance) {
    this.tokenReg = tokenRegContractInstance;
  }
  public addTokenAsync(token: Token, from: string) {
    const tx = this.tokenReg.addToken(
      token.address,
      token.name,
      token.symbol,
      token.decimals,
      token.ipfsHash,
      token.swarmHash,
      {from},
    );
    return tx;
  }
  public async getTokenMetaDataAsync(tokenAddress: string) {
    const data = await this.tokenReg.getTokenMetaData(tokenAddress);
    const token: Token = {
      address: data[0],
      name: data[1],
      symbol: data[2],
      decimals: data[3].toNumber(),
      ipfsHash: data[4],
      swarmHash: data[5],
    };
    return token;
  }
  public async getTokenByNameAsync(tokenName: string) {
    const data = await this.tokenReg.getTokenByName(tokenName);
    const token: Token = {
      address: data[0],
      name: data[1],
      symbol: data[2],
      decimals: data[3].toNumber(),
      ipfsHash: data[4],
      swarmHash: data[5],
    };
    return token;
  }
  public async getTokenBySymbolAsync(tokenSymbol: string) {
    const data = await this.tokenReg.getTokenBySymbol(tokenSymbol);
    const token: Token = {
      address: data[0],
      name: data[1],
      symbol: data[2],
      decimals: data[3].toNumber(),
      ipfsHash: data[4],
      swarmHash: data[5],
    };
    return token;
  }
}