Отправляем запрос по валюте
query { currency(id: "ETH") { id currencyPaymentInterfaces { id paymentInterface { id } userDepositEnable userDirectDepositEnabled enable } } }
Для валюты приходит несколько currencyPaymentInterfaces.
Выбираем enable=true, userDepositEnable=true - эти используются для депозита через proxy-address - generateWallet
Выбираем enable=true, userDirectDepositEnabled=true - эти используются для депозита walletConnect
Запоминаем выбор пользователя - ETH + FIREBLOCKS-GOERLI-PI
запрашиваем
mutation { getWalletConnectURI_v1 }
показываем qr-code и подписываемся на
subscription { walletToConnect_v1( currencyId:"ETH", token:"eyJhbGciOiJSUzI1NiJ9.eyJ...." ) { address paymentInterface { id } action chainId } }
Как только получаем по подписке сообщение, где paymentInterface.id равен запомненному FIREBLOCKS-GOERLI-PI
{ "data": { "walletToConnect_v1": { "address": "0x57e4469e047577bd1f47328989d6651198154cc2", "paymentInterface": { "id": "FIREBLOCKS-GOERLI-PI" }, "action": "connecting", "chainId": 5 } } }
Отправляем на подпись верификационное сообщение
mutation { connectWallet_v1( paymentInterfaceId:"FIREBLOCKS-GOERLI-PI", address:"0x57e4469e047577bd1f47328989d6651198154cc2") { id } }
Затем запрашиваем подпись депозитной транзакции:
mutation { userDirectDeposit ( paymentInterfaceId:"FIREBLOCKS-GOERLI-PI" type: DIRECT_DEPOSIT address: "0x57E4469E047577bd1f47328989d6651198154cc2" currencyId: "ETH" amount: 0.0013 ) }