code: def CrowdsaleRegister(self, wallet, register_addresses, from_addr=None):
          
          invoke_args = [self.ScriptHash.ToString(), 'crowdsale_register',
                         [PromptUtils.parse_param(p, wallet) for p in register_addresses]]
  
          tx, fee, results, num_ops, engine_success = TestInvokeContract(wallet, invoke_args, None, True, from_addr)
  
          return tx, fee, results
docs: Register for a crowd sale.
  
          Args:
              wallet (neo.Wallets.Wallet): a wallet instance.
              register_addresses (list): list of public addresses to register for the sale.
  
          Returns:
              tuple:
                  InvocationTransaction: the transaction.
                  int: the transaction fee.
                  list: the neo VM evaluation stack results.