This commit is contained in:
jl777
2018-07-22 02:59:11 -11:00
parent 45e8b116a4
commit 751cdbc2af
4 changed files with 7 additions and 5 deletions

View File

@@ -29,7 +29,6 @@ extern const char *AssetsCCaddr;
extern char AssetsCChexstr[67]; extern char AssetsCChexstr[67];
// CCassetsCore // CCassetsCore
CC *MakeAssetCond(CPubKey pk);
CTxOut MakeAssetsVout(CAmount nValue,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 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); CScript EncodeAssetOpRet(uint8_t funcid,uint256 assetid,uint256 assetid2,uint64_t price,std::vector<uint8_t> origpubkey);

View File

@@ -19,6 +19,7 @@
CCcustom has most of the functions that need to be extended to create a new CC contract. 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 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. 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"; const char *AssetsCCaddr = "RGKRjeTBw4LYFotSDLT6RWzMHbhXri6BG6" ;//"RFYE2yL3KknWdHK6uNhvWacYsCUtwzjY3u";
char AssetsCChexstr[67] = { "02adf84e0e075cf90868bd4e3d34a03420e034719649c41f371fc70d8e33aa2702" }; 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 }; 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) CPubKey GetUnspendable(uint8_t evalcode,uint8_t *unspendablepriv)
{ {

View File

@@ -69,8 +69,9 @@ bool Eval::Dispatch(const CC *cond, const CTransaction &txTo, unsigned int nIn)
case EVAL_IMPORTCOIN: case EVAL_IMPORTCOIN:
return ImportCoin(vparams, txTo, nIn); return ImportCoin(vparams, txTo, nIn);
break; break;
default:
return ProcessCCevals(ecode,this,vparams,txTo,nIn); case EVAL_ASSETS:
return ProcessAssets(this, vparams, txTo, nIn);
break; break;
} }
return Invalid("invalid-code"); return Invalid("invalid-code");

View File

@@ -266,7 +266,7 @@ typedef std::pair<uint256,MerkleBranch> TxProof;
uint256 GetMerkleRoot(const std::vector<uint256>& vLeaves); 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 */ #endif /* CC_EVAL_H */