Package disc
Interface Party
- All Superinterfaces:
BlockchainContract
Участник системы, основная сущность, распоряжающаяся токенами, создающее участников и платежи. Первый участник,
владеющий всеми токенами создается
DISC.initialEmission(String, String, BigDecimal, PrivateKey), другие
участники создаются уже им и теми кого он создал.-
Method Summary
Modifier and TypeMethodDescriptioncreateAcceptanceAct(@NonNull Party performingParty, @NonNull BigDecimal amount, @NonNull String subcontractId, @NonNull String title) Зарегистрировать акт для использования сProvisionPayment, смcreateProvisionPayment(PrivateKey, Party, BigDecimal, ZonedDateTime, String).createAdvancePayment(@NonNull com.icodici.crypto.PrivateKey privateKey, @NonNull Party recipient, @NonNull BigDecimal amount, @NonNull ZonedDateTime scheduledAt, @NonNull String subcontractId) Создать авансирование для другого участника.createParty(@NonNull com.icodici.crypto.PrivateKey ourPrivateKey, @NonNull String name, @NonNull com.icodici.crypto.PublicKey newPartyPublicKey) Создать дополнительного участника в рамках проекта (эмиссии), например субконтрактора.createProvisionPayment(@NonNull com.icodici.crypto.PrivateKey privateKey, @NonNull Party recipient, @NonNull BigDecimal amount, @NonNull ZonedDateTime scheduledAt, @NonNull String subcontractId) Зарезервировать платеж под обсепечение расчетов.@NonNull RepaymentContractcreateRepaymentContract(@NonNull com.icodici.crypto.PrivateKey key, @NonNull BigDecimal amount) Создать запрос на обмен свободных токенов на фиат.@NonNull Balance@NonNull StringgetId()default @NonNull String@NonNull StringgetName()@Nullable Party@NonNull PaymentHistory@NonNull com.icodici.crypto.PublicKey@NonNull StringУчастники, как и токены, ссылаются на идентификатор госконтракта.Methods inherited from interface disc.BlockchainContract
getBlockchainContractBinary, getBlockchainId, getOriginBlockchainId, isApprovedByBlockchain, refresh, registerInBlockchain
-
Method Details
-
getId
@NonNull String getId()- Returns:
- уникальный идентификатор участника, создается автоматически
-
getName
@NonNull String getName()- Returns:
- имя участника, для отладки в основном, устанавливается при создании участника
-
getStateContractId
@NonNull String getStateContractId()Участники, как и токены, ссылаются на идентификатор госконтракта. Этот контракт один на всех и неизменен.- Returns:
- идентификатор госконтракта
-
getParentParty
@Nullable Party getParentParty() -
getPublicKey
@NonNull com.icodici.crypto.PublicKey getPublicKey()- Returns:
- Главный публичный ключ участника
-
getKeyAddress
- Returns:
- текстовый адрес главного ключа участника
-
getBalance
@NonNull Balance getBalance()- Returns:
- баланс токенов участника
-
createParty
Party createParty(@NonNull com.icodici.crypto.PrivateKey ourPrivateKey, @NonNull String name, @NonNull com.icodici.crypto.PublicKey newPartyPublicKey) Создать дополнительного участника в рамках проекта (эмиссии), например субконтрактора. При создании участнка указывается только его публичный ключ, приватный ключ известен только новому участнику и на данном этапе не используется. Приватный ключ текущего участника удостоверяет действие.Обратите внимание, что один фактический участник может иметь произвольное количество управляемых им объектов Party, в том числе и с одинаковым ключом.
- Parameters:
ourPrivateKey- приватный ключ участника, который создает нового участника, удостоверяет действие.name- название, для отладки напримерnewPartyPublicKey- публичный ключ участника. не может совпажать с уже использованными в проекте (эмиссии) ключами, это проверяется. Приватный ключ участника должен быть надежно сохранен где то у нового участника, локально.- Returns:
- новый участник с нулевым балансом.
-
createAdvancePayment
AdvancePayment createAdvancePayment(@NonNull com.icodici.crypto.PrivateKey privateKey, @NonNull Party recipient, @NonNull BigDecimal amount, @NonNull ZonedDateTime scheduledAt, @NonNull String subcontractId) throws InsufficientFundsException Создать авансирование для другого участника. Включает подпись приватным ключом участника. Приватный ключ не передается по сети и не сохраняется за пределами данного вызова (используется локально).- Parameters:
privateKey- приватный ключ текущего участника,recipient- участник получатель авансированияamount- сумма авансирвоанияscheduledAt- дата начиная с которой токены авансирования можно использовать (например для обмена)subcontractId- идентификатор субподрядного контракта- Returns:
- объект авансирования, с собственным смартконтрактом, позволяющий получить из него токены по наступлению даты.
- Throws:
InsufficientFundsException- если недостаточно токенов
-
createProvisionPayment
ProvisionPayment createProvisionPayment(@NonNull com.icodici.crypto.PrivateKey privateKey, @NonNull Party recipient, @NonNull BigDecimal amount, @NonNull ZonedDateTime scheduledAt, @NonNull String subcontractId) throws InsufficientFundsException Зарезервировать платеж под обсепечение расчетов. Для получения средств потребуются акты.- Parameters:
privateKey- приватный ключ текущего участника,recipient- участник получатель авансированияamount- сумма авансирвоанияscheduledAt- дата начиная с которой токены авансирования можно использовать (например для обмена)subcontractId- идентификатор субподрядного контракта- Returns:
- объект резервирующий сумму под обеспечение расчетов
- Throws:
InsufficientFundsException- если недостаточно токенов
-
createAcceptanceAct
AcceptanceAct createAcceptanceAct(@NonNull Party performingParty, @NonNull BigDecimal amount, @NonNull String subcontractId, @NonNull String title) Зарегистрировать акт для использования сProvisionPayment, смcreateProvisionPayment(PrivateKey, Party, BigDecimal, ZonedDateTime, String). Акт автоматически учитывается и влияет на исполнение платежей поProvisionPaymentc соответствуюшим идентификатором субподрядного контракта. Удобнее использовать изProvisionPayment.createAct(BigDecimal, String).Изначально акт не подписан и не зарегистирован, см
AcceptanceActпо процедуре.- Parameters:
performingParty- исполнитель работamount- актируемая суммаtitle- название акта, для отладки и отображенияsubcontractId- идентификатор субподрядного контракта- Returns:
- неподписанный акт, его должны подписать исполнитель и заказчик и зарегистрировать в блокчейне
-
getPaymentHistory
@NonNull PaymentHistory getPaymentHistory()- Returns:
- история платежей связанных с данной сущностью.
-
createRepaymentContract
@NonNull RepaymentContract createRepaymentContract(@NonNull com.icodici.crypto.PrivateKey key, @NonNull BigDecimal amount) throws InsufficientFundsException Создать запрос на обмен свободных токенов на фиат. Баланс свободных токенов, см.getBalance(), должен быть не менее свободной суммы. Полученный контракт, изначально подписанный владельцем,- Parameters:
key- приватный ключ владельцаamount- сумма на обмен- Returns:
- контракт запроса на обратный обмен токенов
- Throws:
InsufficientFundsException- если недостаточно свободных токенов
-