// // Created by artem on 24.01.18. // #include #include #include #include #include "etomiclib.h" char* bobContractAddress = "0x9387Fd3a016bB0205e4e131Dde886B9d2BC000A2"; char* aliceAddress = "0x485d2cc2d13a9e12E4b53D606DB1c8adc884fB8a"; char* bobAddress = "0xA7EF3f65714AE266414C9E58bB4bAa4E6FB82B41"; char* tokenAddress = "0xc0eb7AeD740E1796992A08962c15661bDEB58003"; int main(int argc, char** argv) { enum { BOB_ETH_DEPOSIT, BOB_ERC20_DEPOSIT, BOB_CLAIMS_DEPOSIT, ALICE_CLAIMS_DEPOSIT, BOB_ETH_PAYMENT, BOB_ERC20_PAYMENT, BOB_CLAIMS_PAYMENT, ALICE_CLAIMS_PAYMENT, BOB_APPROVES_ERC20, BOB_ETH_BALANCE, BOB_ERC20_BALANCE, }; if (argc < 2) { return 1; } int action = atoi(argv[1]); BasicTxData txData; char* result; switch (action) { case BOB_ETH_DEPOSIT: txData.amount = "1000000000000000000"; txData.from = bobAddress; txData.to = bobContractAddress; txData.secretKey = getenv("BOB_PK"); BobSendsEthDepositInput input = { .aliceAddress = aliceAddress, .depositId = argv[2], .bobHash = argv[3] }; result = bobSendsEthDeposit(input, txData); printf("%s\n", result); free(result); break; case BOB_ERC20_DEPOSIT: txData.amount = "0"; txData.from = bobAddress; txData.to = bobContractAddress; txData.secretKey = getenv("BOB_PK"); BobSendsErc20DepositInput input1 = { .depositId = argv[2], .amount = "1000000000000000000", .aliceAddress = aliceAddress, .bobHash = argv[3], .tokenAddress = tokenAddress }; result = bobSendsErc20Deposit(input1, txData); printf("%s\n", result); free(result); break; case BOB_CLAIMS_DEPOSIT: txData.amount = "0"; txData.from = bobAddress; txData.to = bobContractAddress; txData.secretKey = getenv("BOB_PK"); BobRefundsDepositInput input2 = { .depositId = argv[2], .amount = "1000000000000000000", .aliceAddress = aliceAddress, .tokenAddress = argv[3], .aliceCanClaimAfter = argv[4], .bobSecret = argv[5] }; result = bobRefundsDeposit(input2, txData); printf("%s\n", result); free(result); break; case ALICE_CLAIMS_DEPOSIT: txData.amount = "0"; txData.from = aliceAddress; txData.to = bobContractAddress; txData.secretKey = getenv("ALICE_PK"); AliceClaimsBobDepositInput input3 = { .depositId = argv[2], .amount = "1000000000000000000", .bobAddress = bobAddress, .tokenAddress = argv[3], .aliceCanClaimAfter = argv[4], .bobHash = argv[5] }; result = aliceClaimsBobDeposit(input3, txData); printf("%s\n", result); free(result); break; case BOB_ETH_PAYMENT: txData.amount = "1000000000000000000"; txData.from = bobAddress; txData.to = bobContractAddress; txData.secretKey = getenv("BOB_PK"); BobSendsEthPaymentInput input4 = { .paymentId = argv[2], .aliceHash = argv[3], .aliceAddress = aliceAddress }; result = bobSendsEthPayment(input4, txData); printf("%s\n", result); free(result); break; case BOB_ERC20_PAYMENT: txData.amount = "0"; txData.from = bobAddress; txData.to = bobContractAddress; txData.secretKey = getenv("BOB_PK"); BobSendsErc20PaymentInput input5 = { .paymentId = argv[2], .amount = "1000000000000000000", .tokenAddress = tokenAddress, .aliceAddress = aliceAddress, .aliceHash = argv[3] }; result = bobSendsErc20Payment(input5, txData); printf("%s\n", result); free(result); break; case BOB_CLAIMS_PAYMENT: txData.amount = "0"; txData.from = bobAddress; txData.to = bobContractAddress; txData.secretKey = getenv("BOB_PK"); BobReclaimsBobPaymentInput input6 = { .paymentId = argv[2], .aliceAddress = aliceAddress, .amount = "1000000000000000000", .tokenAddress = argv[3], .bobCanClaimAfter = argv[4], .aliceHash = argv[5] }; result = bobReclaimsBobPayment(input6, txData); printf("%s\n", result); free(result); break; case ALICE_CLAIMS_PAYMENT: txData.amount = "0"; txData.from = aliceAddress; txData.to = bobContractAddress; txData.secretKey = getenv("ALICE_PK"); AliceSpendsBobPaymentInput input7 = { .paymentId = argv[2], .bobAddress = bobAddress, .amount = "1000000000000000000", .tokenAddress = argv[3], .bobCanClaimAfter = argv[4], .aliceSecret = argv[5] }; result = aliceSpendsBobPayment(input7, txData); printf("%s\n", result); free(result); break; case BOB_APPROVES_ERC20: result = approveErc20( "10000000000000000000", "0xA7EF3f65714AE266414C9E58bB4bAa4E6FB82B41", getenv("BOB_PK") ); printf("%s\n", result); free(result); break; case BOB_ETH_BALANCE: printf("%" PRIu64 "\n", getEthBalance(bobAddress)); break; case BOB_ERC20_BALANCE: printf("%" PRIu64 "\n", getErc20Balance(bobAddress, tokenAddress)); break; default: return 1; } return 0; }