Skip to content

Commit

Permalink
Upgrading from indy-sdk to indy_vdr *ongoing*
Browse files Browse the repository at this point in the history
Signed-off-by: Nicholas Massad <[email protected]>
  • Loading branch information
R3CK0 committed Feb 17, 2025
1 parent aaa9303 commit 15d2787
Show file tree
Hide file tree
Showing 10 changed files with 160 additions and 63 deletions.
15 changes: 9 additions & 6 deletions indy_node/test/anon_creds/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
import time
import json

from indy.anoncreds import issuer_create_and_store_credential_def
from indy.ledger import build_cred_def_request
from indy_vdr import ledger

from indy_common.state.domain import make_state_path_for_claim_def
from indy_node.test.anon_creds.helper import get_cred_def_id, create_revoc_reg, create_revoc_reg_entry
from indy_node.test.utils import create_and_store_cred_def
from plenum.common.util import randomString
from indy_common.constants import REVOC_REG_ENTRY, REVOC_REG_DEF_ID, ISSUED, \
REVOKED, PREV_ACCUM, ACCUM, REVOC_REG_DEF, ISSUANCE_BY_DEFAULT, \
Expand All @@ -27,7 +27,10 @@
CRED_DEF_VERSION = '1.0'
SCHEMA_VERSION = '1.0'


# Is sdk_wallet_handle same as wallet handle?
# Is sdk wallet_steward a issuer/submitter did?
# is the schema the same with vdr upgrade as with the sdk?
# Is tag here a string?
@pytest.fixture(scope="module")
def claim_def(looper, sdk_wallet_handle, sdk_wallet_steward, send_schema_req):
schema = json.loads(send_schema_req[0])
Expand All @@ -36,10 +39,10 @@ def claim_def(looper, sdk_wallet_handle, sdk_wallet_steward, send_schema_req):
schema['seqNo'] = schema_seq_no

definition_id, definition_json = \
looper.loop.run_until_complete(issuer_create_and_store_credential_def(
looper.loop.run_until_complete(create_and_store_cred_def(
sdk_wallet_handle, sdk_wallet_steward[1], json.dumps(schema),
tag, "CL", json.dumps({"support_revocation": True})))
cred_def = looper.loop.run_until_complete(build_cred_def_request(sdk_wallet_steward[1], definition_json))
tag, "CL", True))
cred_def = looper.loop.run_until_complete(ledger.build_cred_def_request(sdk_wallet_steward[1], definition_json))
return json.loads(cred_def)['operation']


Expand Down
34 changes: 13 additions & 21 deletions indy_node/test/anon_creds/helper.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import json
import time

from indy import blob_storage
from indy.anoncreds import issuer_create_and_store_revoc_reg
from indy.ledger import build_revoc_reg_def_request, build_revoc_reg_entry_request
from indy_node.test.utils import create_and_store_revoc_reg
from indy_vdr import ledger

from plenum.common.types import f

Expand Down Expand Up @@ -40,35 +38,29 @@ def get_revoc_reg_entry_id(submitter_did, def_revoc_id):
entry_revoc_id = ':'.join([submitter_did, domain.MARKER_REVOC_REG_ENTRY, def_revoc_id])
return entry_revoc_id


# create_and_store_revoc_reg does not seem to store tails in blob storage is this
# taken care of in the wallet_hanlde insert now?
def create_revoc_reg(looper, wallet_handle, submitter_did, tag, cred_def_id,
issuance):
tails_writer_config = json.dumps({'base_dir': 'tails', 'uri_pattern': ''})
tails_writer = looper.loop.run_until_complete(blob_storage.open_writer(
'default', tails_writer_config))
_, revoc_reg_def_json, revoc_reg_entry_json = \
looper.loop.run_until_complete(issuer_create_and_store_revoc_reg(
looper.loop.run_until_complete(create_and_store_revoc_reg(
wallet_handle, submitter_did, "CL_ACCUM", tag, cred_def_id,
json.dumps({"max_cred_num": 5, "issuance_type": issuance}),
tails_writer))
max_cred_num= 5, issuance_type= issuance))
return looper.loop.run_until_complete(
build_revoc_reg_def_request(submitter_did, revoc_reg_def_json))

ledger.build_revoc_reg_def_request(submitter_did, revoc_reg_def_json))

# Removed tail writer from blob storage does this need to be added using a different
# method or it's taken care of in wallet handle?
def create_revoc_reg_entry(looper, wallet_handle, submitter_did, tag, cred_def_id,
issuance):
tails_writer_config = json.dumps({'base_dir': 'tails', 'uri_pattern': ''})
tails_writer = looper.loop.run_until_complete(blob_storage.open_writer(
'default', tails_writer_config))
revoc_reg_def_id, revoc_reg_def_json, revoc_reg_entry_json = \
looper.loop.run_until_complete(issuer_create_and_store_revoc_reg(
looper.loop.run_until_complete(create_and_store_revoc_reg(
wallet_handle, submitter_did, "CL_ACCUM", tag, cred_def_id,
json.dumps({"max_cred_num": 5, "issuance_type": issuance}),
tails_writer))
max_cred_num= 5, issuance_type= issuance))
revoc_reg_def = looper.loop.run_until_complete(
build_revoc_reg_def_request(submitter_did, revoc_reg_def_json))
ledger.build_revoc_reg_def_request(submitter_did, revoc_reg_def_json))
entry_revoc_request = looper.loop.run_until_complete(
build_revoc_reg_entry_request(
ledger.build_revoc_reg_entry_request(
submitter_did, revoc_reg_def_id, "CL_ACCUM", revoc_reg_entry_json))

return revoc_reg_def, entry_revoc_request
Expand Down
16 changes: 8 additions & 8 deletions indy_node/test/api/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
import random

import base58
from indy.anoncreds import issuer_create_schema
from indy.ledger import build_schema_request
from indy_node.test.utils import create_schema
from indy_vdr import ledger

from indy_common.constants import RS_ID, RS_TYPE, RS_NAME, RS_VERSION, RS_CONTENT
from plenum.common.constants import TXN_TYPE
Expand Down Expand Up @@ -203,19 +203,19 @@ def validate_rich_schema_txn(txn, txn_type):

# Misc utility


# sdk_wallet_client must be the wallet_handle
def sdk_build_schema_request(looper, sdk_wallet_client,
attributes=[], name="", version=""):
_, identifier = sdk_wallet_client

_, schema_json = looper.loop.run_until_complete(
issuer_create_schema(
create_schema(sdk_wallet_client,
identifier, name,
version, json.dumps(attributes)
))

return looper.loop.run_until_complete(
build_schema_request(identifier, schema_json)
ledger.build_schema_request(identifier, schema_json)
)


Expand Down Expand Up @@ -265,11 +265,11 @@ def sdk_write_schema(looper, sdk_pool_handle, sdk_wallet_client, multi_attribute
_, identifier = sdk_wallet_client
if multi_attribute:
_, schema_json = looper.loop.run_until_complete(
issuer_create_schema(identifier, name, version, json.dumps(multi_attribute)))
create_schema(sdk_wallet_client, identifier, name, version, json.dumps(multi_attribute)))
else:
_, schema_json = looper.loop.run_until_complete(
issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"])))
request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json))
create_schema(sdk_wallet_client, identifier, "name", "1.0", json.dumps(["first", "last"])))
request = looper.loop.run_until_complete(ledger.build_schema_request(identifier, schema_json))
return schema_json, \
sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request))[1]

Expand Down
4 changes: 2 additions & 2 deletions indy_node/test/api/test_attrib_reply.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import json

from indy.ledger import build_attrib_request
from indy_vdr import ledger
from indy_node.test.api.helper import validate_write_reply, validate_attrib_txn
from plenum.test.helper import sdk_get_reply, sdk_sign_and_submit_req
from hashlib import sha256


def execute_attrib_txn(looper, sdk_pool_handle, sdk_wallet_steward, xhash, raw, enc):
_, identifier = sdk_wallet_steward
request = looper.loop.run_until_complete(build_attrib_request(identifier, identifier, xhash, raw, enc))
request = looper.loop.run_until_complete(ledger.build_attrib_request(identifier, identifier, xhash, raw, enc))
return sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request))[1]


Expand Down
17 changes: 10 additions & 7 deletions indy_node/test/api/test_claim_def_reply.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
import json

from indy.anoncreds import issuer_create_and_store_credential_def
from indy.ledger import build_cred_def_request, build_get_schema_request, parse_get_schema_response
from indy.ledger import parse_get_schema_response
from indy_node.test.utils import create_and_store_cred_def
from indy_vdr import ledger
from indy_node.test.api.helper import validate_write_reply, validate_claim_def_txn, sdk_write_schema
from plenum.test.helper import sdk_get_reply, sdk_sign_and_submit_req


# need to look a how the reply is formatted to replace the parsing method
# build_cred_def_request and build_get_schema_requests already returns a request might not need to use the looper to create one
# Needs to be tested once plenum is updated to use indy-vdr
def test_claim_def_reply_is_valid(looper, sdk_pool_handle, sdk_wallet_steward):
wallet_handle, identifier = sdk_wallet_steward

schema_json, _ = sdk_write_schema(looper, sdk_pool_handle, sdk_wallet_steward)
schema_id = json.loads(schema_json)['id']

request = looper.loop.run_until_complete(build_get_schema_request(identifier, schema_id))
request = looper.loop.run_until_complete(ledger.build_get_schema_request(identifier, schema_id))
reply = sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request))[1]
_, schema_json = looper.loop.run_until_complete(parse_get_schema_response(json.dumps(reply)))

_, definition_json = looper.loop.run_until_complete(issuer_create_and_store_credential_def(
wallet_handle, identifier, schema_json, "some_tag", "CL", json.dumps({"support_revocation": True})))
request = looper.loop.run_until_complete(build_cred_def_request(identifier, definition_json))
_, definition_json = looper.loop.run_until_complete(create_and_store_cred_def(
wallet_handle, identifier, schema_json, "some_tag", "CL", True))
request = looper.loop.run_until_complete(ledger.build_cred_def_request(identifier, definition_json))
reply = sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request))[1]

validate_write_reply(reply)
Expand Down
4 changes: 2 additions & 2 deletions indy_node/test/api/test_nym_reply.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from indy.ledger import build_nym_request
from indy_vdr import ledger
from indy_node.test.helper import createHalfKeyIdentifierAndAbbrevVerkey
from indy_node.test.api.helper import validate_write_reply, validate_nym_txn
from plenum.test.helper import sdk_get_reply, sdk_sign_and_submit_req
Expand All @@ -8,7 +8,7 @@ def test_nym_reply_is_valid(looper, sdk_pool_handle, sdk_wallet_steward):
idr, verkey = createHalfKeyIdentifierAndAbbrevVerkey()

_, identifier = sdk_wallet_steward
request = looper.loop.run_until_complete(build_nym_request(identifier, idr, verkey, None, None))
request = ledger.build_nym_request(identifier, idr, verkey, None, None, None, None)
reply = sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request))[1]

validate_write_reply(reply)
Expand Down
5 changes: 3 additions & 2 deletions indy_node/test/attrib_txn/test_attrib_txn_digest.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import json

import pytest
from indy.ledger import build_attrib_request, sign_request
from indy_vdr import ledger
from indy_node.test.utils import sign_request

from indy_common.types import Request
from plenum.common.request import Request as PRequest
Expand All @@ -16,7 +17,7 @@ def req_json(looper, sdk_wallet_steward):
wallet_handle, identifier = sdk_wallet_steward
raw = json.dumps({'answer': 42})
return looper.loop.run_until_complete(
build_attrib_request(identifier, identifier, raw=raw, xhash=None, enc=None))
ledger.build_attrib_request(identifier, identifier, raw=raw, xhash=None, enc=None))


@pytest.fixture(scope="module")
Expand Down
4 changes: 2 additions & 2 deletions indy_node/test/attrib_txn/test_send_get_attr.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import time
from typing import Optional

from indy.ledger import build_get_attrib_request
from indy_vdr import ledger
from libnacl.secret import SecretBox
from plenum.common.exceptions import RequestNackedException
from plenum.test.helper import sdk_get_and_check_replies
Expand Down Expand Up @@ -76,7 +76,7 @@ def test_send_get_attr_fails_for_nonexistent_uuid_dest(
looper, sdk_pool_handle, sdk_wallet_trustee, send_raw_attrib):
_, submitter_did = sdk_wallet_trustee
req = looper.loop.run_until_complete(
build_get_attrib_request(submitter_did, submitter_did, attrib_name, None, None))
ledger.build_get_attrib_request(submitter_did, submitter_did, attrib_name, None, None, None, None))
req = modify_field(req, submitter_did[:-10], 'operation', 'dest')
request_couple = sdk_sign_and_send_prepared_request(looper, sdk_wallet_trustee,
sdk_pool_handle, req)
Expand Down
21 changes: 8 additions & 13 deletions indy_node/test/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@

import base58
from indy.did import replace_keys_start, replace_keys_apply
from indy.ledger import (
build_attrib_request, build_get_attrib_request,
build_get_auth_rule_request, build_auth_rule_request,
build_auth_rules_request)
from indy_vdr import ledger
from libnacl import randombytes

from indy_common.authorize.auth_actions import ADD_PREFIX, EDIT_PREFIX
Expand Down Expand Up @@ -105,20 +102,18 @@ def sdk_send_and_check_req_json(
resp = sdk_get_and_check_replies(looper, [req])
return resp


def sdk_add_attribute_and_check(looper, sdk_pool_handle, sdk_wallet_handle, attrib,
dest=None, xhash=None, enc=None):
_, s_did = sdk_wallet_handle
t_did = dest or s_did
attrib_req = looper.loop.run_until_complete(
build_attrib_request(s_did, t_did, xhash, attrib, enc))
ledger.build_attrib_request(s_did, t_did, xhash, attrib, enc))
return sdk_send_and_check_req_json(looper, sdk_pool_handle, sdk_wallet_handle, attrib_req)


def sdk_get_attribute_and_check(looper, sdk_pool_handle, submitter_wallet, target_did, attrib_name):
_, submitter_did = submitter_wallet
req = looper.loop.run_until_complete(
build_get_attrib_request(submitter_did, target_did, attrib_name, None, None))
ledger.build_get_attrib_request(submitter_did, target_did, attrib_name, None, None, None, None))
return sdk_send_and_check_req_json(looper, sdk_pool_handle, submitter_wallet, req)


Expand All @@ -136,7 +131,7 @@ def build_auth_rule_request_json(
auth_action, auth_type, field, constraint, old_value=None, new_value=None
):
return looper.loop.run_until_complete(
build_auth_rule_request(
ledger.build_auth_rule_request(
submitter_did=submitter_did,
txn_type=auth_type,
action=auth_action,
Expand All @@ -157,7 +152,7 @@ def build_get_auth_rule_request_json(
new_value=None
):
return looper.loop.run_until_complete(
build_get_auth_rule_request(
ledger.build_get_auth_rule_request(
submitter_did=submitter_did,
txn_type=auth_type,
action=auth_action,
Expand All @@ -173,7 +168,7 @@ def sdk_send_and_check_auth_rule_request(
auth_action, auth_type, field, constraint, old_value=None, new_value=None,
no_wait=False
):
req_json = build_auth_rule_request_json(
req_json = ledger.build_auth_rule_request_json(
looper, sdk_wallet[1],
auth_action=auth_action,
auth_type=auth_type,
Expand All @@ -196,7 +191,7 @@ def sdk_send_and_check_auth_rules_request(looper, sdk_pool_handle,
generate_auth_rule(EDIT_PREFIX, NYM,
ROLE, ENDORSER, TRUSTEE)]
req_json = looper.loop.run_until_complete(
build_auth_rules_request(submitter_did=sdk_wallet[1], data=json.dumps(rules)))
ledger.build_auth_rules_request(submitter_did=sdk_wallet[1], data=json.dumps(rules)))
return sdk_send_and_check_req_json(
looper, sdk_pool_handle, sdk_wallet, req_json, no_wait=no_wait
)
Expand All @@ -210,7 +205,7 @@ def sdk_send_and_check_get_auth_rule_request(
old_value=None,
new_value=None
):
req_json = build_get_auth_rule_request_json(
req_json = ledger.build_get_auth_rule_request_json(
looper, sdk_wallet[1],
auth_type=auth_type,
auth_action=auth_action,
Expand Down
Loading

0 comments on commit 15d2787

Please sign in to comment.