На вложение ссылаются при построении транзакции:
val txBuilder = TransactionBuilder(notary)
.addOutputState(agreementState, AGREEMENT_CONTRACT_ID)
.addCommand(agreeCmd, agreeCmdRequiredSigners)
.addAttachment(untrustedPartiesAttachment)
После добавления в транзакцию на него можно ссылаться в контракте:
val attachmentJar = attachment.openAsJAR()
while (attachmentJar.nextEntry.name != "blacklist.txt") {
// Calling `attachmentJar.nextEntry` causes us to scroll through the JAR.
}
val blacklistedCompanies = mutableListOf<String>()
val bufferedReader = attachmentJar.bufferedReader()
var company = bufferedReader.readLine()
while (company != null) {
blacklistedCompanies.add(company)
company = bufferedReader.readLine()
}
Вы также можете расширить клиент для загрузки вложения через RPC. См. downloadAttachment
метод.