Слияние кода завершено, страница обновится автоматически
Реализация Java для подписания транзакции в автономном режиме (tx-signer)
Предварительные действия:
Сначала получите исходный код:
git clone https://github.com/Bytom/bytom-java-sdk.git
Установите в репозиторий Maven:
$ mvn clean install -DskipTests
Добавьте зависимость:
<dependency>
<groupId>io.bytom</groupId>
<artifactId>tx-signer</artifactId>
<version>1.0.2</version>
</dependency>
Пример:
String btmAssetID = "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
// создание ввода данных о расходе
SpendInput input = new SpendInput();
input.setAssetId(btmAssetID);
input.setAmount(9800000000L);
// управляющая программа ввода данных о расходовании
input.setProgram("0014cb9f2391bafe2bc1159b2c4c8a0f17ba1b4dd94e");
// позиция источника ввода данных о расходовании
input.setSourcePosition(2);
// идентификатор источника ввода данных о расходовании
input.setSourceID("4b5cb973f5bef4eadde4c89b92ee73312b940e84164da0594149554cc8a2adea");
// используется ли ввод данных о расходовании для изменения
input.setChange(true);
// BIP-протокол для производных путей, по умолчанию BIP44
input.setBipProtocol(BIPProtocol.BIP32);
// индекс управляющей программы ввода данных о расходовании
input.setControlProgramIndex(457);
// индекс учётной записи
input.setKeyIndex(1);
// предоставить корневой закрытый ключ для подписи
input.setRootPrivateKey("4864bae85cf38bfbb347684abdbc01e311a24f99e2c7fe94f3c071d9c83d8a5a349722316972e382c339b79b7e1d83a565c6b3e7cf46847733a47044ae493257");
// создать транзакцию с подписью
Transaction tx = new Transaction.Builder()
.addInput(input)
.addOutput(new Output(btmAssetID, 8800000000L, "0014a82f02bc37bc5ed87d5f9fca02f8a6a7d89cdd5c"))
.addOutput(new Output(btmAssetID, 900000000L, "00200824e931fb806bd77fdcd291aad3bd0a4493443a4120062bd659e64a3e0bac66"))
.setTimeRange(0)
.build();
String rawTransaction = tx.rawTransaction();
IssuanceInput issuanceInput = new IssuanceInput();
issuanceInput.setAssetId("7b38dc897329a288ea31031724f5c55bcafec80468a546955023380af2faad14");
issuanceInput.setAmount(100000000000L);
// программа эмиссии
issuanceInput.setProgram("ae2054a71277cc162eb3eb21b5bd9fe54402829a53b294deaed91692a2cd8a081f9c5151ad");
issuanceInput.setNonce("ac9d5a527f5ab00a");
// индекс актива
issuanceInput.setKeyIndex(5);
// необработанное определение актива
issuanceInput.setRawAssetDefinition("7b0a202022646563696d616c73223a20382c0a2020226465736372697074696f6e223a207b7d2c0a2020226e616d65223a2022222c0a20202273796d626f6c223a2022220a7d");
// предоставить корневой закрытый ключ для подписи
issuanceInput.setRootPrivateKey("4864bae85cf38bfbb347684abdbc01e311a24f99e2c7fe94f3c071d9c83d8a5a349722316972e382c339b79b7e1d83a565c6b3e7cf46847733a47044ae493257");
SpendInput spendInput = new SpendInput();
spendInput.setAssetId(btmAssetID);
spendInput.setAmount(9800000000L);
spendInput.setProgram("0014cb9f2391bafe2bc1159b2c4c8a0f17ba1b4dd94e");
spendInput.setKeyIndex(1);
spendInput.setChange(true);
spendInput.setSourceID("4b5cb973f5bef4eadde4c89b92ee73312b940e84164da0594149554cc8a2adea");
spendInput.setSourcePosition(2);
spendInput.setControlProgramIndex(457);
spendInput.setRootPrivateKey("4864bae85cf38bfbb347684abdbc01e311a24f99e2c7fe94f3c071d9c83d8a5a349722316972e382c339b79b7e1d83a565c6b3e7cf46847733a47044ae493257");
Transaction tx = new Transaction.Builder()
.addInput(issuanceInput)
.addInput(spendInput)
.addOutput(new ...)
*Примечание: предоставленный текст содержит синтаксические ошибки и не является полноценным рабочим примером.* ```
Output("7b38dc897329a288ea31031724f5c55bcafec80468a546955023380af2faad14", 100000000000L, "001437e1aec83a4e6587ca9609e4e5aa728db7007449")
.addOutput(new Output(btmAssetID, 9700000000L, "00148be1104e04734e5edaba5eea2e85793896b77c56"))
.setTimeRange(0)
.build();
String rawTx = tx.rawTransaction();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )