6 #include "primitives/transaction.h"
7 #include "script/interpreter.h"
8 #include <cryptoconditions.h>
11 CAmount GetCoinImportValue(const CTransaction &tx);
13 CTransaction MakeImportCoinTransaction(const TxProof proof,
14 const CTransaction burnTx, const std::vector<CTxOut> payouts);
16 CTxOut MakeBurnOutput(CAmount value, uint32_t targetCCid, std::string targetSymbol, const std::vector<CTxOut> payouts);
18 bool UnmarshalBurnTx(const CTransaction &burnTx, std::string &targetSymbol, uint32_t *targetCCid, uint256 &payoutsHash);
19 bool UnmarshalImportTx(const CTransaction &importTx, TxProof &proof, CTransaction &burnTx,
20 std::vector<CTxOut> &payouts);
22 bool VerifyCoinImport(const CScript& scriptSig, TransactionSignatureChecker& checker, CValidationState &state);
24 void AddImportTombstone(const CTransaction &importTx, CCoinsViewCache &inputs, int nHeight);
25 void RemoveImportTombstone(const CTransaction &importTx, CCoinsViewCache &inputs);
26 int ExistsImportTombstone(const CTransaction &importTx, const CCoinsViewCache &inputs);
28 #endif /* IMPORTCOIN_H */