Skip to content

Commit f3a30d1

Browse files
authored
Merge pull request #16 from MobileWalletProtocol/vishnu/base64
Add compression to encrypted data URL param
2 parents d88fed0 + 294c6f0 commit f3a30d1

7 files changed

Lines changed: 43 additions & 22 deletions

File tree

packages/client/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"scripts": {
2626
"test": "jest",
2727
"test:coverage": "yarn test:unit && open coverage/lcov-report/index.html",
28-
"prebuild": "rm -rf ./build && node -p \"'export const LIB_VERSION = \\'' + require('./package.json').version + '\\';'\" > src/version.ts",
28+
"prebuild": "rm -rf ./dist && node -p \"'export const LIB_VERSION = \\'' + require('./package.json').version + '\\';'\" > src/version.ts",
2929
"build": "tsc -p ./tsconfig.build.json && tsc-alias",
3030
"dev": "tsc --watch & nodemon --watch dist --delay 1 --exec tsc-alias",
3131
"typecheck": "tsc --noEmit",
@@ -35,7 +35,8 @@
3535
"@noble/ciphers": "^0.5.3",
3636
"@noble/curves": "^1.4.2",
3737
"@noble/hashes": "^1.4.0",
38-
"eventemitter3": "^5.0.1"
38+
"eventemitter3": "^5.0.1",
39+
"fflate": "^0.8.2"
3940
},
4041
"peerDependencies": {
4142
"@react-native-async-storage/async-storage": "*",

packages/client/src/components/communicator/webBased/Communicator.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('Communicator', () => {
5555
WebBasedWalletCommunicator.postRequestAndWaitForResponse(mockRequest, mockUrl);
5656

5757
expect(WebBrowser.openBrowserAsync).toHaveBeenCalledWith(
58-
'https://coinbase.com/?id=%22123%22&sender=%22123%22&sdkVersion=%221.0.0%22&callbackUrl=%22https%3A%2F%2Fcallback.com%22&timestamp=%222022-02-01T20%3A30%3A45.500Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%224655c5420d61ee8c4db7863f%22%2C%22cipherText%22%3A%2283d55c4bb8aadc5c31de49bb259c41f0595c905ce13662fd10f8428494f5c4e2af32b8c882f0e1768ca83b9b25b94766573b2903282d40f5046f91eb49b773ca0487c38a20facba93b1202f4f65e8d68a325e02ea3f2c26d9356e75d108a70b2b87427413e93f9826dd6686418a30f92e318a9e8dbcd334c4e9a72bf96ca937bb0f6243127db7cf85a4144a057ad7cd8fd5ef5e756b883035db758%22%7D%7D',
58+
'https://coinbase.com/?id=%22123%22&sender=%22123%22&sdkVersion=%221.0.0%22&callbackUrl=%22https%3A%2F%2Fcallback.com%22&timestamp=%222022-02-01T20%3A30%3A45.500Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22RlXFQg1h7oxNt4Y%2F%22%2C%22cipherText%22%3A%22g9VcS7iq3Fwx3km7JZxB8FlckFzhNmL9EPhChJT1xOKvMrjIgvDhdoyoO5sluUdmVzspAygtQPUEb5HrSbdzygSHw4og%2BsupOxIC9PZejWijJeAuo%2FLCbZNW510QinCyuHQnQT6T%2BYJt1mhkGKMPkuMYqejbzTNMTppyv5bKk3uw9iQxJ9t8%2BFpBRKBXrXzY%2FV7151a4gwNdt1g%3D%22%7D%7D',
5959
{
6060
presentationStyle: WebBrowser.WebBrowserPresentationStyle.FORM_SHEET,
6161
}
@@ -71,7 +71,7 @@ describe('Communicator', () => {
7171
WebBasedWalletCommunicator.postRequestAndWaitForResponse(mockRequest, mockUrl);
7272

7373
expect(WebBrowser.openBrowserAsync).toHaveBeenCalledWith(
74-
'https://coinbase.com/?id=%22123%22&sender=%22123%22&sdkVersion=%221.0.0%22&callbackUrl=%22https%3A%2F%2Fcallback.com%22&timestamp=%222022-02-01T20%3A30%3A45.500Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%224655c5420d61ee8c4db7863f%22%2C%22cipherText%22%3A%2283d55c4bb8aadc5c31de49bb259c41f0595c905ce13662fd10f8428494f5c4e2af32b8c882f0e1768ca83b9b25b94766573b2903282d40f5046f91eb49b773ca0487c38a20facba93b1202f4f65e8d68a325e02ea3f2c26d9356e75d108a70b2b87427413e93f9826dd6686418a30f92e318a9e8dbcd334c4e9a72bf96ca937bb0f6243127db7cf85a4144a057ad7cd8fd5ef5e756b883035db758%22%7D%7D',
74+
'https://coinbase.com/?id=%22123%22&sender=%22123%22&sdkVersion=%221.0.0%22&callbackUrl=%22https%3A%2F%2Fcallback.com%22&timestamp=%222022-02-01T20%3A30%3A45.500Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22RlXFQg1h7oxNt4Y%2F%22%2C%22cipherText%22%3A%22g9VcS7iq3Fwx3km7JZxB8FlckFzhNmL9EPhChJT1xOKvMrjIgvDhdoyoO5sluUdmVzspAygtQPUEb5HrSbdzygSHw4og%2BsupOxIC9PZejWijJeAuo%2FLCbZNW510QinCyuHQnQT6T%2BYJt1mhkGKMPkuMYqejbzTNMTppyv5bKk3uw9iQxJ9t8%2BFpBRKBXrXzY%2FV7151a4gwNdt1g%3D%22%7D%7D',
7575
{
7676
presentationStyle: WebBrowser.WebBrowserPresentationStyle.FORM_SHEET,
7777
}
@@ -217,7 +217,7 @@ describe('Communicator', () => {
217217
timestamp: new Date('2024-08-09T19:10:34.785Z'),
218218
};
219219

220-
const responseUrl = `https://callback.example.com/coinbase-wallet-sdk?id=%22541efc8b-1aa8-4af1-88d1-34c4231f92bf%22&sender=%223059301306072a8648ce3d020106082a8648ce3d030107034200048235f8adc26178a6674f6e684e90eaacec95af520f39b1e14578b5f5648cc3379e48064dbc97331d60b9ed9ab6b4078e06c9c387872a4a4178ffbe9bc56c4a74%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22c64f2bb8855cffce4c050f57%22%2C%22cipherText%22%3A%22574dd582a41f874fda84195dc81ccce2fcd81b2492a51b523f5d00b6126f37641b0f0bc25074735d297f2f263f8792dd248fe55364f5c70314aa3548ffdccdba1f80a6e213d9a8d7ff53e81241f084c4b8062bcf982c55b3b3116f285c29fb253142eba0cac1bc701f5ed82c5fa3d21762d7f50f8cae91a50c2c2d7c5ea16b468aa99c87d560ecfa1dd6da931d06567cbc4e032e001f79288b341eb8a9b8bd4c1b527e703cded31b74b8a9a077e7beb7be22280738c2f63dd271aa988752fe6f3fae9bfcbf11d95d18826b7536d81e63a967172ff6b280c95f32283ff392ec164ea9d3fb8a02a810fdda77977a4257ac21a239d5d6df3448af3a8aafb4e444a56f35e8997704a5e1fceb8105a2b4986051b06ac6d06ef355eb1b4d3a2cd4dc2a4859f0f4a61853c1eec3b6f881e848a45139aad2455da23bffec2242e9da7d6f3640ee24e0de4953007805d77d4442203c6149c5575048e1cac411c8a97f5f8457af7f1a506cdf501d972cb332a1a6d130197a26f0d39e75da66cf6eec059f0ab4db3199c281e400df9a3576b463c21204419462e82261a0967bf335393c8126b4e545a68d3b2d1a96a458bf6618a9a0bdf0c1747cc2a39981a9a7ea79962a8fcdabac2c6715af3b25b12bc7b49e22cdd0b319400086cd07f872530c26da9d5c6a2fb0c76abfab0aa3ff731974458acf4147fae964fa39c793b956c41b05d05d114a6d6f3be6eb09ddb8dbfe9e30f09a2c6cb044bc8321865744a29b59ebceb1c175dab748048d39efe8114d5213255d14e9d6f86e9daf891fea637c5be37f0bf836a4671e4b4917f9baf18ba6923b19a0671a495e4a4f2e6dad5c95d99bb7fb22ac8c0adf9be0b8570690cb3b019d3e495248707344c4c5f472ba770037aafd1567d708f8129be9d9734a47b2e1ffbe7edc9ea62a0b3ea1d236ba40f1903a017249696087d94e43f945e447b1115efeff21ed9735c9a0be7a9ea230dbb16efc3f2cd9dcbd3de70b39189f9a5804a2e74e3eb70c2dea854c38cf9a2cab03c214f85e6532bd0f90e396db00250a88a2111405202749147d9d7c369f8a97530088b480c7128a2d93d2f9185becb783bfa6678c77d8482c5f1e913ed3e33559799f8b3103c6f11b1cf205706b9ff66d574d2544e1a45907ee59e371b51df5b759bd899ad78dfb9c54033f6381bd69e73d29d847ca3180d3a2e5b474f8f7727de5b74a946636451b6972ecf9304f85d789e40ebc6ef2f2b8a3b602d68c2c9556fc1ea69c70bb495429e295484457347f75ad40fd7382e03ac647c7c1271f5833e4f3209c4f331ef6a923d2eebaf0f1c8d89d4cf6626c5c15e59c7c113405ae019a614e2f0472fe78af9e3eb797bd2371022ba84f5e0af637a38153d1a9cc49467a9516ab27d8df6e0f410466b45f2efa2585cbe79653c5a2b4a7f559e54eb525622878e6a9eb4c546243b2cb3e441336da0975a0ce39da08280386ff0c5e29e95904d52ea90d4c7f1924ebfc27ee7d38e0d543dc428662f449a22425a06c32bca24bc365f14cdec1c651712ee95ba10d9125b24420e9b83c5a0dd005b3b99ecb35dbb8671fbba0e9dbe247707727b7c949af397177c201cbad9f4deb7c65bbf08fcde0a3a6b319b2e9dd2f04f7d058f93f51e1f6e76e09b0a83da99cc1f3fb1262e82d500959f1b0f1f05803fef60064f88602cd8a369018b5d09a6d299341fb29e733d6dd424d01fd0313fdaeece7f1a702dadb386c4a7f691d0f851816dc9f677ecd426804e1d75492aad14d838d412e326fe892d08dcbcbd41fe1ab5dc8ff1a8b846c38943230420674b626cb18d7ee272922c44f946abb455004e5c26e26064954f796e148aa98e5368f4e2e8a0089787b5fae4aa54cecc64bcd2dae30f703d9e47ee6a767ddb29ab73d9e97efb624bfb0cd6cd5e6ebd191cd287694ec717139a8cb437895605e764e0ceb5b540b3b534e155eb5697264ef774c12dfee0a933a461de487930a5835ee48181e10f50a2974a7e3985eb82fd657a141a8fa916417c61e016c672ea08e1c4f306c5ff95596bb37a86e6ef31eefffb4002c18c2641691f235df2793965d569759d3cfb85b2a45855500ce1432daf8b98223624d2d82b5d2290965242dd7d9e314f659dc8625d679fa9a65821e66ea4b17c37ccf7e697bdf40ccbc0d6d3dd9479161f776c8b47a0bb8f039d6e8268277aa369b747e77381f99e760a5331fba86f8077a824e169e01e7be943cac87816b14e09800917d05959d49816df799c9036e4898e7971f634956d017ef9df9b8d5b90aaaf7193b68c9bc61e8aca94ab72eb782d671444a83200b9ec02aa7cc6f939bc39c3566c894c9bfad051e13ab11ca90bedb7af348de872e4be6f9c4d73741ee195d9f5a8b262bad5993bda30538e9922d295006daeb12414a953541cac11814b04785e60c8cb13d6c8132e0a14ecb3ce27e5c4353c857a16c4fe6a6120ac83e19bb9c70c5133dc0c6e6cfb609b03489b2b4383aadd51ba3a1d0dca56641594352e20a5823a1e25816c5fcf1efa381bef7ff5fe922a7ba657159fdf62136e465aa1e2f8db786f2f6fd300729fb5654bfe3c4cfb2bbac10f0d0158d6a782db627818b8edf52aeae52a25acd12d59aae73cf49fcffd5a3d3b4920ddacdd37a108de133639f2fdd5344e8562a57%22%7D%7D&requestId=%22300c44da-a3b1-40d8-ad13-35132392e8dd%22&timestamp=%222024-08-09T19%3A10%3A34.785Z%22`;
220+
const responseUrl = `https://callback.example.com/coinbase-wallet-sdk?id=%22541efc8b-1aa8-4af1-88d1-34c4231f92bf%22&sender=%223059301306072a8648ce3d020106082a8648ce3d030107034200048235f8adc26178a6674f6e684e90eaacec95af520f39b1e14578b5f5648cc3379e48064dbc97331d60b9ed9ab6b4078e06c9c387872a4a4178ffbe9bc56c4a74%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22xk8ruIVc%2F85MBQ9X%22%2C%22cipherText%22%3A%22V03VgqQfh0%2FahBldyBzM4vzYGySSpRtSP10AthJvN2QbDwvCUHRzXSl%2FLyY%2Fh5LdJI%2FlU2T1xwMUqjVI%2F9zNuh%2BApuIT2ajX%2F1PoEkHwhMS4BivPmCxVs7MRbyhcKfslMULroMrBvHAfXtgsX6PSF2LX9Q%2BMrpGlDCwtfF6ha0aKqZyH1WDs%2Bh3W2pMdBlZ8vE4DLgAfeSiLNB64qbi9TBtSfnA83tMbdLipoHfnvre%2BIigHOML2PdJxqpiHUv5vP66b%2FL8R2V0Ygmt1NtgeY6lnFy%2F2soDJXzIoP%2FOS7BZOqdP7igKoEP3ad5d6QlesIaI51dbfNEivOoqvtOREpW816Jl3BKXh%2FOuBBaK0mGBRsGrG0G7zVesbTTos1NwqSFnw9KYYU8Huw7b4gehIpFE5qtJFXaI7%2F%2BwiQunafW82QO4k4N5JUwB4Bdd9REIgPGFJxVdQSOHKxBHIqX9fhFevfxpQbN9QHZcsszKhptEwGXom8NOeddpmz27sBZ8KtNsxmcKB5ADfmjV2tGPCEgRBlGLoImGglnvzNTk8gSa05UWmjTstGpakWL9mGKmgvfDBdHzCo5mBqafqeZYqj82rrCxnFa87JbErx7SeIs3QsxlAAIbNB%2FhyUwwm2p1cai%2Bwx2q%2Fqwqj%2F3MZdEWKz0FH%2Bulk%2BjnHk7lWxBsF0F0RSm1vO%2BbrCd242%2F6eMPCaLGywRLyDIYZXRKKbWevOscF12rdIBI057%2BgRTVITJV0U6db4bp2viR%2FqY3xb438L%2BDakZx5LSRf5uvGLppI7GaBnGkleSk8uba1cldmbt%2FsirIwK35vguFcGkMs7AZ0%2BSVJIcHNExMX0crp3ADeq%2FRVn1wj4Epvp2XNKR7Lh%2F75%2B3J6mKgs%2BodI2ukDxkDoBcklpYIfZTkP5ReRHsRFe%2Fv8h7Zc1yaC%2Bep6iMNuxbvw%2FLNncvT3nCzkYn5pYBKLnTj63DC3qhUw4z5osqwPCFPheZTK9D5DjltsAJQqIohEUBSAnSRR9nXw2n4qXUwCItIDHEootk9L5GFvst4O%2FpmeMd9hILF8ekT7T4zVZeZ%2BLMQPG8Rsc8gVwa5%2F2bVdNJUThpFkH7lnjcbUd9bdZvYma1437nFQDP2OBvWnnPSnYR8oxgNOi5bR0%2BPdyfeW3SpRmNkUbaXLs%2BTBPhdeJ5A68bvLyuKO2AtaMLJVW%2FB6mnHC7SVQp4pVIRFc0f3WtQP1zguA6xkfHwScfWDPk8yCcTzMe9qkj0u668PHI2J1M9mJsXBXlnHwRNAWuAZphTi8Ecv54r54%2Bt5e9I3ECK6hPXgr2N6OBU9GpzElGepUWqyfY324PQQRmtF8u%2BiWFy%2BeWU8WitKf1WeVOtSViKHjmqetMVGJDsss%2BRBM22gl1oM452ggoA4b%2FDF4p6VkE1S6pDUx%2FGSTr%2FCfufTjg1UPcQoZi9EmiJCWgbDK8okvDZfFM3sHGUXEu6VuhDZElskQg6bg8Wg3QBbO5nss127hnH7ug6dviR3B3J7fJSa85cXfCAcutn03rfGW78I%2FN4KOmsxmy6d0vBPfQWPk%2FUeH2524JsKg9qZzB8%2FsSYugtUAlZ8bDx8FgD%2FvYAZPiGAs2KNpAYtdCabSmTQfsp5zPW3UJNAf0DE%2F2u7OfxpwLa2zhsSn9pHQ%2BFGBbcn2d%2BzUJoBOHXVJKq0U2DjUEuMm%2FoktCNy8vUH%2BGrXcj%2FGouEbDiUMjBCBnS2JssY1%2B4nKSLET5Rqu0VQBOXCbiYGSVT3luFIqpjlNo9OLooAiXh7X65KpUzsxkvNLa4w9wPZ5H7mp2fdspq3PZ6X77Ykv7DNbNXm69GRzSh2lOxxcTmoy0N4lWBedk4M61tUCztTThVetWlyZO93TBLf7gqTOkYd5IeTClg17kgYHhD1Cil0p%2BOYXrgv1lehQaj6kWQXxh4BbGcuoI4cTzBsX%2FlVlrs3qG5u8x7v%2F7QALBjCZBaR8jXfJ5OWXVaXWdPPuFsqRYVVAM4UMtr4uYIjYk0tgrXSKQllJC3X2eMU9lnchiXWefqaZYIeZupLF8N8z35pe99AzLwNbT3ZR5Fh93bItHoLuPA51ugmgneqNpt0fnc4H5nnYKUzH7qG%2BAd6gk4WngHnvpQ8rIeBaxTgmACRfQWVnUmBbfeZyQNuSJjnlx9jSVbQF%2B%2Bd%2BbjVuQqq9xk7aMm8YeisqUq3LreC1nFESoMgC57AKqfMb5Obw5w1ZsiUyb%2BtBR4TqxHKkL7bevNI3ocuS%2Bb5xNc3Qe4ZXZ9aiyYrrVmTvaMFOOmSLSlQBtrrEkFKlTVBysEYFLBHheYMjLE9bIEy4KFOyzziflxDU8hXoWxP5qYSCsg%2BGbuccMUTPcDG5s%2B2CbA0ibK0ODqt1RujodDcpWZBWUNS4gpYI6HiWBbF%2FPHvo4G%2B9%2F9f6SKnumVxWf32ITbkZaoeL423hvL2%2FTAHKftWVL%2FjxM%2Byu6wQ8NAVjWp4LbYngYuO31KurlKiWs0S1Zquc89J%2FP%2FVo9O0kg3azdN6EI3hM2OfL91TROhWKlc%3D%22%7D%7D&requestId=%22300c44da-a3b1-40d8-ad13-35132392e8dd%22&timestamp=%222024-08-09T19%3A10%3A34.785Z%22`;
221221

222222
it('should parse error response and call the correct handler', () => {
223223
const mockErrorResponse = {

0 commit comments

Comments
 (0)