본문 바로가기

Decoding Input Data using Ethereum ABI in Rust use std::fs; use ethabi::Contract; use hex; fn main() { // input data let data = "0xa9059cbb000000000000000000000000d18a52ae66778bf9ece5515115875a313d45f0e900000000000000000000000000000000000000000000000000000000007fde60"; // remove hex prefix: 0x let prefix_removed_data = data.trim_start_matches("0x"); // get method id, 4 bytes from data let method_id = &prefix_removed_data[0..8]; println!("met..
Hex to Decimal use regex::Regex; use crate::error::error::ExpectedError; pub fn hex_to_decimal(hex_str: &str) -> Result { let regex = Regex::new(r"^(0[xX])?[A-Fa-f0-9]+$").unwrap(); match regex.is_match(hex_str) { true => { let prefix_removed = hex_str.trim_start_matches("0x"); match primitive_types::U256::from_str_radix(prefix_removed, 16) { Ok(decimal_u256) => Ok(decimal_u256.to_string()), Err(err) => Err(Ex..
Send Slack Message using Incoming Webhooks Slack을 통해서 워크스페이스의 채널에 메시지를 전달할 수 있는 방법은 다수 존재한다. Slack API에 따르면 여섯 가지 정도가 존재하는데, 대표적인 방법으로는 chat.postMessage을 이용하는 Web API, Real Time Messaging API, 그리고 오늘 소개할 Incoming Webhooks를 이용하는 방법이다. Incoming Webhooks를 이용하면 App을 통해 원하는 채널에 편리하게 메시지를 전송할 수 있다. Slack 채널에 메시지를 전송하는 방법은 다음과 같다. 1. Slack 워크스페이스를 생성한다. Slack의 무료 기능만 사용하더라도, 채널을 생성하고 App을 생성하여 메시지 전송받는데에는 지장이 없기 때문에 원하는 이름으로 워크스페이스를 생성하면 된다. Sl..
Rust Enumeration Macro pub trait Enumeration { fn value(&self) -> String; fn find(name: &str) -> Option where Self: Sized; fn valid(value: &str) -> bool; } #[macro_export] macro_rules! enumeration { ($enum:ident; $({$types:ident: $values:expr}),*) => { #[derive(Debug, PartialEq, Eq, Clone)] pub enum $enum { $($types,)* } impl Enumeration for $enum { fn value(&self) -> String { match self { $($enum::$types => String::f..
Long to ByteArray Extension import java.nio.ByteBuffer fun Long.toByteArray(): ByteArray { val buffer: ByteBuffer = ByteBuffer.allocate(java.lang.Long.BYTES) buffer.putLong(this) return buffer.array() }
Node.js RSA Encryption, Decryption 1. Private Key & Public Key 생성 // generate rsa private.key openssl genrsa -out private.key 2048 // generate rsa public.key openssl rsa -in private.key -out public.key -pubout 2. Node.js crypto를 사용한 RSA Encryption, Decryption const crypto = require('crypto'); const rsaPrivKey = `-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAxmtuWLe0poapjNrP7wyhsPgGCikuQRU7nI+0sj9QBexrt2Mt kVwhXdXevHXcR9sA90Bkrs..
MariaDB AES Encrypt, Decrypt 1. AES로 암호화할 컬럼은 BLOB으로 생성 create table encrypt_test_table ( encrypt_test_id bigint(20) not null auto_increment, encrypted blob not null, primary key (encrypt_test_id) ); 2. AES_ENCRYPT insert into encrypt_test_table (encrypted) values (AES_ENCRYPT('message', SHA2('secret_key', 256))); 3. AES_DECRYPT select AES_DECRYPT(encrypted, SHA2('secret_key', 256)) as decrypted from encrypt_test_table;
Node.js AES Encryption, Decryption const crypto = require('crypto'); const algorithm = 'aes-128-cbc'; const secretKey = 'abcdefghijklmnop'; const iv = '00000000000000000000000000000000'; const encrypt = (message) => { const cipher = crypto.createCipheriv(algorithm, Buffer.from(secretKey), Buffer.from(iv, 'hex')); const encrypted = cipher.update(message); return Buffer.concat([encrypted, cipher.final()]).toString('hex'); }; const ..