@test-org122/hypernet-core
Version:
Hypernet Core. Represents the SDK for running the Hypernet Protocol.
58 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AccountService = void 0;
const neverthrow_1 = require("neverthrow");
/**
*
*/
class AccountService {
constructor(accountRepository, contextProvider, logUtils) {
this.accountRepository = accountRepository;
this.contextProvider = contextProvider;
this.logUtils = logUtils;
}
getPublicIdentifier() {
return this.accountRepository.getPublicIdentifier();
}
getAccounts() {
return this.accountRepository.getAccounts();
}
getBalances() {
return this.accountRepository.getBalances();
}
depositFunds(assetAddress, amount) {
this.logUtils.log(`HypernetCore:depositFunds: assetAddress: ${assetAddress}`);
let context;
return this.contextProvider
.getContext()
.andThen((contextVal) => {
context = contextVal;
return this.accountRepository.depositFunds(assetAddress, amount);
})
.andThen(() => {
return this.accountRepository.getBalances();
})
.andThen((balances) => {
context.onBalancesChanged.next(balances);
return neverthrow_1.okAsync(balances);
});
}
withdrawFunds(assetAddress, amount, destinationAddress) {
let context;
return this.contextProvider
.getInitializedContext()
.andThen((contextVal) => {
context = contextVal;
return this.accountRepository.withdrawFunds(assetAddress, amount, destinationAddress);
})
.andThen(() => {
return this.accountRepository.getBalances();
})
.andThen((balances) => {
context.onBalancesChanged.next(balances);
return neverthrow_1.okAsync(balances);
});
}
}
exports.AccountService = AccountService;
//# sourceMappingURL=AccountService.js.map