Paytomat Wallet SDK allows Android client apps to:
- Get EOS Account: Request EOS Authorization for an EOS Account.
- Transfer EOS: Send EOS and EOS Tokens.
- Communicate via Simple Wallet: DApp can interact with wallet via Simple Wallet protocol
You can download a jar from GitHub's releases page.
Or use Gradle:
repositories {
jcenter()
}
dependencies {
implementation 'com.paytomat:paytomat-android-sdk:0.1.1'
}
PaytomatSdk.isPaytomatInstalled(context)
PaytomatSdk.requestDownload(this)
val brandingModel: BrandingModel = BrandingModel.Builder()
.setIconUrl("https://lh3.googleusercontent.com/4XigLFnoMuxPShHKPUdehtqBdKRe48nbYbFtpIroMUZZqcF-Bt1-UqpEL9ioOSc1-lfC=s360")
.setTitle("Integration Test")
.setDescription("Login to PTM integration app")
.build()
val screenLaunched: Boolean = PaytomatSdk.requestLogin(this, brandingModel)
val brandingModel: BrandingModel = BrandingModel.Builder()
.setIconUrl("https://lh3.googleusercontent.com/4XigLFnoMuxPShHKPUdehtqBdKRe48nbYbFtpIroMUZZqcF-Bt1-UqpEL9ioOSc1-lfC=s360")
.setTitle("Integration Test")
.setDescription("Login to PTM integration app")
.build()
val tokenModel: TokenModel = TokenModel.eos(0.001)
val screenLaunched: Boolean = PaytomatSdk.requestTransaction(
this,
brandingModel = brandingModel,
to = "someaddress1",
tokenModel = tokenModel,
memo = "PTM integration test"
)
If you need to transfer eos based token:
val tokenModel: TokenModel = TokenModel(amount = 0.001,
contract = "ptitokenhome",
symbol = "PTI",
precision = 4)
Handle wallet response in Activity
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == PaytomatSdk.CODE_LOGIN_REQUEST) {
val accountResult: Result<LoginAccount> = PaytomatSdk.handleLoginResult(requestCode, resultCode, data)
if (accountResult.isSuccess()){
val accountName: String? = accountResult.result?.accountName
//Use account name
}
else {
showError(accountResult.code)
}
} else if (requestCode == PaytomatSdk.CODE_TRANSFER_REQUEST) {
val transactionIdResult: Result<TransferId> =
PaytomatSdk.handleTransferResult(requestCode, resultCode, data)
if (transactionIdResult.isSuccess()) {
val transactionId: String? = transactionIdResult.result?.transactionId
//Use transaction Id
} else {
showError(transactionIdResult.code)
}
}
}
private fun showError(errorCode: Int) {
val errorMsg: String = when (errorCode) {
Codes.SUCCESS -> return
Codes.ERROR_CODE_NO_MNEMONIC -> "Paytomat not initialized"
Codes.ERROR_CODE_NO_ACCOUNT -> "No account"
Codes.ERROR_CODE_INVALID_EOS_SYMBOL -> "Invalid eos symbol"
Codes.ERROR_CODE_INVALID_RECIPIENT_ACCOUNT -> "Invalid recipient address"
Codes.ERROR_CODE_NOT_ENOUGHT_BALANCE -> "Not enough balance"
Codes.ERROR_CODE_PARSE -> "Parsing error"
Codes.ERROR_CODE_CANCELED -> "Canceled action"
else -> "Something went wrong"
}
Toast.makeText(this, errorMsg, Toast.LENGTH_SHORT).show()
}