;; Experimental
(use-trait ft-trait 'SP2AKWJYC7BNY18W1XXKPGP0YVEK63QJG4793Z2D4.sip-010-trait-ft-standard.sip-010-trait)
(use-trait oracle-trait 'SP3YBY0BH4ANC0Q35QB6PD163F943FVFVDFM1SH7S.gl-oracle-trait-pyth.oracle-trait)
(define-constant VELAR_GL_API 'SP3YBY0BH4ANC0Q35QB6PD163F943FVFVDFM1SH7S.gl-api)
;; Compatibility: same signature as Velar `gl-api.open`
(define-public (open
(base-token <ft-trait>)
(quote-token <ft-trait>)
(long bool)
(collateral uint)
(leverage uint)
(desired uint)
(slippage uint)
(ctx0 {
identifier: (buff 32),
message: (buff 8192),
oracle: <oracle-trait>,
})
)
(contract-call? VELAR_GL_API open base-token quote-token long collateral
leverage desired slippage ctx0
)
)
;; Compatibility: same signature as Velar `gl-api.close`
(define-public (close
(base-token <ft-trait>)
(quote-token <ft-trait>)
(position-id uint)
(desired uint)
(slippage uint)
(ctx0 {
identifier: (buff 32),
message: (buff 8192),
oracle: <oracle-trait>,
})
)
(contract-call? VELAR_GL_API close base-token quote-token position-id desired
slippage ctx0
)
)
;; Convenience wrappers (long/short fixed)
(define-public (open-long
(base-token <ft-trait>)
(quote-token <ft-trait>)
(collateral uint)
(leverage uint)
(desired uint)
(slippage uint)
(ctx0 {
identifier: (buff 32),
message: (buff 8192),
oracle: <oracle-trait>,
})
)
(contract-call? VELAR_GL_API open base-token quote-token true collateral
leverage desired slippage ctx0
)
)
(define-public (open-short
(base-token <ft-trait>)
(quote-token <ft-trait>)
(collateral uint)
(leverage uint)
(desired uint)
(slippage uint)
(ctx0 {
identifier: (buff 32),
message: (buff 8192),
oracle: <oracle-trait>,
})
)
(contract-call? VELAR_GL_API open base-token quote-token false collateral
leverage desired slippage ctx0
)
)