Add web3 singleton service.
This commit is contained in:
parent
a4c0e26be9
commit
c60d28a053
@ -1,8 +1,8 @@
|
|||||||
import { environment } from '@src/environments/environment';
|
|
||||||
import Web3 from 'web3';
|
import Web3 from 'web3';
|
||||||
|
import {Web3Service} from '@app/_services/web3.service';
|
||||||
|
|
||||||
const abi: Array<any> = require('@src/assets/js/block-sync/data/AccountsIndex.json');
|
const abi: Array<any> = require('@src/assets/js/block-sync/data/AccountsIndex.json');
|
||||||
const web3: Web3 = new Web3(environment.web3Provider);
|
const web3: Web3 = Web3Service.getInstance();
|
||||||
|
|
||||||
export class AccountIndex {
|
export class AccountIndex {
|
||||||
contractAddress: string;
|
contractAddress: string;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import Web3 from 'web3';
|
import Web3 from 'web3';
|
||||||
import { environment } from '@src/environments/environment';
|
import {Web3Service} from '@app/_services/web3.service';
|
||||||
|
|
||||||
const abi: Array<any> = require('@src/assets/js/block-sync/data/TokenUniqueSymbolIndex.json');
|
const abi: Array<any> = require('@src/assets/js/block-sync/data/TokenUniqueSymbolIndex.json');
|
||||||
const web3: Web3 = new Web3(environment.web3Provider);
|
const web3: Web3 = Web3Service.getInstance();
|
||||||
|
|
||||||
export class TokenRegistry {
|
export class TokenRegistry {
|
||||||
contractAddress: string;
|
contractAddress: string;
|
||||||
|
@ -6,6 +6,7 @@ import { TransactionService } from '@app/_services/transaction.service';
|
|||||||
import { environment } from '@src/environments/environment';
|
import { environment } from '@src/environments/environment';
|
||||||
import { LoggingService } from '@app/_services/logging.service';
|
import { LoggingService } from '@app/_services/logging.service';
|
||||||
import { RegistryService } from '@app/_services/registry.service';
|
import { RegistryService } from '@app/_services/registry.service';
|
||||||
|
import {Web3Service} from '@app/_services/web3.service';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
@ -28,7 +29,7 @@ export class BlockSyncService {
|
|||||||
const settings: Settings = new Settings(this.scan);
|
const settings: Settings = new Settings(this.scan);
|
||||||
const readyStateElements: { network: number } = { network: 2 };
|
const readyStateElements: { network: number } = { network: 2 };
|
||||||
settings.w3.provider = environment.web3Provider;
|
settings.w3.provider = environment.web3Provider;
|
||||||
settings.w3.engine = RegistryService.web3;
|
settings.w3.engine = Web3Service.getInstance();
|
||||||
settings.registry = await RegistryService.getRegistry();
|
settings.registry = await RegistryService.getRegistry();
|
||||||
settings.txHelper = new TransactionHelper(settings.w3.engine, settings.registry);
|
settings.txHelper = new TransactionHelper(settings.w3.engine, settings.registry);
|
||||||
|
|
||||||
|
@ -6,3 +6,4 @@ export * from '@app/_services/block-sync.service';
|
|||||||
export * from '@app/_services/location.service';
|
export * from '@app/_services/location.service';
|
||||||
export * from '@app/_services/logging.service';
|
export * from '@app/_services/logging.service';
|
||||||
export * from '@app/_services/error-dialog.service';
|
export * from '@app/_services/error-dialog.service';
|
||||||
|
export * from '@app/_services/web3.service';
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import Web3 from 'web3';
|
|
||||||
import { environment } from '@src/environments/environment';
|
import { environment } from '@src/environments/environment';
|
||||||
import { CICRegistry, FileGetter } from 'cic-client';
|
import { CICRegistry, FileGetter } from 'cic-client';
|
||||||
import { HttpGetter } from '@app/_helpers';
|
import { HttpGetter } from '@app/_helpers';
|
||||||
|
import {Web3Service} from '@app/_services/web3.service';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class RegistryService {
|
export class RegistryService {
|
||||||
static web3: Web3 = new Web3(environment.web3Provider);
|
|
||||||
static fileGetter: FileGetter = new HttpGetter();
|
static fileGetter: FileGetter = new HttpGetter();
|
||||||
private static registry: CICRegistry;
|
private static registry: CICRegistry;
|
||||||
|
|
||||||
@ -17,7 +16,7 @@ export class RegistryService {
|
|||||||
public static async getRegistry(): Promise<CICRegistry> {
|
public static async getRegistry(): Promise<CICRegistry> {
|
||||||
if (!RegistryService.registry) {
|
if (!RegistryService.registry) {
|
||||||
RegistryService.registry = new CICRegistry(
|
RegistryService.registry = new CICRegistry(
|
||||||
RegistryService.web3,
|
Web3Service.getInstance(),
|
||||||
environment.registryAddress,
|
environment.registryAddress,
|
||||||
'Registry',
|
'Registry',
|
||||||
RegistryService.fileGetter,
|
RegistryService.fileGetter,
|
||||||
|
@ -17,6 +17,7 @@ import { HttpClient } from '@angular/common/http';
|
|||||||
import { CICRegistry } from 'cic-client';
|
import { CICRegistry } from 'cic-client';
|
||||||
import { RegistryService } from '@app/_services/registry.service';
|
import { RegistryService } from '@app/_services/registry.service';
|
||||||
import Web3 from 'web3';
|
import Web3 from 'web3';
|
||||||
|
import {Web3Service} from '@app/_services/web3.service';
|
||||||
const vCard = require('vcard-parser');
|
const vCard = require('vcard-parser');
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
@ -36,7 +37,7 @@ export class TransactionService {
|
|||||||
private userService: UserService,
|
private userService: UserService,
|
||||||
private loggingService: LoggingService
|
private loggingService: LoggingService
|
||||||
) {
|
) {
|
||||||
this.web3 = RegistryService.web3;
|
this.web3 = Web3Service.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
async init(): Promise<void> {
|
async init(): Promise<void> {
|
||||||
|
16
src/app/_services/web3.service.spec.ts
Normal file
16
src/app/_services/web3.service.spec.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { Web3Service } from './web3.service';
|
||||||
|
|
||||||
|
describe('Web3Service', () => {
|
||||||
|
let service: Web3Service;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(Web3Service);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
19
src/app/_services/web3.service.ts
Normal file
19
src/app/_services/web3.service.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import Web3 from 'web3';
|
||||||
|
import {environment} from '@src/environments/environment';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class Web3Service {
|
||||||
|
private static web3: Web3;
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
public static getInstance(): Web3 {
|
||||||
|
if (!Web3Service.web3) {
|
||||||
|
Web3Service.web3 = new Web3(environment.web3Provider);
|
||||||
|
}
|
||||||
|
return Web3Service.web3;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user