Skip to content

Commit

Permalink
Merge pull request #147 from zhangcongcobo/main
Browse files Browse the repository at this point in the history
babylon staking
  • Loading branch information
CoboZhu authored Jun 3, 2024
2 parents b827966 + b66816c commit 394fa87
Show file tree
Hide file tree
Showing 5 changed files with 139 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

public interface CoboMPCApiRestClient {
ApiResponse<MPCChains> getSupportedChains();
Expand Down Expand Up @@ -92,4 +93,14 @@ ApiResponse<EstimateFeeDetails> estimateFee(String coin, BigInteger amount, Stri

ApiResponse<ApprovalDetails> getApprovalDetails(String requestId);

ApiResponse<Void> babylonPrepareStaking(String requestId, String stakeInfo, BigDecimal feeRate, BigInteger maxStakingFee);

ApiResponse<Void> babylonReplaceStakingFee(String requestId, String relatedRequestId, BigDecimal feeRate, BigInteger maxStakingFee);

ApiResponse<Void> babylonBroadcastStakingTransaction(String requestId);

ApiResponse<BabylonStakingTransaction> babylonGetStakingInfo(String requestId);

ApiResponse<List<BabylonStakingTransaction>> babylonListWaitingBroadcastTransactions(String coin, String address);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.cobo.custody.api.client.domain.transaction;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.math.BigDecimal;
import java.math.BigInteger;

public class BabylonStakingTransaction {
@JsonProperty(value = "request_id")
private String requestId;
@JsonProperty(value = "cobo_id")
private String coboId;
@JsonProperty(value = "staking_info")
private String stakingInfo;
@JsonProperty(value = "fee_rate")
private BigDecimal feeRate;
@JsonProperty(value = "max_staking_fee")
private BigInteger maxStakingFee;

public String getRequestId() {
return requestId;
}

public void setRequestId(String requestId) {
this.requestId = requestId;
}

public String getCoboId() {
return coboId;
}

public void setCoboId(String coboId) {
this.coboId = coboId;
}

public String getStakingInfo() {
return stakingInfo;
}

public void setStakingInfo(String stakingInfo) {
this.stakingInfo = stakingInfo;
}

public BigDecimal getFeeRate() {
return feeRate;
}

public void setFeeRate(BigDecimal feeRate) {
this.feeRate = feeRate;
}

public BigInteger getMaxStakingFee() {
return maxStakingFee;
}

public void setMaxStakingFee(BigInteger maxStakingFee) {
this.maxStakingFee = maxStakingFee;
}

@Override
public String toString() {
return "BabylonStakingTransaction{" +
"requestId='" + requestId + '\'' +
", coboId='" + coboId + '\'' +
", stakingInfo='" + stakingInfo + '\'' +
", feeRate=" + feeRate +
", maxStakingFee=" + maxStakingFee +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@ public class UserApprovalResult {
@JsonProperty(value = "extra_message")
private String extraMessage;

@JsonProperty(value = "transaction_type")
private String transactionType;

public String getTransactionType() {
return transactionType;
}

public void setTransactionType(String transactionType) {
this.transactionType = transactionType;
}

public Integer getResult() {
return result;
}
Expand Down Expand Up @@ -64,12 +75,13 @@ public void setExtraMessage(String extraMessage) {
@Override
public String toString() {
return "UserApprovalResult{" +
"result='" + result + '\'' +
"result=" + result +
", signature='" + signature + '\'' +
", lastTime='" + lastTime + '\'' +
", language='" + language + '\'' +
", messageVersion='" + messageVersion + '\'' +
", extraMessage='" + extraMessage + '\'' +
", transactionType='" + transactionType + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

import static com.cobo.custody.api.client.impl.CoboApiServiceGenerator.createService;
import static com.cobo.custody.api.client.impl.CoboApiServiceGenerator.executeSync;
Expand Down Expand Up @@ -210,4 +211,29 @@ public ApiResponse<OrdinalsInscriptionContent> getOrdinalsInscription(String ins
public ApiResponse<ApprovalDetails> getApprovalDetails(String requestId) {
return executeSync(coboMPCApiService.getApprovalDetails(requestId));
}

@Override
public ApiResponse<Void> babylonPrepareStaking(String requestId, String stakeInfo, BigDecimal feeRate, BigInteger maxStakingFee) {
return executeSync(coboMPCApiService.babylonPrepareStaking(requestId, stakeInfo, feeRate, maxStakingFee));
}

@Override
public ApiResponse<Void> babylonReplaceStakingFee(String requestId, String relatedRequestId, BigDecimal feeRate, BigInteger maxStakingFee) {
return executeSync(coboMPCApiService.babylonReplaceStakingFee(requestId, relatedRequestId, feeRate, maxStakingFee));
}

@Override
public ApiResponse<Void> babylonBroadcastStakingTransaction(String requestId) {
return executeSync(coboMPCApiService.babylonBroadcastStakingTransaction(requestId));
}

@Override
public ApiResponse<BabylonStakingTransaction> babylonGetStakingInfo(String requestId) {
return executeSync(coboMPCApiService.babylonGetStakingInfo(requestId));
}

@Override
public ApiResponse<List<BabylonStakingTransaction>> babylonListWaitingBroadcastTransactions(String coin, String address) {
return executeSync(coboMPCApiService.babylonListWaitingBroadcastTransactions(coin, address));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

public interface CoboMPCApiService {
@GET("/v1/custody/mpc/get_supported_chains/")
Expand Down Expand Up @@ -198,4 +199,22 @@ Call<ApiResponse<MPCTssNodeRequests>> listTssNodeRequests(@Query("request_type")

@GET("/v1/custody/mpc/get_approval_details/")
Call<ApiResponse<ApprovalDetails>> getApprovalDetails(@Query("request_id") String requestId);

@FormUrlEncoded
@POST("/v1/custody/mpc/babylon/prepare_staking/")
Call<ApiResponse<Void>> babylonPrepareStaking(@Field("request_id") String requestId, @Field("stake_info") String stakeInfo, @Field("fee_rate") BigDecimal feeRate, @Field("max_staking_fee") BigInteger maxStakingFee);

@FormUrlEncoded
@POST("/v1/custody/mpc/babylon/replace_staking_fee/")
Call<ApiResponse<Void>> babylonReplaceStakingFee(@Field("request_id") String requestId, @Field("related_request_id") String relatedRequestId, @Field("fee_rate") BigDecimal feeRate, @Field("max_staking_fee") BigInteger maxStakingFee);

@FormUrlEncoded
@POST("/v1/custody/mpc/babylon/broadcast_staking_transaction/")
Call<ApiResponse<Void>> babylonBroadcastStakingTransaction(@Field("request_id") String requestId);

@GET("/v1/custody/mpc/babylon/get_staking_info/")
Call<ApiResponse<BabylonStakingTransaction>> babylonGetStakingInfo(@Query("request_id") String requestId);

@GET("/v1/custody/mpc/babylon/list_waiting_broadcast_transactions/")
Call<ApiResponse<List<BabylonStakingTransaction>>> babylonListWaitingBroadcastTransactions(@Query("asset_coin") String coin, @Query("address") String address);
}

0 comments on commit 394fa87

Please sign in to comment.