Убрать фиксированного менеджера из config и хранить только DAO-управляемых менеджеров
This commit is contained in:
parent
a701c1cbba
commit
32bc2c9dc3
@ -1,6 +1,16 @@
|
||||
//! Единый деплой-конфиг проекта SHINE.
|
||||
//! Здесь хранятся адреса и параметры, которые зависят от окружения деплоя.
|
||||
|
||||
// =========================
|
||||
// Program IDs
|
||||
// =========================
|
||||
|
||||
/// `SHINE_PAYMENTS_PROGRAM_ID` — адрес программы `shine_payments` для текущего окружения.
|
||||
pub const SHINE_PAYMENTS_PROGRAM_ID: &str = "m48pWRGWrMj3TEHjuU4zsp5Gju4e7ZaPovk8RcVt7kR";
|
||||
|
||||
/// `SHINE_USERS_PROGRAM_ID` — адрес программы `shine_users` для текущего окружения.
|
||||
pub const SHINE_USERS_PROGRAM_ID: &str = "FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm";
|
||||
|
||||
// =========================
|
||||
// DAO / роли управления
|
||||
// =========================
|
||||
@ -11,9 +21,6 @@ pub const DAO_AUTHORITY: &str = "FUc28vNixp7F3nnkpGVt6nuJbgvJ4429v4B5wS52Df6P";
|
||||
/// `DAO_TREASURY_WALLET` — кошелек казны DAO для поступления DAO-части выплат в `shine_payments`.
|
||||
pub const DAO_TREASURY_WALLET: &str = "FUc28vNixp7F3nnkpGVt6nuJbgvJ4429v4B5wS52Df6P";
|
||||
|
||||
/// `MANAGER_WALLET` — сервисный менеджерский кошелек по умолчанию для `shine_payments`.
|
||||
pub const MANAGER_WALLET: &str = "4yzHKs2zFXpyqqCETe8KpAs4xhEo4QhJ2ybyTgRZphZv";
|
||||
|
||||
// =========================
|
||||
// Комиссии / получатели
|
||||
// =========================
|
||||
|
||||
@ -34,15 +34,11 @@ pub mod shine_payments {
|
||||
|
||||
let dao_wallet = Pubkey::from_str(settings::DAO_WALLET)
|
||||
.map_err(|_| error!(PaymentsError::InvalidSettingsWallet))?;
|
||||
let manager_wallet = Pubkey::from_str(settings::MANAGER_WALLET)
|
||||
.map_err(|_| error!(PaymentsError::InvalidSettingsWallet))?;
|
||||
|
||||
let system_program_ai = ctx.accounts.system_program.to_account_info();
|
||||
|
||||
let config = ConfigState {
|
||||
version: 1,
|
||||
dao_wallet,
|
||||
manager_wallet,
|
||||
inflow_vault: ctx.accounts.inflow_vault_pda.key(),
|
||||
};
|
||||
create_and_store_state(
|
||||
@ -737,7 +733,6 @@ pub struct ChangeTicketRecipientArgs {
|
||||
pub struct ConfigState {
|
||||
pub version: u8,
|
||||
pub dao_wallet: Pubkey,
|
||||
pub manager_wallet: Pubkey,
|
||||
pub inflow_vault: Pubkey,
|
||||
}
|
||||
|
||||
|
||||
@ -52,5 +52,3 @@ pub const PYTH_SOL_USD_ACCOUNT: &str = deploy_config::PYTH_SOL_USD_ACCOUNT;
|
||||
|
||||
/// `DAO_WALLET` — адрес кошелька DAO-казны для `shine_payments` (берется из общего deploy-конфига).
|
||||
pub const DAO_WALLET: &str = deploy_config::DAO_TREASURY_WALLET;
|
||||
/// `MANAGER_WALLET` — адрес менеджерского кошелька по умолчанию (берется из общего deploy-конфига).
|
||||
pub const MANAGER_WALLET: &str = deploy_config::MANAGER_WALLET;
|
||||
|
||||
@ -180,9 +180,8 @@
|
||||
let o = 0;
|
||||
const version = data[o++];
|
||||
const dao = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
const manager = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
const inflow = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
return { version, dao, manager, inflow };
|
||||
return { version, dao, inflow };
|
||||
}
|
||||
function parseCoef(data) {
|
||||
let o = 0;
|
||||
@ -313,7 +312,6 @@
|
||||
<div class="muted">Сейчас это тестовый DAO-кошелек. В production здесь будет адрес реального DAO.</div>
|
||||
<div>Inflow vault: <code>${core.config.inflow.toBase58()}</code></div>
|
||||
<div class="muted">Inflow vault — входящий PDA-кошелек выплат программы.</div>
|
||||
<div>Manager (для справки): <code>${core.config.manager.toBase58()}</code></div>
|
||||
<div>Награда за шаг: <b>${lamportsToSolStr(core.coef.reward)} SOL</b></div>
|
||||
<div>Коэффициент: <b>${coefText}</b>, лимит: <b>${centsToUsdStr(core.coef.limitUsdCents)} USD</b></div>
|
||||
<div>Осталось лимита для покупки Q1: <b>${centsToUsdStr(limitRemain)} USD</b></div>
|
||||
|
||||
@ -187,9 +187,8 @@
|
||||
let o = 0;
|
||||
const version = data[o++];
|
||||
const dao = new solanaWeb3.PublicKey(data.slice(o, o + 32)).toBase58(); o += 32;
|
||||
const manager = new solanaWeb3.PublicKey(data.slice(o, o + 32)).toBase58(); o += 32;
|
||||
const inflow = new solanaWeb3.PublicKey(data.slice(o, o + 32)).toBase58(); o += 32;
|
||||
return { version, dao, manager, inflow };
|
||||
return { version, dao, inflow };
|
||||
}
|
||||
function parseCoef(data) {
|
||||
let o = 0;
|
||||
|
||||
@ -138,9 +138,8 @@
|
||||
let o = 0;
|
||||
const version = data[o++];
|
||||
const dao = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
const manager = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
const inflow = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
return { version, dao, manager, inflow };
|
||||
return { version, dao, inflow };
|
||||
}
|
||||
function parseManagerAllowance(data) {
|
||||
let o = 0;
|
||||
|
||||
@ -165,9 +165,8 @@
|
||||
let o = 0;
|
||||
const version = data[o++];
|
||||
const dao = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
const manager = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
const inflow = new solanaWeb3.PublicKey(data.slice(o, o + 32)); o += 32;
|
||||
return { version, dao, manager, inflow };
|
||||
return { version, dao, inflow };
|
||||
}
|
||||
function parseCoef(data) {
|
||||
let o = 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user