Comment on page
컨트랙트 실행
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,
}
*/
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
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
}
]
}
*/
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
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,
}
*/
Last modified 7mo ago