@lootexchange/sdk
Advanced tools
Comparing version 0.0.2 to 0.0.4
@@ -15,2 +15,5 @@ import { BigNumberish } from "@ethersproject/bignumber"; | ||
salt: BigNumberish; | ||
v?: number; | ||
r?: string; | ||
s?: string; | ||
}; | ||
@@ -17,0 +20,0 @@ export default class SingleItemErc721OrderBuilder { |
@@ -7,6 +7,6 @@ "use strict"; | ||
const abi_1 = require("@ethersproject/abi"); | ||
const bignumber_1 = require("@ethersproject/bignumber"); | ||
const constants_1 = require("@ethersproject/constants"); | ||
const random_1 = require("@ethersproject/random"); | ||
const order_1 = __importDefault(require("../../helpers/order")); | ||
const types_1 = require("../../types"); | ||
const utils_1 = require("../utils"); | ||
const ERC721_json_1 = __importDefault(require("../../abis/ERC721.json")); | ||
@@ -40,3 +40,3 @@ const REPLACEMENT_PATTERN_BUY = "0x00000000" + "f".repeat(64) + "0".repeat(64) + "0".repeat(64); | ||
static sell(params) { | ||
return { | ||
return order_1.default.normalize({ | ||
exchange: params.exchange, | ||
@@ -62,9 +62,11 @@ maker: params.maker, | ||
salt: params.salt, | ||
v: 0, | ||
r: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
s: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
}; | ||
v: params.v || 0, | ||
r: params.r || | ||
"0x0000000000000000000000000000000000000000000000000000000000000000", | ||
s: params.s || | ||
"0x0000000000000000000000000000000000000000000000000000000000000000", | ||
}); | ||
} | ||
static buy(params) { | ||
return { | ||
return order_1.default.normalize({ | ||
exchange: params.exchange, | ||
@@ -90,6 +92,8 @@ maker: params.maker, | ||
salt: params.salt, | ||
v: 0, | ||
r: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
s: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
}; | ||
v: params.v || 0, | ||
r: params.r || | ||
"0x0000000000000000000000000000000000000000000000000000000000000000", | ||
s: params.s || | ||
"0x0000000000000000000000000000000000000000000000000000000000000000", | ||
}); | ||
} | ||
@@ -112,3 +116,3 @@ static matchingSell(seller, buyOrder) { | ||
} | ||
return { | ||
return order_1.default.normalize({ | ||
exchange: buyOrder.exchange, | ||
@@ -131,9 +135,9 @@ maker: seller, | ||
extra: 0, | ||
listingTime: Math.floor(Date.now() / 1000), | ||
listingTime: (0, utils_1.getListingTime)(), | ||
expirationTime: 0, | ||
salt: bignumber_1.BigNumber.from((0, random_1.randomBytes)(32)), | ||
salt: (0, utils_1.getSalt)(), | ||
v: 0, | ||
r: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
s: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
}; | ||
}); | ||
} | ||
@@ -156,3 +160,3 @@ static matchingBuy(buyer, sellOrder) { | ||
} | ||
return { | ||
return order_1.default.normalize({ | ||
exchange: sellOrder.exchange, | ||
@@ -175,9 +179,9 @@ maker: buyer, | ||
extra: 0, | ||
listingTime: Math.floor(Date.now() / 1000), | ||
listingTime: (0, utils_1.getListingTime)(), | ||
expirationTime: 0, | ||
salt: bignumber_1.BigNumber.from((0, random_1.randomBytes)(32)), | ||
salt: (0, utils_1.getSalt)(), | ||
v: 0, | ||
r: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
s: "0x0000000000000000000000000000000000000000000000000000000000000000", | ||
}; | ||
}); | ||
} | ||
@@ -184,0 +188,0 @@ } |
@@ -125,8 +125,13 @@ "use strict"; | ||
const rawWyvernOrderHash = (0, solidity_1.keccak256)(WYVERN_ORDER_FIELDS, this.toRaw(order)); | ||
const signerAddress = (0, wallet_1.verifyMessage)((0, bytes_1.arrayify)(rawWyvernOrderHash), { | ||
v: order.v, | ||
r: order.r, | ||
s: order.s, | ||
}); | ||
return signerAddress.toLowerCase() === order.maker.toLowerCase(); | ||
try { | ||
const signerAddress = (0, wallet_1.verifyMessage)((0, bytes_1.arrayify)(rawWyvernOrderHash), { | ||
v: order.v, | ||
r: order.r, | ||
s: order.s, | ||
}); | ||
return signerAddress.toLowerCase() === order.maker.toLowerCase(); | ||
} | ||
catch { | ||
return false; | ||
} | ||
} | ||
@@ -133,0 +138,0 @@ // --------------- Private --------------- |
{ | ||
"name": "@lootexchange/sdk", | ||
"version": "0.0.2", | ||
"version": "0.0.4", | ||
"description": "Loot Exchange SDK", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
# Loot Exchange SDK | ||
TODO | ||
This repository contains an SDK for interacting with instances of Wyvern V2 contracts. | ||
### Usage | ||
```typescript | ||
import { Builders, Helpers, Order } from "@lootexchange/sdk"; | ||
// Create an unsigned sell order | ||
let sellOrder: Order = Builders.Erc721.SingleItem.sell({ | ||
exchange: exchange.address, | ||
maker: seller.address, | ||
target: erc721.address, | ||
tokenId: 0, | ||
paymentToken: AddressZero, | ||
basePrice: parseEther("1"), | ||
fee: 250, | ||
feeRecipient: feeRecipient.address, | ||
listingTime: Math.floor(Date.now() / 1000) - 300, | ||
expirationTime: 0, | ||
salt: 0, | ||
}); | ||
// Sign the sell order | ||
sellOrder = await Helpers.Order.sign(seller, sellOrder); | ||
// Create a matching buy order for the sell order | ||
const buyOrder: Order = Builders.Erc721.SingleItem.matchingBuy( | ||
buyer.address, | ||
sellOrder | ||
); | ||
// Trigger settlement | ||
await Helpers.Wyvern.match(buyer, buyOrder, sellOrder); | ||
``` |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
91913
35
2682
36