XO wallet integration
This commit is contained in:
@@ -59,22 +59,24 @@ export type WalletHDGenesisData = {
|
||||
export class WalletHD extends BaseWallet {
|
||||
static async from<T extends typeof WalletHD>(
|
||||
this: T,
|
||||
services: WalletDependencies,
|
||||
deps: WalletDependencies,
|
||||
genesisData: WalletHDGenesisData,
|
||||
) {
|
||||
// Assign in memory stores as defaults in case otherwise not provided.
|
||||
const servicesFinal = {
|
||||
...{
|
||||
// Default to an in-memory-only Activity store.
|
||||
activities: await Activities.fromStores(StoreInMemory.from()),
|
||||
store: new StoreInMemory(),
|
||||
cache: new StoreInMemory(),
|
||||
},
|
||||
...services,
|
||||
// Assign defaults if not otherwise provideed.
|
||||
const activities = deps.activities
|
||||
? deps.activities
|
||||
: await Activities.from();
|
||||
const cache = deps.cache ? deps.cache : StoreInMemory.from();
|
||||
|
||||
// Assign our final dependencies.
|
||||
const depsFinal = {
|
||||
activities,
|
||||
cache,
|
||||
blockchain: deps.blockchain,
|
||||
};
|
||||
|
||||
// Return a new instance of WalletHD.
|
||||
return new this(servicesFinal, genesisData) as InstanceType<T>;
|
||||
return new this(depsFinal, genesisData) as InstanceType<T>;
|
||||
}
|
||||
|
||||
// Dependencies.
|
||||
@@ -158,10 +160,6 @@ export class WalletHD extends BaseWallet {
|
||||
);
|
||||
}
|
||||
|
||||
async getActivities(): Promise<Activities> {
|
||||
return this.activities;
|
||||
}
|
||||
|
||||
async start() {
|
||||
// Get the address gap.
|
||||
// TODO: This should come from activities.
|
||||
@@ -263,7 +261,7 @@ export class WalletHD extends BaseWallet {
|
||||
const unspentDirectives = await Promise.all(fetchPromises);
|
||||
|
||||
// Flatten them.
|
||||
const unspentsFlattened = unspentDirectives.flat();
|
||||
const unspentsFlattened = ExtMap.flatten(unspentDirectives);
|
||||
|
||||
// Return the unspents.
|
||||
return unspentsFlattened;
|
||||
@@ -358,7 +356,7 @@ export class WalletHD extends BaseWallet {
|
||||
// Build the transaction.
|
||||
const tx = TransactionBuilder.build(
|
||||
txTemplateFinal,
|
||||
unspents,
|
||||
unspents.toArray(),
|
||||
changeLockingBytecode,
|
||||
);
|
||||
|
||||
@@ -398,6 +396,7 @@ export class WalletHD extends BaseWallet {
|
||||
// Create a child P2PKH wallet for this Private Key.
|
||||
const wallet = await WalletP2PKH.from(
|
||||
{
|
||||
activities: this.activities,
|
||||
blockchain: this.blockchain,
|
||||
cache: this.cache,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user