/******************************************************************************
* Copyright © 2014 - 2016 The SuperNET Developers . *
* *
* See the AUTHORS , DEVELOPER - AGREEMENT and LICENSE files at *
* the top - level directory of this distribution for the individual copyright *
* holder information and the developer policies on copyright and licensing . *
* *
* Unless otherwise agreed in a custom licensing agreement , no part of the *
* SuperNET software , including this file may be copied , modified , propagated *
* or distributed except according to the terms contained in the LICENSE file *
* *
* Removal or modification of this copyright notice is prohibited . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// BTCoffer:
// sends NXT assetid, volume and desired
// request:
// other node sends (othercoin, othercoinaddr, otherNXT and reftx that expires well before phasedtx)
// proposal:
// NXT node submits phasedtx that refers to it, but it wont confirm
// approve:
// other node verifies unconfirmed has phasedtx and broadcasts cltv, also to NXT node, releases trigger
// confirm:
// NXT node verifies bitcoin txbytes has proper payment and cashes in with onetimepubkey
// BTC* node approves phased tx with onetimepubkey
char * instantdex_PAXswap ( struct supernet_info * myinfo , struct exchange_info * exchange , struct instantdex_accept * ap , char * cmdstr , struct instantdex_msghdr * msg , cJSON * argjson , char * remoteaddr , uint64_t signerbits , uint8_t * data , int32_t datalen ) // receiving side
{
char * retstr = 0 ;
return ( clonestr ( " { \" error \" : \" PAX swap is not yet \" } " ) ) ;
if ( strcmp ( cmdstr , " offer " ) = = 0 )
{
}
else if ( strcmp ( cmdstr , " proposal " ) = = 0 )
{
}
else if ( strcmp ( cmdstr , " accept " ) = = 0 )
{
}
else if ( strcmp ( cmdstr , " confirm " ) = = 0 )
{
}
else retstr = clonestr ( " { \" error \" : \" PAX swap got unrecognized command \" } " ) ;
return ( retstr ) ;
}
# include "../../includes/secp256k1.h"
//#include "../../crypto777/secp256k1/modules/rangeproof/pedersen_impl.h"
//#include "../../crypto777/secp256k1/modules/rangeproof/borromean_impl.h"
//#include "../../crypto777/secp256k1/modules/rangeproof/rangeproof_impl.h"
void secp256k1_pedersen_context_initialize ( secp256k1_context_t * ctx ) ;
int secp256k1_pedersen_commit ( const secp256k1_context_t * ctx , unsigned char * commit , unsigned char * blind , uint64_t value ) ;
// ./configure --enable-module-ecdh --enable-module-schnorr --enable-module-rangeproof
void ztest ( )
{
# ifdef __APPLE__
printf ( " ztests \n " ) ;
secp256k1_context_t * ctx ; uint8_t commit [ 33 ] , blind [ 32 ] ; int32_t i , retval ;
ctx = secp256k1_context_create ( SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY ) ;
secp256k1_pedersen_context_initialize ( ctx ) ;
retval = secp256k1_pedersen_commit ( ctx , commit , blind , 0x14234 ) ;
OS_randombytes ( blind , sizeof ( blind ) ) ;
for ( i = 0 ; i < 33 ; i + + )
printf ( " %02x " , commit [ i ] ) ;
printf ( " pederson commit.%d \n " , retval ) ;
//getchar();
# endif
}