From 0945bcf927e67fbf9efa5db638b48ed2213a125d Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Thu, 27 Apr 2023 20:16:40 +0300 Subject: [PATCH] Update vending factory contract helpers --- contracts/vendingFactory/contract.ts | 16 +++++++++++++--- contracts/vendingFactory/messages/execute.ts | 5 +++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/contracts/vendingFactory/contract.ts b/contracts/vendingFactory/contract.ts index f58a34e..30f59d0 100644 --- a/contracts/vendingFactory/contract.ts +++ b/contracts/vendingFactory/contract.ts @@ -1,7 +1,9 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import type { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate' import type { Coin } from '@cosmjs/proto-signing' import type { logs } from '@cosmjs/stargate' -import { VENDING_FACTORY_ADDRESS } from 'utils/constants' +import { VENDING_FACTORY_ADDRESS, VENDING_FACTORY_FLEX_ADDRESS } from 'utils/constants' import { VENDING_FACTORY_UPDATABLE_ADDRESS } from '../../utils/constants' @@ -23,11 +25,17 @@ export interface VendingFactoryInstance { msg: Record, funds: Coin[], updatable?: boolean, + flex?: boolean, ) => Promise } export interface VendingFactoryMessages { - createVendingMinter: (msg: Record, funds: Coin[], updatable?: boolean) => CreateVendingMinterMessage + createVendingMinter: ( + msg: Record, + funds: Coin[], + updatable?: boolean, + flex?: boolean, + ) => CreateVendingMinterMessage } export interface CreateVendingMinterMessage { @@ -53,10 +61,11 @@ export const vendingFactory = (client: SigningCosmWasmClient, txSigner: string): msg: Record, funds: Coin[], updatable?: boolean, + flex?: boolean, ): Promise => { const result = await client.execute( senderAddress, - updatable ? VENDING_FACTORY_UPDATABLE_ADDRESS : VENDING_FACTORY_ADDRESS, + flex ? VENDING_FACTORY_FLEX_ADDRESS : updatable ? VENDING_FACTORY_UPDATABLE_ADDRESS : VENDING_FACTORY_ADDRESS, msg, 'auto', '', @@ -82,6 +91,7 @@ export const vendingFactory = (client: SigningCosmWasmClient, txSigner: string): msg: Record, funds: Coin[], updatable?: boolean, + flex?: boolean, ): CreateVendingMinterMessage => { return { sender: txSigner, diff --git a/contracts/vendingFactory/messages/execute.ts b/contracts/vendingFactory/messages/execute.ts index 884ac6d..adc4ce4 100644 --- a/contracts/vendingFactory/messages/execute.ts +++ b/contracts/vendingFactory/messages/execute.ts @@ -11,6 +11,7 @@ export interface DispatchExecuteArgs { msg: Record funds: Coin[] updatable?: boolean + flex?: boolean } export const dispatchExecute = async (args: DispatchExecuteArgs) => { @@ -18,12 +19,12 @@ export const dispatchExecute = async (args: DispatchExecuteArgs) => { if (!messages) { throw new Error('cannot dispatch execute, messages is not defined') } - return messages.createVendingMinter(txSigner, args.msg, args.funds, args.updatable) + return messages.createVendingMinter(txSigner, args.msg, args.funds, args.updatable, args.flex) } export const previewExecutePayload = (args: DispatchExecuteArgs) => { // eslint-disable-next-line react-hooks/rules-of-hooks const { messages } = useVendingFactoryContract() const { contract } = args - return messages(contract)?.createVendingMinter(args.msg, args.funds, args.updatable) + return messages(contract)?.createVendingMinter(args.msg, args.funds, args.updatable, args.flex) }