Browse Source

add endpoint

add-create-bytes-endpoint
Phillip Lang Martinez 1 year ago
parent
commit
34382b6e69
  1. 36
      src/main/java/org/qortal/api/resource/AtResource.java
  2. 63
      src/main/java/org/qortal/data/transaction/CreationRequest.java

36
src/main/java/org/qortal/api/resource/AtResource.java

@ -27,6 +27,7 @@ import org.qortal.api.ApiException;
import org.qortal.api.ApiExceptionFactory;
import org.qortal.data.at.ATData;
import org.qortal.data.at.ATStateData;
import org.qortal.data.transaction.CreationRequest;
import org.qortal.data.transaction.DeployAtTransactionData;
import org.qortal.repository.DataException;
import org.qortal.repository.Repository;
@ -156,6 +157,41 @@ public class AtResource {
}
}
@POST
@Path("/createMachineState")
@Operation(
summary = "Create MachineState bytes from the provided parameters",
requestBody = @RequestBody(
required = true,
content = @Content(
mediaType = MediaType.APPLICATION_JSON,
schema = @Schema(
implementation = CreationRequest.class
)
)
),
responses = {
@ApiResponse(
description = "MachineState bytes",
content = @Content(
mediaType = MediaType.TEXT_PLAIN,
schema = @Schema(
type = "string"
)
)
)
}
)
public byte[] createMachineState(CreationRequest request) {
return MachineState.toCreationBytes(
request.getCiyamAtVersion(),
request.getCodeBytes(),
request.getDataBytes(),
request.getNumCallStackPages(),
request.getNumUserStackPages(),
request.getMinActivationAmount()
);
}
@POST
@Operation(
summary = "Build raw, unsigned, DEPLOY_AT transaction",

63
src/main/java/org/qortal/data/transaction/CreationRequest.java

@ -0,0 +1,63 @@
package org.qortal.data.transaction;
public class CreationRequest {
private short ciyamAtVersion;
private byte[] codeBytes;
private byte[] dataBytes;
private short numCallStackPages;
private short numUserStackPages;
private long minActivationAmount;
// Default constructor for JSON deserialization
public CreationRequest() {}
// Getters and setters
public short getCiyamAtVersion() {
return ciyamAtVersion;
}
public void setCiyamAtVersion(short ciyamAtVersion) {
this.ciyamAtVersion = ciyamAtVersion;
}
public byte[] getCodeBytes() {
return codeBytes;
}
public void setCodeBytes(byte[] codeBytes) {
this.codeBytes = codeBytes;
}
public byte[] getDataBytes() {
return dataBytes;
}
public void setDataBytes(byte[] dataBytes) {
this.dataBytes = dataBytes;
}
public short getNumCallStackPages() {
return numCallStackPages;
}
public void setNumCallStackPages(short numCallStackPages) {
this.numCallStackPages = numCallStackPages;
}
public short getNumUserStackPages() {
return numUserStackPages;
}
public void setNumUserStackPages(short numUserStackPages) {
this.numUserStackPages = numUserStackPages;
}
public long getMinActivationAmount() {
return minActivationAmount;
}
public void setMinActivationAmount(long minActivationAmount) {
this.minActivationAmount = minActivationAmount;
}
}
Loading…
Cancel
Save