subbridge

서비스체인 EN과 관련된 API.

네임스페이스 subbridge는 서비스체인과 관련된 함수를 제공합니다. 이 네임스페이스에 있는 함수를 사용하려면, 서비스체인에 연결된 SEN에서 subbridge 옵션이 활성화되어 있어야 합니다.

subbridge_nodeInfo

Returns bridge node information including the KNI (Klaytn Network Identifier) of the node. 서브브리지 노드는 KNI를 통해 메인브리지 노드에 연결할 수 있습니다.

Parameters

None

Return Value

Type
Description

JSON string

the bridge node information.

Example

> subbridge.nodeInfo
{
  kni: "kni://f8a1f0cd1e2bebeece571e4fda16e215218fd4b9bc2eddd924f7cd5b5f950fcec8f4b8cd3851390d1d0bacf1b15e1c4a38c882252e429a28d16eeb6edbacd726@[::]:50505?discport=0",
  id: "f8a1f0cd1e2bebeece571e4fda16e215218fd4b9bc2eddd924f7cd5b5f950fcec8f4b8cd3851390d1d0bacf1b15e1c4a38c882252e429a28d16eeb6edbacd726",
  ip: "::",
  listenAddr: "[::]:50505",
  name: "-2",
  ports: {
    discovery: 0,
    listener: 50505
  },
  protocols: {
    servicechain: {
      config: {
        chainId: 2018,
        deriveShaImpl: 0,
        isBFT: true,
        istanbul: {...},
        unitPrice: 0
      },
      difficulty: 87860,
      genesis: "0x711ce9865492659977abb2758d29f68c2b0c82862d9376f25953579f64f95b58",
      head: "0x0d4b130731f1e7560e4531ac73d55ac8c6daccb178abd86af0d96b7aafded7c5",
      network: 1
    }
  }
}

subbridge_addPeer

메인브리지 피어 추가가 성공적으로 완료되면 true을 반환합니다.

addPeer 메소드는 새 원격 노드(remote node)를 피어 목록에 추가합니다. The node will try to maintain connectivity to these nodes at all times, reconnecting every once in a while if the remote connection goes down.

The method accepts a single argument, the kni URL of the remote peer to start tracking and returns a BOOL indicating whether the peer was accepted for tracking or some error occurred.

Parameters

Name
Type
Description

url

string

Peer's kni URL.

Return Value

Type
Description

bool

true if the peer was accepted, false otherwise.

Example

Console

> mainbridge.addPeer("kni://a979fb...1163c@10.0.0.1:50505") // or 'subbridge.addPeer'
true

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"mainbridge_addPeer","params":["kni://a979fb575495b8d6db44f750317d0f4622bf4c2aa3365d6af7c284339968eef29b69ad0dce72a4d8db5ebb4968de0e3bec910127f134779fbcb0cb6d3331163c@10.0.0.1:50505"],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":true}

subbridge_removePeer

Returns true if removing the peer is done successfully.

The removePeer method disconnects and removes the remote node in the list of tracked static nodes. The method accepts a single argument, the kni URL of the remote peer to start tracking and returns a BOOL indicating whether the peer was accepted for tracking or some error occurred.

Parameters

Name
Type
Description

url

string

Peer's kni URL.

Return Value

Type
Description

bool

true if the peer was removed, false otherwise.

Example

Console

> mainbridge.removePeer("kni://a979fb...1163c@10.0.0.1:50505") // or 'subbridge.removePeer'
true

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"mainbridge_removePeer","params":["kni://a979fb575495b8d6db44f750317d0f4622bf4c2aa3365d6af7c284339968eef29b69ad0dce72a4d8db5ebb4968de0e3bec910127f134779fbcb0cb6d3331163c@10.0.0.1:50505"],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":true}

subbridge_parentOperator

subbridge_parentOperator는 부모 오퍼레이터 계정 주소를 반환합니다.

Parameters

none

Return Value

Type
Description

Account

부모 체인 오퍼레이터 계정의 주소입니다.

Example

> subbridge.parentOperator
"0xA057995175B93Ee0D1bdfA54f078Ad0F0116130b"

subbridge_childOperator

subbridge_childOperator는 자식 오퍼레이터 계정 주소를 반환합니다.

Parameters

none

Return Value

Type
Description

Account

자식 체인 오퍼레이터 계정의 주소입니다.

Example

> subbridge.childOperator
"0x5C1C757a6Cb6c6FcEFE398674D8209FDA2A74Df4"

subbridge_parentOperatorNonce

subbridge_parentOperatorNonce는 부모 오퍼레이터 계정 주소의 논스를 반환합니다.

Parameters

none

Return Value

Type
Description

QUANTITY

부모 오퍼레이터 계정에서 보낸 트랜잭션의 개수를 정수 형태로 반환합니다.

Example

> subbridge.parentOperatorNonce
1348

subbridge_childOperatorNonce

The subbridge_childOperator returns the child operator account address.

Parameters

none

Return Value

Type
Description

QUANTITY

자식 오퍼레이터 계정에서 보낸 트랜잭션의 개수를 정수 형태로 반환합니다.

Example

> subbridge.childOperatorNonce
1024

subbridge_parentOperatorBalance

subbridge_parentOperatorBalance는 부모 오퍼레이터 계정의 잔액을 반환합니다.

Parameters

none

Return Value

Type
Description

QUANTITY

부모 오퍼레이터 계정의 현재 잔액을 정수 형태로 반환합니다.

Example

> subbridge.parentOperatorBalance
1e+50

subbridge_childOperatorBalance

subbridge_childOperatorBalance는 자식 오퍼레이터 계정의 잔액을 반환합니다.

Parameters

none

Return Value

Type
Description

QUANTITY

자식 오퍼레이터 계정의 현재 잔액을 정수 형태로 반환합니다.

Example

> subbridge.childOperatorBalance
1e+50

subbridge_sendChainTxslimit

sendChainTxslimit은 한 번에 보내기 위해 대기 중인 보류 트랜잭션 수의 최댓값을 가져옵니다.

Parameters

None

Return Value

Type
Description

Uint64

한 번에 보내기 위해 대기 중인 보류 트랜잭션 수의 최대값.

Example

> subbridge.sendChainTxslimit
100

subbridge_anchoring

subbridge_anchoring은 서비스체인의 앵커링 기능을 활성화/비활성화 합니다.

Parameters

Name
Type
Description

enable

Bool

true는 앵커링 기능을 활성화하고, false는 비활성화합니다.

Return Value

Type
Description

bool

앵커링이 활성화될 경우 true를, 그렇지 않으면 false를 반환합니다.

Example

Console

> subbridge.anchoring(true)
true
> subbridge.anchoring(false)
false

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"subbridge_anchoring","params":[true],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":true}
$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"subbridge_anchoring","params":[false],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":false}

subbridge_latestAnchoredBlockNumber

subbridge_latestAnchoredBlockNumber는 서비스체인의 가장 최근에 앵커링된 블록 번호를 반환합니다.

Parameters

None

Return Value

Type
Description

Uint64

가장 최근에 앵커링된 블록 번호.

Example

> subbridge.latestAnchoredBlockNumber
71025

subbridge_getReceiptFromParentChain

subbridge_getReceiptFromParentChain은 앵커링 트랜잭션의 영수증을 반환합니다.

Parameters

Type
Description

32-byte DATA

앵커링 트랜잭션 해시에 포함된 자식 체인 블록 해시.

Return Value

Object - 트랜잭션 영수증 객체를 반환하거나 영수증을 찾을 수 없는 경우 null을 반환.

Name
Type
Description

contractAddress

DATA

The contract address created, if the transaction was a contract creation, otherwise null. (사용 중단될 예정)

gasUsed

QUANTITY

The amount of gas used by this specific transaction alone.

logs

Array

Array of log objects, which this transaction generated.

logsBloom

256-byte DATA

Bloom filter for light clients to quickly retrieve related logs.

status

QUANTITY

Either 1 (success) or 0 (failure).

transactionHash

32-byte DATA

Hash of the transaction.

Example

> subbridge.getReceiptFromParentChain("0x4f300d6574e71d7940c88fe08f27d9ac45cbc7b81d45c17e848d3772f64377b5")
{
  contractAddress: "0x0000000000000000000000000000000000000000",
  gasUsed: "0x9470",
  logs: [],
  logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  status: "0x1",
  transactionHash: "0x3641f52359f44ef2a9941ea840aed4befbace5cac28d5cc8cacd94eae211fd1e"
}

subbridge_deployBridge

subbridge_deployBridge는 부모와 자식 체인에 브리지 컨트랙트를 배포하고 주소를 반환합니다. 이 메소드는 또한 브리지 컨트랙트를 서브 브리지에 등록합니다.

Parameters

none

Return Value

Name
Type
Description

account

20-byte DATA

자식 체인에 있는 브리지 컨트랙트의 주소.

account

20-byte DATA

부모 체인에 있는 브리지 컨트랙트의 주소.

Example

> subbridge.deployBridge()
["0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4"]

subbridge_registerBridge

subbridge_registerBridge는 부모/자식 체인에 배포된 브리지 컨트랙트를 등록합니다.

Parameters

Name
Type
Description

account

20-byte DATA

Address of bridge contract on child chain.

account

20-byte DATA

Address of bridge contract on parent chain.

Return Value

Name
Type
Description

error

Error

등록에 성공하면 null, 그렇지 않으면 Error 객체.

Example

> subbridge.registerBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
null

> subbridge.registerBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
Error: bridge already exists

subbridge_deregisterBridge

subbridge_deregisterBridge는 부모/자식 체인에 있는 등록된 브리지 컨트랙트를 등록 해지합니다.

Parameters

Name
Type
Description

account

20-byte DATA

Address of bridge contract on child chain.

account

20-byte DATA

Address of bridge contract on parent chain.

Return Value

Name
Type
Description

error

Error

등록 해지에 성공하면 null, 그렇지 않으면 Error 객체.

Example

> subbridge.deregisterBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
null

> subbridge.deregisterBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
Error: invalid bridge pair

subbridge_subscribeBridge

subbridge_subscribeBridge는 부모/자식 체인에 등록된 브리지 컨트랙트를 구독합니다. 서브 브리지 노드가 브리지 컨트랙트 쌍을 구독하면, 서브 브리지는 체인 간 밸류 트랜스퍼 요청을 자동으로 처리합니다.

Parameters

Name
Type
Description

account

20-byte DATA

Address of bridge contract on child chain.

account

20-byte DATA

Address of bridge contract on parent chain.

Return Value

Name
Type
Description

error

Error

구독에 성공하면 null, 그렇지 않으면 Error 객체.

Example

> subbridge.subscribeBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
null
> subbridge.subscribeBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
Error: already subscribed

subbridge_unsubscribeBridge

subbridge_unsubscribeBridge는 부모/자식 체인의 브리지 컨트랙트 구독을 해지합니다. 서브 브리지가 브리지 컨트랙트 쌍의 구독을 해지하면, 서브 브리지는 체인 간 밸류 트랜스퍼 요청을 더 이상 처리하지 못합니다.

Parameters

Name
Type
Description

account

20-byte DATA

Address of bridge contract on child chain.

account

20-byte DATA

Address of bridge contract on parent chain.

Return Value

Name
Type
Description

error

Error

구독 해지에 성공하면 null, 그렇지 않으면 Error 객체.

Example

> subbridge.unsubscribeBridge("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4")
null

subbridge_registerToken

subbridge_registerToken은 한 쌍의 ERC-20 또는 721 토큰을 브리지 컨트랙트에 등록합니다.

Parameters

Name
Type
Description

account

20-byte DATA

Address of bridge contract on child chain.

account

20-byte DATA

Address of bridge contract on parent chain.

account

20-byte DATA

자식 체인에 있는 토큰 컨트랙트의 주소.

account

20-byte DATA

부모 체인에 있는 토큰 컨트랙트의 주소.

Return Value

Name
Type
Description

error

Error

null if the registration succeeds, Error object otherwise.

Example

> subbridge.registerToken("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4","0xA4b0c6e12346426a09FaD70dAE0651E6Dbdd5198","0x865Cca53828C91663BFf0Ca9808827Bac552BAec")
null
> subbridge.registerToken("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4","0xA4b0c6e12346426a09FaD70dAE0651E6Dbdd5198","0x865Cca53828C91663BFf0Ca9808827Bac552BAec")
Error: token already exists

subbridge_deregisterToken

subbridge_deregisterBridge는 브리지 컨트랙트에 등록된 한 쌍의 토큰 컨트랙트를 등록 취소합니다.

Parameters

Name
Type
Description

account

20-byte DATA

Address of bridge contract on child chain.

account

20-byte DATA

Address of bridge contract on parent chain.

account

20-byte DATA

Address of token contract on child chain.

account

20-byte DATA

Address of token contract on parent chain.

Return Value

Name
Type
Description

error

Error

null if the deregistration succeeds, Error object otherwise.

Example

> subbridge.deregisterToken("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4","0xA4b0c6e12346426a09FaD70dAE0651E6Dbdd5198","0x865Cca53828C91663BFf0Ca9808827Bac552BAec")
null
> subbridge.deregisterToken("0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a", "0x23dab942822021bbd6d551ef51003208924877e4","0xA4b0c6e12346426a09FaD70dAE0651E6Dbdd5198","0x865Cca53828C91663BFf0Ca9808827Bac552BAec")
Error: invalid token pair

subbridge_convertRequestTxHashToHandleTxHash

subbridge_convertRequestTxHashToHandleTxHash는 주어진 "request value transfer transaction" 해시에 상응하는 반대편 체인에 있는 "handle value transfer transaction" 해시를 리턴합니다. "Request value transfer transaction"은 사용자가 체인 간 밸류 트랜스퍼를 요청하기 위해 생성한 트랜잭션입니다. "Handle value transfer transaction"은 서브 브리지가 사용자의 밸류 트랜스퍼 요청을 처리하기 위해 생성한 트랜잭션입니다.

Parameters

Name
Type
Description

Hash

32-byte DATA

"request value transfer" 트랜잭션의 해시.

Return Value

Name
Type
Description

Hash

32-byte DATA

"handle value transfer" 트랜잭션의 해시. 0 해시는 대응하는 "handle value transfer" 트랜잭션이 없음을 의미합니다.

Example

> subbridge.convertRequestTxHashToHandleTxHash("0xae5604f8673098436ee4eaf1b453f1a395afccd6e8eb674c60edd63ebb047622")
"0x97493d1a91d65c149763209be6535efdacf8f1b50c99daa22abf06502010b2ee"
> subbridge.convertRequestTxHashToHandleTxHash("0xc585cfd1e7047b4faae69e62e77db192d8a339701b40d6ab4adb58453b934bec")
"0x0000000000000000000000000000000000000000000000000000000000000000"

subbridge_listBridge

subbridge_listBridge는 서브 브리지에 등록(저장)되어 있는 모든 브리지 컨트랙트 쌍의 리스트를 반환합니다.

Parameters

nonce

Return Value

Name
Type
Description

localAddress

account

20-byte DATA

localAddress

account

20-byte DATA

subscribed

bool

브리지 컨트랙트 쌍이 구독 중이면 true, 아니면 false.

Example

> subbridge.listBridge
[{
    localAddress: "0x27caeba831d98b5fbb1d81ce0ed20801702f443a",
    remoteAddress: "0x22c41ae528627b790233d2e59ea520be12350eb5",
    subscribed: true
}, {
    localAddress: "0x376b72abe1b29cace831bd3f5acdfa967814c9cd",
    remoteAddress: "0x53160735f7cc6ff75e48619f368bb94daff66a1b",
    subscribed: false
}, {
    localAddress: "0x87d6b9c567e5b84cd00e03bfbe6d20d88209c33a",
    remoteAddress: "0x23dab942822021bbd6d551ef51003208924877e4",
    subscribed: false
}]

subbridge_getBridgeInformation

subbridge_getBridgeInformation은 주어진 브리지 컨트랙트의 정보를 반환합니다.

Parameters

Name
Type
Description

account

20-byte DATA

브리지 컨트랙트의 주소

Return Value

Name
Type
Description

counterPart

20-byte DATA

상대방 브리지 컨트랙트의 주소. (아직 지원하지 않음)

isRunning

bool

브리지 컨트랙트가 실행 중이면 true, 아니면 false.

isSubscribed

bool

브리지 컨트랙트가 구독 중이면 true, 아니면 false.

onServiceChain

bool

브리지 컨트랙트가 자식 체인에 있으면 true, 아니면 false.

pendingEventSize

QUANTITY

브리지 컨트랙트가 생성한 "request value transfer" 이벤트 중 서브 브리지가 아직 처리하지 않아 pending 상태에 있는 것의 개수.

requestNonce

QUANTITY

브리지 컨트랙트의 request 논스.

handleNonce

QUANTITY

브리지 컨트랙트의 upper handle 논스.

lowerHandleNonce

QUANTITY

브리지 컨트랙트의 lower handle 논스.

Example

> subbridge.getBridgeInformation("0x27caeba831d98b5fbb1d81ce0ed20801702f443a")
{
  counterPart: "0x0000000000000000000000000000000000000000",
  handleNonce: 0,
  lowerHandleNonce: 0,
  isRunning: true,
  isSubscribed: true,
  onServiceChain: true,
  pendingEventSize: 0,
  requestNonce: 0
}

subbridge_txPendingCount

subbridge_txPendingCount는 브리지 트랜잭션 풀에 있는 pending 트랜잭션 개수를 반환합니다.

Parameters

None

Return Value

Type
Description

Uint64

브리지 트랜잭션 풀에 있는 pending 트랜잭션의 수.

Example

> subbridge.txPendingCount
2

subbridge_txPending

subbridge_txPending은 브리지 트랜잭션 풀에 있는 pending 트랜잭션 목록을 반환합니다.

Parameters

None

Return Value

Type
Description

JSON string

브리지 트랜잭션 풀에 있는 pending 트랜잭션 목록.

Example

> subbridge.txPending
{
  0xa057995175b93ee0d1bdfa54f078ad0f0116130b: [{
      from: "0xa057995175b93ee0d1bdfa54f078ad0f0116130b",
      gas: "0x186a0",
      gasPrice: "0x5d21dba00",
      hash: "0x284c8f5bc82ef987c3a14fc8dac7933beb528777745987ff790014441f26ca03",
      input: "0xf8a9a063f41a6ec8e2f8074c30fccf11f2b8479e7ebd8a0e5aa0c171623bc1f3812e33a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0f845557d8dc2175974f29c2e9d12b1a57f634acaafdf56ae7033201a0796bedea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09109530b191b47ca3d91012faba70fcf307f13b030f19d932cab38f2c1ece7b78304157c",
      nonce: "0x41589",
      signatures: [{...}],
      type: "TxTypeChainDataAnchoring",
      typeInt: 72
  }, {
      from: "0xa057995175b93ee0d1bdfa54f078ad0f0116130b",
      gas: "0x186a0",
      gasPrice: "0x5d21dba00",
      hash: "0x4dd093916a419608091da28b5d7ffc6e34d894ddaac96328f1904bfef93a4ad0",
      input: "0xf8a9a05b0dd6cc938916e37b17b602690399987b4e8540a14a494626d85e947f721a10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a063f41a6ec8e2f8074c30fccf11f2b8479e7ebd8a0e5aa0c171623bc1f3812e33a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09109530b191b47ca3d91012faba70fcf307f13b030f19d932cab38f2c1ece7b78304157d",
      nonce: "0x4158a",
      signatures: [{...}],
      type: "TxTypeChainDataAnchoring",
      typeInt: 72
  }]
}

Last updated