import ravencoin import ravencoin.rpc import struct import sys import time try: if len(sys.argv) not in (2, 3): raise Exception n = int(sys.argv[1]) if len(sys.argv) == 3: ravencoin.SelectParams(sys.argv[2]) except Exception as ex: print( 'Usage: %s <block-height> [network=(mainnet|testnet|regtest)] > bootstrap.dat' % sys.argv[0], file=sys.stderr) sys.exit(1) proxy = ravencoin.rpc.Proxy() total_bytes = 0 start_time = time.time() fd = sys.stdout.buffer for i in range(n + 1): block = proxy.getblock(proxy.getblockhash(i))
# propagated, or distributed except according to the terms contained in the # LICENSE file. import argparse import ravencoin from ravencoin.rpc import RavenProxy from magnet import decode_magnet_xt,magnet_uri parser = argparse.ArgumentParser(description='Recover magnet links from the Ravencoin blockchain') parser.add_argument("asset_name", help="Name of parent asset") parser.add_argument("--datadir", help="Path to Raven config directory") parser.add_argument("--testnet", help="Use Raven testnet",action="store_true") args=parser.parse_args() if args.testnet: ravencoin.SelectParams("testnet") else: ravencoin.SelectParams("mainnet") print(f"Recovering links with parent asset name {args.asset_name}, Testnet: {args.testnet}, RPC port: {ravencoin.params.RPC_PORT}\n") rvn = RavenProxy(datadir=args.datadir) assets = rvn.listassets(args.asset_name + "#*", True) # list unique assets under asset_name for asset in assets: asset_name = assets[asset].get('name','') if asset_name != "": try: base_name, fn = asset_name.split('#') except ValueError:
# # This file is part of python-ravencoinlib. # # It is subject to the license terms in the LICENSE file found in the top-level # directory of this distribution. # # No part of python-ravencoinlib, including this file, may be copied, modified, # propagated, or distributed except according to the terms contained in the # LICENSE file. import unittest import ravencoin from ravencoin.core.assets import RvnAssetData ravencoin.SelectParams("mainnet") class Test_RVN_ASSET(unittest.TestCase): def test_valid(self): # standard transfer asset_data = RvnAssetData( b'rvnt\rNUKA/COLA/CAP\x00\xe9\n\xb5\xe2\x00\x00\x00') self.assertTrue(asset_data.asset_name == "NUKA/COLA/CAP") self.assertTrue(asset_data.asset_type == "transfer") asset_data = RvnAssetData('72766e7404234c544300e1f50500000000') self.assertTrue(asset_data.asset_type == "transfer") # nullassetdata asset_data = RvnAssetData( '14d4a4a095e02cd6a9b3cf15cf16cc42dc63baf3e006042342544301') self.assertTrue(asset_data.asset_type == "nullassetdata")
} # database used to track claims database_fn = "./faucet.db" # maximum address length in requests (sanity check / DoS) maxAddressLen = 50 cookie_name = 'faucet' # name of cookie used to identify user cookie_regex = "[0-9a-z]{32}" # regular expression used to validate cookie cookie_re = re.compile(cookie_regex) parser = argparse.ArgumentParser(description='Ravencoin faucet server backend') parser.add_argument("--datadir", help="Path to Raven config directory") parser.add_argument("--network",default="testnet",choices=['testnet', 'mainnet']) parser.add_argument("--debug",help="Enable debug output",action='store_true') args=parser.parse_args() debug = args.debug coin_name = coin_info[args.network]['name'] denom = coin_info[args.network]['ticker'] faucet_address = coin_info[args.network]['address'] ravencoin.SelectParams(args.network) print(f"Faucet config: Listen host={listen_host}:{listen_port}, debug={debug}, Claim amount={claim_amount/COIN} {denom}, IP claim limit {ip_claims_per}/{claim_timespan/(60*60)} hr, wait between claims {claim_wait}s")