Last active
May 31, 2022 07:20
-
-
Save a2468834/b49261e52dfbd8d85437a782b49d40f8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
async function method1(payload) { | |
return Buffer.from(payload, 'base64').toString('utf-8'); | |
} | |
async function method2(payload) { | |
const uint8_array = await ethers.utils.base64.decode(payload); | |
const char_array = Array.from(uint8_array).map((element) => { | |
return String.fromCharCode(element) | |
}); | |
return char_array.join(""); | |
} | |
async function main() { | |
const regex = /data:.+\/(.+);base64,(.*)$/; | |
const raw_data = "data:application/json;base64,eyJuYW1lIjogIjEwIiwgImRlc2NyaXB0aW9uIjogIkEgaGlnaGx5IGFjY2xhaW1lZCBjb2xsZWN0aW9uIG9mIHNxdWFyZXMuIiwgImltYWdlIjogImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIQnlaWE5sY25abFFYTndaV04wVW1GMGFXODlKM2hOYVc1WlRXbHVJRzFsWlhRbklIWnBaWGRDYjNnOUp6QWdNQ0F6TlRBZ016VXdKejQ4YzNSNWJHVStMbUpoYzJVZ2V5Qm1hV3hzT2lCM2FHbDBaVHNnWm05dWRDMW1ZVzFwYkhrNklITmxjbWxtT3lCbWIyNTBMWE5wZW1VNklESTBjSGc3SUgwOEwzTjBlV3hsUGp4eVpXTjBJSGRwWkhSb1BTY3hNREFsSnlCb1pXbG5hSFE5SnpFd01DVW5JR1pwYkd3OUoySnNkV1VuTHo0OGRHVjRkQ0I0UFNjMU1DVW5JSGs5SnpVd0pTY2dZMnhoYzNNOUoySmhjMlVuSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNkdGFXUmtiR1VuSUhSbGVIUXRZVzVqYUc5eVBTZHRhV1JrYkdVblBtaHZiR0VnUTB3ZzhKK1dsZkNmajd3OEwzUmxlSFErUEM5emRtYysifQ=="; | |
const extension = raw_data.match(regex)[1]; | |
const base64_data = raw_data.match(regex)[2]; | |
console.log(JSON.parse(await method1(base64_data), null, 2)); | |
console.log(JSON.parse(await method2(base64_data), null, 2)); | |
} | |
main(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
[Update] Revision 2
Add regular expression to parse the original data URL.