Skip to content

Commit

Permalink
feat: pgt init
Browse files Browse the repository at this point in the history
  • Loading branch information
ivan-angjelkoski committed Feb 24, 2024
1 parent b554646 commit 063551f
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 0 deletions.
2 changes: 2 additions & 0 deletions packages/sdk-ts/src/core/modules/wasm/exec-args.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import ExecArgInitiateTransfer from './exec-args/ExecArgInitiateTransfer'
import ExecArgIncreaseAllowance from './exec-args/ExecArgIncreaseAllowance'
import ExecArgRemoveGridStrategy from './exec-args/ExecArgRemoveGridStrategy'
import ExecArgCreateSpotGridStrategy from './exec-args/ExecArgCreateSpotGridStrategy'
import ExecArgCreatePerpGridStrategy from './exec-args/ExecArgCreatePerpGridStrategy'

import ExecArgCW20AdapterRedeemAndTransfer from './exec-args/ExecArgCW20AdapterRedeemAndTransfer'

Expand All @@ -33,6 +34,7 @@ export type ExecArgs =
| ExecArgIncreaseAllowance
| ExecArgRemoveGridStrategy
| ExecArgCreateSpotGridStrategy
| ExecArgCreatePerpGridStrategy
| ExecArgCW20AdapterRedeemAndTransfer

export type ExecPrivilegedArgs =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import {
dataToExecData,
ExecArgBase,
ExecDataRepresentation,
} from '../ExecArgBase'

import { ExitConfig, ExitType } from '../types'
export declare namespace ExecArgCreatePerpGridStrategy {
export interface Params {
subaccountId: string
lowerBound: string
upperBound: string
levels: number
slippage?: string
stopLoss?: string
takeProfit?: string
marginRatio: string
}

export interface Data {
subaccount_id: string
bounds: [string, string]
slippage?: string
stop_loss?: ExitConfig
take_profit?: ExitConfig
levels: number
strategy_type: {
perpetual: {
margin_ratio: string
}
}
}
}

/**
* @category Contract Exec Arguments
*/
export default class ExecArgCreatePerpGridStrategy extends ExecArgBase<
ExecArgCreatePerpGridStrategy.Params,
ExecArgCreatePerpGridStrategy.Data
> {
static fromJSON(
params: ExecArgCreatePerpGridStrategy.Params,
): ExecArgCreatePerpGridStrategy {
return new ExecArgCreatePerpGridStrategy(params)
}

toData(): ExecArgCreatePerpGridStrategy.Data {
const { params } = this

return {
subaccount_id: params.subaccountId,
bounds: [params.lowerBound, params.upperBound],
levels: params.levels,
slippage: params.slippage,
strategy_type: {
perpetual: {
margin_ratio: params.marginRatio,
},
},
stop_loss: params.stopLoss
? {
exitType: ExitType.Default,
exitPrice: params.stopLoss,
}
: undefined,
take_profit: params.takeProfit
? {
exitType: ExitType.Default,
exitPrice: params.takeProfit,
}
: undefined,
}
}

toExecData(): ExecDataRepresentation<ExecArgCreatePerpGridStrategy.Data> {
return dataToExecData('create_strategy', this.toData())
}
}
2 changes: 2 additions & 0 deletions packages/sdk-ts/src/core/modules/wasm/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import ExecArgInitiateTransfer from './exec-args/ExecArgInitiateTransfer'
import ExecArgIncreaseAllowance from './exec-args/ExecArgIncreaseAllowance'
import ExecArgRemoveGridStrategy from './exec-args/ExecArgRemoveGridStrategy'
import ExecArgCreateSpotGridStrategy from './exec-args/ExecArgCreateSpotGridStrategy'
import ExecArgCreatePerpGridStrategy from './exec-args/ExecArgCreatePerpGridStrategy'
import ExecArgCW20AdapterRedeemAndTransfer from './exec-args/ExecArgCW20AdapterRedeemAndTransfer'

import MsgStoreCode from './msgs/MsgStoreCode'
Expand Down Expand Up @@ -43,6 +44,7 @@ export {
ExecArgIncreaseAllowance,
ExecArgRemoveGridStrategy,
ExecArgCreateSpotGridStrategy,
ExecArgCreatePerpGridStrategy,
ExecArgCW20AdapterRedeemAndTransfer,
//
MsgStoreCode,
Expand Down

0 comments on commit 063551f

Please sign in to comment.