opensea api v2-创建列表时无效订单签名

问题描述 投票:0回答:2

我想通过Python通过Opensea API创建列表。我有回应:

{"errors":["['Invalid order signature']"]}
。我找不到文档中的信息。目前,我正在签署订单参数。这是我的代码:

import requests
from web3.auto import w3
from eth_account.messages import encode_defunct
import time


def create_order_model():
    current_time = int(time.time())
    order = {
        "offerer": "0xd107AC5e5830BB95f880cA3b1270ccCdAA0A3c5e",
        "zone": "0x00000000e88fe2628ebc5da81d2b3cead633e89e",
        "zoneHash": "0x3000000000000000000000000000000000000000000000000000000000000000",
        "startTime": current_time,
        "endTime": current_time + 2629743, # current_time + 1 month in seconds
        "orderType": 2,
        "offer": [
            {
                "itemType": 2,
                "token": "0x45aeb17Db4dd06FF9Ca6cB1E37455AAF761Bdc14",
                "identifierOrCriteria": "1",
                "startAmount": "1",
                "endAmount": "1",
            },
        ],
        "consideration": [
            {
                "itemType": 0,
                "token": "0x0000000000000000000000000000000000000000",
                "identifierOrCriteria": "0",
                "startAmount": "9750000000000000000",
                "endAmount": "9750000000000000000",
                "recipient": "0xd107AC5e5830BB95f880cA3b1270ccCdAA0A3c5e",
            },
            {
                "itemType": 0,
                "token": "0x0000000000000000000000000000000000000000",
                "identifierOrCriteria": "0",
                "startAmount": "250000000000000000",
                "endAmount": "250000000000000000",
                "recipient": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
            },
        ],
        "totalOriginalConsiderationItems": 2,
        "salt": 12686911856931635052326433555881236148,
        "conduitKey": "0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",
        "nonce": 0,
        "counter": 0
    }
    return order

def sing_order(msg):
    private_key = "PRIVATE_KEY"
    message = encode_defunct(text=str(msg))
    signed_message = w3.eth.account.sign_message(message, private_key=private_key)
    return signed_message.signature.hex()



def main():
    url = "https://testnets-api.opensea.io/v2/orders/goerli/seaport/listings"
    headers = {
        "accept": "application/json",
        "content-type": "application/json"
    }

    order_parameters = create_order_model()
    print(order_parameters)

    signature = sing_order(order_parameters)
    print(signature)

    params = {"parameters": order_parameters, "signature": str(signature)}
    response = requests.post(url, headers=headers, json=params)
    print(response.text)


if __name__ == '__main__':
    main()

InSide

seaport-js
(用于JavaScript的SDK:Https://github.com/projectopensea/seaport-js/blob/blob/fb1c40d7760a8ee57777735735ad17f2bdb4a91ac7c6/seaeaport/seaeaport.seaport/seaport.tss.ts.ts.ts.l386.l386. i i i i i i is并试图将这个想法转换为Python。这就是我的sign_order外观转换的方式:
singOrder()

您知道如何正确签署Opensea API可以接受的订单?
    

是的,有一些警告。我解释了如何从Seaport SDK使用CreateDorder,然后在此GitHub链接中使用OpenSea API。 CreateOrder的结构与API结构略有不同。

the the this
python signature opensea
2个回答
0
投票
,我遇到了相同的问题,然后我发现了溶解度,如果您试图使用mainnet u,您应该更改“链条”到1

ther以JavaScript和Seaport SDK遇到此错误的人。用1.4版初始化Seaport,而不是默认1.1


0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.