분류 전체보기 258

22.05.20 Fee Delegated Account Update

처음에 바로 전송 안된 이유 파악 정상 트랜잭션과 다른 점 TX Type 이 Fee Delegated Account Update (정상 트랜잭션은 Smart Contract Execution) from -> to 에서 to 지갑 주소가 ...으로 나옴. Fee Payer 가 KAS Fee Payer 라고 뜸. (정상 트랜잭션은 안뜸.) nonce 는 그대로 건너뜀. (22 -> 다음 정상 트랜잭션은 23) MethodSig 가 안나옴. (정상 트랜잭션은 0xa9059cbb) Method 가 안나옴. (정상 트랜잭션은 transfer) TxFee >>>> 정상 트랜잭션 TxFee KAS FeePayer 주소를 들어가보면

블록체인 2022.05.21

22.05.17 주코의 삼각형

주코의 삼각형이 의미하는 것은 identity 가 다음 세가지 성질을 동시에 보유할 수 없다는 것이다. 하지만 어느 2011년의 블로그 글에서 이것이 블록체인으로 해결할 수 있다고 했다. 이름, 키, 논스 로 구성되어 있는 것과 가장 긴 두루마리를 신뢰하는 것이 블록체인의 작동원리와 비슷하다고 생각하는데 중간부터는 조금 이해하기가 힘들다. 참고문서링크 http://www.aaronsw.com/weblog/squarezooko Squaring the Triangle: Secure, Decentralized, Human-Readable Names (Aaron Swartz's Raw Thought) Squaring the Triangle: Secure, Decentralized, Human-Readable N..

SSI 2022.05.17

22.05.16 [ethers] 빅넘버와의 싸움을 끝낼 때가 왔다 (1)

개발하면서 나를 힘들게 하는 몇가지가 있다. BigNumber 타입 처리, DateTime 정제, 비동기처리, 복잡한 객체 처리(js 메소드 공부하면서 좀 재밌어졌음.) 힘든 이유는 아마 내가 원리도 모르고 그냥 되면 쓰기 때문일 것이다. 오늘은 빅넘버와의 싸움을 끝내기 위해서 빅넘버 처리에 관해서 알아보겠다. 일단 decimals 는 소숫점 자리까지 정수로 표현하기 위한 자릿수이다. float 과의 차이는 여기서는 안다루겠다. 데시멀과 빅넘버와의 관계는 다음과 같다. 1. 0.0000001 을 decimal 8인 수로 표현하면 10이 된다. 2. 10을 decimal 이 8인 수로 표현했을 때 1000000000 이 된다. 3. 10을 decimal 이 18로 표현했을 때 1000000000000000..

블록체인 2022.05.16

22.05.09 map 의 결과가 undefined 일 경우 skip

map 을 돌릴 때 undefined 인 결과는 skip 하고 싶다고 할 때, 다음과 같은 배열이 있다. const array = [1, 2, 3, 4, 5] 나는 홀수만 남기고 싶어서 map을 사용하여 array.map(item => { if((item%2)){ return item } }) undefined 제거하고 싶으면 그냥 뒤에 filter 붙이면 된다. array.map(item => { if((item%2)){ return item } }).filter(element => element) 사실 위와 같이 간단한 경우는 굳이 map 을 사용하지 않고 filter 하나만 사용하면 정제가 가능하다. array.filter(item => item%2) 하지만 객체 속성의 값에 대한 비교와 정제를 할..

JavaScript 2022.05.10

22.05.09 배열 평탄화 flatMap

map을 무작정 돌리면 안좋은 점이 배열 안에 불필요하게 감싸는 배열이 생길 수 있다는 점이다. 복잡한 객체를 원하는 간단한 배열로 바꿀 때 여러 메소드들이 필요하다. 그 중 flatMap 이라는 메소드는 현재 실험 단계의 js 메소드이다. 작동 방식은 reduce 와 concat 을 함께 쓴 것과 똑같이 작동한다. let arr1 = ["it's Sunny in", "", "California"] 다음과 같은 배열에서 띄어쓰기를 기준으로 단어를 나누고 싶을 때, arr1.map(x=>x.split(" ")) 그냥 map 을 돌리면 각각 요소에 대한 배열을 큰 배열이 감싸져 있는 형태로 반환된다. arr2.flatMap(x => x.split(" ")) flatMap 을 돌리면 필요없는 큰 배열과 각각의..

JavaScript 2022.05.09

22.05.08 객체에서 속성 찾기 hasOwnProperty 와 in

생성자 함수를 이해하고 나니 조금 무슨 말인지 이해가 가서 다시 정리!! 객체 하나가 있다고 해보자. 예시는 간단한 객체이지만 데이터를 정제하는 실상황에서는 아주 복잡한 객체일 가능성이 높다. 그렇다면 이 객체에서 내가 찾고 싶은 속성이 있는지 존재하는지 확인하는 방법은 아래 두가지 함수를 활용할 수 있다. const person = { name: 'jeje', age: 26 } 1. hasOwnProperty() [객체명].hasOwnProperty('[찾을 속성명]') 2. in '[속성명]' in [객체명] MDN 왈, in 연산과는 다르게 이 메소드는 객체의 프로토타입 체인을 확인하지는 않는다. 내가 이해한 것으로는 hasOwnProperty 은 in 과 다르게 toString() 와 같이 객체로..

JavaScript 2022.05.08