wait_and_assert_operationid_status(self.nodes[0],myopid,"failed","Insufficient transparent funds, have 10.00, need 0.00000053 more to avoid creating invalid change output 0.00000001 (dust threshold is 0.00000054)")
wait_and_assert_operationid_status(self.nodes[0],myopid,"failed","Insufficient transparent funds, have 10.00, need 0.00000053 more to avoid creating invalid change output 0.00000001 (dust threshold is 0.00000054)")
/// this script's hash is what the p2sh address was.
/// this script's hash is what the p2sh address was.
/// All of the above are the standard bitcoin vout types and there should be plenty of materials about it.
/// All of the above are the standard bitcoin vout types and there should be plenty of materials about it.
///
///
/// What I did with the cryptoconditions (CC) contracts (now rebranded as Antara modules) is created a fourth type of vout, the CC vout. This is using the cryptoconditions standard and it is even a different signature mechanism,
/// Cryptoconditions (CC) contracts created a fourth type of vout, the CC vout. This is using the cryptoconditions standard and it is even a different signature mechanism,
/// ed25519 instead of secp256k1. It is basically a big extension to the bitcoin script. There is a special opcode that is added that says it is a CC script.
/// ed25519 instead of secp256k1. It is basically a big extension to the bitcoin script. There is a special opcode that is added that says it is a CC script.
///
///
/// But it gets more interesting. Each CC script has an evalcode.
/// But it gets more interesting. Each CC script has an evalcode.
@ -49,7 +48,7 @@ Details.
/// However, it is a CC output, so in addition to the signature, whatever constraints a CC contract implements must also be satistifed.
/// However, it is a CC output, so in addition to the signature, whatever constraints a CC contract implements must also be satistifed.
/// This allows funds to be locked and yet anybody is able to spend it, assuming they satisfy the CC's rules.
/// This allows funds to be locked and yet anybody is able to spend it, assuming they satisfy the CC's rules.
///
///
/// One other technical note is that komodod has the insight-explorer extensions built in
/// One other technical note is that Hush has the insight-explorer extensions built in
/// so it can lookup directly all transactions to any address.
/// so it can lookup directly all transactions to any address.
/// This is a key performance boosting thing as if it wasnt there, trying to get all the utxo for an address not in the wallet is quite time consuming.
/// This is a key performance boosting thing as if it wasnt there, trying to get all the utxo for an address not in the wallet is quite time consuming.
///
///
@ -101,12 +100,12 @@ Details.
enumopretid:uint8_t{
enumopretid:uint8_t{
// cc contracts data:
// cc contracts data:
OPRETID_NONFUNGIBLEDATA=0x11,//!< NFT data id
OPRETID_NONFUNGIBLEDATA=0x11,//!< NFT data id
OPRETID_ASSETSDATA=0x12,//!< assets contract data id
OPRETID_ASSETSDATA=0x12,//!< assets contract data id
OPRETID_GATEWAYSDATA=0x13,//!< gateways contract data id
OPRETID_GATEWAYSDATA=0x13,//!< gateways contract data id
OPRETID_CHANNELSDATA=0x14,//!< channels contract data id
OPRETID_CHANNELSDATA=0x14,//!< channels contract data id
OPRETID_HEIRDATA=0x15,//!< heir contract data id
OPRETID_HEIRDATA=0x15,//!< heir contract data id
OPRETID_ROGUEGAMEDATA=0x16,//!< rogue contract data id
OPRETID_ROGUEGAMEDATA=0x16,//!< rogue contract data id
OPRETID_PEGSDATA=0x17,//!< pegs contract data id
OPRETID_PEGSDATA=0x17,//!< pegs contract data id
/*! \cond INTERNAL */
/*! \cond INTERNAL */
// non cc contract data:
// non cc contract data:
@ -138,8 +137,6 @@ struct CC_utxo
/// \endcond
/// \endcond
/// \cond INTERNAL
/// \cond INTERNAL
// these are the parameters stored after Verus crypto-condition vouts. new versions may change
/// FinalizeCCTx is a very useful function that will properly sign both CC and normal inputs, adds normal change and might add an opreturn output.
/// FinalizeCCTx is a very useful function that will properly sign both CC and normal inputs, adds normal change and might add an opreturn output.
/// This allows for Antara module transaction creation rpc functions to create an CMutableTransaction object, add the appropriate vins and vouts to it and use FinalizeCCTx to properly sign the transaction.
/// This allows for Antara module transaction creation rpc functions to create an CMutableTransaction object, add the appropriate vins and vouts to it and use FinalizeCCTx to properly sign the transaction.
/// By using -addressindex=1 of komodod daemon, it allows tracking of all the CC addresses.
/// By using -addressindex=1 of hushd daemon, it allows tracking of all the CC addresses.
///
///
/// For signing the vins the function builds several default probe scriptPubKeys and checks them against the referred previous transactions (vintx) vouts.
/// For signing the vins the function builds several default probe scriptPubKeys and checks them against the referred previous transactions (vintx) vouts.
/// For cryptocondition vins the function creates a basic set of probe cryptconditions with mypk and module global pubkey, both for coins and tokens cases.
/// For cryptocondition vins the function creates a basic set of probe cryptconditions with mypk and module global pubkey, both for coins and tokens cases.
/// AddNormalinputs2 adds normal (not cc) inputs to the transaction object vin array for the specified total amount using utxos on my pubkey's TX_PUBKEY address (my pubkey is set by -pubkey command line parameter), to fund the transaction.
/// AddNormalinputs2 adds normal (not cc) inputs to the transaction object vin array for the specified total amount using utxos on my pubkey's TX_PUBKEY address (my pubkey is set by -pubkey command line parameter), to fund the transaction.
/// 'My pubkey' is the -pubkey parameter of komodod.
/// 'My pubkey' is the -pubkey parameter of hushd.
/// @param mtx mutable transaction object
/// @param mtx mutable transaction object
/// @param total amount of inputs to add. If total equals to 0 the function does not add inputs but returns amount of all available normal inputs in the wallet
/// @param total amount of inputs to add. If total equals to 0 the function does not add inputs but returns amount of all available normal inputs in the wallet
/// @param maxinputs maximum number of inputs to add
/// @param maxinputs maximum number of inputs to add
/// Macro for logging messages using bitcoin LogAcceptCategory and LogPrintStr functions.
/// Macro for logging messages using bitcoin LogAcceptCategory and LogPrintStr functions.
/// Supports error, info and three levels of debug messages.
/// Supports error, info and three levels of debug messages.
/// Logging category is set by -debug=category komodod param.
/// Logging category is set by -debug=category hushd param.
/// To set debug level pass -debug=category-1, -debug=category-2 or -debug=category-3 param. If some level is enabled lower level messages also will be printed.
/// To set debug level pass -debug=category-1, -debug=category-2 or -debug=category-3 param. If some level is enabled lower level messages also will be printed.
/// To print info-level messages pass just -debug=category parameter, with no level.
/// To print info-level messages pass just -debug=category parameter, with no level.
/// Error-level messages will always be printed, even if -debug parameter is not set
/// Error-level messages will always be printed, even if -debug parameter is not set
LOGSTREAM("importgateway",CCLOG_INFO,stream<<"CheckGATEWAYimport invalid import gateway. On this chain only valid import gateway is "<<KOMODO_EARLYTXID.GetHex()<<std::endl);
LOGSTREAM("importgateway",CCLOG_INFO,stream<<"CheckGATEWAYimport invalid import gateway. On this chain only valid import gateway is "<<HUSH_EARLYTXID.GetHex()<<std::endl);
return(-1);
return(-1);
}
}
// check for valid burn from external coin blockchain and if valid return(0);
// check for valid burn from external coin blockchain and if valid return(0);
mtx.vout.push_back(CTxOut(txfee,CScript()<<ParseHex(HexStr(pricespk))<<OP_CHECKSIG));// vout3 normal marker NVOUT_NORMALMARKER - TODO: remove it as we have cc marker now, when move to the new chain
mtx.vout.push_back(CTxOut(txfee,CScript()<<ParseHex(HexStr(pricespk))<<OP_CHECKSIG));// vout3 normal marker NVOUT_NORMALMARKER - TODO: remove it as we have cc marker now, when move to the new chain
LogPrintf("peer=%d using obsolete version %i vs %d; disconnecting\n",pfrom->id,pfrom->nVersion,(int32_t)chainparams.GetConsensus().vUpgrades[CurrentEpoch(GetHeight(),chainparams.GetConsensus())].nProtocolVersion);
{
LogPrintf("peer=%d using obsolete version %i vs %d; disconnecting\n",pfrom->id,pfrom->nVersion,(int32_t)chainparams.GetConsensus().vUpgrades[
fprintf(stderr,"you can ignore redundant getheaders from peer.%d %d prev.%d\n",(int32_t)pfrom->id,(int32_t)(pindex?pindex->GetHeight():-1),pfrom->lasthdrsreq);
fprintf(stderr,"you can ignore redundant getheaders from peer.%d %d prev.%d\n",(int32_t)pfrom->id,(int32_t)(pindex?pindex->GetHeight():-1),pfrom->lasthdrsreq);
"\nSend multiple times. Amounts are decimal numbers with at most 8 digits of precision."
"\nSend multiple times. Amounts are decimal numbers with at most 8 digits of precision."
"\nChange generated from a taddr flows to a new taddr address, while change generated from a zaddr returns to itself."
"\nChange generated from a taddr flows to a new taddr address, while change generated from a zaddr returns to itself."
"\nWhen sending coinbase UTXOs to a zaddr, change is not allowed. The entire value of the UTXO(s) must be consumed."
"\nWhen sending coinbase UTXOs to a zaddr, change is not allowed. The entire value of the UTXO(s) must be consumed."
+strprintf("\nBefore Sapling activates, the maximum number of zaddr outputs is %d due to transaction size limits.\n",Z_SENDMANY_MAX_ZADDR_OUTPUTS_BEFORE_SAPLING)
+HelpRequiringPassphrase()+"\n"
+HelpRequiringPassphrase()+"\n"
"\nArguments:\n"
"\nArguments:\n"
"1. \"fromaddress\" (string, required) The taddr or zaddr to send the funds from.\n"
"1. \"fromaddress\" (string, required) The taddr or zaddr to send the funds from.\n"