File

Contract 모듈 기능 중 File은 계약서를 체인에 기록하거나 조회를 할 수 있습니다.

Contents

Name
Description

진행이 완료된 계약서를 체인에 Hash로

기록할 수 있습니다.

체인에 기록되어 있는 계약 정보를 Hash로 조회합니다.

체인에 기록되어 있는 모든 계약 정보를 조회합니다.

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

비용을 예상합니다.

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

1. createContractFile

계약서를 체인에 기록하는 함수(트랜잭션 생성)입니다. * 체인에 기록되면 더이상 수정이 되지 않기에, 계약 진행이 완료된 계약서만 올리는 것이 좋습니다.

Parameters

Name
Type
Example

wallet

Object (FirmaWalletService)

fileHash

String

"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"

timeStamp

Number

1669182016039

ownerList

Array (String)

["firma1epg9kx7nqz32dykj23p6jreqfh5x0wdy5a43qc"]

metaDataJsonString

String (JSON)

'{"storage":"ipfs","encryptIpfsHash":["U2FsdGVkX19UsL3m7Cq2bOtTCQArqZTuLgz7mfdRtXM2MnIgm67GM26GtPELsVL8s4+IN2Vj9FbFzpFj3rwfaw=="]}'

txMisc (Not required)

Object (TxMisc)

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

Return value

{
  code: 0,
  height: 413187,
  rawLog: ‘[{
            "events": [{
              "type": "message",
              "attributes": [{
                "key":"action",
                "value":"CreateContractFile“
              }]
            }]
          }]’,
  transactionHash: "2856B8B0C6B49CD...78EEB558D86421F",
  gasUsed: 70898,
  gasWanted: 200000
}

2. getContractFile​

체인에 기록되어 있는 계약서를 fileHash 값으로 조회할 수 있습니다. * 체인에 기록된 계약서는 모두 해시로 저장되어 있습니다.

Parameter

Name
Type
Example

fileHash

String

"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"

Return value

{
  creator: 'firma1nssuz67am2uwc2hjgvphg0fmj3k9l6cx65ux9u',
  fileHash: 'da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b',
  timeStamp: '1669106395',
  ownerList: [ 'firma1nssuz67am2uwc2hjgvphg0fmj3k9l6cx65ux9u' ],
  metaDataJsonString: '{"storage":"ipfs",
    "encryptIpfsHash": ["U2FsdGVkX18curk11EhPxYPJtwmE0BffES2vp1h/+p62/VTafy5dsmvaUCkHlXUkBiHXwzBKB8dF3NwI9dfUyw=="]}'
}

3. getContractFileAll

체인에 기록되어 있는 모든 계약서를 조회합니다.

Parameter

Name
Type
Example

paginationKey

(Not required)

String | Undefined

"ZGEzOTMzMGE2ZGZkOTBhOTE1NjM2MDM5NTBmNzQyMjQwZmEyMjI1ODBiZWVjZjM2ZTE0MWZlNjQxMDE4NGU4YjE2NjkxMDY3MTE="

Return value

{
  [{
    creator: 'firma1nssuz67am2uwc2hjgvphg0fmj3k9l6cx65ux9u',
    fileHash: 'da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669106610',
    timeStamp: '1669106610',
    ownerList: [Array],
    metaDataJsonString: '{"storage":"ipfs","encryptIpfsHash":["U2FsdGVkX19UsL3m7Cq2bOtTCQArqZTuLgz7mfdRtXM2MnIgm67GM26GtPELsVL8s4+IN2Vj9FbFzpFj3rwfaw=="]}'
  }],
  ...
  pagination: {
    next_key: 'ZGEzOTMzMGE2ZGZkOTBhOTE1NjM2MDM5NTBmNzQyMjQwZmEyMjI1ODBiZWVjZjM2ZTE0MWZlNjQxMDE4NGU4YjE2NjkxMDY3MTE=',
    total: 117
  }
}

4. getGasEstimationCreateContractFile

createContractFile 트랜잭션 실행 시 필요한 가스를 계산합니다.

Parameters

Name
Type
Example

wallet

Object (FirmaWalletService)

fileHash

String

"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"

timeStamp

Number

1669182016039

ownerList

Array (String)

["firma1epg9kx7nqz32dykj23p6jreqfh5x0wdy5a43qc"]

metaDataJsonString

String (JSON)

'{"storage":"ipfs","encryptIpfsHash":["U2FsdGVkX19UsL3m7Cq2bOtTCQArqZTuLgz7mfdRtXM2MnIgm67GM26GtPELsVL8s4+IN2Vj9FbFzpFj3rwfaw=="]}'

Return value

162019

5. Params

Name
Description

wallet

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

fileHash

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

timeStamp

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

ownerList

계약과 연관있는 사용자의 지갑 주소 배열입니다. ownerAddress와 동일한 목적으로 추가할 수 있습니다.

metaDataJsonString

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

txMisc

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

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

paginationKey

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

Last updated