FAVORLET
FAVORLETFAVORLET scanner
한국어
한국어
  • 소개
    • 페이버렛 소개
    • 스캐너 소개
    • 스타일 가이드
    • 활용 사례
      • 2022.07 선미야클럽 홀더파티 | 입장 인증
      • 2022.09 UDC 2022 전시 | 기념 NFT & 토큰 에어드랍
      • 2022.10 BWB 2022 부스 | 토큰 에어드랍 & NFT 보유 인증
      • 2022.12 82HOUSE 연말파티 | 입장 인증
      • 2022.12 Team BB's 나눔 행사 | 티켓 NFT & 스탬프 NFT 에어드랍
      • 2022.12 선미야클럽 연말 밋업 | 입장 인증
      • 2023.03 울트라 아부다비 | 티켓 입장 인증 & 기념 NFT 에어드랍
      • 2023.03 NFT 코리아 페스티벌 | 기념 NFT 에어드랍
      • 2023.04 다다즈 개인전 | 프린트 베이커리 멤버십 NFT & 기념 NFT 에어드랍
      • 2023.05 Hey NFT NYC & Tokyo | 행사 참여 기념 NFT 에어드랍
      • 2023.06 NFTtown 밋업 파티 | 기념 NFT 에어드랍
      • 2023.07 HELLO NFT 2023 | 입장 인증 & 혜택 지급
      • 2023.07 Seoul Web 3.0 Festival | 기념 NFT 에어드랍
      • 2023.12 KMCA <위대한 개츠비> | 입장 인증 & 블링 파츠 에어드랍 & 선물 수령
      • 2023.12 다다즈 O.D.D NIGHT | 블링 파츠 에어드랍
      • 2023.12 <진학사XEDUM 입시 전략 설명회> | 티켓 입장 인증
  • 페이버렛 가이드
    • 이용 가이드
      • 카드 불러오기
      • 오프라인 인증
      • 컬렉션 및 NFT 조회
      • NFT 전송
    • 운영 가이드
      • 스캐너 설정
      • 푸시 알림
  • 페이버렛 개발 가이드
    • App2App 개발 가이드
      • 지갑 연결
      • 메세지 서명
      • 플랫폼 코인 전송
      • 컨트랙트 실행
    • 스캐너 API 개발 가이드
  • 고객센터
    • 문의 및 제안
  • 공지사항
    • 릴리즈 노트
    • 보도자료
    • 파트너십
    • 안내 사항
      • [23-12-01] 페이버렛 v3.0 업데이트
      • [23-11-21] 진학사 X EDUM 입시 전략 설명회
      • [23-09-01] K현대미술관 <괴짜전> 김가리 작가와 함께하는 [나만의 페르소나 만들기]
      • [23-08-17] K현대미술관 <괴짜전> NUA 작가 탐구생활에 참여하세요
      • [23-08-11] 페이버렛 x K현대미술관 전시회 포스터 컬렉팅 이벤트
      • [23-08-11] 페이버렛 x K현대미술관 여름 바캉스 이벤트
      • [23-07-21] 페이버렛 업데이트 안내
      • [23-06-14] 페이버렛 업데이트 안내
      • [23-04-27] 페이버렛 업데이트 안내
      • [23-03-17] 페이버렛 업데이트 안내
      • [23-03-10] 울트라 아부다비 현장 스케치
      • [23-02-24] 페이버렛 업데이트 안내
      • [23-02-06] 펠라즈 NFT 티켓 for 울트라 아부다비 2023
      • [22-12-30] 안드로이드 폴리곤/이더리움 토큰 전송 이슈 해결
      • [22-12-30] 안드로이드 폴리곤/이더리움 토큰 전송 이슈 안내
      • [22-12-29] 페이버렛에서 이더리움과 폴리곤을 지원합니다!
  • 페이버렛 약관
    • 서비스 이용약관 (2023-07-21)
    • 개인정보 처리 방침 (2023-07-21)
    • 이전 약관
      • 개인정보 처리방침(2022-09-19)
      • 개인정보 처리방침(2022-05-18)
      • Privacy Policy (sep-09-2022)
  • 페이버렛 스캐너 약관
    • 개인정보 처리방침(2022-09-19)
    • Privacy Policy (sep-09-2022)
  • FAVORLET
  • Xclusive
  • Fingerlabs
Powered by GitBook
On this page
  • 1. Request.executeContractWithEncoded (>= v1.2.0)
  • 2. createDeepLink
  • 3. receipt
  • Deprecated
  • 1. Request.executeContract
  1. 페이버렛 개발 가이드
  2. App2App 개발 가이드

컨트랙트 실행

1. Request.executeContractWithEncoded (>= v1.2.0)

Parameters

이름
타입
설명

chainId

number

해당 네트워크의 체인 아이디

appName

string

컨트랙트 실행 시 FAVORLET 앱에 노출될 이름

transactions

object array

컨트랙트를 실행하기 위해 필요한 정보

(자세한 내용은 아래를 참고)

transactions 객체는 다음을 포함합니다.

이름
타입
설명

from

string

트랜잭션을 호출할 지갑 주소

to

string

호출되는 컨트랙트 주소

value

string

(optional) 호출하는 abi 함수가 payable 인 경우 플랫폼 코인 전송

data

string

gasLimit

string

(optional) 사용할 gasLimit 없을시 앱내 estimate 함수실행

Response

이름
타입
설명

requestId

string

작업 또는 트랜잭션 요청을 추적하기 위한 id

expiredAt

number

작업 또는 트랜잭션 요청이 만료 되는 시간(단위: 초)

Example

import { Request } from "favorlet.js";

const response = await Request.executeContractWithEncoded({
  chainId: 8217, // 해당 체인 id
  appName: "BlockChainApp", // FAVORLET 앱에 노출
  transactions: [
    {
      from: "0x{address in hex}", // 트랜잭션을 호출할 지갑 주소
      to: "0x{address in hex}", // 호출되는 컨트랙트 주소
      value: "1000000000000000000", // 호출하는 abi 함수가 payable 인 경우 플랫폼 코인 전송
      data: "0x{hex}"
    },
  ],
});

console.log(response);
/*
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
}
*/

2. createDeepLink

Parameters

타입
설명

string

Request 요청시 전달받은 requestId

Response

타입
설명

string

FAVORLET 앱 내 해당 요청 페이지 DeepLink

Example

import { createDeepLink } from "favorlet.js";

const deepLink = createDeepLink(response.requestId); // Request를 통해 받은 requestId

/*
- PC: 생성된 deepLink를 qrcode 라이브러리를 이용하여 QR 생성 후 스마트폰으로 스캔
- Mobile: window.location.href 등을 사용하여 생성된 deepLink로 직접 이동
*/
console.log(deepLink);
// https://app.favorlet.link/?requestId=4ee3ed57-b785-4196-9018-7b682c7a8048

3. receipt

import { receipt } from "favorlet.js";

const result = await receipt(response.requestId); // Request를 통해 받은 requestId

console.log(result);
/*
- status에 따라 이후 분기 처리

### requested
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
  action: "executeContract",
  transactions: [
    { status: "requested" }
  ]
}

### executed
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
  action: "executeContract",
  transactions: [
    { status: "executed" }
  ]
}

### canceled
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
  action: "executeContract",
  transactions: [
    { 
      status: "canceled",
      txHash: null,
      errorMessage: null
    }
  ]
}

### failed
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
  action: "executeContract",
  transactions: [
    { 
      status: "failed",
      txHash: "0x5a4e16cfe0c21c3cd20456340b8614f585d951d9b931b515b11575d08142a6e2",
      errorMessage: "execution reverted : invalid id"
    }
  ]
}

### succeed
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
  action: "executeContract",
  transactions: [
    { 
      status: "succeed",
      txHash: "0x5a4e16cfe0c21c3cd20456340b8614f585d951d9b931b515b11575d08142a6e2",
      errorMessage: null
    }
  ]
}
*/

Deprecated

1. Request.executeContract

FAVORLET js 1.2.0부터는 Request.executeContractWithEncoded를 사용해주세요.

Parameters

이름
타입
설명

chainId

number

해당 네트워크의 체인 아이디

appName

string

컨트랙트 실행 시 FAVORLET 앱에 노출될 이름

transactions

object array

컨트랙트를 실행하기 위해 필요한 정보

(자세한 내용은 아래를 참고)

transactions 객체는 다음을 포함합니다.

이름
타입
설명

from

string

트랜잭션을 호출할 지갑 주소

to

string

호출되는 컨트랙트 주소

value

string

(optional) 호출하는 abi 함수가 payable 인 경우 플랫폼 코인 전송

abi

string

트랜잭션을 발생시키기 위한 abi

params

string

트랜잭션을 발생시키기 위한 abi 함수의 파라미터

functionName

string

abi에서 호출 하려는 함수 이름

gasLimit

string

사용할 gasLimit (optional) 없을 시, 앱 내 estimate 함수 실행

Response

이름
타입
설명

requestId

string

작업 또는 트랜잭션 요청을 추적하기 위한 id

appName

number

작업 또는 트랜잭션 요청이 만료 되는 시간(단위: 초)

Example

TRANSFER_ABI.json
// TRANSFER_ABI.json (테스트 파일)
[
  {
    "inputs": [
      {
        "name": "_to",
        "type": "address"
      },
      {
        "name": "_value",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "name": "transfer",
    "payable": false,
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
import { Request } from "favorlet.js";

const response = await Request.executeContract({
  chainId: 8217, // 해당 체인 id
  appName: "BlockChainApp", // FAVORLET 앱에 노출
  transactions: [
    {
      from: "0x{address in hex}", // 트랜잭션을 호출할 지갑 주소
      to: "0x{address in hex}", // 호출되는 컨트랙트 주소
      value: "1000000000000000000", // 호출하는 abi 함수가 payable 인 경우 플랫폼 코인 전송
      abi: JSON.stringify(TRANSFER_ABI), // 트랜잭션을 발생시키기 위한 abi
      params: `["0x{address in hex}", 1]`, // 트랜잭션을 발생시키기 위한 abi 함수의 파라미터
      functionName: "transfer", // abi에서 호출 하려는 함수 이름
    },
  ],
});

console.log(response);
/*
{
  requestId: "4ee3ed57-b785-4196-9018-7b682c7a8048",
  expiredAt: 1667893310,
}
*/
Previous플랫폼 코인 전송Next스캐너 API 개발 가이드

Last updated 1 year ago

함수 signature와 Solidity tightly packed 형식으로 전달된 매개 변수를 인코딩한 값입니다.

Interface
web3.eth.Contract — web3.js 1.0.0 documentation