Introduced the GetRequiredFees API call
This commit is contained in:
parent
60a12b784b
commit
beba8a0b40
3 changed files with 176 additions and 1 deletions
|
@ -0,0 +1,41 @@
|
|||
package cy.agorise.graphenej.api.calls;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import cy.agorise.graphenej.Asset;
|
||||
import cy.agorise.graphenej.BaseOperation;
|
||||
import cy.agorise.graphenej.BlockData;
|
||||
import cy.agorise.graphenej.RPC;
|
||||
import cy.agorise.graphenej.Transaction;
|
||||
import cy.agorise.graphenej.models.ApiCall;
|
||||
|
||||
/**
|
||||
* Wrapper around the "get_required_fees" API call
|
||||
*/
|
||||
|
||||
public class GetRequiredFees implements ApiCallable {
|
||||
|
||||
private Transaction mTransaction;
|
||||
private Asset mFeeAsset;
|
||||
|
||||
public GetRequiredFees(Transaction transaction, Asset feeAsset){
|
||||
this.mTransaction = transaction;
|
||||
this.mFeeAsset = feeAsset;
|
||||
}
|
||||
|
||||
public GetRequiredFees(List<BaseOperation> operations, Asset feeAsset){
|
||||
this.mTransaction = new Transaction(new BlockData(0, 0, 0), operations);
|
||||
this.mFeeAsset = feeAsset;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiCall toApiCall(int apiId, long sequenceId) {
|
||||
// Building a new API call to request fees information
|
||||
ArrayList<Serializable> accountParams = new ArrayList<>();
|
||||
accountParams.add((Serializable) mTransaction.getOperations());
|
||||
accountParams.add(this.mFeeAsset.getObjectId());
|
||||
return new ApiCall(apiId, RPC.CALL_GET_REQUIRED_FEES, accountParams, RPC.VERSION, sequenceId);
|
||||
}
|
||||
}
|
|
@ -8,21 +8,66 @@ import android.os.Bundle;
|
|||
import android.os.IBinder;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.common.primitives.UnsignedLong;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import cy.agorise.graphenej.Asset;
|
||||
import cy.agorise.graphenej.AssetAmount;
|
||||
import cy.agorise.graphenej.BaseOperation;
|
||||
import cy.agorise.graphenej.UserAccount;
|
||||
import cy.agorise.graphenej.api.ApiAccess;
|
||||
import cy.agorise.graphenej.api.android.NetworkService;
|
||||
import cy.agorise.graphenej.api.android.RxBus;
|
||||
import cy.agorise.graphenej.api.calls.GetRequiredFees;
|
||||
import cy.agorise.graphenej.models.JsonRpcResponse;
|
||||
import cy.agorise.graphenej.operations.LimitOrderCreateOperation;
|
||||
import cy.agorise.graphenej.operations.TransferOperation;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.functions.Consumer;
|
||||
|
||||
public class SecondActivity extends AppCompatActivity {
|
||||
|
||||
private final String TAG = this.getClass().getName();
|
||||
|
||||
@BindView(R.id.text_field)
|
||||
TextView mTextField;
|
||||
|
||||
// In case we want to interact directly with the service
|
||||
private NetworkService mService;
|
||||
|
||||
private Gson gson = new Gson();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_second);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
RxBus.getBusInstance()
|
||||
.asFlowable()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Consumer<Object>() {
|
||||
|
||||
@Override
|
||||
public void accept(Object message) throws Exception {
|
||||
if(message instanceof String){
|
||||
Log.d(TAG,"Got text message: "+(message));
|
||||
mTextField.setText(mTextField.getText() + ((String) message) + "\n");
|
||||
}else if(message instanceof JsonRpcResponse){
|
||||
mTextField.setText(mTextField.getText() + gson.toJson(message, JsonRpcResponse.class) + "\n");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -58,4 +103,50 @@ public class SecondActivity extends AppCompatActivity {
|
|||
Log.d(TAG,"onServiceDisconnected");
|
||||
}
|
||||
};
|
||||
|
||||
@OnClick(R.id.transfer_fee_usd)
|
||||
public void onTransferFeeUsdClicked(View v){
|
||||
List<BaseOperation> operations = getTransferOperation();
|
||||
mService.sendMessage(new GetRequiredFees(operations, new Asset("1.3.121")));
|
||||
}
|
||||
|
||||
@OnClick(R.id.transfer_fee_bts)
|
||||
public void onTransferFeeBtsClicked(View v){
|
||||
List<BaseOperation> operations = getTransferOperation();
|
||||
mService.sendMessage(new GetRequiredFees(operations, new Asset("1.3.0")));
|
||||
}
|
||||
|
||||
@OnClick(R.id.exchange_fee_usd)
|
||||
public void onExchangeFeeUsdClicked(View v){
|
||||
List<BaseOperation> operations = getExchangeOperation();
|
||||
mService.sendMessage(new GetRequiredFees(operations, new Asset("1.3.121")));
|
||||
}
|
||||
|
||||
@OnClick(R.id.exchange_fee_bts)
|
||||
public void onExchangeFeeBtsClicked(View v){
|
||||
List<BaseOperation> operations = getExchangeOperation();
|
||||
mService.sendMessage(new GetRequiredFees(operations, new Asset("1.3.0")));
|
||||
}
|
||||
|
||||
private List<BaseOperation> getTransferOperation(){
|
||||
TransferOperation transferOperation = new TransferOperation(
|
||||
new UserAccount("1.2.138632"),
|
||||
new UserAccount("1.2.129848"),
|
||||
new AssetAmount(UnsignedLong.ONE, new Asset("1.3.0")));
|
||||
ArrayList<BaseOperation> operations = new ArrayList();
|
||||
operations.add(transferOperation);
|
||||
return operations;
|
||||
}
|
||||
|
||||
public List<BaseOperation> getExchangeOperation() {
|
||||
LimitOrderCreateOperation operation = new LimitOrderCreateOperation(
|
||||
new UserAccount("1.2.138632"),
|
||||
new AssetAmount(UnsignedLong.valueOf(10000), new Asset("1.3.0")),
|
||||
new AssetAmount(UnsignedLong.valueOf(10), new Asset("1.3.121")),
|
||||
1000000,
|
||||
true);
|
||||
ArrayList<BaseOperation> operations = new ArrayList();
|
||||
operations.add(operation);
|
||||
return operations;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,5 +5,48 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="com.luminiasoft.labs.sample.SecondActivity">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_field"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:lines="20"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@+id/buttons_container"
|
||||
app:layout_constraintTop_toTopOf="parent"/>
|
||||
<LinearLayout
|
||||
android:id="@+id/buttons_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:weightSum="4"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
<Button
|
||||
android:id="@+id/transfer_fee_usd"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textSize="11sp"
|
||||
android:text="Transfer (USD)"/>
|
||||
<Button
|
||||
android:id="@+id/transfer_fee_bts"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textSize="11sp"
|
||||
android:text="Transfer (BTS)"/>
|
||||
<Button
|
||||
android:id="@+id/exchange_fee_usd"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textSize="11sp"
|
||||
android:text="Exchange (USD)"/>
|
||||
<Button
|
||||
android:id="@+id/exchange_fee_bts"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textSize="11sp"
|
||||
android:text="Exchange (BTS)"/>
|
||||
</LinearLayout>
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
|
Loading…
Reference in a new issue