42dfa58582
Раньше при равенстве цен close_bet делал `return Ok(())` — ставка навсегда оставалась в статусе open, а залог запирался в ваулте (замер: 33.6% окон). Из-за правила «одна открытая ставка на адрес» игрок получал 409 пожизненно. Теперь ничья возвращает залог целиком (без множителя) и финализирует ставку: - constants.rs: STATUS_REFUNDED = 3 (0/1/2 не тронуты — зашиты в шлюз и в цепи) - close_bet.rs: CPI-перевод amount из ваулта беттору под сидами ваулт-PDA, запись exit_price/status, событие BetClosed(status=3, payout=amount) - settle.ts: STATUS_REFUNDED, statusName "refunded", статус 3 в условии финализации - check.ts: проверка формы события refunded - тест close_bet_equal_price_stays_open → close_bet_equal_price_refunds (+ повторное закрытие отклоняется) Проверено: cargo test-sbf 10/10, npm run typecheck EXIT=0, две мутации (снятие статуса, снятие перевода) валят именно новый тест. Задеплоено: программа 9ALs… (хэш из цепи совпал побайтово), шлюз rev 15.
45 lines
879 B
YAML
45 lines
879 B
YAML
replicaCount: 1
|
|
|
|
image:
|
|
name: 'images.binom.pw/smart/updown-relayer'
|
|
pullPolicy: IfNotPresent
|
|
tag: ''
|
|
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
|
|
port: 8895
|
|
|
|
ingress:
|
|
host: ''
|
|
enabled: false
|
|
|
|
smart:
|
|
rpcUrl: 'http://192.168.76.181:8899'
|
|
programId: '9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf'
|
|
tokenMint: '6fxySAjTQTkzyyZ7u8EQqv3SyJtv2Ydr6hphquHbkGS9'
|
|
adminKeypair: '/app/secrets/admin-keypair.json'
|
|
mode: test
|
|
allowAirdrop: true
|
|
minAmount: 100000000
|
|
maxAmount: 10000000000
|
|
multiplierBps: 13000
|
|
expirySeconds: 15
|
|
startBalance: 10000000000
|
|
priceHistory: '/app/data/price-history.db'
|
|
priceRetentionHours: 24
|
|
settleIntervalMs: 2000
|
|
|
|
nats:
|
|
url: 'nats://192.168.88.93:4222'
|
|
priceSubject: 'market.price.solusdt'
|
|
|
|
keystorePath: '/app/data/.gateway-bettors.json'
|
|
|
|
persistence:
|
|
enabled: true
|
|
size: 1Gi
|
|
storageClassName: local-path
|
|
|
|
resources: {}
|