Skip to content

Add compression to encrypted data URL param#16

Merged
vishnumad merged 4 commits intomasterfrom
vishnu/base64
Oct 25, 2024
Merged

Add compression to encrypted data URL param#16
vishnumad merged 4 commits intomasterfrom
vishnu/base64

Conversation

@vishnumad
Copy link
Copy Markdown
Collaborator

@vishnumad vishnumad commented Oct 15, 2024

Summary

Base64:
Currently we encode our encrypted cipher text as a hex string to send to Smart Wallet frontend. However hex encoding doubles the length of the cipher text. So 1000 bytes of encrypted cipher text becomes 2000 chars. We can use base64 encoding for improved space efficiency. 1000 bytes of encrypted cipher text becomes 1336 chars. This becomes a significant savings for large requests.

Zlib compression:
This PR also adds support for zlib compressing the request data with fflate before it's encrypted. For the example large transaction, this reduces URL length to 1990 chars. Based off #17

I opted to leave the URL param encoding logic as is, since using a different format like msgpack seems to only have small gains (< 50 chars) and requires introducing another dependency.

Small Request

await provider.request({
  method: "personal_sign",
  params: ["0x48656c6c6f2c20776f726c6421", address],
});

Hex: 834 chars

https://keys.coinbase.com/connect?id=%2227c30c9d-b8dd-4e30-b51e-3163a4c6497b%22&sender=%223059301306072a8648ce3d020106082a8648ce3d0301070342000406a7929b6f0927bccbc5e4644d2ac77df6256fcb8fe496801f322de7290722564cd23f37d0abab5b8bb2bebdf029c8e63a891fbf11c0e16dc9bc08383e9a71b5%22&sdkVersion=%220.1.0%22&callbackUrl=%22com.vismad.smartwalletexpo%3A%2F%2F%2Fmobile-wallet-protocol%22&timestamp=%222024-10-15T21%3A07%3A43.841Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%221d8f0d9c67be39d373198520%22%2C%22cipherText%22%3A%224a6be896e927c582e9010822ccef5a77330998b70bbd2c87709b13ef53466ad4280ba030e0fe30e2673730a80cebc4f865fb52f376e65e93f4ca2c80081bf059d36f50de0d569f8f9ed5e36d17b440e40d8fd5ea503fb5ee3549c6903556cc3e289c8f1c51e1923d0cd0f9b4712a641650a310f2702d5a228b5c67db9cef238dfea5045eddf577e4bea7f181a297ac93ebe1edb0f548d223%22%7D%7D

Zlib+Base64: 732 chars

http://localhost:3005/connect?id=%2262e1346f-4cf0-403f-b0ec-df224d70179c%22&sender=%223059301306072a8648ce3d020106082a8648ce3d03010703420004ff34cedce0d5eea834cc66112b4db4f1a64dac2cb1bfd7df9f9a52e71a05661ce11dfd57b21364510d8789a68295838037cca4cd3413ab72b1022a13e4206cce%22&sdkVersion=%220.1.1%22&callbackUrl=%22com.vismad.smartwalletexpo%3A%2F%2F%2Fmobile-wallet-protocol%22&timestamp=%222024-10-23T00%3A45%3A56.914Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22jR1mV6Ceqm4WAiA8%22%2C%22cipherText%22%3A%22yJsdoC90BbdvVeL1ut0cPtCXR%2FuQQ3kkG0gKwbOxbIustpGPR4n%2BZsj%2FKUQySlNoozmxM4YRIzqKC%2BEL%2FgD1cTY0fa6%2F9UrHMNfHciDOYOh9EfxTcTnVRxlM00NUcKqDSsKIJ4xYcNG8UloyUXlkeVbrqnKfszLZB6iqsd3IQ4Y0KZAnMcfjJ%2FrTS%2F5jIWACpck%3D%22%7D%7D

Large Request

await provider.request({
  method: 'eth_sendTransaction',
  params: [
    {
      from: address,
      to: '0xCA4359f5adeB9004D06c4a6b26bf7C08999562f4',
      data: '0x014e17b000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000038527b1848e6c4c00000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000057b02589d6e24203fc43e442ce9a4803e290293b0000000000000000000000000b2c639c533813f4aa9d7837caf62653d097ff8500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003c031363334332d31373233332d32342d3336000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066db9b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000842b5e4d770ed800000000000000000000000000000000000000000000000000632086ba19c5340000000000000000000000000000000000000000000000000000000000000000878cc4d603bee38abae0077c6864ea96ef8da004b7993ffb79c1d069621a2f828942865233b716b868ecf042959147856fb0b76a68a1ecb680815741ff6f05106370293b44e1168eeb31e74c3786d2dfa724d1384b761c7df1cbac1734a42d609dff1d6acc0432d21153a8158eac540a7b9effdc4d03a95adec494b3474dd9be1b0a7b4622cc2dd2c48598fd64165c3381b3217ba28c61f422ccb3528312907d2c47b79f051310f595e59a6a14d2fba3d82b30948e2ea18a3fb7d398ec3d06fc027e438ecfd8db8150b71a5c789b2e800b3b46dc2891151a135bfd1b127fdb88cc3a5e41dd5c4168124f64b5d07bad0c90db2ba066c66e42cde1eafc6f1c56f240000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031383832312d31333630322d32342d3336000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000027110000000000000000000000000000000000000000000000000000000066da4ab00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000007e2965a7092dd8000000000000000000000000000000000000000000000000006ac091172ec8e4000000000000000000000000000000000000000000000000000000000000000084ce79f4c68c866a3e0be278a6d675f708bde554b46c42955df2b6c6b9457758f5ec7d6bbb320539c71e97a7ad02c7dd4a7e9777a6ad0a8ba74250c0910a680a2ea97f26341b390cadf033ae79a83b234ef0fd5c95702d4a4c43cca75614e33a7141339fafd1ee5306b7cc728e87a71555cc7c116eff9cf6b88aa7f763bee1e0edda5aef8f20a45e4fb864f9c1f12cb6a52a1560acbbe560cdf9ed6156fbf6900f2e5f13a9116b287f8ee6a3db01a37d376547a85541868222c405b8235c076ba190d25ff0b222d7c575c5f5ccd5fcc39f465bb1634363f7a254b3f639b5db8214a51a8b1a151ddc5f0717e658dba5d062ec94496f896c342743b5542fa75939900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
    },
  ],
});

Hex: 9310 chars

https://keys.coinbase.com/connect?id=%2244f40088-fa5b-43c2-af87-47ce3f09842a%22&sender=%223059301306072a8648ce3d020106082a8648ce3d0301070342000406a7929b6f0927bccbc5e4644d2ac77df6256fcb8fe496801f322de7290722564cd23f37d0abab5b8bb2bebdf029c8e63a891fbf11c0e16dc9bc08383e9a71b5%22&sdkVersion=%220.1.0%22&callbackUrl=%22com.vismad.smartwalletexpo%3A%2F%2F%2Fmobile-wallet-protocol%22&timestamp=%222024-10-15T21%3A15%3A29.401Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22b53f5f18418af6dd43df897b%22%2C%22cipherText%22%3A%224a7114b4337ebc24c704e1b359a2271529cbf6d3321a243344d774d65f297d6c47c1a8145d862cde4f7f77cfd9910e229d1e6b1f2edd2a2db294c804cb5543f2bb725cd7563ddd76e959e914d395ce6f3ca56e9019cd24c6159f1effaeac6bf3a7dfebaf2d00cfef6a0c8bd9061b414d4d32a53f3ebae07351f8fc84078b3a4e985d9a69b39dd1aa4f5faefd6a7809b94f37f6b0183c670de16131799125c0c79679c8e1d0ac7391f9009687b0790615668a4b3105915bd057994ca9060441301e560802d95d427f0964bad9999b05e5dcf84dca41c3fb3af91209e72b648d6042c092b107505185112b503d713e8b9bfe657c0c4c1d6e454248029cc949871225e6fbd95ec4a65005dd2c4b2d15d4a5abb4eb674b64fa48e4037d492c509873314f0fca7fb0c697105edcfe819afd970e6d986dd7cca36342857fb4ee090ad72397121db9ee563c840bc42e12dd4f968b9bcd702ea88b4f0c75cb0b102e4a38e2f694f96306b132ccb969ef9bdc064b0e74d499e82fe8c68c89d21582f9e7767f45f0553190a5c1dce65bd1e55aba4e322eab188c9da59bc97b2fc20b5a0f37b0b6f840d9b4d4155101f30564026eee6646022ad5d810d1782973e20c098fa75a576722c664abcc474a8f5750b17d1f5d7bf97dcf835d4547b6f570f4c9c60115cdf0cf9e5417fb98f64cf8b5a2adc747cf81f689741d936f8ab13746f15c151353e346c15dcb5da75925104ffb52dd60b8a24cace188121117e2485cb4e8b49af1049f7572c9727a6cac60a793597d03a86eab203aa93045ad96412ad0f93994be122b239f0345ed4e93dcabc046cdbfa177ac5768e3b7110a23eb8d03a3c094ec3bc9ff8129e475b349d23b484efc52f0afdde77b21d044eb0959300a48f07a9dc4c1d5849da25abee858d7c0499fb103e1936af4bcfa4500de6d8729f8178c8848026d4dad64f4d14430256b9a73ac859fd9ff315aa99f6f4251716ce9ce1bff5e6775251ded0cc8feef5ae24ec43b6efc839f200e60e8d0ec6619ed8b12973976a13dffed4237da15dabed3f7bd6736a66308c73b371515722c9c4cc01c1a73381c693b9ca967f785a84300f338988dc7e0312db95ede4482e8f6178bb9acf65a2ced4c393ba9dc625f3d0c7fe53fae7bd9c062b874bddc4205b47c6be6bf690923c0fd5038d6ad43bae1b77196b595975923ace0777dd845ba65328cfd1e68f64325824a44dec1c426264284c64e8871aa38a65ea6a217baa352838f630ada7287adc0a227ae4e0097dab328c483c353d66afc9c97520400e8abd6a7a0af6d7a71d2539aebf82826eb669a2db3b05bdb26ecbb24fd29f80dfc2ea3b3b6c61713f4b04854553340874a6ad20521e5cdff1948354b23c45c1641ad5aeb0c4ab60fdb75caae94a9308dff5f792b4ab723ff19bcfa7ca6ea4e0425b98912cf4a435f16e819ad9fac183d9c8832fc71cc411b135bcc66a7812e6593b7053058716b8765dd69eb0b3ef1aff5d2fa05952f4bbd88176da5af57280e07d80009cd68eb09c6e63d5696b3ae04f9e82705fa1176b9b3cca5fbc84a5153f801f72ae2395ef44e6cbb9d49d5a7fa4ad2becae2285e865d9c3d449d7d519c6b22db7e7a6336a6aa4028ea7a4c02950ad917fc76b03bac3fc922dc6e0ddc0944c95647bc089fb55cfe99a4ccd49c8ecc92ad162d07f7205d29514bf1b87826ed3244b9063626e96ccc4a80f8d737cdfb22db08a1f0d585e03c3a1caf5344a29448ff4e6b217aae6c188409bf7e6ad2dead563f0b917979fb1dc32cbb262c29df38e326ecb01100fec50e98ff692a3318955e5c34b70713c21e83dedd9d3d1b4c675d8ecf685cba3541d4010c175f7a9cbc95f6bb0817d761c9cbcef5295f8adac5dc57e9c9080438e054a53ea91e4211060bfd7bb11f8bed2b5b041c7c0ce1ff7139878dc90da54259a45b843a6010973d563aa04ef593ad416b13f736a697bdda1812d8889be1177b2c4a70fb1f18df6f1ddde8ef7d55d70307349df82837a3f977b60c81fd47a2941c891c666dd18e061e1403a9c7c35c5a8b8417b9381e93932dc136dd882d6969f9ebe5cf80dc4a2837f1c5e7c7d5f9de3c93c93aa7edc6cbad25462fb74f8b9cfc2e39c7eceb4f7d78348f78cbf1ea5834c28cd9f5f9924386af07edc69fa0dd9b7813d9da5f293c826c30becd1478540fbca7c45a6c69e87cb92c09bcd76a1c9ddd4978a5ca01534593d92231927d842dcd35c2d30bd4ec0f6c49cb10e31e61814b697a9459da35157e193025573cee08f6dd7c2acdf32a3fbef2180e4930e6b8711e4919201b2529e22c8c850fe1d9d505bfb8b0029f225a0e44142e3fc7dbc6993aeb1e9b485b4336c54669283d0a97b9dedc1996c007e2d82251c1f311760950343142923a7bac2044e0dce92d38e50c685b91a6e5fd5a1160f986e084d776cea187bb35a7732e4b4a10cfdad6380670d0daba6eb8439bac060c30babb488217a7978ab1949afc396bd1cda574da20780c39e70456f038d5dac32e8e4dbf404516020921f1cf263ab5597f84727f7139b6e98e7e7af7032935a8cf820e1fd84ad90e3eca2ab6b874a4baef669029b9bb6d0228bcf9f81f038d992e9108cab13f736c89cacafb38efa16d11f23a77f4d947df99ec933b817e871377732ad5861f635005d414d91e75f3130347056df7d8c3d11006b0602af414a2b8e20e863046cc48156ee66e41453632c6e02f27e0c33c674b45c2e206549475ea990e7dde65eeb45f1d96ddcaa17bf9234336347e8cd66d3d7c0751066049dbec422c11bcc1f70f6898360bfe8fbbbc755c4b738861f255448ff5e9854755ba1941d478917987e798fa4ff4ad5d2fe7983f242647cf47152ae857c8649356f665dd46d5574836d8508206549c509d6ff24b37d9c0b65ccbc4d957e722fce82e65fde874717a9a7892c4f875180a95d280d240084a9aca55f38544bf147e199335a2e8cecd214d5985eccf435edda3c52f3f687d3331afef3470b8ce605bec9fe3a80330629a2c9ede17f22d91b35816771c932d3e328bf6cf80d359222ed21d202bcb491cc1f0af3b8a0dc46195a57b46c1bdae1a6f7711e37c13a851682fc299ceee07b2939e12c584fbb8694290ecdb371c0844e119c0075010f6b3eec8bfe0832ca307f58bed4e5e6db294746ed9a23bf902d7dca5c736e62f5cbcccf29600ee46cc54c6a6be5e3ab69647c03b73e638a13e2add68241dd44b425748460615e39bb6139f0e9cc177ab5c4940422ec554f25606ac5eeff788120c1b48a2fb644f40bfc17f47ad7705352755c34022254a269e069efcbb3953da75390d608e0aecc1f3d5ebcd484ba83895644abc1b10afe7df9118d204209374c77986ef3ebbce4e9400d6f3aa8123f2ebbde9301163fb5f98bc48fe658c73c646e009abd6e142df72b2aa7d3d980239f0a25089dc141e5fec1b57c49a2f670cb19bdebc2db3bef6820f01e1897468c123a96439c6a7600a92e2b7ecd50945fb10ed23b201b1e81119d95f1074bcfdb67ca625122ef63a44bed4789336a0af9642dfec9d4fbc8885fbb5e79a1eee2b7bcafda9aeed0d2416bb5cf5df99e1398bb4dc56f3e378a0aea791180a34f1241f2fd84926a238d768777f16beefb614eb68a75a25a234f190f8477217e1be52adec813e3be5ab7713caf1bb49a00b3678e04392c0640d4a406d1aa1f216c2e61e9b2bc9e262645aea05169403bf63bd506fa3b18e09f3367c0f8f71e44b9ad4c292ad5dc4a668013381b94c7489b678653975be641430c095f6733d1fe54f5982e7c61314efc72af84dea9749ed99183b9f81ae255bf49cf09de4cbcc9b08a5b9a993415116149bad16681b2bc70cdae8ef06fe463b85cf926118c92850fef5cbdb813e7a19d925493dbcbe98e1ce1034783cfc64936a9d98caa4b838cce19279e214816d4a97c36ffd620c9032fae7c31d7ee92e7324f2433bbcdf4ca8db1c2865a29f6ed2073a2667d71b42a5ecf66c65b859fe6bc72a36e375d4c9ffba2df6ff9edd2760833a8542c35940e6c205e5bae9c8ab7db4ba094546bd2e05d9966f559697ba86ccd354036258cd7048085c8672384cb8545aeb1dc49a5ca0aaeae9f0b8b66006063118a277da7495bbaafcf620bfbd525b1d865cd2f0620dce83516e7e2b2fc818d02cf7a807da9feb7248d8b8310526dca5a663876aa237e7c33fe9ecfc660013d864cb084edd481c86052e9ad41c188459c45d81de5e240b9c102cbabc89a59e8dd64967ae6a878c4d73e228b61b588041df538f1540623ee99ddfdf815505deb46f5cc3d71a43b5e22729db2a0100b031857962af3e184cb8a860272d65b769a3160d33f6c2e1fbeaa1eb27719409324357cf55753f75125ebc6bc8e4e8361e6cbe6301bec1b9e99066ee635f9abb4f05adf94ba8ccd311e9b8991ef94454489bce8baba5b5eef3908d322be548c51d0a3c42b73863649a4536a62a6090ea901358cb8af7da0eb93eb8c48a900617ad3ae6015b37019c216be40ebe2d6fa8af3fe767402461901ab1e98fb13f2747cd087272fe5fa1e4ca942bfa9b19f3c22cc7574c0bdfecf037ba9d74c88b420ac53407b5abd28f182d4010f5eb63fb19040194f83cba819ab34927eb398fa3667ce9e2b6da4159ec755c461f10564a819ab8f7a1ce41f7386d92144a878ba1124fcf912fcee356963c57b70c86b8af895c4b95004923bc8cb30fec2c12770e2b971f8493081b4047a85dfa61c55912fbe7cd55d3ccb7d2abe77b4ae6b92e6be44df0486966b3c6eacbc1cc9c0a223793e0fc23a910a7555ade5edf74e58f0a2dc72787ab561ec476d66aad7a38c21db3d47075cdfcd4b6db58937f22c75ba5737b9ba386d69c364d3d55725d3f15d75c04b58b21a0d0fd8b777c2f8e83d050c1f67592babf35ad19ba4a3c9594adcde39dfe537437d37b1fea4674ad41409185162de766561fb2234221d40336ca90d45d15ad7de4bfbfbe598f079aebdc1cb00e6c2743fe26ae233b4611cef2f3a92898c1916deb9a8c6e08f6bcd1c22dc4a9745ef7c2338f1cf1672a02065fc636341bceb4b9eb28074b10ab487f59867115d308113b7c303b0e8c9cbbb1a765457347f0df6976f6d9ca032c4e6b7ef9b260a86b1cc352d73af47dd5751cf7d59e37fc4a735013bb139e6438d0e65eb7c07114da74eaf9b3510940154b15e6e3ce285f2f63b3f590d8ca79493c0ec24c79d13a6e813f58dcb1002ddaf9c4b394c88919d2847461a6fb5ab255212583989312aceecc61157255bf777ad9ca18a47377a2d04d3022768d2fa646a24eace24a254ecd7efec77b6503af4789239549463ffbea74e0da014b9a433dcad909be95693a7062d528f8d1ecdffde93fad88fd3527f3bcf3e1c6a79c91660eb892ad825f04e30b9ff6619c1f681c1b604423c13819fa2342717dd0e44119099edbe02985fa9fa527bf90bdb1bf951adfa0c23d54d2cd33ffb1017a58a36cf1eb41f09b7b5f0de7a75d74794e68a91dd9eb7d554e10ae6f7b086f114bfbf405ebcae2f155d289700550d36d92cee2f73ea31345a1f402996ebb187e21f93505dfcebc967be827ff01c82b3f2e475c70b0ac8fb78f3b2e173490d4adc471ef97225875151c0fe87feeaefdabc7df47c97d5c1093dfb1d1ec064badb22768b05298da266fec97c6a3a455b1f03490bca28ad960aece957b4d7bb5029021f61033acebde54b09366cbb8416ec6359cf0f6010a2f9c9540be67f0c1a7d0db6311a0ea13d29b5cd47f31db5f8b321a84cbe82a28f95a4311a95109f19941b45fc9bfb23e9ba0233be936112440e6977eeab0723d22121f799a4c56f6aa1aaabb38d594750a743afe576ab8cc4ef1f836b2ef8a6dde8d151ea1964fa38aace57bbca7a6dcefcec60d54a2478a83735abadf1f2793f7e6ee06fc71bedd6226d72169086caba54a3fe63ba96309e6033ac943cbee0691aa3ab7cb6e484b046879820ba2f181520c63d71ffab07997516dc2488d0420b68635f4d78a348b5e4aaebd9ef8c7c503b716e0fb0fdc375a115a0ecb969533a01b0042eeaf3f268c5c80a6373fc6806e7591e063418d010299f79ced9a67b095328957104e8a9fb831eb621598f1ec7b4e96dd0856a10f0186f76de4ec5f005d215b9dbeb733c72ed3c067ef099fe6862156b66f083b6d%22%7D%7D

Zlib+Base64: 1990 chars

http://localhost:3005/connect?id=%22c7f6c534-7f7d-4a22-9b36-b143a7d2eadd%22&sender=%223059301306072a8648ce3d020106082a8648ce3d03010703420004ff34cedce0d5eea834cc66112b4db4f1a64dac2cb1bfd7df9f9a52e71a05661ce11dfd57b21364510d8789a68295838037cca4cd3413ab72b1022a13e4206cce%22&sdkVersion=%220.1.1%22&callbackUrl=%22com.vismad.smartwalletexpo%3A%2F%2F%2Fmobile-wallet-protocol%22&timestamp=%222024-10-23T00%3A46%3A37.388Z%22&content=%7B%22encrypted%22%3A%7B%22iv%22%3A%22SArO9Tb4wbWnTvwg%22%2C%22cipherText%22%3A%22EXGE79v0d4pevUHa%2FEdHcc65jLDk0I3Nj7Fd5P%2FqPe3e%2FU%2BJTh4JzX%2FWfn2Bo6RF7yh%2FDWMwP4hcMVS0eOVUb6UFoYIsfvw998UDD3uMeI8Arqgr6dyGfhY4F7bxRy1czpzfxfGX5fduAfkIEuLhmNCJqBND0x9iq%2BwAFkvRw2mTOoUXMCI5HWNGZlN9murUlClPIL5kKr7O3meBU2M86XCb8Dp7N78Vd%2FNdkbXzwEXhZSz71iv5XipKou6q%2FVRvhJGaHwjrXmFtGJAYD6EElwT%2FHkdHTPId6yQjUo6qVQttr2l8KxtLldOVom9a4XstHAuQgw0gEVRVeDssDQ0yYOWhmKZZvhlkfxE7J42Lx3f%2FCHMp62mdhjhobMYc29selUQzak40qCW6Nxa8lrW9HyyerDVteSY2LrLnaVbuDb3zuzUoaxP80KsYguRcRqQ5nvsZjjFkdnlZ2ch922kuU03eKOTSaP5xDZUPKiVMSwE8f%2FcgHqsXdmrYj1SlnolOZP%2F2ZYlrm8kaCCYKP9%2B3RhLadpuJswhOXhkYqDny353NbrvWN%2F159ihW%2FsbnRw0JXTzesUjqBPvibJMtLT0QXsDUyYBq9RwGNOtdRUSwtrMXWR%2BILEAbabYjhTU45FUFxqEbyQ44gHUROgVIrN%2FbamgLxHCO%2BJdj8qvz03EZbbGbRqD%2FPq8Es3GsDz%2FnhtNXB6iIYliikxiFbtyTF%2FSY0A2yZMUPsbpn87WhnanTE%2B69sLTTDmma5mUYS8z%2Fmwst3GX5PXRR1znoqrJc5Zqr91oPTXUq9F%2Bf41q2YAuyAT95P2pvcOg6oEVbCiEWZxSuV6jqSc2W7EtdavO%2FJ%2BEFRbzFe6VpQChYPyk3iZmTFpJPgSR%2Fx1PYVTXmCCPcE7TdnSfbAxq8EfPm39i%2BVNQfmumIvE%2FemohmAVD6bde4FKQggvVUPMV1wFYlwKNY%2ByIVepGIPs7CXP2Y0%2BxwnB7A91bvWHjwX%2FqDJyVeyvkAIJ5YSh9gVgRjRAriGMA5I2zzwGaSbWqswxAweRTxknfjzDDg%2FZZcvKLdEvrcNcxesqqyX4JMtde09s%2BrjHuk8lyb7kETOAjr1Vr9LolUNVp8kne%2F6465aEApaRAagb5%2FT2Je7u6EemjdTquA5hoEQ3GbvzOSOjwWyLYuzzS85PMsOP9XGfMnX5IpGdt1bdFfTNWCDzds6CLo5VsoRiNSoyX1VFN3gEXnVvCsViNRSeKPDsLHuUDhX5vdHFWEttggLCik2GekMRRk0Wa7yBTrTrWgvgCRO%2B%2FiOqaLF5yRRFpvwNBkA5iuwBm45DYgzjndvuQOu4Z8JKOxCioEVJx%2B%2BQxLnPJ7QCAK6NJWOdegy7bKI7p4mwk6bo7PIonIIUrpS1Q%3D%22%7D%7D

How did you test your changes?

Tested manually + unit tests

@vishnumad vishnumad changed the title Encode encrypted data as base64 instead of hex string Add compression to encrypted data URL param Oct 23, 2024
"test": "jest",
"test:coverage": "yarn test:unit && open coverage/lcov-report/index.html",
"prebuild": "rm -rf ./build && node -p \"'export const LIB_VERSION = \\'' + require('./package.json').version + '\\';'\" > src/version.ts",
"prebuild": "rm -rf ./dist && node -p \"'export const LIB_VERSION = \\'' + require('./package.json').version + '\\';'\" > src/version.ts",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

./build doesn't exist

@vishnumad vishnumad marked this pull request as ready for review October 23, 2024 21:49
encrypted: {
iv: hexToBytes(iv),
cipherText: hexToBytes(cipherText),
iv: new Uint8Array(Buffer.from(iv, 'base64')),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does noble hashes not have a util for this?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't look like it

Copy link
Copy Markdown
Collaborator

@cb-jake cb-jake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes make sense. Tested against pending sw release. Probably worth a second review as I ramp up on this codebase

Comment thread packages/client/src/version.ts Outdated
This reverts commit 88f5b8b.
Copy link
Copy Markdown
Collaborator

@fan-zhang-sv fan-zhang-sv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tyyy

@vishnumad vishnumad merged commit f3a30d1 into master Oct 25, 2024
@vishnumad vishnumad deleted the vishnu/base64 branch October 25, 2024 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants