Skip to content

Commit af68d36

Browse files
chore(*): add remaining StructTag getters and ctors (#334)
* add ctors * add getters * update libs * add ctors to bindings * Apply suggestion from @thibault-martinez * make 3 * add remaining 5 * new_iota_coin_name * some ux improvements and additional struct tags * iota coin TYPE --------- Co-authored-by: Thibault Martinez <[email protected]>
1 parent 6b76b05 commit af68d36

File tree

19 files changed

+2590
-212
lines changed

19 files changed

+2590
-212
lines changed

bindings/go/examples/publish_upgrade/main.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,8 @@ func main() {
124124
}
125125
obj := *objPtr
126126
if obj.AsStructOpt() != nil {
127-
structType := obj.AsStruct().StructType
128-
packageIdent, _ := sdk.NewIdentifier("package")
129-
upgradeCapIdent, _ := sdk.NewIdentifier("UpgradeCap")
130-
upgradeCapType := sdk.NewStructTag(sdk.AddressFramework(), packageIdent, upgradeCapIdent, []*sdk.TypeTag{})
131-
if structType.Eq(upgradeCapType) {
127+
upgradeCapType := sdk.StructTagNewUpgradeCap()
128+
if obj.AsStruct().StructType.Eq(upgradeCapType) {
132129
fmt.Printf("UpgradeCap: %s\n", objectId.ToHex())
133130
fmt.Printf("UpgradeCapOwner: %s\n", objectWrite.Owner.AsAddress().ToHex())
134131
upgradeCap = objectId

bindings/go/examples/unstake/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func main() {
1313
client := sdk.GraphQlClientNewDevnet()
1414

15-
stakedIotaType := sdk.StructTagStakedIota().String()
15+
stakedIotaType := sdk.StructTagNewStakedIota().String()
1616
stakedIotas, err := client.Objects(&sdk.ObjectFilter{TypeTag: &stakedIotaType}, nil)
1717
if err.(*sdk.SdkFfiError) != nil {
1818
log.Fatalf("Failed to get staked iota: %v", err)

bindings/go/iota_sdk_ffi/iota_sdk_ffi.go

Lines changed: 536 additions & 19 deletions
Large diffs are not rendered by default.

bindings/go/iota_sdk_ffi/iota_sdk_ffi.h

Lines changed: 406 additions & 24 deletions
Large diffs are not rendered by default.

bindings/kotlin/examples/PublishUpgrade.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,7 @@ fun main() = runBlocking {
9292
val obj: Object =
9393
client.`object`(objectId, null)
9494
?: throw Exception("Missing object ${objectId.toHex()}")
95-
val upgradeCapType =
96-
StructTag(
97-
address = Address.framework(),
98-
module = Identifier("package"),
99-
name = Identifier("UpgradeCap"),
100-
typeParams = emptyList<TypeTag>()
101-
)
95+
val upgradeCapType = StructTag.newUpgradeCap()
10296
if (obj.asStruct().structType == upgradeCapType) {
10397
println("UpgradeCap: ${objectId.toHex()}")
10498
println(

bindings/kotlin/examples/Unstake.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ fun main() = runBlocking {
1212
try {
1313
val client = GraphQlClient.newDevnet()
1414

15-
val stakedIotas = client.objects(ObjectFilter(typeTag = StructTag.stakedIota().toString()))
15+
val stakedIotas =
16+
client.objects(ObjectFilter(typeTag = StructTag.newStakedIota().toString()))
1617
if (stakedIotas.data.isEmpty()) {
1718
throw Exception("no validators found")
1819
}

bindings/kotlin/lib/iota_sdk/iota_sdk_ffi.kt

Lines changed: 683 additions & 20 deletions
Large diffs are not rendered by default.

bindings/python/examples/coin_balances.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ async def main():
1515

1616
coins = await client.coins(address)
1717
for coin in coins.data:
18-
print(f"Coin = {coin.id().to_hex()}, Coin Type = {coin.coin_type().as_struct_tag()}, Balance = {coin.balance()}")
18+
print(
19+
f"Coin = {coin.id().to_hex()}, Coin Type = {coin.coin_type().as_struct_tag()}, Balance = {coin.balance()}"
20+
)
1921

2022
balance = await client.balance(address)
2123
print(f"Total Balance = {balance}")

bindings/python/examples/publish_upgrade.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import json
2929
import os
3030

31+
3132
async def main():
3233
try:
3334
# Read and parse the compiled package, or use the default package
@@ -36,7 +37,7 @@ async def main():
3637
print("No compiled package found in env var. Using default.")
3738
package_data_json = PRECOMPILED_PACKAGE
3839
else:
39-
print("Using custom Move package found in env var.");
40+
print("Using custom Move package found in env var.")
4041

4142
package_data = MovePackageData.from_json(package_data_json)
4243
modules = package_data.modules()
@@ -96,11 +97,11 @@ async def main():
9697
obj = await client.object(object_id, None)
9798
if obj is None:
9899
raise Exception(f"Missing object {object_id.to_hex()}")
99-
if obj.as_struct().struct_type == StructTag(
100-
Address.framework(), Identifier("package"), Identifier("UpgradeCap")
101-
):
100+
if obj.as_struct().struct_type == StructTag.new_upgrade_cap():
102101
print(f"UpgradeCap: {object_id.to_hex()}")
103-
print(f"UpgradeCapOwner: {changed_obj.output_state.owner.as_address().to_hex()}")
102+
print(
103+
f"UpgradeCapOwner: {changed_obj.output_state.owner.as_address().to_hex()}"
104+
)
104105
upgrade_cap = object_id
105106

106107
elif changed_obj.output_state.is_package_write():

bindings/python/examples/tx_command_results.py

Lines changed: 48 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,60 +5,66 @@
55

66
import asyncio
77

8+
89
async def main():
9-
try:
10-
client = GraphQlClient.new_devnet()
10+
try:
11+
client = GraphQlClient.new_devnet()
12+
13+
sender = Address.from_hex(
14+
"0x611830d3641a68f94a690dcc25d1f4b0dac948325ac18f6dd32564371735f32c"
15+
)
1116

12-
sender = Address.from_hex("0x611830d3641a68f94a690dcc25d1f4b0dac948325ac18f6dd32564371735f32c")
17+
builder = await TransactionBuilder.init(sender, client)
1318

14-
builder = await TransactionBuilder.init(sender, client)
19+
package_addr = Address.std_lib()
20+
module_name = Identifier("u64")
21+
function_name = Identifier("max")
1522

16-
package_addr = Address.std_lib()
17-
module_name = Identifier("u64")
18-
function_name = Identifier("max")
23+
builder.move_call(
24+
package_addr,
25+
module_name,
26+
function_name,
27+
[PtbArgument.u64(0), PtbArgument.u64(1000)],
28+
# Assign a name to the result of this command
29+
names=["res0"],
30+
)
1931

20-
builder.move_call(
21-
package_addr,
22-
module_name,
23-
function_name,
24-
[PtbArgument.u64(0), PtbArgument.u64(1000)],
25-
# Assign a name to the result of this command
26-
names=["res0"],
27-
)
32+
builder.move_call(
33+
package_addr,
34+
module_name,
35+
function_name,
36+
[PtbArgument.u64(1000), PtbArgument.u64(2000)],
37+
# Assign a name to the result of this command
38+
names=["res1"],
39+
)
2840

29-
builder.move_call(
30-
package_addr,
31-
module_name,
32-
function_name,
33-
[PtbArgument.u64(1000), PtbArgument.u64(2000)],
34-
# Assign a name to the result of this command
35-
names=["res1"],
36-
)
41+
builder.split_coins(
42+
PtbArgument.gas(),
43+
# Use the named results of previous commands as arguments
44+
[PtbArgument.res("res0"), PtbArgument.res("res1")],
45+
# For nested results, a tuple or vec can be used to name them
46+
["coin0", "coin1"],
47+
)
3748

38-
builder.split_coins(
39-
PtbArgument.gas(),
40-
# Use the named results of previous commands as arguments
41-
[PtbArgument.res("res0"), PtbArgument.res("res1")],
42-
# For nested results, a tuple or vec can be used to name them
43-
["coin0", "coin1"],
44-
)
49+
# Use named results as arguments
50+
builder.transfer_objects(
51+
sender, [PtbArgument.res("coin0"), PtbArgument.res("coin1")]
52+
)
4553

46-
# Use named results as arguments
47-
builder.transfer_objects(sender, [PtbArgument.res("coin0"), PtbArgument.res("coin1")])
54+
txn = await builder.finish()
4855

49-
txn = await builder.finish()
56+
print("Signing Digest:", txn.signing_digest_hex())
57+
print("Txn Bytes:", txn.to_base64())
5058

51-
print("Signing Digest:", txn.signing_digest_hex())
52-
print("Txn Bytes:", txn.to_base64())
59+
res = await client.dry_run_tx(txn, False)
60+
if res.error is not None:
61+
raise Exception("Failed to send tx:", res.error)
5362

54-
res = await client.dry_run_tx(txn, False)
55-
if res.error is not None:
56-
raise Exception("Failed to send tx:", res.error)
63+
print("Tx dry run was successful!")
5764

58-
print("Tx dry run was successful!")
65+
except Exception as e:
66+
print(f"Error: {e}")
5967

60-
except Exception as e:
61-
print(f"Error: {e}")
6268

6369
if __name__ == "__main__":
64-
asyncio.run(main())
70+
asyncio.run(main())

0 commit comments

Comments
 (0)