mirror of
https://github.com/alexgo-io/alex-v1.git
synced 2026-01-12 14:33:42 +08:00
chore: sponsored services (#733)
* feat: add readonly call for frontend * refactor: claim * client can set custom fee, floored by sponsored-fee * amm-swap-pool-b * chore: custom fees for sponsored services --------- Co-authored-by: Kyle Fang <zhigang1992@gmail.com>
This commit is contained in:
committed by
GitHub
parent
936a122f57
commit
b0efa27ef8
@@ -1271,24 +1271,6 @@ depends_on = [ "trait-ownable", "trait-sip-010", "token-leo"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sponsored-amm-swap-pool]
|
||||
path = 'contracts/sponsored/sponsored-amm-swap-pool.clar'
|
||||
depends_on= ["amm-swap-pool"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sponsored-swap-helper]
|
||||
path = 'contracts/sponsored/sponsored-swap-helper.clar'
|
||||
depends_on= ["swap-helper-v1-03", "swap-helper-bridged-v1-1", "swap-helper-bridged"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sponsored-alex-launchpad-v1-7]
|
||||
path = 'contracts/sponsored/sponsored-alex-launchpad-v1-7.clar'
|
||||
depends_on = ["alex-launchpad-v1-7"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.alex-launchpad-v1-7]
|
||||
path = "contracts/pool/alex-launchpad-v1-7.clar"
|
||||
depends_on = ["trait-sip-010", "token-apower"]
|
||||
@@ -1322,6 +1304,30 @@ depends_on = []
|
||||
path = "contracts/helpers/launchpad-buyback-helper-v1-7.clar"
|
||||
depends_on = ["alex-launchpad-v1-7"]
|
||||
|
||||
[contracts.sponsored-amm-swap-pool-v1-1a]
|
||||
path = 'contracts/sponsored/sponsored-amm-swap-pool-v1-1a.clar'
|
||||
depends_on= ["amm-swap-pool-v1-1"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sponsored-amm-swap-pool-a]
|
||||
path = 'contracts/sponsored/sponsored-amm-swap-pool-a.clar'
|
||||
depends_on= ["amm-swap-pool"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sponsored-swap-helper-a]
|
||||
path = 'contracts/sponsored/sponsored-swap-helper-a.clar'
|
||||
depends_on= ["swap-helper-v1-03", "swap-helper-bridged-v1-1", "swap-helper-bridged"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sponsored-alex-launchpad-v1-7a]
|
||||
path = 'contracts/sponsored/sponsored-alex-launchpad-v1-7a.clar'
|
||||
depends_on = ["alex-launchpad-v1-7"]
|
||||
clarity_version = 2
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.token-wlong]
|
||||
path = "contracts/wrapped-token/token-wlong.clar"
|
||||
depends_on = [ "trait-ownable", "trait-sip-010"]
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
(use-trait ft-trait .trait-sip-010.sip-010-trait)
|
||||
|
||||
(define-constant err-not-authorized (err u1000))
|
||||
|
||||
(define-data-var contract-owner principal tx-sender)
|
||||
(define-data-var sponsored-fee uint u0)
|
||||
|
||||
;; read-only calls
|
||||
|
||||
(define-read-only (get-sponsored-fee)
|
||||
(var-get sponsored-fee)
|
||||
)
|
||||
|
||||
;; governance calls
|
||||
|
||||
(define-public (set-sponsored-fee (fee uint))
|
||||
(begin
|
||||
(try! (check-is-owner))
|
||||
(ok (var-set sponsored-fee fee))))
|
||||
|
||||
;; sponsored / public calls
|
||||
|
||||
(define-public (register (launch-id uint) (payment-amount uint) (payment-token-trait <ft-trait>) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .alex-launchpad-v1-7 register launch-id payment-amount payment-token-trait)))
|
||||
|
||||
;; private calls
|
||||
|
||||
(define-private (check-is-owner)
|
||||
(ok (asserts! (is-eq tx-sender (var-get contract-owner)) err-not-authorized))
|
||||
)
|
||||
|
||||
(define-private (pay-to-sponsor (fee (optional uint)))
|
||||
(match tx-sponsor?
|
||||
sponsor
|
||||
(let (
|
||||
(fee-floored (match fee some-value (max some-value (var-get sponsored-fee)) (var-get sponsored-fee))))
|
||||
(ok (and (> fee-floored u0) (try! (contract-call? .token-abtc transfer-fixed fee-floored tx-sender sponsor none)))))
|
||||
(ok false)))
|
||||
|
||||
(define-private (max (a uint) (b uint))
|
||||
(if (<= a b) b a))
|
||||
75
clarity/contracts/sponsored/sponsored-amm-swap-pool-a.clar
Normal file
75
clarity/contracts/sponsored/sponsored-amm-swap-pool-a.clar
Normal file
@@ -0,0 +1,75 @@
|
||||
(use-trait ft-trait .trait-sip-010.sip-010-trait)
|
||||
|
||||
(define-constant err-not-authorized (err u1000))
|
||||
|
||||
(define-data-var contract-owner principal tx-sender)
|
||||
(define-data-var sponsored-fee uint u0)
|
||||
|
||||
;; read-only calls
|
||||
|
||||
(define-read-only (get-sponsored-fee)
|
||||
(var-get sponsored-fee))
|
||||
|
||||
;; governance calls
|
||||
|
||||
(define-public (set-sponsored-fee (fee uint))
|
||||
(begin
|
||||
(try! (check-is-owner))
|
||||
(ok (var-set sponsored-fee fee))))
|
||||
|
||||
;; sponsored / public calls
|
||||
|
||||
(define-public (reduce-position (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (factor uint) (percent uint) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool reduce-position token-x-trait token-y-trait factor percent)))
|
||||
|
||||
(define-public (swap-helper (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (factor uint) (dx uint) (min-dy (optional uint)) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool swap-helper token-x-trait token-y-trait factor dx min-dy)))
|
||||
|
||||
(define-public (swap-helper-a (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (factor-x uint) (factor-y uint) (dx uint) (min-dz (optional uint)) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool swap-helper-a token-x-trait token-y-trait token-z-trait factor-x factor-y dx min-dz)))
|
||||
|
||||
(define-public (swap-helper-b
|
||||
(token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (token-w-trait <ft-trait>)
|
||||
(factor-x uint) (factor-y uint) (factor-z uint)
|
||||
(dx uint) (min-dw (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool swap-helper-b token-x-trait token-y-trait token-z-trait token-w-trait factor-x factor-y factor-z dx min-dw)))
|
||||
|
||||
(define-public (swap-helper-c
|
||||
(token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (token-w-trait <ft-trait>) (token-v-trait <ft-trait>)
|
||||
(factor-x uint) (factor-y uint) (factor-z uint) (factor-w uint)
|
||||
(dx uint) (min-dv (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool swap-helper-c token-x-trait token-y-trait token-z-trait token-w-trait token-v-trait factor-x factor-y factor-z factor-w dx min-dv)
|
||||
)
|
||||
)
|
||||
|
||||
;; private calls
|
||||
|
||||
(define-private (check-is-owner)
|
||||
(ok (asserts! (is-eq tx-sender (var-get contract-owner)) err-not-authorized))
|
||||
)
|
||||
|
||||
(define-private (pay-to-sponsor (fee (optional uint)))
|
||||
(match tx-sponsor?
|
||||
sponsor
|
||||
(let (
|
||||
(fee-floored (match fee some-value (max some-value (var-get sponsored-fee)) (var-get sponsored-fee))))
|
||||
(ok (and (> fee-floored u0) (try! (contract-call? .token-abtc transfer-fixed fee-floored tx-sender sponsor none)))))
|
||||
(ok false)))
|
||||
|
||||
(define-private (min (a uint) (b uint))
|
||||
(if (> a b) b a))
|
||||
|
||||
(define-private (max (a uint) (b uint))
|
||||
(if (<= a b) b a))
|
||||
@@ -0,0 +1,82 @@
|
||||
(use-trait ft-trait .trait-sip-010.sip-010-trait)
|
||||
|
||||
(define-constant err-not-authorized (err u1000))
|
||||
|
||||
(define-data-var contract-owner principal tx-sender)
|
||||
(define-data-var sponsored-fee uint u0)
|
||||
|
||||
;; read-only calls
|
||||
|
||||
(define-read-only (get-sponsored-fee)
|
||||
(var-get sponsored-fee))
|
||||
|
||||
;; governance calls
|
||||
|
||||
(define-public (set-sponsored-fee (fee uint))
|
||||
(begin
|
||||
(try! (check-is-owner))
|
||||
(ok (var-set sponsored-fee fee))))
|
||||
|
||||
;; sponsored / public calls
|
||||
|
||||
(define-public (create-pool (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (factor uint) (pool-owner principal) (dx uint) (dy uint) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 create-pool token-x-trait token-y-trait factor pool-owner dx dy)))
|
||||
|
||||
(define-public (add-to-position (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (factor uint) (dx uint) (max-dy (optional uint)) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 add-to-position token-x-trait token-y-trait factor dx max-dy)))
|
||||
|
||||
(define-public (reduce-position (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (factor uint) (percent uint) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 reduce-position token-x-trait token-y-trait factor percent)))
|
||||
|
||||
(define-public (swap-helper (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (factor uint) (dx uint) (min-dy (optional uint)) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 swap-helper token-x-trait token-y-trait factor dx min-dy)))
|
||||
|
||||
(define-public (swap-helper-a (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (factor-x uint) (factor-y uint) (dx uint) (min-dz (optional uint)) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 swap-helper-a token-x-trait token-y-trait token-z-trait factor-x factor-y dx min-dz)))
|
||||
|
||||
(define-public (swap-helper-b
|
||||
(token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (token-w-trait <ft-trait>)
|
||||
(factor-x uint) (factor-y uint) (factor-z uint)
|
||||
(dx uint) (min-dw (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 swap-helper-b token-x-trait token-y-trait token-z-trait token-w-trait factor-x factor-y factor-z dx min-dw)))
|
||||
|
||||
(define-public (swap-helper-c
|
||||
(token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (token-w-trait <ft-trait>) (token-v-trait <ft-trait>)
|
||||
(factor-x uint) (factor-y uint) (factor-z uint) (factor-w uint)
|
||||
(dx uint) (min-dv (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .amm-swap-pool-v1-1 swap-helper-c token-x-trait token-y-trait token-z-trait token-w-trait token-v-trait factor-x factor-y factor-z factor-w dx min-dv)))
|
||||
|
||||
;; private calls
|
||||
|
||||
(define-private (check-is-owner)
|
||||
(ok (asserts! (is-eq tx-sender (var-get contract-owner)) err-not-authorized)))
|
||||
|
||||
(define-private (pay-to-sponsor (fee (optional uint)))
|
||||
(match tx-sponsor?
|
||||
sponsor
|
||||
(let (
|
||||
(fee-floored (match fee some-value (max some-value (var-get sponsored-fee)) (var-get sponsored-fee))))
|
||||
(ok (and (> fee-floored u0) (try! (contract-call? .token-abtc transfer-fixed fee-floored tx-sender sponsor none)))))
|
||||
(ok false)))
|
||||
|
||||
(define-private (min (a uint) (b uint))
|
||||
(if (> a b) b a))
|
||||
|
||||
(define-private (max (a uint) (b uint))
|
||||
(if (<= a b) b a))
|
||||
67
clarity/contracts/sponsored/sponsored-swap-helper-a.clar
Normal file
67
clarity/contracts/sponsored/sponsored-swap-helper-a.clar
Normal file
@@ -0,0 +1,67 @@
|
||||
(use-trait ft-trait .trait-sip-010.sip-010-trait)
|
||||
|
||||
(define-constant err-not-authorized (err u1000))
|
||||
|
||||
(define-data-var contract-owner principal tx-sender)
|
||||
(define-data-var sponsored-fee uint u0)
|
||||
|
||||
;; read-only calls
|
||||
|
||||
(define-read-only (get-sponsored-fee)
|
||||
(var-get sponsored-fee)
|
||||
)
|
||||
|
||||
;; governance calls
|
||||
|
||||
(define-public (set-sponsored-fee (fee uint))
|
||||
(begin
|
||||
(try! (check-is-owner))
|
||||
(ok (var-set sponsored-fee fee))))
|
||||
|
||||
;; sponsored / public calls
|
||||
|
||||
(define-public (swap-helper-v1-03 (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (dx uint) (min-dy (optional uint)) (fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .swap-helper-v1-03 swap-helper token-x-trait token-y-trait dx min-dy)))
|
||||
|
||||
(define-public (swap-helper-to-amm-v1-1 (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (factor-y uint) (dx uint) (min-dz (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .swap-helper-bridged-v1-1 swap-helper-to-amm token-x-trait token-y-trait token-z-trait factor-y dx min-dz)))
|
||||
|
||||
(define-public (swap-helper-from-amm-v1-1 (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (factor-x uint) (dx uint) (min-dz (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .swap-helper-bridged-v1-1 swap-helper-from-amm token-x-trait token-y-trait token-z-trait factor-x dx min-dz)))
|
||||
|
||||
(define-public (swap-helper-to-amm (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (factor-y uint) (dx uint) (min-dz (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .swap-helper-bridged swap-helper-to-amm token-x-trait token-y-trait token-z-trait factor-y dx min-dz)))
|
||||
|
||||
(define-public (swap-helper-from-amm (token-x-trait <ft-trait>) (token-y-trait <ft-trait>) (token-z-trait <ft-trait>) (factor-x uint) (dx uint) (min-dz (optional uint))
|
||||
(fee (optional uint)))
|
||||
(begin
|
||||
(try! (pay-to-sponsor fee))
|
||||
(contract-call? .swap-helper-bridged swap-helper-from-amm token-x-trait token-y-trait token-z-trait factor-x dx min-dz)))
|
||||
|
||||
;; private calls
|
||||
|
||||
(define-private (check-is-owner)
|
||||
(ok (asserts! (is-eq tx-sender (var-get contract-owner)) err-not-authorized))
|
||||
)
|
||||
|
||||
(define-private (pay-to-sponsor (fee (optional uint)))
|
||||
(match tx-sponsor?
|
||||
sponsor
|
||||
(let (
|
||||
(fee-floored (match fee some-value (max some-value (var-get sponsored-fee)) (var-get sponsored-fee))))
|
||||
(ok (and (> fee-floored u0) (try! (contract-call? .token-abtc transfer-fixed fee-floored tx-sender sponsor none)))))
|
||||
(ok false)))
|
||||
|
||||
(define-private (max (a uint) (b uint))
|
||||
(if (<= a b) b a))
|
||||
Reference in New Issue
Block a user