/****************************************************************************** * Copyright © 2014-2017 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. * * * ******************************************************************************/ // // LP_etomic.c // marketmaker // // // Created by artem on 24.01.18. // #ifdef __cplusplus extern "C" { #endif typedef struct { char* from; char* to; char* amount; int nonce; char* secretKey; } BasicTxData; typedef struct { char* dealId; char* bobAddress; char* aliceHash; char* bobHash; } AliceInitEthInput; typedef struct { char* dealId; char* amount; char* tokenAddress; char* bobAddress; char* aliceHash; char* bobHash; } AliceInitErc20Input; typedef struct { char* dealId; char* amount; char* tokenAddress; char* bobAddress; char* aliceHash; char* bobSecret; } AliceReclaimsAlicePaymentInput; typedef struct { char* dealId; char* amount; char* tokenAddress; char* aliceAddress; char* aliceSecret; char* bobHash; } BobSpendsAlicePaymentInput; typedef struct { char* depositId; char* aliceAddress; char* bobHash; } BobMakesEthDepositInput; typedef struct { char* depositId; char* amount; char* tokenAddress; char* aliceAddress; char* bobHash; } BobMakesErc20DepositInput; typedef struct { char* depositId; char* amount; char* tokenAddress; char* aliceAddress; char* bobSecret; char* aliceCanClaimAfter; } BobRefundsDepositInput; typedef struct { char* depositId; char* amount; char* tokenAddress; char* bobAddress; char* bobHash; char* aliceCanClaimAfter; } AliceClaimsBobDepositInput; typedef struct { char* paymentId; char* aliceAddress; char* aliceHash; } BobMakesEthPaymentInput; typedef struct { char* paymentId; char* amount; char* tokenAddress; char* aliceAddress; char* aliceHash; } BobMakesErc20PaymentInput; typedef struct { char* paymentId; char* amount; char* tokenAddress; char* aliceAddress; char* aliceHash; char* bobCanClaimAfter; } BobReclaimsBobPaymentInput; typedef struct { char* paymentId; char* amount; char* tokenAddress; char* aliceSecret; char* bobAddress; char* bobCanClaimAfter; } AliceSpendsBobPaymentInput; // Your prototype or Definition #ifdef __cplusplus } #endif #define ETOMIC_ALICECONTRACT "0xe1D4236C5774D35Dc47dcc2E5E0CcFc463A3289c" #define ETOMIC_BOBCONTRACT "0x9387Fd3a016bB0205e4e131Dde886B9d2BC000A2" #define ETOMIC_SATOSHICAT "0000000000" char *aliceInitsEthDeal(AliceInitEthInput input,BasicTxData txData); char *aliceInitsErc20Deal(AliceInitErc20Input input,BasicTxData txData); //char *aliceMakesEthPayment(AliceMakesEthPaymentInput input,BasicTxData txData); //char *aliceMakesErc20Payment(AliceMakesErc20PaymentInput input,BasicTxData txData); char *aliceSpendsBobPayment(AliceSpendsBobPaymentInput input,BasicTxData txData); char *aliceReclaimsAlicePayment(AliceReclaimsAlicePaymentInput input,BasicTxData txData); char *aliceClaimsBobDeposit(AliceClaimsBobDepositInput input,BasicTxData txData); char *bobMakesEthDeposit(BobMakesEthDepositInput input,BasicTxData txData); char *bobMakesErc20Deposit(BobMakesErc20DepositInput input,BasicTxData txData); char *bobMakesEthPayment(BobMakesEthPaymentInput input,BasicTxData txData); char *bobMakesErc20Payment(BobMakesErc20PaymentInput input,BasicTxData txData); char *bobSpendsAlicePayment(BobSpendsAlicePaymentInput input,BasicTxData txData); char *bobReclaimsBobPayment(BobReclaimsBobPaymentInput input,BasicTxData txData); char *bobRefundsDeposit(BobRefundsDepositInput input,BasicTxData txData); char *approveErc20(char *amount,char *from,char *secret,char *buffer,int32_t nonce); int32_t LP_etomicsymbol(char *etomic,char *symbol) { struct iguana_info *coin; etomic[0] = 0; if ( (coin= LP_coinfind(symbol)) != 0 ) strcpy(etomic,coin->etomic); return(etomic[0] != 0); } char *LP_etomicalice_start(struct basilisk_swap *swap) { AliceInitEthInput input; AliceInitErc20Input input20; BasicTxData txData; // set input and txData fields from the swap data structure memset(&txData,0,sizeof(txData)); if ( strcmp(swap->I.alicestr,"ETH") == 0 ) { memset(&input,0,sizeof(input)); return(aliceInitsEthDeal(input,txData)); } else { memset(&input20,0,sizeof(input20)); return(aliceInitsErc20Deal(input20,txData)); } }