fix(agenda): resolve wallet::signagree linked documents by data.coopname, not receiver
findLinkedAgreementDocument искал wallet::signagree по фильтру receiver=coopname, но wallet::signagree не делает require_recipient(coopname) (в отличие от Soviet::make_complete_document) — explorer индексирует это действие только с receiver='wallet'. Фильтр receiver=coopname всегда давал 0 строк, поэтому buildLinkedAggregate молча возвращал null, а программные оферты (capital: Благорост/Генератор, program_id>0, подписываются через wallet::signagree, не soviet::sndagreement) пропадали из links повестки совета — платформенные соглашения (wallet/signature/privacy/user, идут через sndagreement) отображались, а оферта ЦПП — нет, хотя её hash был на месте в meta.links и сам документ был в реестре. Воспроизведено и проверено на живом кандидате voskhod: 5 хэшей в meta.links, но до фикса только 4 резолвились в документ-агрегаты. Скоуп по кооперативу берём из payload действия (data.coopname), а не из индекса receiver. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+7
-1
@@ -321,11 +321,17 @@ export class DocumentPackageV1Aggregator {
|
||||
const sovietDocument = sovietAgreement?.results?.[0]?.data?.document;
|
||||
if (sovietDocument) return sovietDocument;
|
||||
|
||||
// wallet::signagree не делает require_recipient(coopname) (в отличие от
|
||||
// Soviet::make_complete_document), поэтому explorer индексирует его только
|
||||
// с receiver='wallet' — фильтр по receiver=coopname здесь всегда возвращал
|
||||
// 0 строк, и программные оферты (capital: Благорост/Генератор, program_id>0)
|
||||
// молча пропадали из links повестки. Скоуп по кооперативу берём из
|
||||
// data.coopname — единственного надёжного поля в самом payload действия.
|
||||
const walletAgreement = await getActions(`${process.env.SIMPLE_EXPLORER_API}/get-actions`, {
|
||||
filter: JSON.stringify({
|
||||
account: WalletContract.contractName.production,
|
||||
name: WalletContract.Actions.SignAgreement.actionName,
|
||||
receiver: process.env.COOPNAME,
|
||||
'data.coopname': process.env.COOPNAME,
|
||||
'data.document.doc_hash': docHashFilter,
|
||||
}),
|
||||
page: 1,
|
||||
|
||||
Reference in New Issue
Block a user