]> Git Repo - VerusCoin.git/commitdiff
Test
authorjl777 <[email protected]>
Mon, 10 Sep 2018 18:45:59 +0000 (07:45 -1100)
committerjl777 <[email protected]>
Mon, 10 Sep 2018 18:45:59 +0000 (07:45 -1100)
src/cc/CCinclude.h
src/cc/CCtx.cpp
src/cc/gateways.cpp

index 79a1e0c7591b72500ef2cb2022e7fd1876a9e272..ba57f2748c16fb0ec00d17ae6af4ee219c57bfc9 100644 (file)
@@ -72,7 +72,7 @@ struct CCcontract_info
     CPubKey unspendablepk2;
     bool (*validate)(struct CCcontract_info *cp,Eval* eval,const CTransaction &tx);
     bool (*ismyvin)(CScript const& scriptSig);
-    uint8_t evalcode,didinit;
+    uint8_t evalcode,evalcode2,didinit;
 };
 struct CCcontract_info *CCinit(struct CCcontract_info *cp,uint8_t evalcode);
 
index 7c18b9dbe03ac5efc5ca426fe43a63ff8397cb7a..c9196e951b362886b46ad46ca31ec96baf0d03cc 100644 (file)
@@ -124,7 +124,7 @@ std::string FinalizeCCTx(uint64_t CCmask,struct CCcontract_info *cp,CMutableTran
                     //fprintf(stderr,"matched %s unspendable2!\n",cp->unspendableaddr2);
                     privkey = cp->unspendablepriv2;
                     if ( othercond2 == 0 )
-                        othercond2 = MakeCCcond1(cp->evalcode,cp->unspendablepk2);
+                        othercond2 = MakeCCcond1(cp->evalcode2,cp->unspendablepk2);
                     cond = othercond2;
                 }
                 else
index b8cf5f4c555325a8d47b21bd780f7f3a3f45415e..66c71fb4edcb689af7a6be396a9a0d7cc40fbc5f 100644 (file)
@@ -554,12 +554,13 @@ std::string GatewaysClaim(uint64_t txfee,uint256 bindtxid,std::string refcoin,ui
     CMutableTransaction mtx; CTransaction tx; CPubKey mypk,gatewayspk; struct CCcontract_info *cp,C,*assetscp,C2; uint8_t M,N,taddr,prefix,prefix2; std::string coin; std::vector<CPubKey> msigpubkeys; int64_t totalsupply,depositamount,inputs,CCchange=0; int32_t numvouts; uint256 hashBlock,assetid,oracletxid; char str[65],depositaddr[64];
     cp = CCinit(&C,EVAL_GATEWAYS);
     assetscp = CCinit(&C2,EVAL_ASSETS);
-    memcpy(assetscp->unspendablepriv2,cp->CCpriv,32);
     if ( txfee == 0 )
         txfee = 10000;
     mypk = pubkey2pk(Mypubkey());
     gatewayspk = GetUnspendable(cp,0);
-    _GetCCaddress(assetscp->unspendableaddr2,EVAL_ASSETS,gatewayspk);
+    _GetCCaddress(cp->unspendableaddr2,EVAL_ASSETS,gatewayspk);
+    memcpy(cp->unspendablepriv2,cp->CCpriv,32);
+    cp->evalcode2 = EVAL_ASSETS;
     if ( GetTransaction(bindtxid,tx,hashBlock,false) == 0 || (numvouts= tx.vout.size()) <= 0 )
     {
         fprintf(stderr,"cant find bindtxid %s\n",uint256_str(str,bindtxid));
@@ -582,7 +583,7 @@ std::string GatewaysClaim(uint64_t txfee,uint256 bindtxid,std::string refcoin,ui
     }
     if ( AddNormalinputs(mtx,mypk,txfee,1) > 0 )
     {
-        if ( (inputs= AddAssetInputs(assetscp,mtx,gatewayspk,assetid,amount,60)) > 0 )
+        if ( (inputs= AddAssetInputs(cp,mtx,gatewayspk,assetid,amount,60)) > 0 )
         {
             if ( inputs > amount )
                 CCchange = (inputs - amount);
@@ -590,7 +591,7 @@ std::string GatewaysClaim(uint64_t txfee,uint256 bindtxid,std::string refcoin,ui
             mtx.vout.push_back(MakeCC1vout(EVAL_ASSETS,amount,mypk));
             if ( CCchange != 0 )
                 mtx.vout.push_back(MakeCC1vout(EVAL_ASSETS,CCchange,gatewayspk));
-            return(FinalizeCCTx(0,assetscp,mtx,mypk,txfee,EncodeAssetOpRet('t',assetid,zeroid,0,Mypubkey())));
+            return(FinalizeCCTx(0,cp,mtx,mypk,txfee,EncodeAssetOpRet('t',assetid,zeroid,0,Mypubkey())));
         }
     }
     fprintf(stderr,"cant find enough inputs or mismatched total\n");
This page took 0.031958 seconds and 4 git commands to generate.