Несоответствие токенов - USD против GBP - Cordapp - Kotlin - Блокчейн - PullRequest
0 голосов
/ 09 апреля 2019

Все мои тесты в IOUStateTests проходят, за исключением того, где я пишу свой метод оплаты. Я написал это, как показано ниже.

Я получаю ошибку как Token mismatch: USD vs GBP. По умолчанию Corda принимает в качестве валюты доллар США? Как указано в постановке задачи, одно свойство viz.- «paid» класса «IOUState» инициируется в фунтах. Я сделал то же самое. Я скопировал его в метод «pay» внутри класса и добавил в метод «paid». Но получаю ошибку выше. Пожалуйста, помогите:)

Это для разработки CorDapp с использованием Kotlin.

data class IOUState(val amount: Amount<Currency>,
                    val lender:Party,
                    val borrower:Party,
                    val paid: Amount<Currency> = POUNDS(0),
                    override val linearId : UniqueIdentifier = UniqueIdentifier()):  LinearState {
    override val participants: List<Party> get() = listOf(lender, borrower)
    fun pay(amountToPay: Amount<Currency>) = copy(paid = paid.plus(amountToPay))

}

Я ожидаю, что метод 'pay' вернет сложение 'paid' и 'amountToPay' в фунтах. Но я получаю сообщение об ошибке: 'paid ' в ПУНДАХ и amountToPay в долларах США. ТАК, не могу добавить.

1 Ответ

0 голосов
/ 10 апреля 2019

Оплаченное вами свойство в IOUState, которое вы определили, установлено в фунтах. Единственное правдоподобное объяснение того, почему вы получаете эту ошибку, заключается в том, что вы передаете некоторую сумму в долларах для своей функции оплаты.

...