From 14da94159530d98b40b358db4895638f44c0032e Mon Sep 17 00:00:00 2001 From: notV4l Date: Tue, 9 Apr 2024 21:40:20 +0200 Subject: [PATCH] feat: add afterDeploying callback to burnerManager --- .../src/manager/burnerManager.ts | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/create-burner/src/manager/burnerManager.ts b/packages/create-burner/src/manager/burnerManager.ts index c4e91431..52d267f1 100644 --- a/packages/create-burner/src/manager/burnerManager.ts +++ b/packages/create-burner/src/manager/burnerManager.ts @@ -1,3 +1,4 @@ +import { KATANA_ETH_CONTRACT_ADDRESS } from "@dojoengine/core"; import { Account, CallData, @@ -10,7 +11,6 @@ import { import { Burner, BurnerManagerOptions, BurnerStorage } from "../types"; import Storage from "../utils/storage"; import { prefundAccount } from "./prefundAccount"; -import { KATANA_ETH_CONTRACT_ADDRESS } from "@dojoengine/core"; /** * A class to manage Burner accounts. @@ -70,6 +70,13 @@ export class BurnerManager { public isInitialized: boolean = false; private setIsDeploying?: (isDeploying: boolean) => void; + private afterDeploying?: ({ + account, + deployTx, + }: { + account: Account; + deployTx: string; + }) => Promise; constructor({ masterAccount, @@ -89,6 +96,18 @@ export class BurnerManager { this.setIsDeploying = callback; } + public setAfterDeployingCallback( + callback: ({ + account, + deployTx, + }: { + account: Account; + deployTx: string; + }) => Promise + ): void { + this.afterDeploying = callback; + } + private updateIsDeploying(status: boolean) { this.isDeploying = status; if (this.setIsDeploying) { @@ -303,6 +322,14 @@ export class BurnerManager { this.updateIsDeploying(false); Storage.set(this.getBurnerKey(), storage); + if (this.afterDeploying) { + try { + await this.afterDeploying({ account: this.account, deployTx }); + } catch (e: any) { + console.log("error on afterDeploying", e); + } + } + return burner; }