def is_identity_issuer(self, did_issuer: str) -> Transaction:
     issuer_address = NetworkDid.from_did(did_issuer).proxy_address
     data = ContractsService.AlastriaIdentityManager(
         self.endpoint).encodeABI(fn_name='isIdentityIssuer',
                                  args=[issuer_address])
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
 def get_entity(self, entity: Entity) -> Transaction:
     entity_address = NetworkDid.from_did(entity.did_entity).proxy_address
     data = ContractsService.AlastriaIdentityManager(
         self.endpoint).encodeABI(fn_name='getEntity',
                                  args=[entity_address])
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
 def set_entity_url_aoa_aid(self, entity: Entity) -> Transaction:
     entity_address = NetworkDid.from_did(entity.did_entity).proxy_address
     data = self.delegated(
         ContractsService.AlastriaIdentityManager(self.endpoint).encodeABI(
             fn_name='setUrlAOA', args=[entity.url_aoa]))
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
    def prepare_alastria_id(self, sign_address: str) -> Transaction:
        data = self.delegated(
            ContractsService.AlastriaIdentityManager(self.endpoint).encodeABI(
                fn_name="prepareAlastriaID", args=[sign_address]))

        return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                           data=data)
예제 #5
0
    def _build_transaction(self, function_name: str, args: list,
                           delegated: bool) -> Transaction:
        encoded_abi = ContractsService.AlastriaPublicKeyRegistry(
            self.endpoint).encodeABI(fn_name=function_name, args=args)

        data = self.delegated(encoded_abi) if delegated else encoded_abi

        return Transaction(
            to=Web3.toChecksumAddress(PUBLIC_KEY_REGISTRY_ADDRESS), data=data)
 def add_identity_service_provider(
         self, did_service_provider: str) -> Transaction:
     provider_address = NetworkDid.from_did(
         did_service_provider).proxy_address
     data = self.delegated(
         ContractsService.AlastriaIdentityManager(self.endpoint).encodeABI(
             fn_name='addIdentityServiceProvider', args=[provider_address]))
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
 def update_identity_issuer_eidas_level(self, did_issuer: str,
                                        level: int) -> Transaction:
     issuer_address = NetworkDid.from_did(did_issuer).proxy_address
     data = self.delegated(
         ContractsService.AlastriaIdentityManager(self.endpoint).encodeABI(
             fn_name='updateIdentityIssuerEidasLevel',
             args=[issuer_address, level]))
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
    def create_alastria_identity(self, public_key: str) -> Transaction:
        public_key_data = ContractsService.AlastriaPublicKeyRegistry(
            self.endpoint).encodeABI(fn_name="addKey", args=[public_key])
        data = ContractsService.AlastriaIdentityManager(
            self.endpoint).encodeABI(fn_name="createAlastriaIdentity",
                                     args=[public_key_data])

        return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                           data=data)
 def add_entity(self, entity: Entity) -> Transaction:
     entity_address = NetworkDid.from_did(entity.did_entity).proxy_address
     data = self.delegated(
         ContractsService.AlastriaIdentityManager(self.endpoint).encodeABI(
             fn_name='addEntity',
             args=[
                 entity_address, entity.name, entity.cif, entity.url_logo,
                 entity.url_create_aid, entity.url_aoa, entity.status
             ]))
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
예제 #10
0
    def generate_transaction(self, function_name: str,
                             args: list) -> Transaction:
        encoded_abi = self.contract_handler.encodeABI(fn_name=function_name,
                                                      args=args)

        payload = encoded_abi

        if self.is_delegated_call():
            payload = self.delegated(encoded_abi)

        contract_address = self.delegated_call_address or self.contract_address

        return Transaction(to=Web3.toChecksumAddress(contract_address),
                           data=payload)
def test_update_transaction_nonce():
    endpoint = MagicMock()
    endpoint.eth.getTransactionCount.return_value = 3
    default_nonce = 1
    user_identity = UserIdentity(endpoint=endpoint,
                                 address='0x123',
                                 private_key='1234',
                                 nonce=default_nonce,
                                 transactions=[])
    transaction = Transaction()

    identity = UserIdentityService(user_identity)

    updated_transaction = identity.update_transaction_nonce(transaction)

    assert updated_transaction.nonce != default_nonce
 def update_transaction_nonce(self,
                              transaction: Transaction) -> Transaction:
     if transaction.nonce == DEFAULT_NONCE:
         transaction.nonce = self.identity.endpoint.eth.getTransactionCount(
             self.identity.address)
     return transaction
 def get_identity_key(self, address: str) -> Transaction:
     data = ContractsService.AlastriaIdentityManager(
         self.endpoint).encodeABI(fn_name='identityKeys', args=[address])
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)
 def get_entities_list(self) -> Transaction:
     data = ContractsService.AlastriaIdentityManager(
         self.endpoint).encodeABI(fn_name='entitiesList', args=[])
     return Transaction(to=Web3.toChecksumAddress(IDENTITY_MANAGER_ADDRESS),
                        data=data)