fix(capital): correct BLAGOROST_AGREEMENT_TYPE to match on-chain 'blagorost'
Константа хранила 'capital', но boot/src/init/cooperative.ts createPrograms() сеет программу с type='blagorost' на генезисе (soviet::createprog), на всех кооперативах. account.adapter.ts искал coagreement по 'capital' — не находил, programId откатывался на 0, и вместо wallet::signagree уходил soviet::sndagreement, который на цепи падает: get_coagreement_or_fail не находит type='capital' в coagreements — «Соглашение указанного типа не найдено». Ловилось при приёме платежа регистрации (registerBlockchainAccount из gateway.interactor при PaymentType.REGISTRATION), падало для КАЖДОГО участника, зарегистрированного по офферте Благорост. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,10 +23,13 @@ export const GENERATOR_OFFER_AGREEMENT_ID = 'generator_offer';
|
||||
export const BLAGOROST_OFFER_AGREEMENT_ID = 'blagorost_offer';
|
||||
|
||||
export const GENERATOR_AGREEMENT_TYPE = 'generator';
|
||||
// On-chain имя оферты Благорост в `soviet::coagreements` — 'capital' (program_id=4).
|
||||
// Контроллер обязан слать sndagreement/signagree с этим значением, иначе
|
||||
// `get_coagreement_or_fail` падает с «Соглашение указанного типа не найдено».
|
||||
export const BLAGOROST_AGREEMENT_TYPE = 'capital';
|
||||
// On-chain имя оферты Благорост в `soviet::coagreements` — 'blagorost' (program_id=4),
|
||||
// как сеет boot/src/init/cooperative.ts createPrograms() при генезисе кооператива.
|
||||
// Значение здесь ОБЯЗАНО совпадать буквально — иначе account.adapter.ts не находит
|
||||
// coagreement по type, программный signagree подменяется на sndagreement и
|
||||
// `get_coagreement_or_fail` падает с «Соглашение указанного типа не найдено»
|
||||
// (воспроизведено 2026-07-19: регистрация участника Благорост падала на приёме платежа).
|
||||
export const BLAGOROST_AGREEMENT_TYPE = 'blagorost';
|
||||
|
||||
export const GENERATION_PROGRAM_KEY = 'GENERATION';
|
||||
export const CAPITALIZATION_PROGRAM_KEY = 'CAPITALIZATION';
|
||||
|
||||
@@ -88,7 +88,7 @@ describe('registerCapitalInAgreementRegistry', () => {
|
||||
expect.objectContaining({
|
||||
id: 'blagorost_offer',
|
||||
registry_id: Cooperative.Registry.BlagorostOffer.registry_id,
|
||||
agreement_type: 'capital',
|
||||
agreement_type: 'blagorost',
|
||||
extension_name: 'capital',
|
||||
// Пусто — оферта подтягивается через программу CAPITALIZATION,
|
||||
// не как дефолтная для individual (см. 8847a5c0939).
|
||||
|
||||
Reference in New Issue
Block a user