Approve

Approve params

Param
Type
Description

data

string

the approve data

to

string

the spender address

type

token, nft, nftCollection

the supported type of approve action

Approve Token

container.tsx
import Web3 from 'web3';
import { useRamperService } from '@ramper-v2/native-core';
 
const { approve, network } = useRamperService();
function onApproveToken() {
  const client = new Web3(
    new Web3.providers.HttpProvider(network?.rpcURL),
  );
    const contract = new client.eth.Contract(
      ERC20ABI as any,
      approveTokenContactAddress,
    );
 
    // Main Token decimal
    const decimal = 18;
 
    // Please convert amount to wei unit
    const amount = '100000000';
    const rawData = contract.methods.approve(approveTokenSpender, amount);
    const value = {
      data: rawData.encodeABI(),
      to: approveTokenContactAddress,
      type: 'token',
    };
    try {
      const result = await approve(value);
    } catch (error) {
      // Error Handler
    }
  };

Approve NFT

approve-nft.tsx
import { useRamperService } from '@ramper-v2/native-core';
import Web3 from "web3";
 
const { approve, network } = useRamperService();
 
const handleApproveNFT = async () => {
  try {
    const client = new Web3(
      new Web3.providers.HttpProvider(network?.rpcURL),
    );
  const contract = new client.eth.Contract(
    ERC721FullABI,
    approveNFTContactAddress,
  );
 
  const rawData = contract.methods.approve(
    approveNFTSpender,
    approveNFTTokenId,
  );
    const value = {
      data: rawData.encodeABI(),
      to: approveNFTContactAddress,
      type: 'nft',
    };
    const result = await approve(value);
  } catch (error) {
    // Error Handler
  }
};

Approve NFT Collection

approve-nft-collection.tsx
import { useRamperService } from '@ramper-v2/native-core';
import Web3 from "web3";
 
const { approve, network } = useRamperService();
 
const handleApproveNFTCollection = async () => {
  try {
    const client = new Web3(
      new Web3.providers.HttpProvider(network?.rpcURL),
    );
    const contract = new client.eth.Contract(
      ERC721FullABI,
      approveNFTContactAddress,
    );
 
    const rawData = contract.methods.setApprovalForAll(approveNFTSpender, true);
    const value = {
      data: rawData.encodeABI(),
      to: approveNFTContactAddress,
      type: 'nftCollection',
    };
    const result = await approve(value);
  } catch (error) {
    // Error Handler
  }
};

Last updated