Log

Contract 모듈 기능 중 하나로 계약을 진행 중 발생한 이벤트 또는 행동, 결과 등의 정보를 트랜잭션을 통해 체인에 기록하거나, ContractHash에 기록되어 있는 Log를 조회할 수 있습니다.

Contents

Name
Description

체인에 계약 작성 시 발생한 이벤트 또는 행동, 결과 등의 정보를 기록할 수 있습니다.

체인에 기록되어 있는 로그를 ID로 조회합니다.

체인에 기록되어 있는 모든 로그를 조회합니다.

addContractLog 트랜잭션 실행 시 필요 가스

비용을 예상합니다.

해시에 등록되어 있는 모든 로그를 조회합니다.

API 호출을 위한 파라미터들의 정보입니다.

1. addContractLog

계약 진행 시 발생한 이벤트 또는 행동 결과 등의 정보를 트랜잭션을 통해 체인에 기록할 수 있는 함수입니다. 이 함수를 실행하였을 경우 파라미터 정보를 기반으로 체인에 트랜잭션이 생성되며, "Return value"의 "transactionHash" 값을 이용하여 피르마체인 익스플로러에서 시각적 결과를 확인할 수 있습니다.

Parameters

Name
Type
Example

wallet

Object (FirmaWalletService)

contractHash

String

"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"

timeStamp

Number

1669182016039

eventName

String

"createContract"

ownerAddress

String

"firma1nssuz67am2uwc2hjgvphg0fmj3k9l6cx65ux9u"

jsonString

String (JSON)

"{Encryption:{type:"JWT",alg:"HS256"},contracts:[{target:"contractor1",email:"contractor1@gmail.com"}]}"

txMisc (Not required)

Object (TxMisc)

{fee:200000,gas:163821,memo:"custom message"}

Return value

{
  code: 0,
  height: 413126,
  rawLog: ‘[{
    "events": [{
      "type": "message",
        "attributes": [{
        "key": "action",
        "value":"CreateContractLog“
      }]
    }]
  }]',
  transactionHash: "F61584DE6B2F...63B1788247FE",
  gasUsed: 73443,
  gasWanted: 200000
}

2. getContractLog

계약 진행 시 발생한 계약 로그를 조회할 수 있는 기능입니다. logId를 이용하여 조회하며, addContractLog 트랜잭션의 정보를 확인할 수 있습니다. * transactionHash 정보는 포함되어 있지 않습니다.

Paramters

Name
Type
Example

logId

String (Number)

"6792"

Return value

{
  creator: "firma1nssuz67a...j3k9l6cx65ux9u",
  id: "68219",
  contractHash: "da39330a6dfd90a...4e8b1669108636",
  timeStamp: "1669108636",
  eventName: "createContract",
  ownerAddress: "firma1nssuz67a...j3k9l6cx65ux9u",
  jsonString: "{}"
}

3. getContractLogAll

체인에 기록되어 있는 모든 계약 로그를 조회합니다. 체인 내 기록되어 있는 모든 로그를 조회하기에 모든 데이터를 찾으려고 할 경우 많은 딜레이가 발생하게 됩니다. 해당 기능을 실제 서비스에서 사용하는 것은 권장하지 않으며, 로그 조회 및 특정 데이터를 찾기 위한 집계 용도로 사용을 추천합니다.

Parameters

Name
Type
Example

paginationKey (Not required)

String | Undefined

"AAAAAAAAAGQ="

Return value

{
  [{
    creator: 'firma1p3qk0ednef258lv6vjt6g657d7jh0gh6wez9c4',
    id: '99',
    contractHash: 'test0.9212182198543295',
    timeStamp: '1666933357',
    eventName: 'test0.678718823219671',
    ownerAddress: 'test',
    jsonString: '{}'
  }],
  ...
  pagination: { next_key: 'AAAAAAAAAGQ=', total: 68221 }
}

4. getGasEstimationAddContractLog

addContractLog 트랜잭션 생성하는 함수 실행 시 발생하는 가스 비용을 계산합니다. addContractLog 함수의 마지막 파라미터의 용도로 사용되며, 해당 함수를 사용하여 수수료 비용을 지불하는 것을 권장합니다.

Parameters

Name
Type
Example

wallet

Object (FirmaWalletService)

contractHash

String

"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"

timeStamp

Number

1669182016039

eventName

String

"createContract"

ownerAddress

String

"firma1nssuz67am2uwc2hjgvphg0fmj3k9l6cx65ux9u"

jsonString

String (JSON)

"{Encryption:{type:"JWT",alg:"HS256"},contracts:[{target:"contractor1",email:"contractor1@gmail.com"}]}"

Return value

112706

5. getContractListFromHash

Parameters

Name
Example

contractHash

String

"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"

Return value

[
  '68183', '68185', '68187', '68189', '68193', '68195',
  '68199', '68201', '68207', '68209', '68213', '68215'
]

6. Params

Name
Description

wallet

사용자의 Mnemonic으로 생성한 고유 지갑 변수입니다. FirmaSDK 모듈 중 Wallet.fromMnemonic 함수를 통해 선언할 수 있습니다.

contractHash

파일 또는 텍스트 정보를 고정된 길이로 매핑한 정보입니다. 체인에서 Contract 추적을 위한 정보로 활용이 가능하며, 하나의 Contract Hash에 여러 개의 Log를 추가할 수 있습니다. 고유 값 사용을 권장하며, FirmaUtil을 통해 파일 및 텍스트의 해시 값을 가져올 수 있습니다.

timeStamp

해당 이벤트 또는 행동, 결과에 대한 로그가 발생한 시점을 의미합니다. "Unix time stamp" 형식이며, 숫자 타입으로 작성해주세요.

eventName

이벤트 또는 행동, 결과에 대한 정보를 의미합니다. 계약 진행을 예로 들어 "계약 생성", "서명자 초대", "계약자1 서명", "모든 서명 완료", "계약 완료" 로 사용될 수 있습니다.

ownerAddress

피르마체인 지갑 주소를 입력해주세요. 지갑 주소의 대상은 누구나 될 수 있으며, "서비스 대표 지갑 주소", "서명자 지갑 주소" 등을 예시로 들 수 있습니다.

jsonString

계약과 관련된 추가 정보를 기록할 수 있습니다. 예를 들어 공개키(암호화), 계약서 저장 공간 또는 다운로드 링크, 계약 진행자의 이메일 주소 등이 될 수 있습니다. JSON 형식의 문자열 타입으로 작성해주세요. * 정해진 규격은 없으며 커스텀 하여 사용하시면 됩니다.

txMisc

트랜잭션 호출 시 사용될 수수료 비용을 담고 있는 오브젝트입니다.

* 가스 계산 없이 사용할 경우 기본 가스 비용은 0.02fct입니다.

logId

체인 내 기록되어 있는 addContractLog의 Unique ID 값입니다. 해당 ID로 등록된 Log를 조회할 수 있습니다.

paginationKey

getContractLogAll 조회 시 모든 log를 가져옵니다. 100개가 초과한 경우 101번째 이후 데이터를 조회하기 위한 값으로 사용됩니다.

Last updated