Test
This commit is contained in:
@@ -29,7 +29,6 @@ extern const char *AssetsCCaddr;
|
||||
extern char AssetsCChexstr[67];
|
||||
|
||||
// CCassetsCore
|
||||
CC *MakeAssetCond(CPubKey pk);
|
||||
CTxOut MakeAssetsVout(CAmount nValue,CPubKey pk);
|
||||
CScript EncodeAssetCreateOpRet(uint8_t funcid,std::vector<uint8_t> origpubkey,std::string name,std::string description);
|
||||
CScript EncodeAssetOpRet(uint8_t funcid,uint256 assetid,uint256 assetid2,uint64_t price,std::vector<uint8_t> origpubkey);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
CCcustom has most of the functions that need to be extended to create a new CC contract.
|
||||
|
||||
EVAL_CONTRACT is the naming convention and it should be added to cc/eval.h
|
||||
bool Eval::Dispatch() in cc/eval.h needs to add the validation function in the switch
|
||||
|
||||
A CC scriptPubKey can only be spent if it is properly signed and validated. By constraining the vins and vouts, it is possible to implement a variety of functionality. CC vouts have an otherwise non-standard form, but it is properly supported by the enhanced bitcoin protocol code as a "cryptoconditions" output and the same pubkey will create a different address.
|
||||
|
||||
@@ -32,6 +33,7 @@
|
||||
const char *AssetsCCaddr = "RGKRjeTBw4LYFotSDLT6RWzMHbhXri6BG6" ;//"RFYE2yL3KknWdHK6uNhvWacYsCUtwzjY3u";
|
||||
char AssetsCChexstr[67] = { "02adf84e0e075cf90868bd4e3d34a03420e034719649c41f371fc70d8e33aa2702" };
|
||||
uint8_t AssetsCCpriv[32] = { 0x9b, 0x17, 0x66, 0xe5, 0x82, 0x66, 0xac, 0xb6, 0xba, 0x43, 0x83, 0x74, 0xf7, 0x63, 0x11, 0x3b, 0xf0, 0xf3, 0x50, 0x6f, 0xd9, 0x6b, 0x67, 0x85, 0xf9, 0x7a, 0xf0, 0x54, 0x4d, 0xb1, 0x30, 0x77 };
|
||||
CC *MakeAssetCond(CPubKey pk);
|
||||
|
||||
CPubKey GetUnspendable(uint8_t evalcode,uint8_t *unspendablepriv)
|
||||
{
|
||||
|
||||
@@ -69,8 +69,9 @@ bool Eval::Dispatch(const CC *cond, const CTransaction &txTo, unsigned int nIn)
|
||||
case EVAL_IMPORTCOIN:
|
||||
return ImportCoin(vparams, txTo, nIn);
|
||||
break;
|
||||
default:
|
||||
return ProcessCCevals(ecode,this,vparams,txTo,nIn);
|
||||
|
||||
case EVAL_ASSETS:
|
||||
return ProcessAssets(this, vparams, txTo, nIn);
|
||||
break;
|
||||
}
|
||||
return Invalid("invalid-code");
|
||||
|
||||
@@ -266,7 +266,7 @@ typedef std::pair<uint256,MerkleBranch> TxProof;
|
||||
|
||||
|
||||
uint256 GetMerkleRoot(const std::vector<uint256>& vLeaves);
|
||||
bool ProcessCCevals(uint8_t evalcode,Eval* eval, std::vector<uint8_t> paramsNull,const CTransaction &ctx, unsigned int nIn);
|
||||
bool ProcessAssets(Eval* eval, std::vector<uint8_t> paramsNull, const CTransaction &tx, unsigned int nIn);
|
||||
|
||||
|
||||
#endif /* CC_EVAL_H */
|
||||
|
||||
Reference in New Issue
Block a user