MCPcopy Create free account
hub / github.com/citp/BlockSci / PYBIND11_MODULE

Function PYBIND11_MODULE

blockscipy/src/python_interface.cpp:76–273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74}
75
76PYBIND11_MODULE(_blocksci, m) {
77 m.attr("__name__") = PYBIND11_STR_TYPE("blocksci");
78
79 TypenameLookup nameLookup;
80
81 py::class_<Blockchain> blockchainCl(m, "Blockchain", "Class representing the blockchain. This class is constructed by passing it a string representing a file path to your BlockSci data files generated by blocksci_parser", py::dynamic_attr());
82 py::class_<uint160> uint160Cl(m, "uint160");
83 py::class_<uint256> uint256Cl(m, "uint256");
84 py::class_<Block> blockCl(m, "Block", "Class representing a block in the blockchain");
85 py::class_<Transaction> txCl(m, "Tx", "Class representing a transaction in a block");
86 py::class_<Input> inputCl(m, "Input", "Class representing a transaction input");
87 py::class_<Output> outputCl(m, "Output", "Class representing a transaction output");
88 py::class_<EquivAddress> equivAddressCl(m, "EquivAddress", "A set of equivalent addresses");
89 py::class_<ScriptBase> addressCl(m, "Address", "Represents an abstract address object which uniquely identifies a given address");
90 py::class_<script::Pubkey> pubkeyAddressCl(m, "PubkeyAddress", addressCl, "Extra data about pay to pubkey address");
91 py::class_<script::PubkeyHash> pubkeyHashAddressCl(m, "PubkeyHashAddress", addressCl, "Extra data about pay to pubkey address");
92 py::class_<script::WitnessPubkeyHash> witnessPubkeyHashAddressCl(m, "WitnessPubkeyHashAddress", addressCl, "Extra data about pay to pubkey address");
93 py::class_<script::MultisigPubkey> multisigPubkeyCl(m, "MultisigPubkey", addressCl, "Extra data about a pubkey inside a multisig address");
94 py::class_<script::ScriptHash> scriptHashCl(m, "ScriptHashAddress", addressCl, "Extra data about pay to script hash address");
95 py::class_<script::WitnessScriptHash> witnessScriptHashCl(m, "WitnessScriptHashAddress", addressCl, "Extra data about pay to script hash address");
96 py::class_<script::Multisig> multisigCl(m, "MultisigAddress", addressCl, "Extra data about multi-signature address");
97 py::class_<script::Nonstandard> nonstandardCl(m, "NonStandardAddress", addressCl, "Extra data about non-standard address");
98 py::class_<script::OpReturn> opReturnCl(m, "OpReturn", addressCl, "Extra data about op_return address");
99 py::class_<script::WitnessUnknown> witnessUnknownCl(m, "WitnessUnknownAddress", addressCl, "Data about an unknown witness address");
100
101 py::class_<std::any> anyCl(m, "Any", "A generic class representing a BlockSci type");
102
103 auto clusterMod = m.def_submodule("cluster");
104 py::class_<Cluster> clusterCl(clusterMod, "Cluster", "Class representing a cluster");
105 py::class_<TaggedCluster> taggedClusterCl(clusterMod, "TaggedCluster");
106 py::class_<TaggedAddress> taggedAddressCl(clusterMod, "TaggedAddress");
107
108 py::class_<GenericIterator> genericIteratorCl(m, "GenericIterator", "Class representing any blocksci iterator");
109 py::class_<GenericRange, GenericIterator> genericRangeCl(m, "GenericRange", "Class representing any blocksci range");
110 py::class_<GenericAddressIterator, GenericIterator> genericAddressIteratorCl(m, "GenericAddressIterator", "Class representing any Address iterator");
111 py::class_<GenericAddressRange, GenericRange> genericAddressRangeCl(m, "GenericAddressRange", "Class representing any Address range");
112
113
114 RangeClasses<Block> blockRangeCls(createRangeClasses<Block>(m));
115 RangeClasses<Transaction> txRangeCls(createRangeClasses<Transaction>(m));
116 RangeClasses<Input> inputRangeCls(createRangeClasses<Input>(m));
117 RangeClasses<Output> outputRangeCls(createRangeClasses<Output>(m));
118 RangeClasses<AnyScript> addressRangeCls(createAddressRangeClasses<AnyScript>(m));
119 RangeClasses<EquivAddress> equivAddressRangeCls(createRangeClasses<EquivAddress>(m));
120 RangeClasses<script::Pubkey> pubkeyRangeCls(createAddressRangeClasses<script::Pubkey>(m));
121 RangeClasses<script::PubkeyHash> pubkeyHashRangeCls(createAddressRangeClasses<script::PubkeyHash>(m));
122 RangeClasses<script::WitnessPubkeyHash> witnessPubkeyHashRangeCls(createAddressRangeClasses<script::WitnessPubkeyHash>(m));
123 RangeClasses<script::MultisigPubkey> multisigPubkeyRangeCls(createAddressRangeClasses<script::MultisigPubkey>(m));
124 RangeClasses<script::Multisig> multisigRangeCls(createAddressRangeClasses<script::Multisig>(m));
125 RangeClasses<script::ScriptHash> scripthashRangeCls(createAddressRangeClasses<script::ScriptHash>(m));
126 RangeClasses<script::WitnessScriptHash> witnessScripthashRangeCls(createAddressRangeClasses<script::WitnessScriptHash>(m));
127 RangeClasses<script::OpReturn> nulldataRangeCls(createAddressRangeClasses<script::OpReturn>(m));
128 RangeClasses<script::Nonstandard> nonstandardRangeCls(createAddressRangeClasses<script::Nonstandard>(m));
129 RangeClasses<script::WitnessUnknown> witnessUnknownRangeCls(createAddressRangeClasses<script::WitnessUnknown>(m));
130
131 RangeClasses<Cluster> clusterRangeCls(createRangeClasses<Cluster>(clusterMod));
132 RangeClasses<TaggedCluster> taggedClusterRangeCls(createRangeClasses<TaggedCluster>(clusterMod));
133 RangeClasses<TaggedAddress> taggedAddressRangeCls(createRangeClasses<TaggedAddress>(clusterMod));

Callers

nothing calls this directly

Calls 15

setupProxiesFunction · 0.85
addSelfProxyFunction · 0.85
init_address_typeFunction · 0.85
init_heuristicsFunction · 0.85
init_data_accessFunction · 0.85
init_blockchainFunction · 0.85
init_uint160Function · 0.85
init_uint256Function · 0.85
init_equiv_addressFunction · 0.85
init_blockFunction · 0.85
addBlockRangeMethodsFunction · 0.85

Tested by

no test coverage detected