Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion tests/asset_ft_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from node.quorum import get_quorum_config, run_quorum_nodes
from node.commands import run_command
from prerequisite import get_os_info
from node.api import api_get_ft_balance

__quorum_list_file_name = "quorumlist_ft.json"
__quorum_config_file_name = "quorum_config_ft.json"
Expand Down Expand Up @@ -79,15 +80,22 @@ def tests():
print("\n2. Minting 10000 ABC FTs to DID of node11 (didA)")
expect_success(mint_ft)(ft_transfer_node_config["node11"], didA, "ABC", 10000, 10)

assert api_get_ft_balance(didA, didA_port) == 10000

print("\n3. Transferring 300 ABC FTs from DID of node11 (didA) to DID of node12 (didB)")
expect_success_within_retries(transfer_ft)(didA, didB, ft_creator_did_ABC, "ABC", 300, didA_port)

assert api_get_ft_balance(didA, didA_port) == 9700, f"Expected FT balance of DID A to be 9700 but got {api_get_ft_balance(didA, didA_port)}"

print("\n4. Transferring 300 ABC FTs from DID of node12 (didB) to DID of node11 (didA)")
expect_success_within_retries(transfer_ft)(didB, didA, ft_creator_did_ABC, "ABC", 300, didB_port)

assert api_get_ft_balance(didB, didB_port) == 0, f"Expected FT balance of DID B to be 0 but got {api_get_ft_balance(didB, didB_port)}"

print("\n5. Transferring 1000 ABC FTs from DID of node11 (didA) to DID of node12 (didB)")
expect_success_within_retries(transfer_ft)(didA, didB, ft_creator_did_ABC, "ABC", 1000, didA_port)


assert api_get_ft_balance(didA, didA_port) == 9000, f"Expected FT balance of DID A to be 9000 but got {api_get_ft_balance(didA, didA_port)}"

print("\n6. Transferring 100000 ABC FTs (inssufficient funds) from DID of node11 (didA) to DID of node12 (didB)")
expect_failure(transfer_ft)(didA, didB, ft_creator_did_ABC, "ABC", 100000, didA_port)
Expand Down
27 changes: 24 additions & 3 deletions tests/asset_rbt_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from node.quorum import get_quorum_config, run_quorum_nodes
from node.commands import run_command
from prerequisite import get_os_info
from node.api import api_get_available_rbt_balance

__quorum_list_file_name = "quorumlist_rbt.json"
__quorum_config_file_name = "quorum_config_rbt.json"
Expand Down Expand Up @@ -80,29 +81,49 @@ def tests():
print("\n2. Transferring 0.5 RBT from A to A1....")
expect_success(rbt_transfer)(didA, didA1, 0.5, didA_port, didA_grpc)


print("\nChecking available RBT balance for A and A1....")

assert api_get_available_rbt_balance(didA, didA_port) == 1.5, f"Expected available RBT balance for {didA} is 1.5 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 0.5, f"Expected available RBT balance for {didA1} is 0.5 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("\n3. Transferring 1.499 RBT from A1 to A....")
expect_success(rbt_transfer)(didA, didA1, 1.499, didA_port, didA_grpc)

assert api_get_available_rbt_balance(didA, didA_port) == 0.001, f"Expected available RBT balance for {didA} is 0.001 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 1.999, f"Expected available RBT balance for {didA1} is 0 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("\n4. Transferring 0.25 RBT from A1 to A....")
expect_success(rbt_transfer)(didA1, didA, 0.25, didA_port, didA_grpc)

assert api_get_available_rbt_balance(didA, didA_port) == 0.251, f"Expected available RBT balance for {didA} is 0.251 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 1.749, f"Expected available RBT balance for {didA1} is 1.749 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("\n5. Transferring 0.25 RBT from A1 to A....")
expect_success(rbt_transfer)(didA1, didA, 0.25, didA_port, didA_grpc)

assert api_get_available_rbt_balance(didA, didA_port) == 0.501, f"Expected available RBT balance for {didA} is 0.501 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 1.499, f"Expected available RBT balance for {didA1} is 1.499 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("\n6. Transferring 0.25 RBT from A1 to A....")
expect_success(rbt_transfer)(didA1, didA, 0.25, didA_port, didA_grpc)

assert api_get_available_rbt_balance(didA, didA_port) == 0.751, f"Expected available RBT balance for {didA} is 0.751 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 1.249, f"Expected available RBT balance for {didA1} is 1.249 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("\n7. Transferring 0.25 RBT from A1 to A....")
expect_success(rbt_transfer)(didA1, didA, 0.25, didA_port, didA_grpc)

assert api_get_available_rbt_balance(didA, didA_port) == 1.001, f"Expected available RBT balance for {didA} is 1.001 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 0.999, f"Expected available RBT balance for {didA1} is 0.999 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("\n8. Transferring 1 RBT from A to A1....")
expect_success(rbt_transfer)(didA, didA1, 1, didA_port, didA_grpc)

assert api_get_available_rbt_balance(didA, didA_port) == 0.001, f"Expected available RBT balance for {didA} is 0.001 but got {api_get_available_rbt_balance(didA, didA_port)}"
assert api_get_available_rbt_balance(didA1, didA_port) == 1.999, f"Expected available RBT balance for {didA1} is 1.999 but got {api_get_available_rbt_balance(didA1, didA_port)}"

print("Transfer Complete")



if __name__=='__main__':
boot_quorums()

Expand Down
76 changes: 66 additions & 10 deletions tests/node/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class RBTAccountInfoReq:
did: str

@dataclass
class AccountInfo:
class RBTAccountInfo:
did: str
did_type: str
rbt_amount: str
Expand All @@ -124,29 +124,85 @@ class RBTAccountInfoResp:
status: bool
message: str
result: str
account_info: AccountInfo
account_info: List[RBTAccountInfo]

@dataclass
class RBTAccountInfoErr:
error: str
status: bool
message: str
result: object

def api_rbt_account_info(req: RBTAccountInfoReq, server_port: str) -> RBTAccountInfoResp | RBTAccountInfoErr:
request_url = f"http://localhost:{server_port}/api/get-smart-contract-token-chain-data"
request_url = f"http://localhost:{server_port}/api/get-account-info"

response = requests.get(request_url, params=req.__dict__)

if response.status_code == 200:
import json
response_body: RBTAccountInfoResp = json.loads(response.text)
return response_body
response_body_success: RBTAccountInfoResp = json.loads(response.text)
return response_body_success
else:
return RBTAccountInfoErr(error=response.text)
import json
response_body_err: RBTAccountInfoErr = json.loads(response.text)
return response_body_err

def api_get_available_rbt_balance(did: str, server_port: str) -> float | ValueError:
req = RBTAccountInfoReq(did=did)
resp = api_rbt_account_info(req=req, server_port=server_port)

if resp["status"]:
if len(resp["account_info"]) == 0:
return 0.0

return float(resp["account_info"][0]["rbt_amount"])
else:
return ValueError(resp.message)

@dataclass
class FTAccountInfo:
ft_name: str
ft_count: str
creator_did: str

@dataclass
class FTAccountInfoResp:
status: bool
message: str
result: str
ft_info: List[FTAccountInfo]

@dataclass
class FTAccountInfoErr:
status: bool
message: str
result: object

@dataclass
class FTAccountInfoReq:
did: str

def api_ft_account_info(req: FTAccountInfoReq, server_port: str) -> FTAccountInfoResp | FTAccountInfoErr:
request_url = f"http://localhost:{server_port}/api/get-ft-info-by-did"

response = requests.get(request_url, params=req.__dict__)

if response.status_code == 200:
import json
response_body_success: FTAccountInfoResp = json.loads(response.text)
return response_body_success
else:
import json
response_body_err: FTAccountInfoErr = json.loads(response.text)
return response_body_err

if isinstance(resp, RBTAccountInfoResp):
return float(resp.account_info.rbt_amount)
def api_get_ft_balance(did: str, server_port: str) -> int | ValueError:
req = FTAccountInfoReq(did=did)
resp = api_ft_account_info(req=req, server_port=server_port)

if resp["status"]:
if len(resp["ft_info"]) == 0:
return 0

return int(resp["ft_info"][0]["ft_count"])
else:
return ValueError(resp.error)
return ValueError(resp.message)
Loading