React-native 환경에서 trc-20 전송 intent 호출

현재 2가지 방법으로 trc-20 코인전송을 시도하고 있습니다.

먼저 react-native 환경에서 trc-20 코인 전송 intent 호출하는 것을 해보고 있습니다.

이전 질문에서 말한것처럼,

com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity has leaked window

에러가 발생하는데요. 원인 파악을 못하겠습니다. 말해주신 제안처럼 activitiyforResult로 요청해도 같은 상황입니다.


Intent intent = tronService
                .createTrc20PaymentSheetActivityIntent(
                        reactContext,
                        hardwareWallet,
                        tronAccount1,
                        cryptomission_receiver,
                        usdt_address,
                        new BigInteger(Integer.toString(balance))
                );
//        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        reactContext.startActivityForResult(intent, 0,null);

2020-09-19 10:40:10.751 30738-30738/com.twofastlane.cryptomission E/WindowManager: android.view.WindowLeaked: Activity com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity has leaked window DecorView@1e72883[TronPaymentSheetActivity] that was originally added here
at android.view.ViewRootImpl.(ViewRootImpl.java:769)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:461)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:95)
at android.app.Dialog.show(Dialog.java:507)
at com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity.d(SourceFile:166)
at com.samsung.android.sdk.blockchain.i.ba.b(SourceFile:52)
at com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity$e$1.onClick(SourceFile:304)
at android.view.View.performClick(View.java:7869)
at android.view.View.performClickInternal(View.java:7838)
at android.view.View.access$3600(View.java:886)
at android.view.View$PerformClick.run(View.java:29362)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8154)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

TronPaymentSheetActivity쪽에서 에러가 발생하는것 같은데요. 제 생각엔 다이얼로그를 띄운 상태에서 다이얼로그가 없어지면서 새로 액티비티를 띄우려고해서 그런거 같습니다.

Activity com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity has leaked window

1 Like

안녕하세요.

올려주신 문제는 유효하지 않은 context로 startActivityForResult를 호출하여 발생하는 문제로 보입니다.
이미 종료된 Activity의 context를 사용하신게 아닌지 확인 부탁드립니다.
추가로 link의 내용도 참조 바랍니다.

2 Likes

네 activity context쪽을 살펴보겠습니다. 감사합니다.

react-native의 경우 액티비티 하나에서 모두 동작합니다.
그래서 현재 액티비티를 가져와서 테스트해봤는데 같은 에러가 발생합니다.

유효한 context인지 확인하기 위해서 toast 함수를 실행해봤는데 이건 잘됩니다.

올려주신 링크는 확인해봤는데, 제 쪽에서는 따로 dialog를 실행시키지도 않고 activity가 종료된 상태이거나 죽은상태도 아니여서요.

유효한 context인지 확인할 수 있는 방법이 있을까요?

현재 intent를 호출하는것까지 성공하고 그 다음에 ‘다음’ 버튼을 누르면 불러오기를 하다가 에러가나는 상황입니다.

이상하게 샘플앱에서는 x가 짤리지 않는데 제 앱에서는 x버튼이 짤립니다. 한번 확인해주시면 감사합니다.

답변 감사합니다…


//// send usdt
        mActivity = MainActivity.getActivity();
        Intent intent = tronService
                .createTrc20PaymentSheetActivityIntent(
                        mActivity,
                        hardwareWallet,
                        tronAccount1,
                        cryptomission_receiver,
                        usdt_address,
                        new BigInteger(Integer.toString(balance))
                );
        mActivity.startActivityForResult(intent,0);
        Toast.makeText(mActivity, "Hello",Toast.LENGTH_LONG).show();

Hello @wns1600000304,

Sometimes leaked window error might happen due to error in other classes.
We would like to request you to share all the logs from your logcat in a text file so that we can better understand your issue.

We would also like to request you to share your dumpstate logs with us by following the instructions below:

  1. Dial *#9900#, Delete Dumstate/logcat
  2. Dial *#9900#, Select Debug Level to MID. This restarts the device.
  3. Reproduce the issue
  4. Again dial *#9900# and press “Run Dumpstate/logcat”
  5. When it is finished press “Copy To SD Card (include CP Ramdump)"
  6. In the main folder of the device file system, please look for the folder ‘log’. The log file should be there having name format: ‘dumpState_[DEVICE MODEL]_[TIMESTAMP]’
  7. Upload this dumpstate log file here as well.
1 Like

I don’ t understand
Dial *#9900#, Delete Dumstate/logcat

I tested and get the log from start transfer to end transfer. Thank you!

is it enough ?


2020-09-19 13:22:26.062 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@c61586a[MainActivity]: ViewPostIme pointer 0
2020-09-19 13:22:26.169 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@c61586a[MainActivity]: ViewPostIme pointer 1
2020-09-19 13:22:26.188 12857-16231/com.twofastlane.cryptomission I/ReactNativeJS: sendingSteemPoint : 5
2020-09-19 13:22:26.892 12857-16232/com.twofastlane.cryptomission V/SBlockchain: TronServiceImpl.buildIntentForTronPaymentActivity() walletId: 0x50f7**********..., requestId: null, fromAccount: TronAccount(accountType=TRC20, tokenAddress=TR7NHq****************************, tokenId=null) Account(coinType=TRX, networkType=MAINNET, address='THVH**************************qWfs', hdPath=m/44'/195'/0'/0/0, walletId=0x50f7********************************************************52b4), toAddress: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t, value: 0, tokenValue: null, tokenId: null,data: 0xa9059cbb00000000000000000000000029727265926ebc0a3e5c8d42b614be89e0d5eb4f00000000000000000000000000000000000000000000000000000000004c4b40, feeLimit: 1000000, 
2020-09-19 13:22:26.921 12857-12857/com.twofastlane.cryptomission D/SensorManager: unregisterListener ::   
2020-09-19 13:22:26.931 12857-12857/com.twofastlane.cryptomission W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@fe4d621
2020-09-19 13:22:26.941 12857-12857/com.twofastlane.cryptomission D/PhoneWindow: forceLight changed to true [] from com.android.internal.policy.PhoneWindow.updateForceLightNavigationBar:4274 com.android.internal.policy.DecorView.updateColorViews:1547 com.android.internal.policy.PhoneWindow.dispatchWindowAttributesChanged:3252 android.view.Window.setFlags:1153 com.android.internal.policy.PhoneWindow.generateLayout:2474 
2020-09-19 13:22:26.942 12857-12857/com.twofastlane.cryptomission I/MultiWindowDecorSupport: [INFO] isPopOver = false
2020-09-19 13:22:26.942 12857-12857/com.twofastlane.cryptomission I/MultiWindowDecorSupport: updateCaptionType >> DecorView@f2cc934[], isFloating: false, isApplication: true, hasWindowDecorCaption: false, hasWindowControllerCallback: true
2020-09-19 13:22:26.942 12857-12857/com.twofastlane.cryptomission D/MultiWindowDecorSupport: setCaptionType = 0, DecorView = DecorView@f2cc934[]
2020-09-19 13:22:26.955 12857-12857/com.twofastlane.cryptomission D/ScrollView: initGoToTop
2020-09-19 13:22:26.974 12857-12857/com.twofastlane.cryptomission D/PhoneWindow: forceLight changed to false [] from com.android.internal.policy.PhoneWindow.updateForceLightNavigationBar:4280 com.android.internal.policy.PhoneWindow.setNavigationBarColor:4102 com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity.onCreate:80 android.app.Activity.performCreate:7963 android.app.Activity.performCreate:7952 
2020-09-19 13:22:26.975 12857-12857/com.twofastlane.cryptomission I/SBlockchain: ErcDataUtil.decodeErcData() to: 0x2972**********..., value: 00000000000000000000000000000000000000000000000000000000004c4b40
2020-09-19 13:22:26.978 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetActivity.initProgressDialog()
2020-09-19 13:22:26.979 12857-12857/com.twofastlane.cryptomission D/Dialog: mIsSamsungBasicInteraction = false
2020-09-19 13:22:26.979 12857-12857/com.twofastlane.cryptomission D/Dialog: mIsSamsungBasicInteraction = false, isMetaDataInActivity = true
2020-09-19 13:22:26.981 12857-12857/com.twofastlane.cryptomission I/MultiWindowDecorSupport: [INFO] isPopOver = false
2020-09-19 13:22:26.981 12857-12857/com.twofastlane.cryptomission I/MultiWindowDecorSupport: updateCaptionType >> DecorView@2635619[], isFloating: true, isApplication: true, hasWindowDecorCaption: false, hasWindowControllerCallback: false
2020-09-19 13:22:26.981 12857-12857/com.twofastlane.cryptomission D/MultiWindowDecorSupport: setCaptionType = 0, DecorView = DecorView@2635619[]
2020-09-19 13:22:26.987 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.updateInitialPaymentInfo
2020-09-19 13:22:26.987 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.updatePulledPaymentInfo
2020-09-19 13:22:26.987 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.retrieveBalance
2020-09-19 13:22:26.988 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.retrieveBalance
2020-09-19 13:22:26.988 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.retrieveTokenBalance
2020-09-19 13:22:26.988 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.retrieveTokenInfo
2020-09-19 13:22:26.994 12857-16132/com.twofastlane.cryptomission D/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
2020-09-19 13:22:26.999 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: setView = com.android.internal.policy.DecorView@f2cc934 TM=true MM=false
2020-09-19 13:22:27.000 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@c61586a[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2020-09-19 13:22:27.000 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@58bb362[MainActivity]
2020-09-19 13:22:27.000 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:22:27.011 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: Relayout returned: old=(0,0,1080,2400) new=(0,92,1080,2400) req=(1080,2400)0 dur=5 res=0x7 s={true 521162260480} ch=true
2020-09-19 13:22:27.012 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: createReliableSurface : 0x7957c4f000(0x7957b10000)
2020-09-19 13:22:27.013 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: eglCreateWindowSurface : 0x79ab776c00
2020-09-19 13:22:27.015 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.018 12857-16132/com.twofastlane.cryptomission E/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::sendDrawingTid()
2020-09-19 13:22:27.018 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: GPIS:: SetUp Pid : 12857    Tid : 16132
2020-09-19 13:22:27.019 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.022 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2020-09-19 13:22:27.022 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@f2cc934[TronPaymentSheetActivity]
2020-09-19 13:22:27.023 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() 0
2020-09-19 13:22:27.024 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@f2cc934[TronPaymentSheetActivity]
2020-09-19 13:22:27.024 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() 0
2020-09-19 13:22:27.024 12857-12857/com.twofastlane.cryptomission V/InputMethodManager: Starting input: tba=com.twofastlane.cryptomission ic=null mNaviBarColor 0 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2020-09-19 13:22:27.024 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: startInputInner - Id : 0
2020-09-19 13:22:27.024 12857-12857/com.twofastlane.cryptomission I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2020-09-19 13:22:27.033 12857-12857/com.twofastlane.cryptomission D/InputTransport: Input channel destroyed: 'ClientS', fd=169
2020-09-19 13:22:27.033 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.035 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.036 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.037 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: MSG_RESIZED: frame=(0,92,1080,2400) ci=(0,0,0,126) vi=(0,0,0,126) or=1
2020-09-19 13:22:27.051 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.066 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.068 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.082 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.084 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.099 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.101 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.116 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.117 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.132 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.134 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.149 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.151 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.166 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.168 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.182 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.184 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.199 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.201 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.216 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.217 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.232 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.234 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.249 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.251 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.266 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.267 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.282 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.284 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.299 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.300 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.315 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.317 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x79a857b100
2020-09-19 13:22:27.332 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79a857b100 -> 0x79ab776c00
2020-09-19 13:22:27.352 12857-16609/com.twofastlane.cryptomission W/e.cryptomissio: Accessing hidden method Ldalvik/system/CloseGuard;->close()V (greylist,core-platform-api, linking, allowed)
2020-09-19 13:22:27.352 12857-16611/com.twofastlane.cryptomission W/e.cryptomissio: Accessing hidden method Ldalvik/system/CloseGuard;->close()V (greylist,core-platform-api, linking, allowed)
2020-09-19 13:22:28.694 12857-16611/com.twofastlane.cryptomission I/SBlockchain: TronPublicRemoteClientImpl.getTokenInfo() result=TronTokenInfo(symbol='USDT', name='Tether USD', address='TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t', decimals=6, tokenType=trc20)
2020-09-19 13:22:28.734 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: Relayout returned: old=(0,92,1080,2400) new=(0,92,1080,2400) req=(1080,2308)0 dur=7 res=0x1 s={true 521162260480} ch=false
2020-09-19 13:22:28.734 12857-12857/com.twofastlane.cryptomission D/ScrollView:  onsize change changed 
2020-09-19 13:22:30.324 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: ViewPostIme pointer 0
2020-09-19 13:22:30.421 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: ViewPostIme pointer 1
2020-09-19 13:22:30.426 12857-12857/com.twofastlane.cryptomission I/SBlockchain: TronPaymentSheetPresenter.proceedTransaction
2020-09-19 13:22:30.428 12857-16132/com.twofastlane.cryptomission D/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
2020-09-19 13:22:30.435 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: setView = com.android.internal.policy.DecorView@2635619 TM=true MM=false
2020-09-19 13:22:30.436 12857-12857/com.twofastlane.cryptomission I/SBlockchain: HardwareWalletManagerImpl.getConnectedHardwareWallet() result: 0x50f7**********...
2020-09-19 13:22:30.451 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: Relayout returned: old=(0,92,1080,2274) new=(0,2046,1080,2274) req=(1080,228)0 dur=8 res=0x7 s={true 522692186112} ch=true
2020-09-19 13:22:30.452 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: createReliableSurface : 0x7939a7b380(0x79b2e1d000)
2020-09-19 13:22:30.454 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: eglCreateWindowSurface : 0x794c0d3780
2020-09-19 13:22:30.454 12857-12857/com.twofastlane.cryptomission E/DecorView: mWindow.mActivityCurrentConfig is null
2020-09-19 13:22:30.456 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.459 12857-16132/com.twofastlane.cryptomission E/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::sendDrawingTid()
2020-09-19 13:22:30.459 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: GPIS:: SetUp Pid : 12857    Tid : 16132
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@2635619[TronPaymentSheetActivity]
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@2635619[TronPaymentSheetActivity]
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission V/InputMethodManager: Starting input: tba=com.twofastlane.cryptomission ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2020-09-19 13:22:30.460 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: startInputInner - Id : 0
2020-09-19 13:22:30.461 12857-12857/com.twofastlane.cryptomission I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2020-09-19 13:22:30.463 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.464 12857-12857/com.twofastlane.cryptomission D/InputTransport: Input channel destroyed: 'ClientS', fd=172
2020-09-19 13:22:30.465 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.465 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: MSG_RESIZED: frame=(0,2046,1080,2274) ci=(0,0,0,0) vi=(0,0,0,0) or=1
2020-09-19 13:22:30.465 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2020-09-19 13:22:30.465 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@f2cc934[TronPaymentSheetActivity]
2020-09-19 13:22:30.465 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() 0
2020-09-19 13:22:30.475 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.481 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: Relayout returned: old=(0,2046,1080,2274) new=(0,2046,1080,2274) req=(1079,228)0 dur=4 res=0x1 s={true 522692186112} ch=false
2020-09-19 13:22:30.481 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.491 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.495 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.508 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.511 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.525 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.528 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.542 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.547 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.558 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.561 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.575 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.578 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.597 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.611 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.613 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.628 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.630 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.644 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.647 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.661 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.663 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.678 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.679 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.694 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.696 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.711 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:30.713 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79ab776c00
2020-09-19 13:22:30.728 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x79ab776c00 -> 0x794c0d3780
2020-09-19 13:22:32.223 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@c61586a[MainActivity]: stopped(false) old=false
2020-09-19 13:22:32.233 12857-12857/com.twofastlane.cryptomission D/SensorManager: registerListener :: 30, LSM6DSO Accelerometer, 66667, 0,  
2020-09-19 13:22:32.239 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@c61586a[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2020-09-19 13:22:32.239 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@58bb362[MainActivity]
2020-09-19 13:22:32.239 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:22:32.242 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@58bb362[MainActivity]
2020-09-19 13:22:32.242 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:22:32.242 12857-12857/com.twofastlane.cryptomission V/InputMethodManager: Starting input: tba=com.twofastlane.cryptomission ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2020-09-19 13:22:32.242 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: startInputInner - Id : 0
2020-09-19 13:22:32.242 12857-12857/com.twofastlane.cryptomission I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2020-09-19 13:22:32.243 12857-12857/com.twofastlane.cryptomission D/InputTransport: Input channel destroyed: 'ClientS', fd=176
2020-09-19 13:22:32.243 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2020-09-19 13:22:32.243 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@2635619[TronPaymentSheetActivity]
2020-09-19 13:22:32.243 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:22:32.245 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: makeCurrent EglSurface : 0x794c0d3780 -> 0x79a857b100
2020-09-19 13:22:32.250 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: stopped(true) old=false
2020-09-19 13:22:32.250 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: stopped(true) old=false
2020-09-19 13:22:32.256 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: destroyEglSurface : 0x79ab776c00
2020-09-19 13:22:32.257 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: ~ReliableSurface : 0x7957c4f000
2020-09-19 13:22:32.257 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@92d16dd[TronPaymentSheetActivity]: dispatchDetachedFromWindow
2020-09-19 13:22:32.259 12857-12857/com.twofastlane.cryptomission D/InputTransport: Input channel destroyed: 'a642b2b', fd=173
2020-09-19 13:22:32.259 12857-12857/com.twofastlane.cryptomission E/WindowManager: android.view.WindowLeaked: Activity com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity has leaked window DecorView@2635619[TronPaymentSheetActivity] that was originally added here
        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:769)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:461)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:95)
        at android.app.Dialog.show(Dialog.java:507)
        at com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity.d(SourceFile:166)
        at com.samsung.android.sdk.blockchain.i.ba.b(SourceFile:52)
        at com.samsung.android.sdk.blockchain.internal.coin.tron.paymentsheet.TronPaymentSheetActivity$e$1.onClick(SourceFile:304)
        at android.view.View.performClick(View.java:7869)
        at android.view.View.performClickInternal(View.java:7838)
        at android.view.View.access$3600(View.java:886)
        at android.view.View$PerformClick.run(View.java:29362)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:8154)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
2020-09-19 13:22:32.260 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: destroyEglSurface : 0x794c0d3780
2020-09-19 13:22:32.261 12857-16132/com.twofastlane.cryptomission D/OpenGLRenderer: ~ReliableSurface : 0x7939a7b380
2020-09-19 13:22:32.262 12857-12857/com.twofastlane.cryptomission I/ViewRootImpl@aea550c[TronPaymentSheetActivity]: dispatchDetachedFromWindow
2020-09-19 13:22:32.266 12857-12857/com.twofastlane.cryptomission D/InputTransport: Input channel destroyed: 'fe78de8', fd=86
2020-09-19 13:23:00.358 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: prepareNavigationBarInfo() DecorView@58bb362[MainActivity]
2020-09-19 13:23:00.359 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: getNavigationBarColor() -855310
2020-09-19 13:23:00.359 12857-12857/com.twofastlane.cryptomission V/InputMethodManager: Starting input: tba=com.twofastlane.cryptomission ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2020-09-19 13:23:00.359 12857-12857/com.twofastlane.cryptomission D/InputMethodManager: startInputInner - Id : 0
2020-09-19 13:23:00.359 12857-12857/com.twofastlane.cryptomission I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus

안녕하세요. 삼성 블록체인 운영팀입니다.
확인 결과 full log 파일이 필요할 것 같습니다.

아래 1,2번 항목은 기존 로그 파일을 clear 하는 단계로 스킵해주셔도 무방합니다.
문제가 발생하는 동작 재현 이후에 *#9900# 다이얼번호 누른 후, ‘Run DUmpstate/log’ 선택을 하게되면 로그 파일 확보하는데 로딩 시간이 걸리는데요. 해당 로딩 시간 완료 후 ‘Copy to SD card’ 선택하면 사용자 단말의 log 폴더에 파일이 저장됩니다. 해당 파일 전달 주시면 분석해서 답변 드릴 수 있도록 하겠습니다.

참고로 log 폴더 내 ‘dumpState_[DEVICE MODEL]_[TIMESTAMP]’ 타입의 파일만 전달주셔도 되니 참고 바랍니다.

  1. Dial *#9900#, Delete Dumstate/logcat
  2. Dial *#9900#, Select Debug Level to MID. This restarts the device.
  3. Reproduce the issue
  4. Again dial *#9900# and press “Run Dumpstate/logcat”
  5. When it is finished press “Copy To SD Card (include CP Ramdump)"
  6. In the main folder of the device file system, please look for the folder ‘log’. The log file should be there having name format: ‘dumpState_[DEVICE MODEL]_[TIMESTAMP]’
  7. Upload this dumpstate log file here as well.

I don’ t understand
Dial *#9900#, Delete Dumstate/logcat

Sorry for the confusion.
Please go to your device’s phone app and then dial *#9900# to get the SysDump menu.
Please let us know if you have any other query.

안녕하세요.

이메일로 dump 파일 전달해도 될까요?

I got the log from sysdump.

Could I send the log to you by mail?

안녕하세요. 삼성 블록체인 운영팀입니다.
wallet.sec@samsung.com 으로 메일 보내주시면 감사하겠습니다.

안녕하세요.
Platform SDK 담당자입니다.

보내주신 로그 파일 분석해보니
react-native framework와 호환성 문제가 있어
UI 관련된 문제는 지원이 어렵습니다.

대안으로는 react-native를 이용하여 별도의 Payment 화면을 구성하시고
TronServicesendTokenTransaction API를 사용하시면
USDT Token을 전송하실 수 있습니다.

감사합니다.

답변 감사합니다.

TronServicesendTokenTransaction API를 활용하는것도 해봤습니다.

다만, 이 부분은 현재 구글 파이어베이스와 삼성블록체인sdk가 protobuf관련 라이브러리 충돌이 발생해서요. 삼성블록체인 sdk를 적용을 못하고 있습니다.

  1. 삼성블록체인을 사용하기 위해
    build.gradle에 아래를 적용하면, 충돌이 발생합니다.
    // Protobuf
    implementation 'com.google.protobuf:protobuf-java:3.9.1'
    implementation 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
    annotationProcessor "org.eclipse.sisu:org.eclipse.sisu.inject:0.0.0.M5"
  1. 답변을 받은 내용이 있는데 파이어베이스 버젼을 변경하는 방법을 찾아보고 있고요. 이부분이 저희 앱이 react-native-firebase 라이브러리를 사용하고 이 라이브러리가 firebase를 쓰다보니 직접적으로 라이브러리 버젼변경이 어려운 상황입니다. 가능한지 확인하고 변경시도는 해보려고요.

Conflict issue with com.google.protobuf:protobuf-java and firebase

  1. 두번째는 각각 라이브러리가 사용하는 디팬던시 protobuf만 연결하고 싶은데요. 이부분은 build.gradle 셋팅관련해서 익숙치가 않아서 어떻게 하는지 모르겠습니다. 비슷한 문제로 아래 문제가 있습니다.

1번 방식으로 테스트 해볼예정이고, 2번 관련으로 각각 디팬던시를 설정할수있다던가… 이게 가능할까요?
다른 대안이 있으면 제안 감사합니다.

세번쨰로 고민중인건

삼성블록체인키스토어 sdk는 protobuf 라이브러리가 필요하지 않은 것 같더라고요.
삼성블록체인플랫폼sdk를 사용하지 않고 삼성블록체인키스토어 sdk만 사용해서 트론 usdt를 보낼 수 있을까요? 아니면 일단 tron만 보내도 괜찮을것 같습니다.

감사합니다.

안녕하세요
KeystoreSDK 담당자입니다.

KeystoreSDK만 사용하여 트론 usdt를 전달 할 수 있습니다.
다만, 앞선 발표에서 설명드린 것과 같이 키스토어는 트랜잭션의 생성 및 전송을 담당하지 않습니다.
따라서 앱에서 트랜잭션을 생성하고 직접 노드로 전달하여야 합니다.

우선 앱에서 트랜잭션 생성한 후,
트랜잭션의 byte array를 KeystoreSDK의 signTrxTransaction를 통해 전달하면 ScwSignTrxTransactionCallback을 통해 서명된 signedTransaction의 byte array를 받으실 수 있습니다.

KeystoreSDK를 통해 받은 signedTransaction을 노드로 전달하는 것을 앱에서 직접 구현해주셔야 합니다.

트랜잭션의 서명과 관련된 프로그래밍 가이드는


5. signTrxTransaction API 확인하실 수 있습니다.

지원하는 트랜잭션(컨트랙트)는 TriggerSmartContract을 포함하며 자세한 리스트는
https://developer.samsung.com/blockchain/keystore/keystore-sdk/resources.html 에서 확인하실 수 있습니다.

감사합니다.

2 Likes

답변 감사합니다.
한번 keystoreSDK를 통한 트랜잭션 전송으로 시도해보겠습니다.

혹시, 트론이나 trc-20 코인을 signTrxTransaction을 통해 전송하는 예제가 있을까요?
keystore을 통해 이더리움 전송하는 샘플 프로젝트 (open crypto)를 참고하면 될까요?

keystore sdk를 통해 rawtransaction을 signedtransaction을 만들고,
얘를 tron network로 보내려면 어떤 라이브러리르 써야하나요? (이더리움은 Web3j를 써서 보내는걸 확인했습니다.)

        Account account = mAccountsList.get(idx);
        ScwService.ScwSignTrxTransactionCallback callback =
                new ScwService.ScwSignTrxTransactionCallback() {
                    @Override
                    public void onSuccess(byte[] signedTrxTransaction) {
                        //handle signed Tron transaction
                    }

                    @Override
                    public void onFailure(int errorCode, String errorMessage) {
                        //handle error

                    }
                };

        String hdPath = ScwService.getHdPath(ScwCoinType.TRON, 0);
        String from = account.getAddress();
        String to = cryptomission_receiver;
        int amount = balance;

        // byte[] unsignedTransaction = createUnsignedTransaction(hdPath from, to, amount);
        // ScwService.getInstance().signTrxTransaction(callback, unsignedTransaction, hdPath);

혹시 지갑에 있는 트론 private key를 keystore sdk api를 활용해서 직접 가져올수도 있나요?

No.

Samsung Blockchain Keystore SDK allows you to sign an unsigned transaction using API only, you cannot fetch the private keys.

Can check this response also.