Follow 合约请求示例

使用Relation Protocol部署好的FollowRegister合约,可以实现为用户创建Follow合约。Follow合约可以进行关注与取消关注。FollowRegister与Follow合约均实现了Contract Standard定义的合约接口。

构建Contract对象

FollowRegister和FollowWithSign的合约地址、abi文件,以及Follow合约的abi文件可以查询Relation Protocol资源列表获得,Follow合约的地址需要通过FollowRegister查到,每个地址拥有自己的Follow合约。 通过ethers构建FollowRegisterContract对象:

import { ethers, providers } from 'ethers'

const getFollowRegisterContractInstance = () => {
    // FollowRegister合约地址
    const contractAddress = '0xab8Dde275F3d2508c578C5bbDf43E81964BF18A4'
    const provider = new providers.Web3Provider(window.ethereum)
    const signer = provider.getSigner()
    const contract = new ethers.Contract(contractAddress, followRegisterAbi, signer)
    return contract
}

const getFollowWithSignContractInstance = () => {
    const contractAddress = '0xAC0f863b66173E69b1C57Fec5e31c01c7C6959B7'
    const provider = new providers.Web3Provider(window.ethereum)
    const signer = provider.getSigner()
    const contract = new ethers.Contract(contractAddress, followWithSignAbi, signer)
    return contract
}

调用合约方法

FollowRegister

  1. 部署Follow合约

  1. 查询用户的Follow合约,并构建Contract对象

用户部署过Follow合约后,可以通过地址查询到Follow合约的地址

Follow

  1. 关注

用户关注某个地址,需要调用对方的Follow合约

  1. 取消关注

  1. 用户的粉丝列表

遍历用户Follow合约的token owner,即可得到他的粉丝列表

  1. 关注(代支付Gas费)

用户对数据进行签名,打包成上链参数。任意地址可携带此上链参数发起交易,Gas费由发起交易的地址支付。

  1. 取消关注(代支付Gas费)

用户对数据进行签名,打包成上链参数。任意地址可携带此上链参数发起交易,Gas费由发起交易的地址支付。

Last updated