1

寻找一种轻量级的手动签名方式OfferCreate……启动一些 JavaScript 引擎来完成它会很笨拙。

4

1 回答 1

1

嗯......即使它没有维护 4 年,它看起来仍然有效。

克隆并在&ripple-lib-java中执行 mvn 安装ripple-bouncycastleripple-core

然后将构建的 JAR 复制到<YourProject>/libs

在 Gradle Kotlin DSL 中添加本地依赖项:

repositories {
    flatDir {
        dirs("libs")
    }
}

dependencies {
    implementation(":ripple-bouncycastle-0.0.1-SNAPSHOT")
    implementation(":ripple-core-0.0.1-SNAPSHOT")

    runtime("org.json:json:20190722") // No newskool kotlinx-serialization here :(
}

创建并签署 OfferCreate:

val offerCreate = OfferCreate()
offerCreate.account(AccountID.fromString("r3jpWpUysF4SAkUNbG4WhDZ5mAJ7rGUDx6"))
offerCreate.expiration(UInt32(get2MinExpiration()))
offerCreate.fee(Amount(BigDecimal("0.00001")))
offerCreate.flags(UInt32(0))
offerCreate.sequence(UInt32(1))
val amountXRP = BigDecimal(200)
val amountBTC = convert(amountXRP, RIPPLE_XRP, BITCOIN)
offerCreate.takerGets(Amount(amountXRP))
offerCreate.takerPays(Amount(amountBTC, Currency.fromString(BITCOIN), AccountID.fromString(BITCOIN_TRUSTED_ISSUER)))
val signedTransaction = offerCreate.sign("[***Secret***]")
println(offerCreate.toJSON())
println(signedTransaction.tx_blob)

有点烦人,你不能在 atoJSON()上做 a SignedTransaction。它不能是安全的东西,因为sign()只添加了公钥字段:https ://xrpl.org/transaction-common-fields.html#signers-field

于 2019-12-23T19:50:03.493 回答