diff --git a/packages/abstraxion-core/src/AbstraxionAuth.ts b/packages/abstraxion-core/src/AbstraxionAuth.ts index b6f95310..83cbb327 100644 --- a/packages/abstraxion-core/src/AbstraxionAuth.ts +++ b/packages/abstraxion-core/src/AbstraxionAuth.ts @@ -363,10 +363,14 @@ export class AbstraxionAuth { */ async compareGrantsToTreasury( grantsResponse: GrantsResponse, + granter: string | null ): Promise { if (!this.treasury) { throw new Error("Missing treasury"); } + if (!granter) { + throw new Error("Missing granter"); + } const cosmwasmClient = this.cosmwasmQueryClient || (await this.getCosmWasmClient()); @@ -378,6 +382,7 @@ export class AbstraxionAuth { const treasuryGrantConfigs = await getTreasuryContractConfigsByTypeUrl( cosmwasmClient, this.treasury, + granter, treasuryTypeUrls, ); @@ -446,7 +451,7 @@ export class AbstraxionAuth { let isValid: boolean; if (this.treasury) { - isValid = await this.compareGrantsToTreasury(data); + isValid = await this.compareGrantsToTreasury(data, granter); } else { isValid = this.compareGrantsToLegacyConfig(data); } diff --git a/packages/abstraxion-core/src/utils/grant/query.ts b/packages/abstraxion-core/src/utils/grant/query.ts index f9095f49..8c1f3583 100644 --- a/packages/abstraxion-core/src/utils/grant/query.ts +++ b/packages/abstraxion-core/src/utils/grant/query.ts @@ -33,12 +33,13 @@ export const getTreasuryContractTypeUrls = async ( export const getTreasuryContractConfigsByTypeUrl = async ( client: CosmWasmClient, treasuryAddress: string, + account: string, typeUrls: string[], ): Promise => { const treasuryGrantConfigs: TreasuryGrantConfig[] = []; for (const typeUrl of typeUrls) { const queryByMsg = { - grant_config_by_type_url: { msg_type_url: typeUrl }, + grant_config_by_type_url: { msg_type_url: typeUrl, account_address: account }, }; const grantConfigResponse: TreasuryGrantConfig = await client.queryContractSmart(treasuryAddress, queryByMsg);