Skip to content

Commit

Permalink
feat: add publish api
Browse files Browse the repository at this point in the history
Signed-off-by: grapebaba <[email protected]>
  • Loading branch information
GrapeBaBa committed Dec 7, 2022
1 parent 451753a commit 7303e22
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 2 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ TODO
- [x] sui_pay
- [x] sui_payAllSui
- [x] sui_paySui
- [ ] sui_publish
- [x] sui_publish
- [x] sui_splitCoin
- [x] sui_splitCoinEqual
- [ ] sui_subscribeEvent
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ plugins {


group 'me.grapebaba'
version '0.2.0'
version '0.3.0'

repositories {
mavenCentral()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,4 +363,42 @@ void moveCall() throws ExecutionException, InterruptedException {
});
System.out.println(future.get());
}

/**
* Publish.
*
* @throws ExecutionException the execution exception
* @throws InterruptedException the interrupted exception
*/
@Test
@DisplayName("Test publish.")
void publish() throws ExecutionException, InterruptedException {
CompletableFuture<TransactionBytes> res =
transactionBuilder.publish(
"0xea79464d86786b7a7a63e3f13f798f29f5e65947",
Lists.newArrayList(
"oRzrCwYAAAAKAQAIAggMAxQuBEICBUQrB2+IAQj3ASgKnwIKDKkCkwEN"
+ "vAMEAAABAQECAQMABAgAAwYCAAENBAAABQABAAAHAgEAAAgDAQAACQQFAAAK"
+ "BgEAAAsEBwABDgIIAAMPCQUAAhALAQEICAoCBggAAwABBwgBAQcIAAEGCAAB"
+ "BQMHCAADBwgBAQMBCAIBBggBAQgAAQkAB2NvdW50ZXIGb2JqZWN0CHRyYW5z"
+ "ZmVyCnR4X2NvbnRleHQHQ291bnRlcgxhc3NlcnRfdmFsdWUJVHhDb250ZXh0"
+ "BmNyZWF0ZQlpbmNyZW1lbnQFb3duZXIJc2V0X3ZhbHVlBXZhbHVlAmlkA1VJ"
+ "RANuZXcGc2VuZGVyDHNoYXJlX29iamVjdAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAIAAgMMCAIJBQsDAAEEAAEJCwAQABQLASED"
+ "CAYAAAAAAAAAACcCAQEEAAEJCgARBgsALhEHBgAAAAAAAAAAEgA4AAICAQQA"
+ "AQkKABAAFAYBAAAAAAAAABYLAA8AFQIDAQAAAQQLABABFAIEAQQAAREKABAB"
+ "FAsCLhEHIQMMCwABBgAAAAAAAAAAJwsBCwAPABUCBQEAAAEECwAQABQCAAIAAQA="),
"0x05f71eb5dc69224ef8e3a4c13917c799190237d9",
100L);
CompletableFuture<Object> future = new CompletableFuture<>();
res.whenComplete(
(transactionResponse, throwable) -> {
if (throwable != null) {
future.complete(throwable);
} else {
future.complete(transactionResponse);
}
});
System.out.println(future.get());
}
}
10 changes: 10 additions & 0 deletions src/main/java/io/sui/clients/JsonRpcTransactionBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,14 @@ public CompletableFuture<TransactionBytes> moveCall(
return this.jsonRpcClientProvider.callAndUnwrapResponse(
"/sui_moveCall", request, new TypeToken<TransactionBytes>() {}.getType());
}

@Override
public CompletableFuture<TransactionBytes> publish(
String signer, List<String> compiledModules, String gas, long gasBudget) {
final JsonRpc20Request request =
this.jsonRpcClientProvider.createJsonRpc20Request(
"sui_publish", Lists.newArrayList(signer, compiledModules, gas, gasBudget));
return this.jsonRpcClientProvider.callAndUnwrapResponse(
"/sui_publish", request, new TypeToken<TransactionBytes>() {}.getType());
}
}
12 changes: 12 additions & 0 deletions src/main/java/io/sui/clients/TransactionBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,16 @@ CompletableFuture<TransactionBytes> moveCall(
List<?> arguments,
String gas,
long gasBudget);

/**
* Publish completable future.
*
* @param signer the signer
* @param compiledModules the compiled modules
* @param gas the gas
* @param gasBudget the gas budget
* @return the completable future
*/
CompletableFuture<TransactionBytes> publish(
String signer, List<String> compiledModules, String gas, long gasBudget);
}
39 changes: 39 additions & 0 deletions src/test/java/io/sui/clients/JsonRpcTransactionBuilderTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ public MockResponse dispatch(RecordedRequest request) {
return getMockResponse("mockdata/moveCall.json");
}

if ("/sui_publish".equals(request.getPath())) {
return getMockResponse("mockdata/publish.json");
}

return new MockResponse().setResponseCode(404);
}
};
Expand Down Expand Up @@ -428,4 +432,39 @@ void moveCall() throws ExecutionException, InterruptedException {
.getImmOrOwnedMoveObject()
.getDigest());
}

/**
* Publish.
*
* @throws ExecutionException the execution exception
* @throws InterruptedException the interrupted exception
*/
@Test
@DisplayName("Test publish.")
void publish() throws ExecutionException, InterruptedException {
CompletableFuture<TransactionBytes> res =
transactionBuilder.publish(
"0xea79464d86786b7a7a63e3f13f798f29f5e65947",
Lists.newArrayList(
"oRzrCwYAAAAKAQAIAggMAxQuBEICBUQrB2+IAQj3ASgKnwIKDKkCkwEN"
+ "vAMEAAABAQECAQMABAgAAwYCAAENBAAABQABAAAHAgEAAAgDAQAACQQFAAAK"
+ "BgEAAAsEBwABDgIIAAMPCQUAAhALAQEICAoCBggAAwABBwgBAQcIAAEGCAAB"
+ "BQMHCAADBwgBAQMBCAIBBggBAQgAAQkAB2NvdW50ZXIGb2JqZWN0CHRyYW5z"
+ "ZmVyCnR4X2NvbnRleHQHQ291bnRlcgxhc3NlcnRfdmFsdWUJVHhDb250ZXh0"
+ "BmNyZWF0ZQlpbmNyZW1lbnQFb3duZXIJc2V0X3ZhbHVlBXZhbHVlAmlkA1VJ"
+ "RANuZXcGc2VuZGVyDHNoYXJlX29iamVjdAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAIAAgMMCAIJBQsDAAEEAAEJCwAQABQLASED"
+ "CAYAAAAAAAAAACcCAQEEAAEJCgARBgsALhEHBgAAAAAAAAAAEgA4AAICAQQA"
+ "AQkKABAAFAYBAAAAAAAAABYLAA8AFQIDAQAAAQQLABABFAIEAQQAAREKABAB"
+ "FAsCLhEHIQMMCwABBgAAAAAAAAAAJwsBCwAPABUCBQEAAAEECwAQABQCAAIAAQA="),
"0x05f71eb5dc69224ef8e3a4c13917c799190237d9",
100L);
System.out.println(res.get());
assertEquals(
"XpJDVPOW3OjFJJ9iDhU3GZjJWmDt4NX3XF4H4uA53+0=",
((ImmOrOwnedMoveObjectKind) res.get().getInputObjects().get(1))
.getImmOrOwnedMoveObject()
.getDigest());
assertEquals("XpJDVPOW3OjFJJ9iDhU3GZjJWmDt4NX3XF4H4uA53+0=", res.get().getGas().getDigest());
}
}
24 changes: 24 additions & 0 deletions src/test/resources/mockdata/publish.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"jsonrpc": "2.0",
"result": {
"txBytes": "VHJhbnNhY3Rpb25EYXRhOjoAAQHuA6Ec6wsGAAAACgEACAIIDAMULgRCAgVEKwdviAEI9wEoCp8CCgypApMBDbwDBAAAAQEBAgEDAAQIAAMGAgABDQQAAAUAAQAABwIBAAAIAwEAAAkEBQAACgYBAAALBAcAAQ4CCAADDwkFAAIQCwEBCAgKAgYIAAMAAQcIAQEHCAABBggAAQUDBwgAAwcIAQEDAQgCAQYIAQEIAAEJAAdjb3VudGVyBm9iamVjdAh0cmFuc2Zlcgp0eF9jb250ZXh0B0NvdW50ZXIMYXNzZXJ0X3ZhbHVlCVR4Q29udGV4dAZjcmVhdGUJaW5jcmVtZW50BW93bmVyCXNldF92YWx1ZQV2YWx1ZQJpZANVSUQDbmV3BnNlbmRlcgxzaGFyZV9vYmplY3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIDDAgCCQULAwABBAABCQsAEAAUCwEhAwgGAAAAAAAAAAAnAgEBBAABCQoAEQYLAC4RBwYAAAAAAAAAABIAOAACAgEEAAEJCgAQABQGAQAAAAAAAAAWCwAPABUCAwEAAAEECwAQARQCBAEEAAERCgAQARQLAi4RByEDDAsAAQYAAAAAAAAAACcLAQsADwAVAgUBAAABBAsAEAAUAgACAAEA6nlGTYZ4a3p6Y+PxP3mPKfXmWUcF9x613GkiTvjjpME5F8eZGQI32QAAAAAAAAAAIF6SQ1TzltzoxSSfYg4VNxmYyVpg7eDV91xeB+LgOd/tAQAAAAAAAABkAAAAAAAAAA==",
"gas": {
"objectId": "0x05f71eb5dc69224ef8e3a4c13917c799190237d9",
"version": 0,
"digest": "XpJDVPOW3OjFJJ9iDhU3GZjJWmDt4NX3XF4H4uA53+0="
},
"inputObjects": [
{
"MovePackage": "0x0000000000000000000000000000000000000002"
},
{
"ImmOrOwnedMoveObject": {
"objectId": "0x05f71eb5dc69224ef8e3a4c13917c799190237d9",
"version": 0,
"digest": "XpJDVPOW3OjFJJ9iDhU3GZjJWmDt4NX3XF4H4uA53+0="
}
}
]
},
"id": 1
}

0 comments on commit 7303e22

Please sign in to comment.