Evercoin is a an instant-access cryptocurrency exchange. This Swift API enables you to easily integrate cryptocurrency exchange funtionality into your IOS app.
- Swift3 or higher
- API Key // contact support@evercoin.com to obtain your API key
Download a version of the Evercoin swift's framework from SwiftAPI
import XCTest
import Darwin
@testable import EvercoinAPI
class EvercoinAPITests: XCTestCase {
override func setUp() {
super.setUp()
// Make sure to use test endpoint during development and testing.
//let defaults = UserDefaults.standard
//defaults.set("https://test.evercoin.com/", forKey: "evercoin.api.endpoint")
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
let API_KEY:String = "Your API Key"; // contact support@evercoin.com to obtain yours
let version:String = "v1";
let deposit:String = "BTC";
let destination:String = "ETH";
let refundMainAddress:String = "n4MZ1KydkCEokrr8fVAcGSghsSMjHvNexo";
let destinationMainAddress:String = "0xb306e1D76E4C4bd6462F370d4551F842eB4fFcad";
let depositAmount:String = "1.0";
let evercoin:Evercoin = EvercoinFactory.create(config: EvercoinApiConfig(apiKey: API_KEY, version: version))
let coins:CoinsResponse = evercoin.getCoins()
let depositCoin = coins.getCoin(symbol: deposit);
let destinationCoin = coins.getCoin(symbol: destination);
if (depositCoin != nil && !(depositCoin?.fromAvailable)!) {
//Exchanging from BTC is not currently available.
return;
}
if (destinationCoin != nil && !(destinationCoin?.toAvailable)!) {
//Exchanging to ETH is not currently available.
return;
}
let refundValidateReponse = evercoin.validateAddress(coin: deposit, address: refundMainAddress)
if (refundValidateReponse.isSuccess! && refundValidateReponse.isValid! == false) {
//Your BTC address is not valid.
return;
}
let refundAddress = Address(mainAddress: refundMainAddress);
let destinationValidateReponse = evercoin.validateAddress(coin: destination, address: destinationMainAddress)
if (destinationValidateReponse.isSuccess! && destinationValidateReponse.isValid! == false) {
//Your ETH address is not valid.
return;
}
let destinationAddress = Address(mainAddress: destinationMainAddress);
let priceResponse = evercoin.getPrice(depositCoin: deposit, destinationCoin: destination, depositAmount: Double(depositAmount), destinationAmount: nil)
if priceResponse.isSuccess == true{
let orderResponse = evercoin.createOrder(priceResponse: priceResponse, refundAddress: refundAddress, destinationAddress: destinationAddress)
if orderResponse.isSuccess == true {
EvercoinAPI.logToConsole(msg: "You should deposit to this address: " + (orderResponse.depositAddress?.mainAddress)!)
while(true){
sleep(10)
let statusResponse:StatusResponse = evercoin.getStatus(orderId: orderResponse.orderId!)
if (statusResponse.exchangeStatus?.statusId == Status.awaitingDeposit.statusId) {
let depositMainAddress = orderResponse.depositAddress?.mainAddress
var printStr = "Send " + depositAmount + " "
printStr = printStr + deposit + " to the " + depositMainAddress!
EvercoinAPI.logToConsole(msg: printStr)
}
else if (statusResponse.exchangeStatus?.statusId == Status.awaitingConfirm.statusId) {
EvercoinAPI.logToConsole(msg: "Looks like you sent " + deposit + ". Waiting for confirmation on the blockchain.");
} else if (statusResponse.exchangeStatus?.statusId == Status.awaitingExchange.statusId) {
EvercoinAPI.logToConsole(msg:"Your " + destination + " is on the way.");
} else if (statusResponse.exchangeStatus?.statusId == Status.allDone.statusId) {
EvercoinAPI.logToConsole(msg:"Success! Enjoy your " + destination);
return;
}
}
}
}
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}
More information and API documentation can be found at https://evercoin.com/api/
Please contact support@evercoin.com