由于 ripple-lib-java 无人维护,您如何手动签署交易?
Since ripple-lib-java is unmaintained, how do you manually sign a transaction?
正在寻找一种手动签署 OfferCreate
的轻量级方法...启动一些 JavaScript 引擎来完成它会很笨拙。
嗯……虽然4年没维护了,但好像还能用。
克隆 ripple-lib-java
并在 ripple-bouncycastle
& ripple-core
中执行 mvn 安装
然后将构建的 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)
有点烦人,你不能在 SignedTransaction
上做 toJSON()
。它可以
这不是安全问题,因为 sign()
仅添加 public 关键字段:https://xrpl.org/transaction-common-fields.html#signers-field
正在寻找一种手动签署 OfferCreate
的轻量级方法...启动一些 JavaScript 引擎来完成它会很笨拙。
嗯……虽然4年没维护了,但好像还能用。
克隆 ripple-lib-java
并在 ripple-bouncycastle
& ripple-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)
有点烦人,你不能在 SignedTransaction
上做 toJSON()
。它可以
这不是安全问题,因为 sign()
仅添加 public 关键字段:https://xrpl.org/transaction-common-fields.html#signers-field