FNCY Chain
FNCY 2.0.2 (KOR)
FNCY 2.0.2 (KOR)
  • Introduction
  • Getting Started
  • Design
    • Structure
    • Three Main Sets of Participants
    • PoSA Consensus
    • Governance
    • Staking
    • Mining Reward
    • Gas Fee
    • Runtime Upgrade
    • Cross-Chain Bridge
    • Security
  • Build On FNCY Chain
    • RPC Endpoints
    • Testnet Faucet
    • Block Explorer
      • Token Listing
    • BEP20 Token
    • NFT
    • Validator Requirements
    • NFT Market
      • FNCY Marketplace
  • For Developers
    • JSON-RPC
    • FNCY Chain API
      • Wallet API
      • Transaction API
      • Blockchain API
    • Wallet
      • FNCY Wallet
      • Use Metamask for FNCY Chain
      • SDK
        • Android
          • 설치
          • 사용법
            • 초기화
            • 지갑 생성/복원
            • 지갑 조회
            • 코인보내기/Contract 실행
            • Transaction 조회
            • 기타 기능
          • Methods
          • Domain
          • ETC
        • iOS
          • 설치
          • 사용법
            • 초기화
            • 지갑 생성/복원
            • 지갑 조회
            • 코인보내기/Contract 실행
            • Transaction 조회
            • 기타 기능
          • Methods
          • Domain
          • ETC
    • Smart Contract
      • Deployment
        • Truffle
        • Hardhat
        • Remix IDE
      • Verify Your Contract on FncyScan
    • Gasless Transaction
    • with FNCY
      • FNCY 로그인
      • GAME AUTH 로그인
  • Tokenomics
  • Ecosystem Partner
  • FNCY Governance Partner
Powered by GitBook
On this page
  • Steps
  • 가스비 조회
  • 티켓 정보 조회
  • Coin 전송
  • Token 전송(Contract 실행)
  • WalletConnect
  • 티켓 생성
  • Coin 전송
  • Token 전송(Contract 실행)
  • WalletConnect
  • 티켓 정보 확인
  • 티켓 전송
  • 트랜잭션 결과 확인
  1. For Developers
  2. Wallet
  3. SDK
  4. iOS
  5. 사용법

코인보내기/Contract 실행

이 문서는 '코인 보내기' 및 '스마트 컨트랙트 실행' 방법에 대하여 설명합니다.

Previous지갑 조회NextTransaction 조회

코인보내기 및 스마트 컨트랙트 실행은 지갑 보안 레벨 2 부터 가능합니다.

자세한 내용은 항목을 확인하십시오.

Steps

// Sample Usage
let wallet: FncyWallet = try await fncyWallet.getWallet()
// 1. Gas Price 조회
let gas: GasPriceInfo = try await self.fncyWallet.getGasPrice(chainId: 3)
// 2. Ticket 조회
let estimateResult:
 FncyTicket = try await fncyWallet.estimateTicket(wid: wallet.wid,
                                                  chainId: 3,
                                                  signatureType: .assetTransfer,
                                                  toAddress: wallet.walletAddress,
                                                  assetId: 6)
// 3. Ticket 생성
let ticketUUID = try await fncyWallet.makeTicket(wid: wallet.wid,
                                                 chainId: 3,
                                                 signatureType: .assetTransfer,
                                                 toAddress: wallet.walletAddress,
                                                 transferVal: "100000",
                                                 txGasPrice: gasPriceInfo.middleGasPrice.description,
                                                 assetId: 6)
                                                   
print("ticketUUID : ", ticketUUID)

// 4. Ticket 전송
let txId = try await fncyWallet.sendTicket(ticketUuid: ticketUUID, 
                                           pinNumber: "111111")
// 5. Transaction 결과 확인 
print("txID : ", txId)
//txID : 0xc19f68e548c2ed933291aa4cbc9748b4d2b0de4bf1a5516f0b74579fb8e13b54

가스비 조회

체인ID에 해당하는 네트워크(블록체인)의 현재 네트워크 사용료(가스비) 정보를 가져옵니다.

let gas: GasPriceInfo = try await fncyWallet.getGasPrice(chainId: 3)

See Also

티켓 정보 조회

전송 티켓을 생성하기 전에 실제 전송 가능여부 및 트랜잭션의 Nonce, GasLimit를 확인할 수 있습니다.

전송하는 자산 유형 혹은 WalletConnect를 통한 전송 여부에 따라 올바른 티켓 타입을 선택해야 합니다.

  • AssetTransfer : Coin전송

  • SmartContract : Token전송 및 Contract 실행

  • WalletConnect : WalletConnect연결 시에 사용

See Also

Coin 전송

let ticketData: FncyTicket = try await fncyWallet.estimateTicket(
wid: 10000, //지갑 ID
chainId: 3, // bsc: 1, eth: 2, fncy: 3
signatureType: TicketType.assetTransfer, 
toAddress: "0x1234...", //코인을 받을 주소
transferVal: "1000000000000000000", //보낼 수량 (단위: wei)
txGasPrice: "10000000000", //Gas Price (단위: wei)
assetId: 6, //보낼 자산 asset ID
maxPriorityPerGas: nil, //ETH 전송일 경우 사용
maxFeePerGas: nil // ETH전송일 경우 사용
)

Token 전송(Contract 실행)

let ticketData: FncyTicket = try await fncyWallet.estimateTicket(
wid: 10000, //지갑 ID
chainId: 3, // bsc: 1, eth: 2, fncy: 3
signatureType: TicketType.smartContract, //
toAddress: "0x1234...", //코인을 받을 주소
transferVal: "0", //보낼 수량 (단위: wei)
txGasPrice: "10000000000", //Gas Price (단위: wei)
contractAddress: "0x1234...", //Contract Address
txInput: "0x123456....", //Data
assetId: 6, //보낼 자산 asset ID
maxPriorityPerGas: nil, //ETH 전송일 경우 사용
maxFeePerGas: nil // ETH전송일 경우 사용
)

WalletConnect

let ticketData: FncyTicket = try await fncyWallet.estimateTicket(
wid: 10000, //지갑 ID
chainId: 3, // bsc: 1, eth: 2, fncy: 3
signatureType: TicketType.walletConnect, //
toAddress: "0x1234...", //코인을 받을 주소
transferVal: "1000000000000000000", //보낼 수량 (단위: wei)
txGasPrice: "10000000000", //Gas Price (단위: wei)
contractAddress: "0x1234...", //Contract Address
txInput: "0x123456....", //Data
assetId: 6, //보낼 자산 asset ID
maxPriorityPerGas: nil, //ETH 전송일 경우 사용
maxFeePerGas: nil // ETH전송일 경우 사용
)

티켓 생성

네트워크에 전송할 티켓(트랜잭션 정보)을 서버에 등록하고, 해당 티켓의 티켓UUID(TicketUUID)를 가져옵니다.

티켓 생성에 실패할 경우 TicketUUID는 반환되지 않습니다.

See Also

Coin 전송

let ticketUUID: String = try await fncyWallet.makeTicket(
wid: 10000, //지갑 ID
chainId: 3, // bsc: 1, eth: 2, fncy: 3
signatureType: TicketType.assetTransfer, 
toAddress: "0x1234...", //코인을 받을 주소
transferVal: "1000000000000000000", //보낼 수량 (단위: wei)
txGasPrice: "10000000000", //Gas Price (단위: wei)
assetId: 6, //보낼 자산 asset ID
maxPriorityPerGas: nil, //ETH 전송일 경우 사용
maxFeePerGas: nil, // ETH전송일 경우 사용
txGasLimit: 21000 // Gas Limit
)

Token 전송(Contract 실행)

let ticketUUID: String = try await fncyWallet.makeTicket(
wid: 10000, //지갑 ID
chainId: 3, // bsc: 1, eth: 2, fncy: 3
signatureType: TicketType.smartContract, //
toAddress: "0x1234...", //코인을 받을 주소
transferVal: "0", //보낼 수량 (단위: wei)
txGasPrice: "10000000000", //Gas Price (단위: wei)
contractAddress: "0x1234...", //Contract Address
txInput: "0x123456....", //Data
assetId: 6, //보낼 자산 asset ID
maxPriorityPerGas: nil, //ETH 전송일 경우 사용
maxFeePerGas: nil, // ETH전송일 경우 사용
txGasLimit: 21000 // Gas Limit
)

WalletConnect

let ticketUUID: String = try await fncyWallet.makeTicket(
wid: 10000, //지갑 ID
chainId: 3, // bsc: 1, eth: 2, fncy: 3
signatureType: TicketType.walletConnect, //
toAddress: "0x1234...", //코인을 받을 주소
transferVal: "1000000000000000000", //보낼 수량 (단위: wei)
txGasPrice: "10000000000", //Gas Price (단위: wei)
contractAddress: "0x1234...", //Contract Address
txInput: "0x123456....", //Data
assetId: 6, //보낼 자산 asset ID
maxPriorityPerGas: nil, //ETH 전송일 경우 사용
maxFeePerGas: nil, // ETH전송일 경우 사용
txGasLimit: 21000 // Gas Limit
)

티켓 정보 확인

발행된 티켓UUID를 사용하여 해당 티켓 정보를 조회할 수 있습니다.

let ticket: FncyTicket = try await fncyWallet.getTicketInfo(ticketUuid: "ticketUUID")

See Also

티켓 전송

티켓 전송은 서버에 등록된 티켓 정보를 사용하여 실제 트랜잭션 실행을 요청합니다.

티켓 전송이 성공하면 해당 트랜잭션 이력은 블록체인에 영구적으로 포함되며 변경하거나 취소할 수 없습니다.

발행된 티켓UUID와 지갑 비밀번호를 전달하여 티켓에 해당하는 트랜잭션을 실행시킵니다.

let txId: String = try await fncyWallet.sendTicket(
ticketUuid: "ticketUuid", // Ticekt UUID
pinNumber: "000000" // 지갑 비밀번호
)

트랜잭션 결과 확인

let txId = try await fncyWallet.sendTicket(ticketUuid: "ticketUuid"
                                           pinNumber: "000000")                                                                 
print(txId)
// 0xc19f68e548c2ed933291aa4cbc9748b4d2b0de4bf1a5516f0b74579fb8e13b54
// FncyScan(Testnet): https://fncyscan-testnet.fncy.world/tx/0xc19f68e548c2ed933291aa4cbc9748b4d2b0de4bf1a5516f0b74579fb8e13b54

티켓UUID를 얻는 방법은 을 확인하십시오.

티켓UUID를 얻는 방법은 을 확인하십시오.

반환된 txId를 에서 조회

FncyScan
티켓 생성
티켓 생성
가스비 조회
티켓 정보 조회
티켓 생성
티켓 전송
Transaction 결과 확인
getGasPrice
estimateTicket
makeTicket
getTicketInfo
GasPriceInfo
FncyTicket
FncyTicket
지갑 보안 레벨
TicketType
TicketType