├── operators_sample_website ├── website │ ├── public │ │ ├── favicon.ico │ │ ├── robots.txt │ │ ├── assets │ │ │ ├── img │ │ │ │ ├── apiKey.png │ │ │ │ ├── homePage.png │ │ │ │ ├── IGbCasRestServices.png │ │ │ │ ├── sellAmountFiatCrypto.png │ │ │ │ ├── createSellTransaction.png │ │ │ │ └── terminalsWithAvailableCash.png │ │ │ ├── js │ │ │ │ ├── statusInfo.js │ │ │ │ └── gbScripts.js │ │ │ └── css │ │ │ │ └── gbStyles.css │ │ └── .htaccess │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ └── app.js │ │ └── lang │ │ │ └── en │ │ │ ├── pagination.php │ │ │ ├── auth.php │ │ │ └── passwords.php │ ├── database │ │ ├── .gitignore │ │ ├── seeders │ │ │ └── DatabaseSeeder.php │ │ └── migrations │ │ │ └── 2014_10_12_100000_create_password_resets_table.php │ ├── storage │ │ ├── logs │ │ │ └── .gitignore │ │ ├── app │ │ │ ├── public │ │ │ │ └── .gitignore │ │ │ └── .gitignore │ │ └── framework │ │ │ ├── sessions │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ └── .gitignore │ │ │ ├── views │ │ │ └── .gitignore │ │ │ ├── cache │ │ │ ├── data │ │ │ │ └── .gitignore │ │ │ └── .gitignore │ │ │ └── .gitignore │ ├── bootstrap │ │ └── cache │ │ │ └── .gitignore │ ├── .gitattributes │ ├── tests │ │ ├── TestCase.php │ │ ├── Unit │ │ │ └── ExampleTest.php │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ └── CreatesApplication.php │ ├── .styleci.yml │ ├── .gitignore │ ├── .editorconfig │ ├── app │ │ ├── Exceptions │ │ │ ├── TransactionStatusException.php │ │ │ ├── AuthenticationException.php │ │ │ ├── TerminalsException.php │ │ │ ├── SellTransactionException.php │ │ │ └── TerminalsWithAvailableCashException.php │ │ ├── Http │ │ │ ├── Middleware │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── VerifyCsrfToken.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── Authenticate.php │ │ │ │ ├── TrustProxies.php │ │ │ │ └── RedirectIfAuthenticated.php │ │ │ └── Controllers │ │ │ │ └── Controller.php │ │ ├── Providers │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ └── EventServiceProvider.php │ │ └── GBlib │ │ │ └── Terminal.php │ ├── package.json │ ├── webpack.mix.js │ ├── routes │ │ ├── channels.php │ │ ├── api.php │ │ └── console.php │ └── server.php ├── src │ └── main │ │ ├── resources │ │ └── batm-extensions.xml │ │ └── java │ │ └── com │ │ └── generalbytes │ │ └── batm │ │ └── server │ │ └── extensions │ │ └── website │ │ └── AuthenticationException.java └── build.gradle ├── verification_site ├── settings.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── src │ ├── main │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── static │ │ │ │ ├── i18n │ │ │ │ └── lang.en_US.js │ │ │ │ ├── style.css │ │ │ │ └── index.html │ │ └── java │ │ │ └── com │ │ │ └── generalbytes │ │ │ └── verification │ │ │ ├── controller │ │ │ └── RegisterNewApplicantReq.java │ │ │ ├── data │ │ │ └── Applicant.java │ │ │ └── VerificationSiteApp.java │ └── test │ │ └── java │ │ └── com │ │ └── generalbytes │ │ └── verification │ │ └── VerificationSiteAppTests.java └── .gitignore ├── doc └── open_extensions.png ├── server_extensions_extra └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── generalbytes │ │ │ └── batm │ │ │ └── server │ │ │ └── extensions │ │ │ ├── extra │ │ │ ├── ethereum │ │ │ │ ├── erc20 │ │ │ │ │ ├── generated │ │ │ │ │ │ ├── ERC20Interface.bin │ │ │ │ │ │ ├── readme.md │ │ │ │ │ │ └── ERC20Interface.sol │ │ │ │ │ ├── bizz │ │ │ │ │ │ └── BizzDefinition.java │ │ │ │ │ └── dai │ │ │ │ │ │ └── DaiDefinition.java │ │ │ │ ├── sources │ │ │ │ │ └── stasis │ │ │ │ │ │ ├── IStasisTickerRateAPI.java │ │ │ │ │ │ └── StasisTickerResponse.java │ │ │ │ ├── EthDefinition.java │ │ │ │ └── UsdtDefinition.java │ │ │ ├── worldcoin │ │ │ │ └── sources │ │ │ │ │ └── cd │ │ │ │ │ └── CompatSSLSocketFactory.java │ │ │ ├── identityverification │ │ │ │ ├── onfido │ │ │ │ │ ├── OnfidoRestService.java │ │ │ │ │ ├── OnfidoRegion.java │ │ │ │ │ └── verificationsite │ │ │ │ │ │ └── dto │ │ │ │ │ │ └── ServerAPIResponse.java │ │ │ │ ├── sumsub │ │ │ │ │ └── api │ │ │ │ │ │ └── vo │ │ │ │ │ │ ├── QuestionnaireAnswer.java │ │ │ │ │ │ ├── ApplicantReviewedWebhook.java │ │ │ │ │ │ ├── enums │ │ │ │ │ │ ├── ReviewAnswer.java │ │ │ │ │ │ └── ReviewRejectType.java │ │ │ │ │ │ ├── QuestionnaireItems.java │ │ │ │ │ │ ├── Questionnaire.java │ │ │ │ │ │ ├── InspectImageReviewResult.java │ │ │ │ │ │ ├── DocumentDefinition.java │ │ │ │ │ │ ├── CreateIdentityApplicantRequest.java │ │ │ │ │ │ ├── ApplicantIdResponse.java │ │ │ │ │ │ ├── InspectionInfoResponse.java │ │ │ │ │ │ ├── ApplicantDocument.java │ │ │ │ │ │ ├── ApplicantInfo.java │ │ │ │ │ │ ├── InspectionImage.java │ │ │ │ │ │ ├── ApplicantAddress.java │ │ │ │ │ │ ├── CreateIdentityVerificationSessionResponse.java │ │ │ │ │ │ ├── BaseWebhookBody.java │ │ │ │ │ │ ├── ApplicantReviewResult.java │ │ │ │ │ │ └── ApplicantInfoResponse.java │ │ │ │ ├── identitypiece │ │ │ │ │ └── SelfieIdentityPiece.java │ │ │ │ └── veriff │ │ │ │ │ └── api │ │ │ │ │ └── NonNullObjectMapperFactory.java │ │ │ ├── bitcoin │ │ │ │ ├── exchanges │ │ │ │ │ ├── bitbuy │ │ │ │ │ │ └── dto │ │ │ │ │ │ │ ├── OrderSide.java │ │ │ │ │ │ │ ├── CurrencySide.java │ │ │ │ │ │ │ ├── OrderType.java │ │ │ │ │ │ │ ├── DepositAddress.java │ │ │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ │ │ ├── CreateOrderResponse.java │ │ │ │ │ │ │ ├── Balance.java │ │ │ │ │ │ │ ├── BitbuyResponse.java │ │ │ │ │ │ │ ├── OrderBook.java │ │ │ │ │ │ │ ├── OrderBookLevel.java │ │ │ │ │ │ │ ├── Paginated.java │ │ │ │ │ │ │ ├── QuoteResponse.java │ │ │ │ │ │ │ └── QuoteRequest.java │ │ │ │ │ ├── coinzix │ │ │ │ │ │ ├── dto │ │ │ │ │ │ │ ├── entities │ │ │ │ │ │ │ │ ├── NewOrderId.java │ │ │ │ │ │ │ │ ├── BalanceData.java │ │ │ │ │ │ │ │ ├── OrderBookData.java │ │ │ │ │ │ │ │ ├── Balance.java │ │ │ │ │ │ │ │ ├── OrderBookPrice.java │ │ │ │ │ │ │ │ ├── DepositAddress.java │ │ │ │ │ │ │ │ ├── Currency.java │ │ │ │ │ │ │ │ ├── Ticker.java │ │ │ │ │ │ │ │ ├── Order.java │ │ │ │ │ │ │ │ └── Withdraw.java │ │ │ │ │ │ │ ├── responses │ │ │ │ │ │ │ │ ├── BasicResponse.java │ │ │ │ │ │ │ │ ├── TickerResponse.java │ │ │ │ │ │ │ │ ├── WithdrawResponse.java │ │ │ │ │ │ │ │ ├── GetOrderResponse.java │ │ │ │ │ │ │ │ ├── OrderBookResponse.java │ │ │ │ │ │ │ │ ├── BalancesResponse.java │ │ │ │ │ │ │ │ ├── NewOrderResponse.java │ │ │ │ │ │ │ │ └── GetDepositAddressResponse.java │ │ │ │ │ │ │ └── requests │ │ │ │ │ │ │ │ ├── BasicRequest.java │ │ │ │ │ │ │ │ ├── GetOrderRequest.java │ │ │ │ │ │ │ │ ├── WithdrawRequest.java │ │ │ │ │ │ │ │ ├── NewOrderRequest.java │ │ │ │ │ │ │ │ └── GetDepositAddressRequest.java │ │ │ │ │ │ ├── AskComparator.java │ │ │ │ │ │ ├── BidComparator.java │ │ │ │ │ │ └── Constants.java │ │ │ │ │ └── bitpandapro │ │ │ │ │ │ └── dto │ │ │ │ │ │ ├── CreateDepositAddress.java │ │ │ │ │ │ └── OrderState.java │ │ │ │ ├── wallets │ │ │ │ │ ├── coinbase │ │ │ │ │ │ └── v2 │ │ │ │ │ │ │ └── dto │ │ │ │ │ │ │ └── CBPaginatedItem.java │ │ │ │ │ ├── cryptx │ │ │ │ │ │ └── v2 │ │ │ │ │ │ │ └── dto │ │ │ │ │ │ │ ├── CryptXReceivedAmount.java │ │ │ │ │ │ │ ├── Balance.java │ │ │ │ │ │ │ └── CryptXException.java │ │ │ │ │ └── bitgo │ │ │ │ │ │ └── v2 │ │ │ │ │ │ └── dto │ │ │ │ │ │ ├── BitGoTransfersResponse.java │ │ │ │ │ │ └── BitGoTransfer.java │ │ │ │ └── coinbase │ │ │ │ │ └── api │ │ │ │ │ └── dto │ │ │ │ │ ├── CoinbaseOrderSide.java │ │ │ │ │ ├── CoinbaseOrderResponse.java │ │ │ │ │ ├── CoinbaseCreateAddressRequest.java │ │ │ │ │ └── CoinbaseCreateAddressResponse.java │ │ │ ├── nano │ │ │ │ ├── rpc │ │ │ │ │ ├── RpcException.java │ │ │ │ │ └── dto │ │ │ │ │ │ ├── AccountBalance.java │ │ │ │ │ │ └── Block.java │ │ │ │ └── wallet │ │ │ │ │ └── node │ │ │ │ │ └── INanoRpcWallet.java │ │ │ ├── lightningbitcoin │ │ │ │ ├── wallets │ │ │ │ │ └── walletofsatoshi │ │ │ │ │ │ └── dto │ │ │ │ │ │ ├── Account.java │ │ │ │ │ │ ├── InvoiceRequest.java │ │ │ │ │ │ ├── Invoice.java │ │ │ │ │ │ ├── Balances.java │ │ │ │ │ │ └── PaymentRequest.java │ │ │ │ └── lnurl │ │ │ │ │ ├── dto │ │ │ │ │ ├── OkLnurlResponse.java │ │ │ │ │ └── ErrorLnurlResponse.java │ │ │ │ │ └── LnurlRestServiceException.java │ │ │ ├── communication │ │ │ │ ├── smsbranacz │ │ │ │ │ ├── SmsBranaCzApiCredentials.java │ │ │ │ │ ├── SmsBranaCzValidationException.java │ │ │ │ │ └── SmsBranaCzFactory.java │ │ │ │ └── sozurinet │ │ │ │ │ ├── SozuriNetApiCredentials.java │ │ │ │ │ ├── SozuriNetValidationException.java │ │ │ │ │ └── SozuriNetFactory.java │ │ │ ├── bitcoincash │ │ │ │ └── SlpAddressValidator.java │ │ │ ├── slp │ │ │ │ └── wallets │ │ │ │ │ └── electroncashslp │ │ │ │ │ └── ElectrumErrorResponseException.java │ │ │ ├── dogecoin │ │ │ │ └── wallets │ │ │ │ │ └── blockio │ │ │ │ │ └── dto │ │ │ │ │ └── BlockIORequestSubmitTransaction.java │ │ │ ├── cardano │ │ │ │ └── wallets │ │ │ │ │ └── dto │ │ │ │ │ ├── Wallet.java │ │ │ │ │ ├── Payment.java │ │ │ │ │ ├── CreateTransactionRequest.java │ │ │ │ │ ├── Amount.java │ │ │ │ │ └── Balance.java │ │ │ ├── watchlists │ │ │ │ ├── eu │ │ │ │ │ └── tags │ │ │ │ │ │ └── package-info.java │ │ │ │ └── ca │ │ │ │ │ └── tags │ │ │ │ │ └── DataSet.java │ │ │ ├── solana │ │ │ │ ├── SolanaDefinition.java │ │ │ │ ├── SolanaPaymentSupport.java │ │ │ │ ├── UsdcSolanaDefinition.java │ │ │ │ └── UsdcSolanaPaymentSupport.java │ │ │ ├── ethereumclassic │ │ │ │ └── EtcDefinition.java │ │ │ └── tron │ │ │ │ └── UsdttronDefinition.java │ │ │ └── travelrule │ │ │ ├── gtr │ │ │ ├── dto │ │ │ │ ├── GtrWebhookPayload.java │ │ │ │ ├── GtrVaspInfo.java │ │ │ │ ├── ivms101 │ │ │ │ │ ├── GtrNaturalPerson.java │ │ │ │ │ ├── GtrPerson.java │ │ │ │ │ ├── GtrOriginator.java │ │ │ │ │ ├── GtrBeneficiary.java │ │ │ │ │ ├── GtrPersonNameIdentifier.java │ │ │ │ │ ├── GtrPersonName.java │ │ │ │ │ ├── GtrIvms101.java │ │ │ │ │ └── GtrIvms101Payload.java │ │ │ │ ├── GtrVerifyField.java │ │ │ │ ├── GtrVaspBasicInfo.java │ │ │ │ ├── GtrVaspResponse.java │ │ │ │ ├── GtrVaspListResponse.java │ │ │ │ └── GtrLoginResponse.java │ │ │ ├── api │ │ │ │ └── GtrApiCall.java │ │ │ └── handler │ │ │ │ └── GtrWebhookHandler.java │ │ │ ├── sumsub │ │ │ ├── webhooks │ │ │ │ └── dto │ │ │ │ │ └── SumsubWebhookRequest.java │ │ │ ├── SumsubConfiguration.java │ │ │ └── api │ │ │ │ └── dto │ │ │ │ ├── updatetransactionhash │ │ │ │ └── SumsubUpdateTransactionHashRequest.java │ │ │ │ ├── transactionownershipresolution │ │ │ │ └── SumsubTransactionOwnershipResolutionResponse.java │ │ │ │ └── transactioninfo │ │ │ │ └── SumsubPaymentMethod.java │ │ │ └── notabene │ │ │ ├── NotabeneConfiguration.java │ │ │ ├── dto │ │ │ ├── NotabeneCryptoAddressType.java │ │ │ ├── NotabenePerson.java │ │ │ ├── NotabeneIvms.java │ │ │ ├── NotabeneDateAndPlaceOfBirth.java │ │ │ ├── NotabenePersonName.java │ │ │ ├── NotabeneGeographicAddressType.java │ │ │ ├── NotabeneProof.java │ │ │ ├── NotabeneTransferType.java │ │ │ ├── NotabeneAddressOwnershipInfoRequest.java │ │ │ ├── NotabeneTransferInfoWithIvms.java │ │ │ ├── NotabeneWebhookMessagePayload.java │ │ │ ├── NotabeneNameIdentifier.java │ │ │ ├── NotabeneUnregisterWebhookRequest.java │ │ │ ├── NotabeneRegisterWebhookRequest.java │ │ │ ├── NotabeneGenerateAccessTokenResponse.java │ │ │ ├── NotabeneApiError.java │ │ │ ├── NotabeneTransactionBlockchainInfo.java │ │ │ ├── NotabeneTransferUpdateRequest.java │ │ │ └── NotabeneNationalIdentification.java │ │ │ └── api │ │ │ └── NotabeneApiCall.java │ └── resources │ │ ├── ant.png │ │ ├── bat.png │ │ ├── bay.png │ │ ├── bch.png │ │ ├── bnb.png │ │ ├── bsd.png │ │ ├── btc.png │ │ ├── btx.png │ │ ├── dai.png │ │ ├── ddb.png │ │ ├── dex.png │ │ ├── eca.png │ │ ├── efl.png │ │ ├── egg.png │ │ ├── etc.png │ │ ├── fto.png │ │ ├── gq.png │ │ ├── ht.png │ │ ├── ilc.png │ │ ├── kmd.png │ │ ├── leo.png │ │ ├── ltc.png │ │ ├── max.png │ │ ├── mec.png │ │ ├── mkr.png │ │ ├── mue.png │ │ ├── nbt.png │ │ ├── nlg.png │ │ ├── nxt.png │ │ ├── nyc.png │ │ ├── pac.png │ │ ├── pot.png │ │ ├── rep.png │ │ ├── sol.png │ │ ├── sum.png │ │ ├── sys.png │ │ ├── tkn.png │ │ ├── trx.png │ │ ├── via.png │ │ ├── wdc.png │ │ ├── xpm.png │ │ ├── xrp.png │ │ ├── anon.png │ │ ├── bizz.png │ │ ├── btbs.png │ │ ├── btcp.png │ │ ├── btdx.png │ │ ├── burst.png │ │ ├── cloak.png │ │ ├── dash.png │ │ ├── doge.png │ │ ├── eurs.png │ │ ├── flash.png │ │ ├── hatch.png │ │ ├── jmel.png │ │ ├── l_btc.png │ │ ├── lbtc.png │ │ ├── linda.png │ │ ├── lisk.png │ │ ├── nano.png │ │ ├── nuls.png │ │ ├── paxg.png │ │ ├── shib.png │ │ ├── smart.png │ │ ├── spice.png │ │ ├── start.png │ │ ├── tent.png │ │ ├── usdc.png │ │ ├── usds.png │ │ ├── usdt.png │ │ ├── verum.png │ │ ├── wilc.png │ │ ├── zcoin.png │ │ ├── zpae.png │ │ ├── digibyte.png │ │ ├── elrond.png │ │ ├── groestl.png │ │ ├── jobchain.png │ │ ├── suncash.png │ │ ├── usdcsol.png │ │ ├── usdttron.png │ │ ├── lunchmoney.png │ │ ├── cardano_ada.png │ │ ├── com │ │ └── generalbytes │ │ │ └── batm │ │ │ └── server │ │ │ └── extensions │ │ │ └── extra │ │ │ └── slp │ │ │ └── slpdb │ │ │ └── dto │ │ │ └── status.json │ │ └── xpm.svg │ └── test │ ├── resources │ ├── com │ │ └── generalbytes │ │ │ └── batm │ │ │ └── server │ │ │ └── extensions │ │ │ └── extra │ │ │ └── identityverification │ │ │ └── veriff │ │ │ └── verification-event.json │ └── logback-test.xml │ └── java │ └── com │ └── generalbytes │ └── batm │ └── server │ └── extensions │ ├── coinutil │ └── BCHUtilTest.java │ ├── travelrule │ └── sumsub │ │ └── SumsubConfigurationTest.java │ ├── extra │ ├── litecoin │ │ └── LitecoinAddressValidatorTest.java │ ├── elrond │ │ └── ElrondAddressValidatorTest.java │ └── communication │ │ └── sozurinet │ │ └── SozuriNetFactoryTest.java │ └── common │ └── sumsub │ └── api │ └── digest │ └── SumsubTimestampProviderTest.java ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── bump-copyright.sh ├── server_extensions_api └── src │ └── main │ └── java │ └── com │ └── generalbytes │ └── batm │ └── server │ ├── extensions │ ├── customfields │ │ ├── value │ │ │ ├── CustomFieldValue.java │ │ │ ├── BooleanCustomFieldValue.java │ │ │ ├── StringCustomFieldValue.java │ │ │ ├── LocalDateCustomFieldValue.java │ │ │ ├── FileCustomFieldValue.java │ │ │ └── ChoiceCustomFieldValue.java │ │ ├── CustomFieldDefinitionAvailability.java │ │ └── CustomField.java │ ├── IApiAccess.java │ ├── ICashCollectionDay.java │ ├── IApplicationListener.java │ ├── IVerificationInfo.java │ ├── aml │ │ ├── verification │ │ │ └── DocumentType.java │ │ └── IContactResponse.java │ ├── IRemotePrinterListener.java │ ├── ApiAccessType.java │ ├── IOrganization.java │ ├── ILightningExchange.java │ ├── ICustomString.java │ ├── travelrule │ │ ├── ITravelRuleIncomingTransferResult.java │ │ └── ITravelRuleIncomingTransferData.java │ ├── event │ │ └── ApplicationEvent.java │ └── IdentityFilter.java │ └── coinutil │ └── Hex.java ├── server_extensions_template ├── src │ └── main │ │ ├── resources │ │ └── batm-extensions.xml │ │ └── java │ │ └── com │ │ └── mygreatcompany │ │ └── batm │ │ └── server │ │ └── extensions │ │ └── myfirstextension │ │ └── MyFirstExtension.java └── build.gradle ├── .gitignore ├── gradle.properties ├── .editorconfig ├── annotations ├── build.gradle └── src │ └── main │ └── java │ └── com │ └── generalbytes │ └── batm │ └── validation │ └── InputValidation.java ├── country ├── build.gradle └── src │ └── main │ └── java │ └── com │ └── generalbytes │ └── batm │ └── server │ └── extensions │ ├── CountryRegion.java │ └── CountryAustralia.java ├── batm_ssh_tunnel ├── src │ ├── main │ │ └── resources │ │ │ └── logback.xml │ └── dist │ │ └── batm-ssh-tunnel.service └── build.gradle ├── settings.gradle ├── server_extensions_examples └── src │ └── main │ └── java │ └── com │ └── generalbytes │ └── batm │ └── server │ └── extensions │ └── examples │ └── location │ ├── CashCollectionDayExample.java │ ├── LocationExampleIRestService.java │ └── OrganizationExample.java ├── server_extensions_test └── build.gradle ├── .github └── workflows │ └── gradle.yml └── currencies └── build.gradle /operators_sample_website/website/public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /operators_sample_website/website/resources/css/app.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /operators_sample_website/website/database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite* 2 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /verification_site/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'verification_site' 2 | -------------------------------------------------------------------------------- /operators_sample_website/website/bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/resources/js/app.js: -------------------------------------------------------------------------------- 1 | require('./bootstrap'); 2 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /operators_sample_website/website/storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /doc/open_extensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/doc/open_extensions.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/erc20/generated/ERC20Interface.bin: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/worldcoin/sources/cd/CompatSSLSocketFactory.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/onfido/OnfidoRestService.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/ant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/ant.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/bat.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/bay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/bay.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/bch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/bch.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/bnb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/bnb.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/bsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/bsd.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/btc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/btc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/btx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/btx.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/dai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/dai.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/ddb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/ddb.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/dex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/dex.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/eca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/eca.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/efl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/efl.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/egg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/egg.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/etc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/etc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/fto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/fto.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/gq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/gq.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/ht.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/ht.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/ilc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/ilc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/kmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/kmd.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/leo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/leo.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/ltc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/ltc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/max.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/mec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/mec.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/mkr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/mkr.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/mue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/mue.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/nbt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/nbt.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/nlg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/nlg.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/nxt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/nxt.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/nyc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/nyc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/pac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/pac.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/pot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/pot.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/rep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/rep.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/sol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/sol.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/sum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/sum.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/sys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/sys.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/tkn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/tkn.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/trx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/trx.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/via.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/via.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/wdc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/wdc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/xpm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/xpm.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/xrp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/xrp.png -------------------------------------------------------------------------------- /bump-copyright.sh: -------------------------------------------------------------------------------- 1 | grep -rl "Copyright (C) 2014-2019 GENERAL BYTES" | xargs sed -i 's/Copyright (C) 2014-2019 GENERAL BYTES/Copyright (C) 2014-2020 GENERAL BYTES/g' 2 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/anon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/anon.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/bizz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/bizz.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/btbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/btbs.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/btcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/btcp.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/btdx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/btdx.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/burst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/burst.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/cloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/cloak.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/dash.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/doge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/doge.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/eurs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/eurs.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/flash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/flash.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/hatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/hatch.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/jmel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/jmel.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/l_btc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/l_btc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/lbtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/lbtc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/linda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/linda.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/lisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/lisk.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/nano.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/nano.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/nuls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/nuls.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/paxg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/paxg.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/shib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/shib.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/smart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/smart.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/spice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/spice.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/start.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/tent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/tent.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/usdc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/usdc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/usds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/usds.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/usdt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/usdt.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/verum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/verum.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/wilc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/wilc.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/zcoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/zcoin.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/zpae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/zpae.png -------------------------------------------------------------------------------- /verification_site/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/verification_site/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/digibyte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/digibyte.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/elrond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/elrond.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/groestl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/groestl.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/jobchain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/jobchain.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/suncash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/suncash.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/usdcsol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/usdcsol.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/usdttron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/usdttron.png -------------------------------------------------------------------------------- /verification_site/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8443 2 | security.require-ssl=false 3 | logging.file.name=/var/log/batm/verification-site.log 4 | -------------------------------------------------------------------------------- /operators_sample_website/website/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/lunchmoney.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/lunchmoney.png -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/cardano_ada.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/server_extensions_extra/src/main/resources/cardano_ada.png -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/img/apiKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/operators_sample_website/website/public/assets/img/apiKey.png -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/img/homePage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/operators_sample_website/website/public/assets/img/homePage.png -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/img/IGbCasRestServices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/operators_sample_website/website/public/assets/img/IGbCasRestServices.png -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/img/sellAmountFiatCrypto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/operators_sample_website/website/public/assets/img/sellAmountFiatCrypto.png -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/img/createSellTransaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/operators_sample_website/website/public/assets/img/createSellTransaction.png -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/img/terminalsWithAvailableCash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GENERALBYTESCOM/batm_public/HEAD/operators_sample_website/website/public/assets/img/terminalsWithAvailableCash.png -------------------------------------------------------------------------------- /operators_sample_website/website/storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | compiled.php 2 | config.php 3 | down 4 | events.scanned.php 5 | maintenance.php 6 | routes.php 7 | routes.scanned.php 8 | schedule-* 9 | services.json 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/resources/com/generalbytes/batm/server/extensions/extra/slp/slpdb/dto/status.json: -------------------------------------------------------------------------------- 1 | { 2 | "v": 3, 3 | "q": { 4 | "db":["s"], 5 | "find": {}, 6 | "limit": 1 7 | } 8 | } -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/value/CustomFieldValue.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields.value; 2 | 3 | public interface CustomFieldValue { 4 | } 5 | -------------------------------------------------------------------------------- /operators_sample_website/src/main/resources/batm-extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /server_extensions_template/src/main/resources/batm-extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .git 2 | .DS_Store 3 | build/ 4 | out/ 5 | .idea 6 | .gradle 7 | *.iml 8 | target 9 | install-libs.sh 10 | .mvn-repo 11 | ..gitignore.swp 12 | .project 13 | .classpath 14 | .settings/ 15 | .vscode/ 16 | 17 | local.properties 18 | **/bin/ 19 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /operators_sample_website/website/tests/TestCase.php: -------------------------------------------------------------------------------- 1 | getTerminalSerialNumbers(); 7 | 8 | String getIpWhitelist(); 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/ICashCollectionDay.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | public interface ICashCollectionDay { 4 | 5 | /** 6 | * Day of month scheduled for a cash withdrawal 7 | */ 8 | Integer getDayOfMonth(); 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/communication/smsbranacz/SmsBranaCzApiCredentials.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.smsbranacz; 2 | 3 | public record SmsBranaCzApiCredentials(String login, String salt, String time, String auth) { 4 | } 5 | -------------------------------------------------------------------------------- /annotations/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("shared-publish-conventions") 3 | } 4 | 5 | group = projectGroup 6 | version = projectVersion 7 | 8 | java { 9 | toolchain { 10 | // must stay on Java 11 due to compatibility issues 11 | languageVersion.set(JavaLanguageVersion.of(11)) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/requests/BasicRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.requests; 2 | 3 | public class BasicRequest { 4 | public long request_id = System.currentTimeMillis(); 5 | } 6 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/nano/rpc/dto/AccountBalance.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.nano.rpc.dto; 2 | 3 | import java.math.BigInteger; 4 | 5 | public record AccountBalance(BigInteger confBalance, BigInteger unconfBalance, BigInteger unconfPending) { 6 | } 7 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/IApplicationListener.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | import com.generalbytes.batm.server.extensions.event.ApplicationEvent; 4 | 5 | public interface IApplicationListener { 6 | 7 | default void onStartup(ApplicationEvent event) {}; 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/CreateOrderResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | public class CreateOrderResponse { 4 | public QuoteRequest rfqRequest; 5 | public QuoteResponse rfqResponse; 6 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/requests/GetOrderRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.requests; 2 | 3 | public class GetOrderRequest extends BasicRequest { 4 | 5 | public String order_id; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/communication/sozurinet/SozuriNetApiCredentials.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.sozurinet; 2 | 3 | public record SozuriNetApiCredentials(String project, String from, String campaign, String channel, String apiKey) { 4 | } 5 | -------------------------------------------------------------------------------- /operators_sample_website/src/main/java/com/generalbytes/batm/server/extensions/website/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.website; 2 | 3 | public class AuthenticationException extends RuntimeException { 4 | 5 | public AuthenticationException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/IVerificationInfo.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | public interface IVerificationInfo { 4 | 5 | boolean isSuccess(); 6 | String getErrorMessage(); 7 | String getApplicantId(); 8 | String getVerificationWebUrl(); 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoincash/SlpAddressValidator.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoincash; 2 | 3 | public class SlpAddressValidator extends BitcoinCashAddressValidator { 4 | public SlpAddressValidator() { 5 | super("simpleledger"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /verification_site/src/main/resources/static/i18n/lang.en_US.js: -------------------------------------------------------------------------------- 1 | const langData = { 2 | "welcome": { 3 | "description_p_1": "To buy crypto, we will need to verify your identity.", 4 | "description_p_2": "It will only take a couple of minutes.", 5 | "next_button": "Next", 6 | "title": "Verify Your Identity" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/coinbase/api/dto/CoinbaseOrderSide.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.coinbase.api.dto; 2 | 3 | /** 4 | * Holds the possible sides of Coinbase orders. 5 | */ 6 | public enum CoinbaseOrderSide { 7 | BUY, 8 | SELL 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/OrderBookData.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | public class OrderBookData { 4 | 5 | public OrderBookPrice[] buy; 6 | public OrderBookPrice[] sell; 7 | 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/GtrWebhookPayload.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto; 2 | 3 | /** 4 | * Represents the base webhook payload. This is to be extended with more specific types of payloads. 5 | */ 6 | public interface GtrWebhookPayload { 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/Balance.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | public class Balance { 4 | public long balance; 5 | public long balance_available; 6 | public Currency currency; 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/OrderBookPrice.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | public class OrderBookPrice { 4 | public String volume; 5 | public long count; 6 | public String rate; 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/nano/rpc/dto/Block.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.nano.rpc.dto; 2 | 3 | import java.math.BigInteger; 4 | 5 | public record Block(String type, String account, BigInteger amount, String hash) { 6 | public static final String TYPE_RECEIVE = "receive"; 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/resources/com/generalbytes/batm/server/extensions/extra/identityverification/veriff/verification-event.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "f04bdb47-d3be-4b28-b028-a652feb060b5", 3 | "attemptId": "e30122d1-740b-4764-853f-470374a7abf4", 4 | "feature": "selfid", 5 | "code": 7002, 6 | "action": "submitted", 7 | "vendorData": "QWE123" 8 | } -------------------------------------------------------------------------------- /verification_site/src/test/java/com/generalbytes/verification/VerificationSiteAppTests.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.verification; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class VerificationSiteAppTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/QuestionnaireAnswer.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class QuestionnaireAnswer extends JsonObject { 7 | private String value; 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/Balance.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class Balance { 6 | public String symbol; 7 | public BigDecimal reserved; 8 | public BigDecimal available; 9 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/BitbuyResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | public class BitbuyResponse { 4 | public T data; 5 | public String status; 6 | public String message; 7 | public Integer statusCode; 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/CustomFieldDefinitionAvailability.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields; 2 | 3 | /** 4 | * Specifies if a custom field belongs to a location or an identity 5 | */ 6 | public enum CustomFieldDefinitionAvailability { 7 | LOCATION, 8 | IDENTITY; 9 | } 10 | -------------------------------------------------------------------------------- /operators_sample_website/website/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [docker-compose.yml] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/lnurl/dto/OkLnurlResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.lnurl.dto; 2 | 3 | public class OkLnurlResponse { 4 | private final String status = "OK"; 5 | 6 | public String getStatus() { 7 | return status; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/OrderBook.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | import java.util.List; 4 | 5 | public class OrderBook { 6 | public String marketSymbol; 7 | public List asks; 8 | public List bids; 9 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/communication/sozurinet/SozuriNetValidationException.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.sozurinet; 2 | 3 | public class SozuriNetValidationException extends RuntimeException { 4 | public SozuriNetValidationException(String message) { 5 | super(message); 6 | } 7 | } -------------------------------------------------------------------------------- /operators_sample_website/website/tests/Unit/ExampleTest.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/OrderBookLevel.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class OrderBookLevel { 6 | public BigDecimal pricePerUnit; 7 | public BigDecimal quantity; 8 | public BigDecimal total; 9 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/DepositAddress.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | public class DepositAddress { 4 | 5 | public String address; 6 | public long time_create; 7 | public boolean generate_new; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/wallets/walletofsatoshi/dto/InvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.wallets.walletofsatoshi.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class InvoiceRequest { 6 | public BigDecimal amount; 7 | public String description; 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/communication/smsbranacz/SmsBranaCzValidationException.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.smsbranacz; 2 | 3 | public class SmsBranaCzValidationException extends RuntimeException { 4 | public SmsBranaCzValidationException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/ApplicantReviewedWebhook.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class ApplicantReviewedWebhook extends BaseWebhookBody { 7 | private ApplicantReviewResult reviewResult; 8 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/enums/ReviewAnswer.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo.enums; 2 | 3 | /** 4 | * https://docs.sumsub.com/docs/receive-and-interpret-results-via-api 5 | */ 6 | public enum ReviewAnswer { 7 | GREEN, 8 | RED 9 | } 10 | -------------------------------------------------------------------------------- /verification_site/src/main/java/com/generalbytes/verification/controller/RegisterNewApplicantReq.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.verification.controller; 2 | 3 | import lombok.Data; 4 | import lombok.NonNull; 5 | 6 | @Data 7 | public class RegisterNewApplicantReq { 8 | @NonNull private String applicantId; 9 | @NonNull private String sdkToken; 10 | @NonNull private String serverUrl; 11 | } 12 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/enums/ReviewRejectType.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo.enums; 2 | 3 | /** 4 | * https://docs.sumsub.com/docs/receive-and-interpret-results-via-api 5 | */ 6 | public enum ReviewRejectType { 7 | RETRY, 8 | FINAL 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/sumsub/webhooks/dto/SumsubWebhookRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.sumsub.webhooks.dto; 2 | 3 | /** 4 | * Wrapper object for Sumsub webhook request. 5 | */ 6 | public record SumsubWebhookRequest(String vaspDid, String digestAlgorithm, String payloadDigest, String message) { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/wallets/walletofsatoshi/dto/Invoice.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.wallets.walletofsatoshi.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class Invoice { 6 | public String id; 7 | public BigDecimal btcAmount; 8 | public String invoice; 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/requests/WithdrawRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.requests; 2 | 3 | public class WithdrawRequest extends BasicRequest{ 4 | public String iso; 5 | public String amount; 6 | public String to_address; 7 | public String network_type; 8 | } 9 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Exceptions/TransactionStatusException.php: -------------------------------------------------------------------------------- 1 | getMessage()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /operators_sample_website/website/database/seeders/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | create(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/wallets/walletofsatoshi/dto/Balances.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.wallets.walletofsatoshi.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class Balances { 6 | public BigDecimal btc; 7 | public BigDecimal btcUnconfirmed; 8 | public BigDecimal lightning; 9 | } 10 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/aml/verification/DocumentType.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.aml.verification; 2 | 3 | public enum DocumentType { 4 | // do not rename existing enum constants 5 | 6 | national_identity_card, 7 | driving_licence, 8 | passport, 9 | voter_id, 10 | work_permit, 11 | residence_permit, 12 | other 13 | } 14 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/responses/TickerResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.responses; 2 | 3 | import com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities.Ticker; 4 | 5 | public class TickerResponse extends BasicResponse{ 6 | public Ticker data; 7 | } 8 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/QuestionnaireItems.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | 5 | import java.util.Map; 6 | 7 | @Getter 8 | public class QuestionnaireItems extends JsonObject { 9 | private Map items; 10 | } 11 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | sections; 11 | } 12 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/slp/wallets/electroncashslp/ElectrumErrorResponseException.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.slp.wallets.electroncashslp; 2 | 3 | import java.io.IOException; 4 | 5 | public class ElectrumErrorResponseException extends IOException { 6 | public ElectrumErrorResponseException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /verification_site/src/main/resources/static/style.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | margin: 0; 5 | } 6 | 7 | body, 8 | button { 9 | -webkit-font-smoothing: antialiased; 10 | } 11 | 12 | .custom__input, 13 | .onfido-sdk-ui-CountrySelector-custom__input{ 14 | height: auto !important; 15 | } 16 | 17 | @media (min-width: 30em) { 18 | #onfido-mount { 19 | position: relative; 20 | top: 10%; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /batm_ssh_tunnel/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{yyyy-MM-dd HH:mm:ss.SSS} %5p %m%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /verification_site/src/main/java/com/generalbytes/verification/VerificationSiteApp.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.verification; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class VerificationSiteApp { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(VerificationSiteApp.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/IRemotePrinterListener.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | /** 4 | * Listener that receives printing data intended for a remote printer. 5 | */ 6 | public interface IRemotePrinterListener { 7 | 8 | /** 9 | * Called when receipt printing is requested. 10 | */ 11 | void onReceiptPrintingRequested(ReceiptPrintingRequestedEvent event); 12 | } 13 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/wallets/walletofsatoshi/dto/PaymentRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.wallets.walletofsatoshi.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class PaymentRequest { 6 | public BigDecimal amount; 7 | public String description; 8 | public String address; 9 | public String currency; 10 | } 11 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrNaturalPerson.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | /** 7 | * An object representing the Natural Person object in {@link GtrPerson}. 8 | */ 9 | @Getter 10 | @Setter 11 | public class GtrNaturalPerson { 12 | private GtrPersonName name; 13 | } 14 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/NotabeneConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class NotabeneConfiguration { 7 | private String apiUrl; 8 | private String authApiUrl; 9 | private boolean automaticApprovalOfOutgoingTransfersEnabled; 10 | private String masterExtensionsUrl; 11 | } 12 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | dependencyResolutionManagement { 2 | repositoriesMode = RepositoriesMode.PREFER_PROJECT 3 | } 4 | 5 | include ':server_extensions_api' 6 | include ':server_extensions_extra' 7 | include ':server_extensions_test' 8 | include ':server_extensions_examples' 9 | include ':server_extensions_template' 10 | include ':currencies' 11 | include ':batm_ssh_tunnel' 12 | include ':operators_sample_website' 13 | include ':annotations' 14 | include ':country' 15 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/responses/BalancesResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.responses; 2 | 3 | 4 | import com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities.BalanceData; 5 | 6 | public class BalancesResponse extends BasicResponse{ 7 | 8 | public BalanceData data; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/responses/NewOrderResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.responses; 2 | 3 | import com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities.NewOrderId; 4 | 5 | public class NewOrderResponse extends BasicResponse { 6 | public String message; 7 | public NewOrderId data; 8 | } 9 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/sumsub/SumsubConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.sumsub; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import lombok.ToString; 6 | 7 | /** 8 | * Configuration object for {@link SumsubProvider}. 9 | */ 10 | @Getter 11 | @Setter 12 | @ToString 13 | public class SumsubConfiguration { 14 | private boolean webhooksEnabled; 15 | } 16 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | get('/'); 18 | 19 | $response->assertStatus(200); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrOriginator.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * An object representing the Originator object in {@link GtrIvms101}. 10 | */ 11 | @Getter 12 | @Setter 13 | public class GtrOriginator { 14 | private List originatorPersons; 15 | } 16 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Middleware/TrustHosts.php: -------------------------------------------------------------------------------- 1 | allSubdomainsOfApplicationUrl(), 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/Currency.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | 5 | public class Currency { 6 | public String iso3; 7 | public String name; 8 | public long refill; 9 | public long withdraw; 10 | 11 | @JsonIgnore 12 | public String networks; 13 | } 14 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrBeneficiary.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * An object representing the Beneficiary object in {@link GtrIvms101}. 10 | */ 11 | @Getter 12 | @Setter 13 | public class GtrBeneficiary { 14 | private List beneficiaryPersons; 15 | } 16 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Middleware/PreventRequestsDuringMaintenance.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/Paginated.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | import java.util.List; 4 | 5 | public class Paginated { 6 | public List result; 7 | 8 | public Integer pageNumber; 9 | public Integer totalPages; 10 | public Integer currentCount; 11 | public Integer totalCount; 12 | public Integer limit; 13 | public Boolean hasNextPage; 14 | } 15 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | xpm 2 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrPersonNameIdentifier.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | /** 7 | * An object representing the Person Name Identifier object in {@link GtrPersonName}. 8 | */ 9 | @Getter 10 | @Setter 11 | public class GtrPersonNameIdentifier { 12 | private String nameIdentifierType; 13 | private String primaryIdentifier; 14 | private String secondaryIdentifier; 15 | } 16 | -------------------------------------------------------------------------------- /server_extensions_test/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("application") 3 | id("shared-repositories-ext-conventions") 4 | } 5 | 6 | application { 7 | mainClass = "com.generalbytes.batm.server.extensions.test.Tester" 8 | } 9 | 10 | jar { 11 | archiveFileName = "batm_server_extensions_test.jar" 12 | } 13 | 14 | dependencies { 15 | implementation project(":server_extensions_api") 16 | implementation project(":server_extensions_extra") 17 | 18 | implementation("net.sf.jopt-simple:jopt-simple:4.9") 19 | runtimeOnly("org.slf4j:slf4j-simple:1.7.28") 20 | } 21 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | transfers; 14 | } 15 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/identitypiece/SelfieIdentityPiece.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.identitypiece; 2 | 3 | import com.generalbytes.batm.server.extensions.IIdentityPiece; 4 | 5 | public class SelfieIdentityPiece extends DataIdentityPiece { 6 | public SelfieIdentityPiece(String mime, byte[] data) { 7 | super(mime, data); 8 | } 9 | 10 | @Override 11 | public int getPieceType() { 12 | return IIdentityPiece.TYPE_SELFIE; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/CreateIdentityApplicantRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class CreateIdentityApplicantRequest { 7 | private final String externalUserId; 8 | private final String type; 9 | 10 | public CreateIdentityApplicantRequest(String externalUserId) { 11 | this.externalUserId = externalUserId; 12 | this.type = "individual"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/QuoteResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class QuoteResponse { 6 | public String id; 7 | public Long createdAt; 8 | public Long expireAt; 9 | public OrderSide side; 10 | public String base; // crypto currency 11 | public BigDecimal baseQuantity; 12 | public String quote; // CAD 13 | public BigDecimal quoteQuantity; 14 | public BigDecimal unitPrice; 15 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/GtrVaspBasicInfo.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * Object containing basic data about VASP. 7 | * Used in {@link GtrVaspListResponse}. 8 | */ 9 | @Getter 10 | public class GtrVaspBasicInfo { 11 | private String vaspCode; 12 | private String vaspName; 13 | private String publicKey; 14 | private String companyName; 15 | private String allianceName; 16 | private String registrationAuthorityCountry; 17 | } 18 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/lnurl/dto/ErrorLnurlResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.lnurl.dto; 2 | 3 | public class ErrorLnurlResponse { 4 | private final String status = "ERROR"; 5 | private final String reason; 6 | 7 | public ErrorLnurlResponse(String reason) { 8 | this.reason = reason; 9 | } 10 | 11 | public String getStatus() { 12 | return status; 13 | } 14 | 15 | public String getReason() { 16 | return reason; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrPersonName.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * An object representing the Person Name object in {@link GtrNaturalPerson}. 11 | */ 12 | @Getter 13 | @Setter 14 | public class GtrPersonName { 15 | @JsonProperty("nameIdentifier") 16 | private List nameIdentifiers; 17 | } 18 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/coinutil/Hex.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.coinutil; 2 | 3 | public class Hex { 4 | 5 | public static String bytesToHexString(byte[] bytes) { 6 | // http://stackoverflow.com/questions/332079 7 | StringBuilder sb = new StringBuilder(); 8 | for (byte b : bytes) { 9 | String hex = Integer.toHexString(0xFF & b); 10 | if (hex.length() == 1) { 11 | sb.append('0'); 12 | } 13 | sb.append(hex); 14 | } 15 | return sb.toString(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/dogecoin/wallets/blockio/dto/BlockIORequestSubmitTransaction.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.dogecoin.wallets.blockio.dto; 2 | 3 | public class BlockIORequestSubmitTransaction { 4 | 5 | private final BlockIOTransaction transaction_data; 6 | 7 | public BlockIORequestSubmitTransaction(BlockIOTransaction transaction_data) { 8 | this.transaction_data = transaction_data; 9 | } 10 | 11 | public BlockIOTransaction getTransaction_data() { 12 | return transaction_data; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 18 | return route('login'); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/Order.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | public class Order { 4 | public long id; 5 | public int type; 6 | public int status; 7 | public int type_trade; 8 | public String pair; 9 | public String volume; 10 | public String volume_done; 11 | public String rate; 12 | public String price; 13 | public long time_create; 14 | public long time_done; 15 | public String price_done; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/cardano/wallets/dto/Wallet.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.cardano.wallets.dto; 2 | 3 | public class Wallet { 4 | private String id; 5 | private Balance balance; 6 | 7 | public String getId() { 8 | return id; 9 | } 10 | 11 | public void setId(String id) { 12 | this.id = id; 13 | } 14 | 15 | public Balance getBalance() { 16 | return balance; 17 | } 18 | 19 | public void setBalance(Balance balance) { 20 | this.balance = balance; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/api/NotabeneApiCall.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.api; 2 | 3 | /** 4 | * Represents a call to Notabene API. 5 | * 6 | * @param Type of the expected response. 7 | */ 8 | @FunctionalInterface 9 | public interface NotabeneApiCall { 10 | 11 | /** 12 | * Make a call to Notabene API. 13 | * 14 | * @param authorization Authorization header content. 15 | * @return The response from the call. 16 | */ 17 | T execute(String authorization); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabenePerson.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Represents the definition of an individual person. 10 | */ 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 15 | public class NotabenePerson { 16 | 17 | private NotabeneNaturalPerson naturalPerson; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/js/gbScripts.js: -------------------------------------------------------------------------------- 1 | $('.terminals').on('click',function(){ 2 | 3 | $("input[name='sell']").removeClass('btn-secondary'); 4 | $("input[name='sell']").addClass('btn-primary'); 5 | $('.terminals').removeClass('border-primary'); 6 | $(this).addClass('border-primary'); 7 | let serialNumber = $(this).attr('id'); 8 | $('input[name="selectedTerminal"]').val(serialNumber); 9 | }); 10 | 11 | $("input[name='amount']").on('keyup', function(){ 12 | $("input[name='sell']").removeClass('btn-secondary'); 13 | $("input[name='sell']").addClass('btn-primary'); 14 | }); 15 | 16 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrIvms101.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * An object representing the IVMS101 object in {@link GtrIvms101Payload}. 9 | */ 10 | @Getter 11 | @Setter 12 | public class GtrIvms101 { 13 | @JsonProperty("Originator") 14 | private GtrOriginator originator; 15 | @JsonProperty("Beneficiary") 16 | private GtrBeneficiary beneficiary; 17 | } 18 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/coinbase/api/dto/CoinbaseOrderResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.coinbase.api.dto; 2 | 3 | /** 4 | * Response containing a single {@link CoinbaseOrder}. 5 | */ 6 | public class CoinbaseOrderResponse { 7 | 8 | private CoinbaseOrder order; 9 | 10 | /** 11 | * @return The requested order. 12 | */ 13 | public CoinbaseOrder getOrder() { 14 | return order; 15 | } 16 | 17 | public void setOrder(CoinbaseOrder order) { 18 | this.order = order; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/api/GtrApiCall.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.api; 2 | 3 | /** 4 | * Represents a call to Global Travel Rule (GTR) API. 5 | * 6 | * @param Type of the expected response. 7 | */ 8 | @FunctionalInterface 9 | public interface GtrApiCall { 10 | 11 | /** 12 | * Make a call to Global Travel Rule (GTR) API. 13 | * 14 | * @param authorization Authorization header content. 15 | * @return The response from the call. 16 | */ 17 | T execute(String authorization); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /verification_site/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | bin/ 17 | !**/src/main/**/bin/ 18 | !**/src/test/**/bin/ 19 | 20 | ### IntelliJ IDEA ### 21 | .idea 22 | *.iws 23 | *.iml 24 | *.ipr 25 | out/ 26 | !**/src/main/**/out/ 27 | !**/src/test/**/out/ 28 | 29 | ### NetBeans ### 30 | /nbproject/private/ 31 | /nbbuild/ 32 | /dist/ 33 | /nbdist/ 34 | /.nb-gradle/ 35 | 36 | ### VS Code ### 37 | .vscode/ 38 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/java/com/generalbytes/batm/server/extensions/travelrule/sumsub/SumsubConfigurationTest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.sumsub; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.junit.jupiter.api.Assertions.assertEquals; 6 | 7 | class SumsubConfigurationTest { 8 | 9 | @Test 10 | void testToString() { 11 | SumsubConfiguration configuration = new SumsubConfiguration(); 12 | configuration.setWebhooksEnabled(true); 13 | 14 | assertEquals("SumsubConfiguration(webhooksEnabled=true)", configuration.toString()); 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /country/src/main/java/com/generalbytes/batm/server/extensions/CountryRegion.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | /** 4 | * A marker interface for a country region (state/province/territory/...). 5 | */ 6 | public interface CountryRegion { 7 | /** 8 | * Retrieves the ISO code representing a specific country region. 9 | * 10 | * @return the ISO code as a string 11 | */ 12 | String getIso(); 13 | 14 | /** 15 | * Retrieves the name of the province/state/territory/... 16 | * 17 | * @return the name of the province as a string 18 | */ 19 | String getProvinceName(); 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/java/com/generalbytes/batm/server/extensions/extra/litecoin/LitecoinAddressValidatorTest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.litecoin; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.junit.jupiter.api.Assertions.assertTrue; 6 | 7 | class LitecoinAddressValidatorTest { 8 | 9 | @Test 10 | void addressValidTest() { 11 | LitecoinAddressValidator lav = new LitecoinAddressValidator(); 12 | String address = "MMR2PV6EqX617NYzVsztfMFRZTr6zDHWQx"; 13 | boolean isValid = lav.isAddressValid(address); 14 | assertTrue(isValid); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/dto/entities/Withdraw.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities; 2 | 3 | public class Withdraw { 4 | public String id; 5 | public int status; 6 | public String txid; 7 | public String to_address; 8 | public int confirmations; 9 | public long amount; 10 | public long amount_send; 11 | public long commission; 12 | public String comment; 13 | public long time_create; 14 | public String time_done; 15 | public int type; 16 | public String iso3; 17 | } 18 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/java/com/generalbytes/batm/server/extensions/extra/elrond/ElrondAddressValidatorTest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.elrond; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.junit.jupiter.api.Assertions.assertTrue; 6 | 7 | class ElrondAddressValidatorTest { 8 | @Test 9 | void addressValidTest() { 10 | ElrondAddressValidator lav = new ElrondAddressValidator(); 11 | String address = "erd1kvwvfpn3ncvt5dn8e0rnm8s7qv0u4yz3sl7dqcwuc0vq8533mevqnvvawh"; 12 | boolean isValid = lav.isAddressValid(address); 13 | assertTrue(isValid); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /annotations/src/main/java/com/generalbytes/batm/validation/InputValidation.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.validation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * This annotation is used to specify input validation on fields and parameters. 10 | * It allows developers to define a method for input validation at runtime. 11 | */ 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @Target({ElementType.FIELD, ElementType.PARAMETER}) 14 | public @interface InputValidation { 15 | String method() default ""; 16 | } 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneIvms.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Holds information about a transfer including ivms101 data. 10 | */ 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | @JsonIgnoreProperties(ignoreUnknown = true) 15 | public class NotabeneIvms { 16 | private NotabeneOriginator originator; 17 | private NotabeneBeneficiary beneficiary; 18 | } -------------------------------------------------------------------------------- /operators_sample_website/website/public/assets/css/gbStyles.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: 'Nunito', sans-serif; 3 | } 4 | .loader { 5 | border: 3px solid #f3f3f3; 6 | border-radius: 50%; 7 | border-top: 3px solid #3498db; 8 | width: 20px; 9 | height: 20px; 10 | -webkit-animation: spin 2s linear infinite; /* Safari */ 11 | animation: spin 2s linear infinite; 12 | } 13 | /* Safari */ 14 | @-webkit-keyframes spin { 15 | 0% { -webkit-transform: rotate(0deg); } 16 | 100% { -webkit-transform: rotate(360deg); } 17 | } 18 | @keyframes spin { 19 | 0% { transform: rotate(0deg); } 20 | 100% { transform: rotate(360deg); } 21 | } 22 | -------------------------------------------------------------------------------- /operators_sample_website/website/webpack.mix.js: -------------------------------------------------------------------------------- 1 | const mix = require('laravel-mix'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Mix Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Mix provides a clean, fluent API for defining some Webpack build steps 9 | | for your Laravel applications. By default, we are compiling the CSS 10 | | file for the application as well as bundling up all the JS files. 11 | | 12 | */ 13 | 14 | mix.js('resources/js/app.js', 'public/js') 15 | .postCss('resources/css/app.css', 'public/css', [ 16 | // 17 | ]); 18 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/GtrVaspResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.generalbytes.batm.server.extensions.travelrule.gtr.api.GtrApi; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Response object containing basic data about VASP. 10 | * Used in {@link GtrApi#vaspDetail(String, String)}. 11 | */ 12 | @Getter 13 | @Setter 14 | @JsonIgnoreProperties(ignoreUnknown = true) 15 | public class GtrVaspResponse { 16 | private GtrVaspInfo data; 17 | } 18 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Exceptions/AuthenticationException.php: -------------------------------------------------------------------------------- 1 | view('homePage', compact( 'error')); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /operators_sample_website/website/resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/ILightningExchange.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | import java.math.BigDecimal; 4 | 5 | /** 6 | * Represents an exchange that supports Bitcoin transactions over the Lightning Network. 7 | */ 8 | public interface ILightningExchange { 9 | 10 | /** 11 | * Generates a Lightning Network invoice (payment request) for a specified amount of Bitcoin. 12 | * 13 | * @param cryptoAmount The amount of Bitcoin to request in the invoice. 14 | * @return The serialized invoice string. 15 | */ 16 | String getInvoice(BigDecimal cryptoAmount); 17 | 18 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/ApplicantIdResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Getter 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class ApplicantIdResponse extends JsonObject { 11 | private String id; 12 | 13 | @Override 14 | public String toString() { 15 | return "ApplicantIDResponse{" + 16 | "id='" + id + '\'' + 17 | '}'; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /operators_sample_website/website/routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 18 | }); 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/InspectionInfoResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Getter; 5 | 6 | import java.time.LocalDateTime; 7 | import java.util.List; 8 | 9 | @Getter 10 | public class InspectionInfoResponse extends JsonObject { 11 | private String id; 12 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 13 | private LocalDateTime inspectionDate; 14 | private String applicantId; 15 | private List images; 16 | } 17 | -------------------------------------------------------------------------------- /operators_sample_website/website/routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 18 | return $request->user(); 19 | }); 20 | -------------------------------------------------------------------------------- /operators_sample_website/website/server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/cardano/wallets/dto/Payment.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.cardano.wallets.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class Payment { 6 | private String address; 7 | private Amount amount; 8 | 9 | public String getAddress() { 10 | return address; 11 | } 12 | 13 | public void setAddress(String address) { 14 | this.address = address; 15 | } 16 | 17 | public Amount getAmount() { 18 | return amount; 19 | } 20 | 21 | public void setAmount(Amount amount) { 22 | this.amount = amount; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/ApplicantDocument.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | 5 | import java.time.LocalDate; 6 | 7 | // https://docs.sumsub.com/reference/get-applicant-data-via-externaluserid#iddocs-element-fields 8 | @Getter 9 | public class ApplicantDocument extends DocumentDefinition { 10 | private String firstName; 11 | private String lastName; 12 | private LocalDate issuedDate; 13 | private LocalDate validUntil; 14 | private String number; 15 | private LocalDate dob; 16 | } 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/ApplicantInfo.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | 5 | import java.time.LocalDate; 6 | import java.util.List; 7 | 8 | @Getter 9 | public class ApplicantInfo extends JsonObject { 10 | private String firstName; 11 | private String lastName; 12 | private String middleName; 13 | private LocalDate dob; 14 | private String country; 15 | private String phone; 16 | private List idDocs; 17 | private List addresses; 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/InspectionImage.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Getter; 5 | 6 | import java.time.LocalDateTime; 7 | 8 | @Getter 9 | public class InspectionImage extends JsonObject { 10 | private String id; 11 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 12 | private LocalDateTime addedDate; 13 | private Integer imageId; 14 | private DocumentDefinition idDocDef; 15 | private InspectImageReviewResult reviewResult; 16 | } 17 | -------------------------------------------------------------------------------- /operators_sample_website/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("shared-publish-conventions") 3 | } 4 | 5 | group = projectGroup 6 | version = projectVersion 7 | 8 | jar { 9 | archiveFileName = "${archiveBaseName.get()}.${archiveExtension.get()}" 10 | } 11 | 12 | configurations { 13 | artifactOnly 14 | } 15 | 16 | artifacts { 17 | artifactOnly jar 18 | } 19 | 20 | dependencies { 21 | implementation project(":server_extensions_api") 22 | 23 | implementation("org.slf4j:slf4j-api:1.7.28") 24 | implementation("javax.ws.rs:javax.ws.rs-api:2.1") 25 | implementation("javax.servlet:javax.servlet-api:3.1.0") 26 | implementation("com.google.code.gson:gson:2.8.9") 27 | } 28 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneDateAndPlaceOfBirth.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | /** 8 | * Holds the date and place of birth. 9 | */ 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | public class NotabeneDateAndPlaceOfBirth { 14 | 15 | /** 16 | * A point in time, represented as a day within the calendar year. 17 | * Compliant with ISO 8601. (YYYY-MM-DD) 18 | */ 19 | private String dateOfBirth; 20 | private String placeOfBirth; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabenePersonName.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * Holds name identifiers for a person. 12 | * 13 | * @see NotabenePerson 14 | */ 15 | @Getter 16 | @Setter 17 | @NoArgsConstructor 18 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 19 | public class NotabenePersonName { 20 | 21 | private List nameIdentifier; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/value/BooleanCustomFieldValue.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields.value; 2 | 3 | import com.generalbytes.batm.server.extensions.customfields.CustomFieldDefinitionType; 4 | 5 | /** 6 | * used with {@link CustomFieldDefinitionType#CHECKBOX} 7 | */ 8 | 9 | public class BooleanCustomFieldValue implements CustomFieldValue{ 10 | private final boolean booleanValue; 11 | 12 | public BooleanCustomFieldValue(boolean booleanValue) { 13 | this.booleanValue = booleanValue; 14 | } 15 | 16 | public boolean getBooleanValue() { 17 | return booleanValue; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/AskComparator.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix; 2 | 3 | import com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities.OrderBookPrice; 4 | 5 | import java.math.BigDecimal; 6 | import java.util.Comparator; 7 | 8 | public class AskComparator implements Comparator { 9 | @Override 10 | public int compare(OrderBookPrice o1, OrderBookPrice o2) { 11 | BigDecimal dif = new BigDecimal(o1.rate).subtract(new BigDecimal(o2.rate)); 12 | return dif.compareTo(BigDecimal.ZERO); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneGeographicAddressType.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | /** 4 | * Identifies the nature of the address. 5 | */ 6 | public enum NotabeneGeographicAddressType { 7 | /** 8 | * Residential - Address is the home address. 9 | */ 10 | HOME, 11 | /** 12 | * Business - Address is the business address. 13 | */ 14 | BIZZ, 15 | /** 16 | * Geographic - Address is the unspecified physical (geographical) address 17 | * suitable for identification of the natural or legal person. 18 | */ 19 | GEOG 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/BidComparator.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix; 2 | 3 | 4 | import com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix.dto.entities.OrderBookPrice; 5 | 6 | import java.math.BigDecimal; 7 | import java.util.Comparator; 8 | 9 | public class BidComparator implements Comparator { 10 | @Override 11 | public int compare(OrderBookPrice o1, OrderBookPrice o2) { 12 | BigDecimal dif = new BigDecimal(o2.rate).subtract(new BigDecimal(o1.rate)); 13 | return dif.compareTo(BigDecimal.ZERO); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneProof.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Wallet Ownership Proof data. 10 | */ 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 15 | public class NotabeneProof { 16 | 17 | /** 18 | * The proof. 19 | */ 20 | private String proof; 21 | /** 22 | * Type of the proof. 23 | */ 24 | private String type; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /operators_sample_website/website/routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 19 | })->purpose('Display an inspiring quote'); 20 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/ICustomString.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | public interface ICustomString { 4 | 5 | /** 6 | * @return Name of custom string. 7 | */ 8 | default String getName() { 9 | return null; 10 | } 11 | 12 | /** 13 | * @return Value of custom string. 14 | */ 15 | default String getValue() { 16 | return null; 17 | } 18 | 19 | /** 20 | * @return Language in the ISO standard (for example 'en' for English, 'de' for German, 'de_CH' for Swiss German etc.). 21 | */ 22 | default String getLanguage() { 23 | return null; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/watchlists/eu/tags/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2018.12.07 at 11:07:14 AM CET 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://eu.europa.ec/fpi/fsd/export", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package com.generalbytes.batm.server.extensions.extra.watchlists.eu.tags; 10 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/GtrVaspListResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.generalbytes.batm.server.extensions.travelrule.gtr.api.GtrApi; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * Response object containing basic data about all VASPs. 12 | * Used in {@link GtrApi#listVasps(String)}. 13 | */ 14 | @Getter 15 | @Setter 16 | @JsonIgnoreProperties(ignoreUnknown = true) 17 | public class GtrVaspListResponse { 18 | private List data; 19 | } 20 | -------------------------------------------------------------------------------- /batm_ssh_tunnel/src/dist/batm-ssh-tunnel.service: -------------------------------------------------------------------------------- 1 | # sudo cp batm-ssh-tunnel.service /etc/systemd/system/ 2 | # sudo chmod 644 /etc/systemd/system/batm-ssh-tunnel.service 3 | # sudo systemctl daemon-reload 4 | # sudo systemctl enable batm-ssh-tunnel.service 5 | # 6 | # sudo systemctl start batm-ssh-tunnel 7 | # sudo systemctl status batm-ssh-tunnel 8 | # sudo systemctl stop batm-ssh-tunnel 9 | 10 | [Unit] 11 | Description=BATM SSH Tunnel Server 12 | After=multi-user.target 13 | 14 | [Service] 15 | Type=simple 16 | WorkingDirectory=/opt/batm_ssh_tunnel 17 | ExecStart=/opt/batm_ssh_tunnel/bin/batm_ssh_tunnel 18 | Restart=always 19 | User=batmsshtunnel 20 | Group=batmsshtunnel 21 | 22 | [Install] 23 | WantedBy=multi-user.target 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/coinbase/api/dto/CoinbaseCreateAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.coinbase.api.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | /** 6 | * Request to create a new address. 7 | */ 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | public class CoinbaseCreateAddressRequest { 10 | 11 | private String name; 12 | 13 | public String getName() { 14 | return name; 15 | } 16 | 17 | /** 18 | * @param name Name of the address. (Optional) 19 | */ 20 | public void setName(String name) { 21 | this.name = name; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/wallets/bitgo/v2/dto/BitGoTransfer.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.wallets.bitgo.v2.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import lombok.Getter; 6 | 7 | import java.math.BigDecimal; 8 | 9 | @JsonIgnoreProperties(ignoreUnknown = true) 10 | @Getter 11 | public class BitGoTransfer { 12 | @JsonProperty("txid") 13 | private String transactionHash; 14 | @JsonProperty("valueString") 15 | private BigDecimal value; 16 | @JsonProperty("confirmations") 17 | private int confirmations; 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/ivms101/GtrIvms101Payload.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto.ivms101; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | /** 7 | * An object representing the IVMS101 payload for PII verification via GTR. 8 | * 9 | * @see GTR documentation: PII Verify Fields 10 | * @see GTR documentation: Format Guidelines 11 | */ 12 | @Getter 13 | @Setter 14 | public class GtrIvms101Payload { 15 | private GtrIvms101 ivms101; 16 | } 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneTransferType.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | /** 4 | * Holds all possible types of a transfer. 5 | */ 6 | public enum NotabeneTransferType { 7 | /** 8 | * Transfer is below all threshold. 9 | */ 10 | BELOW_THRESHOLD, 11 | /** 12 | * Transfer is on a customer owned wallet. Proof required. 13 | */ 14 | NON_CUSTODIAL, 15 | /** 16 | * Transfer is between VASPs. TravelRule transfer created. 17 | */ 18 | TRAVELRULE, 19 | /** 20 | * Transfer with any missing information. 21 | */ 22 | UNKNOWN 23 | } 24 | -------------------------------------------------------------------------------- /operators_sample_website/website/public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Send Requests To Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/nano/wallet/node/INanoRpcWallet.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.nano.wallet.node; 2 | 3 | import com.generalbytes.batm.server.extensions.extra.nano.rpc.NanoRpcClient; 4 | import com.generalbytes.batm.server.extensions.extra.nano.rpc.NanoWsClient; 5 | 6 | import java.math.BigInteger; 7 | 8 | /** 9 | * @author Karl Oczadly 10 | */ 11 | public interface INanoRpcWallet { 12 | 13 | NanoRpcClient getRpcClient(); 14 | 15 | NanoWsClient getWsClient(); 16 | 17 | BigInteger sendAllFromWallet(String depositAddress, String destination); 18 | 19 | BigInteger moveFundsToHotWallet(String depositAddress); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneAddressOwnershipInfoRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | /** 8 | * Request to get ownership information about a customer blockchain address. 9 | * 10 | * @see Notabene Documentation 11 | */ 12 | @Getter 13 | @Setter 14 | @NoArgsConstructor 15 | public class NotabeneAddressOwnershipInfoRequest { 16 | 17 | private String address; 18 | private String vaspDid; 19 | private String asset; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/value/StringCustomFieldValue.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields.value; 2 | 3 | import com.generalbytes.batm.server.extensions.customfields.CustomFieldDefinitionType; 4 | 5 | /** 6 | * used with {@link CustomFieldDefinitionType#SINGLE_LINE} and {@link CustomFieldDefinitionType#PARAGRAPH} 7 | */ 8 | public class StringCustomFieldValue implements CustomFieldValue { 9 | private final String stringValue; 10 | 11 | public StringCustomFieldValue(String stringValue) { 12 | this.stringValue = stringValue; 13 | } 14 | 15 | public String getStringValue() { 16 | return stringValue; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/ApplicantAddress.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Setter 7 | @Getter 8 | public class ApplicantAddress extends JsonObject { 9 | private String subStreet; 10 | private String subStreetEn; 11 | private String street; 12 | private String streetEn; 13 | private String state; 14 | private String stateEn; 15 | private String town; 16 | private String townEn; 17 | private String postCode; 18 | private String country; 19 | private String formattedAddress; 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/CreateIdentityVerificationSessionResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Getter 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateIdentityVerificationSessionResponse extends JsonObject { 11 | private String url; 12 | 13 | @Override 14 | public String toString() { 15 | return "CreateIdentityVerificationSessionResponse{" + 16 | "url='" + url + '\'' + 17 | '}'; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneTransferInfoWithIvms.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Holds information about a transfer. 10 | * 11 | *

This is a part of the response by several endpoints 12 | * and webhook payloads.

13 | */ 14 | @Getter 15 | @Setter 16 | @NoArgsConstructor 17 | @JsonIgnoreProperties(ignoreUnknown = true) 18 | public class NotabeneTransferInfoWithIvms extends NotabeneTransferInfo { 19 | private NotabeneIvms ivms101; 20 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/wallets/cryptx/v2/dto/CryptXException.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.wallets.cryptx.v2.dto; 2 | 3 | public class CryptXException extends RuntimeException { 4 | 5 | private String errorKey; 6 | 7 | private String errorMessage; 8 | 9 | public String getErrorKey() { 10 | return errorKey; 11 | } 12 | 13 | public String getErrorMessage() { 14 | return errorMessage; 15 | } 16 | 17 | public CryptXException(String errorMessage, String errorKey) { 18 | super(errorMessage); 19 | this.errorMessage = errorMessage; 20 | this.errorKey = errorKey; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/communication/smsbranacz/SmsBranaCzFactory.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.smsbranacz; 2 | 3 | import lombok.experimental.UtilityClass; 4 | import si.mazi.rescu.RestProxyFactory; 5 | 6 | @UtilityClass 7 | public class SmsBranaCzFactory { 8 | 9 | private static final String API_BASE_URL = "https://api.smsbrana.cz/smsconnect"; 10 | 11 | public static SmsBranaCzProvider createProvider() { 12 | ISmsBranaCzAPI api = RestProxyFactory.createProxy(ISmsBranaCzAPI.class, API_BASE_URL); 13 | 14 | return new SmsBranaCzProvider(new SmsBranaCzApiService(api), new SmsBranaCzCredentialsService()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/coinbase/api/dto/CoinbaseCreateAddressResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.coinbase.api.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | /** 6 | * Response holding a newly created address. 7 | */ 8 | public class CoinbaseCreateAddressResponse { 9 | 10 | @JsonProperty("data") 11 | private CoinbaseAddress address; 12 | 13 | /** 14 | * @return The newly created address. 15 | */ 16 | public CoinbaseAddress getAddress() { 17 | return address; 18 | } 19 | 20 | public void setAddress(CoinbaseAddress address) { 21 | this.address = address; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/value/LocalDateCustomFieldValue.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields.value; 2 | 3 | import com.generalbytes.batm.server.extensions.customfields.CustomFieldDefinitionType; 4 | 5 | import java.time.LocalDate; 6 | 7 | /** 8 | * used with {@link CustomFieldDefinitionType#DATE} 9 | */ 10 | public class LocalDateCustomFieldValue implements CustomFieldValue { 11 | private final LocalDate localDateValue; 12 | 13 | public LocalDateCustomFieldValue(LocalDate localDateValue) { 14 | this.localDateValue = localDateValue; 15 | } 16 | 17 | public LocalDate getLocalDateValue() { 18 | return localDateValue; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %-5level %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread - %logger{36}] - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/cardano/wallets/dto/CreateTransactionRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.cardano.wallets.dto; 2 | 3 | import java.util.List; 4 | 5 | public class CreateTransactionRequest { 6 | private String passphrase; 7 | private List payments; 8 | 9 | public String getPassphrase() { 10 | return passphrase; 11 | } 12 | 13 | public void setPassphrase(String passphrase) { 14 | this.passphrase = passphrase; 15 | } 16 | 17 | public List getPayments() { 18 | return payments; 19 | } 20 | 21 | public void setPayments(List payments) { 22 | this.payments = payments; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitpandapro/dto/CreateDepositAddress.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitpandapro.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public class CreateDepositAddress { 6 | @JsonProperty("currency") 7 | private String currency; 8 | 9 | public String getCurrency() { 10 | return currency; 11 | } 12 | 13 | public void setCurrency(String currency) { 14 | this.currency = currency; 15 | } 16 | 17 | @Override public String toString() { 18 | return "CreateDepositAddress{" + 19 | "currency='" + currency + '\'' + 20 | '}'; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/coinzix/Constants.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.coinzix; 2 | 3 | public abstract class Constants { 4 | 5 | public static abstract class SIDE { 6 | public static int BUY = 0; 7 | public static int SELL = 1; 8 | } 9 | 10 | public static abstract class ORDER_TYPE { 11 | public static int LIMIT = 0; 12 | public static int MARKET = 1; 13 | } 14 | 15 | public static abstract class STATUS { 16 | public static int CREATE = 0; 17 | public static int ACTIVE = 1; 18 | public static int DONE = 2; 19 | public static int CLOSED = 3; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/communication/sozurinet/SozuriNetFactory.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.sozurinet; 2 | 3 | import lombok.experimental.UtilityClass; 4 | import si.mazi.rescu.RestProxyFactory; 5 | 6 | @UtilityClass 7 | public class SozuriNetFactory { 8 | 9 | private static final String API_BASE_URL = "https://sozuri.net/api"; 10 | 11 | public static SozuriNetProvider createProvider() { 12 | ISozuriNetAPI api = RestProxyFactory.createProxy(ISozuriNetAPI.class, API_BASE_URL); 13 | 14 | return new SozuriNetProvider( 15 | new SozuriNetApiService(api), 16 | new SozuriNetCredentialsService() 17 | ); 18 | } 19 | } -------------------------------------------------------------------------------- /operators_sample_website/website/app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any authentication / authorization services. 21 | * 22 | * @return void 23 | */ 24 | public function boot() 25 | { 26 | $this->registerPolicies(); 27 | 28 | // 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/BaseWebhookBody.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Getter; 5 | 6 | import java.time.OffsetDateTime; 7 | 8 | @Getter 9 | public class BaseWebhookBody extends JsonObject { 10 | private String applicantId; 11 | private String inspectionId; 12 | private String correlationId; 13 | private String externalUserId; 14 | private String type; 15 | private String reviewStatus; 16 | private String levelName; 17 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ssZ") 18 | private OffsetDateTime createdAt; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle 3 | 4 | name: Java CI with Gradle 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: Set up JDK 17 20 | uses: actions/setup-java@v3 21 | with: 22 | java-version: '17.0.16' 23 | distribution: 'temurin' 24 | - name: Grant execute permission for gradlew 25 | run: chmod +x gradlew 26 | - name: Build with Gradle 27 | run: ./gradlew clean build 28 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/travelrule/ITravelRuleIncomingTransferResult.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule; 2 | 3 | /** 4 | * An object containing data with the results of evaluating an incoming transfer. 5 | * 6 | *

This is returned in {@link ITravelRuleTransferListener#onIncomingTransferReceived(ITravelRuleIncomingTransferEvent)} 7 | * after the incoming transfer is processed by the server.

8 | */ 9 | public interface ITravelRuleIncomingTransferResult { 10 | 11 | /** 12 | * Resulting status of processing an incoming transaction. 13 | * 14 | * @return Status of processing an incoming transaction. 15 | */ 16 | TravelRuleProviderTransferStatus getTransferStatus(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/erc20/generated/readme.md: -------------------------------------------------------------------------------- 1 | When updating web3j: 2 | - download [web3j cli](https://docs.web3j.io/4.8.7/command_line_tools/) 3 | - regenerate `ERC20Interface.java`: 4 | ``` 5 | web3j generate solidity --abiFile=server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/erc20/generated/ERC20Interface.abi --outputDir=server_extensions_extra/src/main/java/ --package=com.generalbytes.batm.server.extensions.extra.ethereum.erc20.generated 6 | ``` 7 | - the generated code depends on some web3j dependencies that are not transitively included, you have to add them to our build.gradle, e.g. 8 | - io.reactivex.rxjava2:rxjava:2.2.2 9 | - org.reactivestreams:reactive-streams:1.0.2 10 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Exceptions/TerminalsException.php: -------------------------------------------------------------------------------- 1 | getMessage()); 19 | } 20 | 21 | /** 22 | * @param Request $request 23 | * @param Exception $e 24 | * @return Response 25 | */ 26 | public function render(Request $request, Exception $e): Response 27 | { 28 | $error = $e->getMessage(); 29 | return response()->view('homePage', compact('error')); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/travelrule/ITravelRuleIncomingTransferData.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule; 2 | 3 | /** 4 | * Incoming transfer data from the Travel Rule provider containing information needed to automatically evaluate the transfer status. 5 | */ 6 | public interface ITravelRuleIncomingTransferData { 7 | 8 | /** 9 | * @return Destination crypto address. 10 | */ 11 | String getDestinationAddress(); 12 | 13 | /** 14 | * @return Object containing information about originator name. 15 | */ 16 | ITravelRuleNaturalPersonName getOriginatorName(); 17 | 18 | /** 19 | * @return Raw data received in an incoming transfer. 20 | */ 21 | String getRawData(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/GBlib/Terminal.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'password' => 'The provided password is incorrect.', 18 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /currencies/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("shared-publish-conventions") 3 | } 4 | 5 | group = projectGroup 6 | version = projectVersion 7 | 8 | dependencies { 9 | implementation("org.slf4j:slf4j-api:1.7.28") 10 | // keeping junit 4 for compatibility, will be removed soon, use junit 5 instead 11 | testImplementation("junit:junit:4.13.2") 12 | testImplementation("org.junit.vintage:junit-vintage-engine:5.11.4") 13 | 14 | testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4") 15 | testImplementation("org.junit.jupiter:junit-jupiter-engine:5.11.4") 16 | } 17 | 18 | java { 19 | toolchain { 20 | // must stay on Java 11 due to compatibility issues 21 | languageVersion.set(JavaLanguageVersion.of(11)) 22 | } 23 | } 24 | 25 | test { 26 | useJUnitPlatform() 27 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/veriff/api/NonNullObjectMapperFactory.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.veriff.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.databind.ObjectMapper; 5 | import si.mazi.rescu.serialization.jackson.DefaultJacksonObjectMapperFactory; 6 | 7 | public class NonNullObjectMapperFactory extends DefaultJacksonObjectMapperFactory { 8 | public void configureObjectMapper(ObjectMapper objectMapper) { 9 | super.configureObjectMapper(objectMapper); 10 | // do not include fields with null values when serializing 11 | objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/java/com/generalbytes/batm/server/extensions/common/sumsub/api/digest/SumsubTimestampProviderTest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.common.sumsub.api.digest; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import java.time.Instant; 6 | 7 | import static org.junit.jupiter.api.Assertions.assertTrue; 8 | 9 | class SumsubTimestampProviderTest { 10 | 11 | private final SumsubTimestampProvider provider = new SumsubTimestampProvider(); 12 | 13 | @Test 14 | void testDigestParams() { 15 | String nowAsString = provider.digestParams(null); 16 | 17 | long now = Long.parseLong(nowAsString); 18 | long nowPlusSecond = Instant.now().plusSeconds(1).getEpochSecond(); 19 | 20 | assertTrue(now < nowPlusSecond); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Middleware/TrustProxies.php: -------------------------------------------------------------------------------- 1 | rejectLabels; 15 | private ReviewRejectType reviewRejectType; 16 | } 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/watchlists/ca/tags/DataSet.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.watchlists.ca.tags; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | import java.util.List; 8 | 9 | @XmlRootElement(name = "data-set") 10 | @XmlAccessorType(XmlAccessType.FIELD) 11 | public class DataSet { 12 | 13 | @XmlElement(name = "record") 14 | private List records; 15 | 16 | public List getRecords() { 17 | return records; 18 | } 19 | 20 | public void setRecords(List records) { 21 | this.records = records; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /verification_site/src/main/resources/static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Verify Your Identity 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/cardano/wallets/dto/Amount.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.cardano.wallets.dto; 2 | 3 | public class Amount { 4 | private Long quantity; 5 | private String unit; 6 | 7 | public Long getQuantity() { 8 | return quantity; 9 | } 10 | 11 | public void setQuantity(Long quantity) { 12 | this.quantity = quantity; 13 | } 14 | 15 | public String getUnit() { 16 | return unit; 17 | } 18 | 19 | public void setUnit(String unit) { 20 | this.unit = unit; 21 | } 22 | 23 | @Override 24 | public String toString() { 25 | return "Amount{" + "quantity=" + quantity + 26 | ", unit='" + unit + '\'' + 27 | '}'; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneWebhookMessagePayload.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Represents the payload of a webhook message. 10 | * 11 | * @see NotabeneWebhookMessage 12 | */ 13 | @Getter 14 | @Setter 15 | @NoArgsConstructor 16 | @JsonIgnoreProperties(ignoreUnknown = true) 17 | public class NotabeneWebhookMessagePayload { 18 | 19 | /** 20 | * Information about the affected transaction. 21 | * 22 | * @see NotabeneTransferInfo 23 | */ 24 | private NotabeneTransferInfo transaction; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/event/ApplicationEvent.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.event; 2 | 3 | public class ApplicationEvent { 4 | private boolean extensionsInitialized; 5 | private boolean paymentMgrInitialized; 6 | 7 | public boolean isExtensionsInitialized() { 8 | return extensionsInitialized; 9 | } 10 | 11 | public void setExtensionsInitialized(boolean extensionsInitialized) { 12 | this.extensionsInitialized = extensionsInitialized; 13 | } 14 | 15 | public boolean isPaymentMgrInitialized() { 16 | return paymentMgrInitialized; 17 | } 18 | 19 | public void setPaymentMgrInitialized(boolean paymentMgrInitialized) { 20 | this.paymentMgrInitialized = paymentMgrInitialized; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/EthDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.ethereum; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class EthDefinition extends CryptoCurrencyDefinition{ 8 | private final IPaymentSupport paymentSupport = new EthPaymentSupport(); 9 | 10 | public EthDefinition() { 11 | super(CryptoCurrency.ETH.getCode(), "Ether ETH", "ethereum", "https://ethereum.org/en/eth/"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return paymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/UsdtDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.ethereum; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class UsdtDefinition extends CryptoCurrencyDefinition{ 8 | private final IPaymentSupport paymentSupport = new UsdtPaymentSupport(); 9 | 10 | public UsdtDefinition() { 11 | super(CryptoCurrency.USDT.getCode(), "Tether USDT ERC-20", "ethereum", "https://tether.to/"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return paymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/sumsub/api/vo/ApplicantInfoResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.sumsub.api.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.time.LocalDateTime; 8 | import java.util.List; 9 | 10 | @Getter 11 | public class ApplicantInfoResponse extends JsonObject { 12 | @Setter 13 | private String id; 14 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 15 | private LocalDateTime createdAt; 16 | private String key; 17 | private String inspectionId; 18 | private String externalUserId; 19 | private ApplicantInfo info; 20 | private List questionnaires; 21 | } 22 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Exceptions/SellTransactionException.php: -------------------------------------------------------------------------------- 1 | getMessage()); 20 | } 21 | 22 | /** 23 | * @param Request $request 24 | * @param Exception $e 25 | * @return RedirectResponse 26 | */ 27 | public function render(Request $request, Exception $e) 28 | { 29 | return Redirect::back()->withErrors(['error' => $e->getMessage()]); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/solana/SolanaDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.solana; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class SolanaDefinition extends CryptoCurrencyDefinition { 8 | private final SolanaPaymentSupport solanaPaymentSupport = new SolanaPaymentSupport(); 9 | 10 | public SolanaDefinition() { 11 | super(CryptoCurrency.SOL.getCode(), "Solana", "solana", "https://solana.com"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return solanaPaymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/handler/GtrWebhookHandler.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.handler; 2 | 3 | import com.generalbytes.batm.server.extensions.travelrule.gtr.dto.GtrWebhookMessage; 4 | import com.generalbytes.batm.server.extensions.travelrule.gtr.dto.GtrWebhookMessageResponse; 5 | 6 | /** 7 | * Represents a handler responsible for handling webhooks from Global Travel Rule. 8 | */ 9 | public interface GtrWebhookHandler { 10 | 11 | /** 12 | * Handler a webhook message. 13 | * 14 | * @param message The webhook message to handle. 15 | * @return A {@link GtrWebhookMessageResponse} as the response to the webhook message. 16 | */ 17 | GtrWebhookMessageResponse handle(GtrWebhookMessage message); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/erc20/bizz/BizzDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.ethereum.erc20.bizz; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class BizzDefinition extends CryptoCurrencyDefinition{ 8 | private IPaymentSupport paymentSupport = new BizzPaymentSupport(); 9 | 10 | public BizzDefinition() { 11 | super(CryptoCurrency.BIZZ.getCode(), "BIZZ ERC20 Token", "ethereum","https://bizzcoin.com/"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return paymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereumclassic/EtcDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.ethereumclassic; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class EtcDefinition extends CryptoCurrencyDefinition{ 8 | private final IPaymentSupport paymentSupport = new EtcPaymentSupport(); 9 | 10 | public EtcDefinition() { 11 | super(CryptoCurrency.ETC.getCode(), "Ethereum Classic", "ethclassic", "http://ethereumclassic.org/"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return paymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneNameIdentifier.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Full name separated into primary and secondary identifier. 10 | */ 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 15 | public class NotabeneNameIdentifier { 16 | 17 | private String primaryIdentifier; 18 | private String secondaryIdentifier; 19 | /** 20 | * A single value corresponding to the nature of name being adopted. 21 | */ 22 | private NotabeneNameIdentifierType nameIdentifierType; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitpandapro/dto/OrderState.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitpandapro.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | /** 6 | * Active or Inactive order with status __FILLED__, __FILLED_FULLY__, __FILLED_CLOSED__ and __FILLED_REJECTED__. 7 | **/ 8 | public class OrderState { 9 | 10 | @JsonProperty("order") 11 | private Order order; 12 | 13 | public Order getOrder() { 14 | return order; 15 | } 16 | 17 | public void setOrder(Order order) { 18 | this.order = order; 19 | } 20 | 21 | @Override public String toString() { 22 | return "OrderState{" + 23 | "order=" + order + 24 | '}'; 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/identityverification/onfido/verificationsite/dto/ServerAPIResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.identityverification.onfido.verificationsite.dto; 2 | 3 | public class ServerAPIResponse { 4 | public boolean success; 5 | public String message; 6 | 7 | public static ServerAPIResponse success(String message) { 8 | ServerAPIResponse result = new ServerAPIResponse(); 9 | result.message = message; 10 | result.success = true; 11 | return result; 12 | } 13 | 14 | public static ServerAPIResponse failure(String message) { 15 | ServerAPIResponse result = new ServerAPIResponse(); 16 | result.message = message; 17 | result.success = false; 18 | return result; 19 | } 20 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/tron/UsdttronDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.tron; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class UsdttronDefinition extends CryptoCurrencyDefinition { 8 | private final IPaymentSupport paymentSupport = new UsdttronPaymentSupport(); 9 | 10 | public UsdttronDefinition() { 11 | super(CryptoCurrency.USDTTRON.getCode(), "Tether USDT TRC-20 (TRON)", "tron", "https://tron.network/usdt"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return paymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneUnregisterWebhookRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * Request to unregister the multi-message Webhook URL for a given VASP. 11 | * 12 | * @see Notabene Documentation 13 | */ 14 | @Getter 15 | @Setter 16 | @NoArgsConstructor 17 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 18 | public class NotabeneUnregisterWebhookRequest { 19 | 20 | @JsonProperty("vaspDID") 21 | private String vaspDid; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/erc20/dai/DaiDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.ethereum.erc20.dai; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class DaiDefinition extends CryptoCurrencyDefinition{ 8 | private IPaymentSupport paymentSupport = new DaiPaymentSupport(); 9 | 10 | public DaiDefinition() { 11 | super(CryptoCurrency.DAI.getCode(), "DAI Stablecoin ERC20 Token", "ethereum","https://makerdao.com/en/dai/"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return paymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/sumsub/api/dto/updatetransactionhash/SumsubUpdateTransactionHashRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.sumsub.api.dto.updatetransactionhash; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.generalbytes.batm.server.extensions.travelrule.sumsub.api.SumsubTravelRuleApi; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Request object for update blockchain transaction hash. 10 | * Used in {@link SumsubTravelRuleApi#updateTransactionHash}. 11 | */ 12 | @Getter 13 | @Setter 14 | @JsonIgnoreProperties(ignoreUnknown = true) 15 | public class SumsubUpdateTransactionHashRequest { 16 | /** 17 | * Blockchain transaction hash. 18 | */ 19 | private String paymentTxnId; 20 | } 21 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/cardano/wallets/dto/Balance.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.cardano.wallets.dto; 2 | 3 | public class Balance { 4 | private Amount available; 5 | private Amount reward; 6 | private Amount total; 7 | 8 | public Amount getAvailable() { 9 | return available; 10 | } 11 | 12 | public void setAvailable(Amount available) { 13 | this.available = available; 14 | } 15 | 16 | public Amount getReward() { 17 | return reward; 18 | } 19 | 20 | public void setReward(Amount reward) { 21 | this.reward = reward; 22 | } 23 | 24 | public Amount getTotal() { 25 | return total; 26 | } 27 | 28 | public void setTotal(Amount total) { 29 | this.total = total; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /batm_ssh_tunnel/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("application") 3 | } 4 | 5 | version = "1.0.0" 6 | 7 | application { 8 | mainClass = "com.generalbytes.batm.sshtunnel.Main" 9 | } 10 | 11 | distributions { 12 | main { 13 | contents { 14 | eachFile { 15 | // place the files in the archive root - out of the top level directory 16 | it.path = it.path.replaceFirst(/^$project.archivesBaseName-$version\//, '') 17 | } 18 | } 19 | } 20 | } 21 | 22 | configurations.configureEach { 23 | exclude group: "org.eclipse.ee4j" 24 | } 25 | 26 | dependencies { 27 | implementation("org.apache.sshd:sshd-core:2.3.0") 28 | implementation("org.apache.sshd:sshd-common:2.3.0") 29 | implementation("ch.qos.logback:logback-classic:1.2.9") 30 | implementation("org.bouncycastle:bcpkix-jdk15on:1.63") 31 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/bitbuy/dto/QuoteRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.bitbuy.dto; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class QuoteRequest { 6 | public CurrencySide currencySide; 7 | public String quantity; 8 | public OrderSide side; 9 | public String quote; // CAD 10 | public String base; // crypto 11 | 12 | public QuoteRequest() { 13 | } 14 | 15 | public QuoteRequest(OrderSide orderSide, String cryptoCurrency, String fiatCurrency, BigDecimal cryptoAmount) { 16 | this.currencySide = CurrencySide.BASE; 17 | this.quantity = cryptoAmount.toPlainString(); 18 | this.side = orderSide; 19 | this.quote = fiatCurrency; 20 | this.base = cryptoCurrency; 21 | } 22 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/erc20/generated/ERC20Interface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.24; 2 | 3 | contract ERC20Interface { 4 | function totalSupply() public constant returns (uint); 5 | function balanceOf(address tokenOwner) public constant returns (uint balance); 6 | function allowance(address tokenOwner, address spender) public constant returns (uint remaining); 7 | function transfer(address to, uint tokens) public returns (bool success); 8 | function approve(address spender, uint tokens) public returns (bool success); 9 | function transferFrom(address from, address to, uint tokens) public returns (bool success); 10 | 11 | event Transfer(address indexed from, address indexed to, uint tokens); 12 | event Approval(address indexed tokenOwner, address indexed spender, uint tokens); 13 | } -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneRegisterWebhookRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * Request to register the multi-message Webhook URL for a given VASP. 11 | * 12 | * @see Notabene Documentation 13 | */ 14 | @Getter 15 | @Setter 16 | @NoArgsConstructor 17 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 18 | public class NotabeneRegisterWebhookRequest { 19 | 20 | @JsonProperty("vaspDID") 21 | private String vaspDid; 22 | private String url; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Exceptions/TerminalsWithAvailableCashException.php: -------------------------------------------------------------------------------- 1 | getMessage()); 20 | } 21 | 22 | /** 23 | * @param Request $request 24 | * @param Exception $e 25 | * @return RedirectResponse 26 | */ 27 | public function render(Request $request, Exception $e): RedirectResponse 28 | { 29 | return Redirect::back()->withErrors(['error' => $e->getMessage()]); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/solana/SolanaPaymentSupport.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.solana; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.extra.common.QueryableWalletPaymentSupport; 5 | 6 | import java.util.concurrent.TimeUnit; 7 | 8 | public class SolanaPaymentSupport extends QueryableWalletPaymentSupport { 9 | @Override 10 | protected String getCryptoCurrency() { 11 | return CryptoCurrency.SOL.getCode(); 12 | } 13 | 14 | @Override 15 | protected long getPollingPeriodMillis() { 16 | return TimeUnit.SECONDS.toMillis(30); 17 | } 18 | 19 | @Override 20 | protected long getPollingInitialDelayMillis() { 21 | return TimeUnit.SECONDS.toMillis(60); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/solana/UsdcSolanaDefinition.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.solana; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.CryptoCurrencyDefinition; 5 | import com.generalbytes.batm.server.extensions.payment.IPaymentSupport; 6 | 7 | public class UsdcSolanaDefinition extends CryptoCurrencyDefinition { 8 | private final UsdcSolanaPaymentSupport usdcSolanaPaymentSupport = new UsdcSolanaPaymentSupport(); 9 | 10 | public UsdcSolanaDefinition() { 11 | super(CryptoCurrency.USDCSOL.getCode(), "USDC (Solana SPL)", "solana", "https://usdc.com"); 12 | } 13 | 14 | @Override 15 | public IPaymentSupport getPaymentSupport() { 16 | return usdcSolanaPaymentSupport; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 19 | SendEmailVerificationNotification::class, 20 | ], 21 | ]; 22 | 23 | /** 24 | * Register any events for your application. 25 | * 26 | * @return void 27 | */ 28 | public function boot() 29 | { 30 | // 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/value/FileCustomFieldValue.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields.value; 2 | 3 | import com.generalbytes.batm.server.extensions.customfields.CustomFieldDefinitionType; 4 | 5 | /** 6 | * used with {@link CustomFieldDefinitionType#IMAGE} and {@link CustomFieldDefinitionType#DOCUMENT} 7 | */ 8 | public class FileCustomFieldValue implements CustomFieldValue { 9 | private final String fileName; 10 | private final String mimeType; 11 | 12 | public FileCustomFieldValue(String fileName, String mimeType) { 13 | this.fileName = fileName; 14 | this.mimeType = mimeType; 15 | } 16 | 17 | public String getFileName() { 18 | return fileName; 19 | } 20 | 21 | public String getMimeType() { 22 | return mimeType; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/solana/UsdcSolanaPaymentSupport.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.solana; 2 | 3 | import com.generalbytes.batm.common.currencies.CryptoCurrency; 4 | import com.generalbytes.batm.server.extensions.extra.common.QueryableWalletPaymentSupport; 5 | 6 | import java.util.concurrent.TimeUnit; 7 | 8 | public class UsdcSolanaPaymentSupport extends QueryableWalletPaymentSupport { 9 | @Override 10 | protected String getCryptoCurrency() { 11 | return CryptoCurrency.USDCSOL.getCode(); 12 | } 13 | 14 | @Override 15 | protected long getPollingPeriodMillis() { 16 | return TimeUnit.SECONDS.toMillis(30); 17 | } 18 | 19 | @Override 20 | protected long getPollingInitialDelayMillis() { 21 | return TimeUnit.SECONDS.toMillis(60); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /operators_sample_website/website/resources/lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Your password has been reset!', 17 | 'sent' => 'We have emailed your password reset link!', 18 | 'throttled' => 'Please wait before retrying.', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that email address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /country/src/main/java/com/generalbytes/batm/server/extensions/CountryAustralia.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * Australia province identifiers. 8 | *

9 | * Usage e.g.: 10 | * CountryAustralia.NSW.getProvinceName() 11 | * CountryAustralia.valueOf("NSW").getProvinceName() 12 | */ 13 | @Getter 14 | @AllArgsConstructor 15 | public enum CountryAustralia implements CountryRegion { 16 | 17 | NSW("NSW", "New South Wales"), 18 | QLD("QLD", "Queensland"), 19 | SA("SA", "South Australia"), 20 | TAS("TAS", "Tasmania"), 21 | VIC("VIC", "Victoria"), 22 | WA("WA", "Western Australia"), 23 | ACT("ACT", "Australian Capital Territory"), 24 | NT("NT", "Northern Territory"); 25 | 26 | private final String iso; 27 | private final String provinceName; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/CustomField.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields; 2 | 3 | import com.generalbytes.batm.server.extensions.customfields.value.CustomFieldValue; 4 | 5 | import java.util.Objects; 6 | 7 | public class CustomField { 8 | private final CustomFieldDefinition definition; 9 | private final CustomFieldValue value; 10 | 11 | public CustomField(CustomFieldDefinition definition, CustomFieldValue value) { 12 | this.definition = Objects.requireNonNull(definition, "definition cannot be null"); 13 | this.value = Objects.requireNonNull(value, "value cannot be null"); 14 | } 15 | 16 | public CustomFieldDefinition getDefinition() { 17 | return definition; 18 | } 19 | 20 | public CustomFieldValue getValue() { 21 | return value; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/ethereum/sources/stasis/StasisTickerResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.ethereum.sources.stasis; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | import java.util.HashMap; 6 | 7 | public class StasisTickerResponse { 8 | @JsonProperty("rates") 9 | private HashMap rates; 10 | 11 | public HashMap getRates() { 12 | return rates; 13 | } 14 | 15 | public void setRates(HashMap rates) { 16 | this.rates = rates; 17 | } 18 | 19 | public StasisRateDescription getEUR() { 20 | return rates.get("EUR:EURS"); 21 | } 22 | 23 | public StasisRateDescription getEURS() { 24 | return rates.get("EURS:EUR"); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneGenerateAccessTokenResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Response to generating a new access token. 10 | * 11 | * @see Notabene Documentation 12 | * @see NotabeneGenerateAccessTokenRequest 13 | */ 14 | @Getter 15 | @Setter 16 | @NoArgsConstructor 17 | public class NotabeneGenerateAccessTokenResponse { 18 | 19 | @JsonProperty("access_token") 20 | private String accessToken; 21 | @JsonProperty("expires_in") 22 | private int expiresInMillis; 23 | @JsonProperty("token_type") 24 | private String tokenType; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /operators_sample_website/website/database/migrations/2014_10_12_100000_create_password_resets_table.php: -------------------------------------------------------------------------------- 1 | string('email')->index(); 18 | $table->string('token'); 19 | $table->timestamp('created_at')->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('password_resets'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/gtr/dto/GtrLoginResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.gtr.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.generalbytes.batm.server.extensions.travelrule.gtr.api.GtrApi; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Response object containing JWT access token. 10 | * Used in {@link GtrApi#login(GtrLoginRequest)}. 11 | */ 12 | @Setter 13 | @JsonIgnoreProperties(ignoreUnknown = true) 14 | public class GtrLoginResponse { 15 | /** 16 | * Data object containing JWT access token. 17 | */ 18 | private LoginData data; 19 | 20 | public String getJwtToken() { 21 | return data.getJwt(); 22 | } 23 | 24 | @Getter 25 | private static class LoginData { 26 | private String jwt; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/customfields/value/ChoiceCustomFieldValue.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.customfields.value; 2 | 3 | import com.generalbytes.batm.server.extensions.customfields.CustomFieldDefinition; 4 | import com.generalbytes.batm.server.extensions.customfields.CustomFieldDefinitionType; 5 | 6 | /** 7 | * used with {@link CustomFieldDefinitionType#DROPDOWN} and {@link CustomFieldDefinitionType#RADIO_BTN} 8 | */ 9 | public class ChoiceCustomFieldValue implements CustomFieldValue{ 10 | private final long choiceId; 11 | 12 | /** 13 | * @param choiceId id of a choice from {@link CustomFieldDefinition.Element#getId()} 14 | */ 15 | 16 | public ChoiceCustomFieldValue(long choiceId) { 17 | this.choiceId = choiceId; 18 | } 19 | 20 | public long getChoiceId() { 21 | return choiceId; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneApiError.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * General Notabene Api error response. 10 | */ 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | @JsonIgnoreProperties(ignoreUnknown = true) 15 | public class NotabeneApiError { 16 | 17 | /** 18 | * The name of the error. 19 | */ 20 | private String name; 21 | /** 22 | * The HTTP status code. 23 | */ 24 | private int code; 25 | /** 26 | * The error message. 27 | */ 28 | private String message; 29 | /** 30 | * The error stack message. 31 | */ 32 | private String stack; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/sumsub/api/dto/transactionownershipresolution/SumsubTransactionOwnershipResolutionResponse.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.sumsub.api.dto.transactionownershipresolution; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.generalbytes.batm.server.extensions.travelrule.sumsub.api.SumsubTravelRuleApi; 5 | import lombok.Getter; 6 | 7 | /** 8 | * Response object from Sumsub containing data about transaction resolution. 9 | * Used in {@link SumsubTravelRuleApi#confirmTransactionOwnership} and {@link SumsubTravelRuleApi#rejectTransactionOwnership}. 10 | */ 11 | @Getter 12 | @JsonIgnoreProperties(ignoreUnknown = true) 13 | public class SumsubTransactionOwnershipResolutionResponse { 14 | /** 15 | * Sumsub transaction ID. 16 | */ 17 | private String id; 18 | } 19 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/sumsub/api/dto/transactioninfo/SumsubPaymentMethod.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.sumsub.api.dto.transactioninfo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * Object containing info about Sumsub payment method. 9 | * Used in {@link SumsubCounterparty}. 10 | */ 11 | @Getter 12 | @Setter 13 | @JsonIgnoreProperties(ignoreUnknown = true) 14 | public class SumsubPaymentMethod { 15 | private String type; 16 | /** 17 | * The crypto address. 18 | */ 19 | private String accountId; 20 | /** 21 | * Destination tag used in some cryptocurrencies to identify a specific address, for example XRP (Ripple) or XLM (Stellar). 22 | * Optional parameter. 23 | */ 24 | private String memo; 25 | } 26 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneTransactionBlockchainInfo.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | import lombok.ToString; 8 | 9 | /** 10 | * Information about a transaction on the blockchain 11 | */ 12 | @Getter 13 | @Setter 14 | @NoArgsConstructor 15 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 16 | @ToString 17 | public class NotabeneTransactionBlockchainInfo { 18 | 19 | /** 20 | * Transaction txHash. 21 | */ 22 | private String txHash; 23 | /** 24 | * Originator crypto address. 25 | */ 26 | private String origin; 27 | /** 28 | * Destination crypto address. 29 | */ 30 | private String destination; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/IdentityFilter.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions; 2 | 3 | import java.time.LocalDate; 4 | 5 | /** 6 | * Filter for searching for identities. Null values are ignored. 7 | * 8 | * @param givenName First name of the identity. Case in-sensitive match 9 | * @param surname Last name of the identity. Case in-sensitive match. 10 | * @param dateOfBirth Date of birth of the identity. 11 | * @param documentNumber Document number. e.g., passport number or ID card number. Case-sensitive match. 12 | * @param ssn Social Security Number. Case-sensitive match. 13 | */ 14 | public record IdentityFilter(String givenName, 15 | String surname, 16 | LocalDate dateOfBirth, 17 | String documentNumber, 18 | String ssn) { 19 | } 20 | -------------------------------------------------------------------------------- /server_extensions_extra/src/test/java/com/generalbytes/batm/server/extensions/extra/communication/sozurinet/SozuriNetFactoryTest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.communication.sozurinet; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.mockito.MockedStatic; 5 | import si.mazi.rescu.RestProxyFactory; 6 | 7 | import static org.junit.jupiter.api.Assertions.assertNotNull; 8 | import static org.mockito.Mockito.mockStatic; 9 | 10 | class SozuriNetFactoryTest { 11 | @Test 12 | void testCreateProvider_withCorrectParameters() { 13 | try (MockedStatic factoryMock = mockStatic(RestProxyFactory.class)) { 14 | SozuriNetProvider provider = SozuriNetFactory.createProvider(); 15 | assertNotNull(provider); 16 | 17 | factoryMock.verify(() -> RestProxyFactory.createProxy(ISozuriNetAPI.class, "https://sozuri.net/api")); 18 | } 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /server_extensions_template/src/main/java/com/mygreatcompany/batm/server/extensions/myfirstextension/MyFirstExtension.java: -------------------------------------------------------------------------------- 1 | package com.mygreatcompany.batm.server.extensions.myfirstextension; 2 | 3 | import com.generalbytes.batm.server.extensions.AbstractExtension; 4 | import com.generalbytes.batm.server.extensions.IExtensionContext; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | public class MyFirstExtension extends AbstractExtension { 9 | 10 | protected final Logger log = LoggerFactory.getLogger("batm.master.myextension"); 11 | 12 | 13 | @Override 14 | public String getName() { 15 | return "My first extension"; 16 | } 17 | 18 | 19 | @Override 20 | public void init(IExtensionContext ctx) { 21 | super.init(ctx); 22 | log.debug("MyFirst extension initialized. Adding listener"); 23 | ctx.addTransactionListener(new MyTransactionListener(ctx)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /operators_sample_website/website/app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | check()) { 26 | return redirect(RouteServiceProvider::HOME); 27 | } 28 | } 29 | 30 | return $next($request); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneTransferUpdateRequest.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Request to update an existing transfer. 10 | * 11 | * @see Notabene Documentation 12 | * @see NotabeneTransferInfo 13 | */ 14 | @Getter 15 | @Setter 16 | @NoArgsConstructor 17 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 18 | public class NotabeneTransferUpdateRequest { 19 | 20 | /** 21 | * Identifier of the transfer. Returned by Notabene on create. 22 | */ 23 | private String id; 24 | /** 25 | * The blockchain transaction hash. 26 | */ 27 | private String txHash; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/lightningbitcoin/lnurl/LnurlRestServiceException.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.extra.lightningbitcoin.lnurl; 2 | 3 | import java.util.Objects; 4 | 5 | public class LnurlRestServiceException extends Exception { 6 | 7 | private final String clientMessage; 8 | 9 | /** 10 | * @param clientMessage a message displayed to the end user in their wallet 11 | */ 12 | public LnurlRestServiceException(String clientMessage) { 13 | this.clientMessage = Objects.requireNonNull(clientMessage); 14 | } 15 | 16 | public LnurlRestServiceException() { 17 | this("Error processing LNURL"); 18 | } 19 | 20 | public String getClientMessage() { 21 | return clientMessage; 22 | } 23 | 24 | @Override 25 | public String getMessage() { 26 | return "Client message: " + clientMessage; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/travelrule/notabene/dto/NotabeneNationalIdentification.java: -------------------------------------------------------------------------------- 1 | package com.generalbytes.batm.server.extensions.travelrule.notabene.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @NoArgsConstructor 11 | @JsonInclude(JsonInclude.Include.NON_DEFAULT) 12 | public class NotabeneNationalIdentification { 13 | 14 | private String nationalIdentifier; 15 | private NotabeneNationalIdentifierType nationalIdentifierType; 16 | /** 17 | * Two alphabetic characters representing an ISO-3166 Alpha-2 country, 18 | * including the code ‘XX’ to represent an indicator for unknown States, 19 | * other entities or organisations 20 | */ 21 | private String countryOfIssue; 22 | private String registrationAuthority; 23 | 24 | } 25 | --------------------------------------------------------------------------------