mirror of
https://github.com/0xShay/ticketchain.git
synced 2026-01-11 13:13:25 +00:00
add tests
This commit is contained in:
2226
cache/solidity-files-cache.json
vendored
2226
cache/solidity-files-cache.json
vendored
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
pragma solidity >=0.8.2 <0.9.0;
|
pragma solidity >=0.8.2 <0.9.0;
|
||||||
|
|
||||||
|
import {ContractRegistry} from "@flarenetwork/flare-periphery-contracts/coston2/ContractRegistry.sol";
|
||||||
|
/* THIS IS A TEST IMPORT, in production use: import {FtsoV2Interface} from "@flarenetwork/flare-periphery-contracts/coston2/FtsoV2Interface.sol"; */
|
||||||
|
import {TestFtsoV2Interface} from "@flarenetwork/flare-periphery-contracts/coston2/TestFtsoV2Interface.sol";
|
||||||
|
|
||||||
contract EventManager {
|
contract EventManager {
|
||||||
|
|
||||||
struct Event {
|
struct Event {
|
||||||
@@ -13,7 +17,7 @@ contract EventManager {
|
|||||||
uint256 eventDate;
|
uint256 eventDate;
|
||||||
string[] images; // array of image URLs
|
string[] images; // array of image URLs
|
||||||
uint256[] tickets;
|
uint256[] tickets;
|
||||||
address eventHost;
|
address payable eventHost;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Ticket {
|
struct Ticket {
|
||||||
@@ -22,6 +26,11 @@ contract EventManager {
|
|||||||
uint256 eventId;
|
uint256 eventId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event EventCreated(uint256 eventId, string name, uint256 eventDate);
|
||||||
|
event TicketPurchased(uint256 ticketId, uint256 eventId, address buyer, uint256 price);
|
||||||
|
event TicketTransferred(uint256 ticketId, address from, address to);
|
||||||
|
event TicketTransferApproved(uint256 ticketId, address owner, address trustee);
|
||||||
|
|
||||||
mapping(uint256 => Event) public events;
|
mapping(uint256 => Event) public events;
|
||||||
mapping(uint256 => Ticket) public tickets;
|
mapping(uint256 => Ticket) public tickets;
|
||||||
|
|
||||||
@@ -32,12 +41,31 @@ contract EventManager {
|
|||||||
uint256 public eventCounter;
|
uint256 public eventCounter;
|
||||||
uint256 public ticketCounter;
|
uint256 public ticketCounter;
|
||||||
|
|
||||||
function centsToFlare(uint256 _cents) public view returns (uint256 _flr) {
|
function getFtsoV2CurrentFeedValues() public view returns (
|
||||||
return _cents*14/10;
|
uint256[] memory _feedValues,
|
||||||
|
int8[] memory _decimals,
|
||||||
|
uint64 _timestamp
|
||||||
|
) {
|
||||||
|
return ftsoV2.getFeedsById(feedIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
function power(uint base, int8 exponent) public pure returns (uint) {
|
function getFlareFeed() public view returns (uint256 _feedValue, int8 _decimals, uint64 _timestamp) {
|
||||||
require(exponent >= 0, 'Exponent must be non-negative');
|
uint256[] memory feedValues;
|
||||||
|
int8[] memory decimals;
|
||||||
|
uint64 timestamp;
|
||||||
|
(feedValues, decimals, timestamp) = ftsoV2.getFeedsById(feedIds);
|
||||||
|
return (feedValues[0], decimals[0], timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function centsToFlare(uint256 _cents) public view returns (uint256 _flr) {
|
||||||
|
uint256 feedValue;
|
||||||
|
int8 decimals;
|
||||||
|
(feedValue, decimals, ) = getFlareFeed();
|
||||||
|
return _cents * power(10, decimals) * 1 ether / 100 / feedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
function power(uint base, int8 exponent) private pure returns (uint) {
|
||||||
|
require(exponent >= 0, "Exponent must be non-negative");
|
||||||
uint result = 1;
|
uint result = 1;
|
||||||
for (int8 i = 0; i < exponent; i++) {
|
for (int8 i = 0; i < exponent; i++) {
|
||||||
result *= base;
|
result *= base;
|
||||||
@@ -45,61 +73,40 @@ contract EventManager {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEventPriceFlare(
|
function getEventPriceFlare(uint256 _eventId) public view returns (uint256 _flr) {
|
||||||
uint256 _eventId
|
require(_eventId < eventCounter, "Invalid event ID");
|
||||||
) public view returns (uint256 _flr) {
|
|
||||||
require(_eventId < eventCounter, 'Invalid event ID');
|
|
||||||
return centsToFlare(events[_eventId].ticketPrice);
|
return centsToFlare(events[_eventId].ticketPrice);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createEvent(
|
function createEvent(string memory _name, string memory _description, uint256 _capacity, uint256 _ticketPrice, uint256 _eventDate, string[] memory _images) public returns (uint256 _eventId) {
|
||||||
string memory _name,
|
events[eventCounter] = Event(_name, _description, _capacity, 0, _ticketPrice, _eventDate, _images, new uint256[](0), payable(msg.sender));
|
||||||
string memory _description,
|
|
||||||
uint256 _capacity,
|
|
||||||
uint256 _ticketPrice,
|
|
||||||
uint256 _eventDate,
|
|
||||||
string[] memory _images
|
|
||||||
) public {
|
|
||||||
events[eventCounter] = Event(
|
|
||||||
_name,
|
|
||||||
_description,
|
|
||||||
_capacity,
|
|
||||||
0,
|
|
||||||
_ticketPrice,
|
|
||||||
_eventDate,
|
|
||||||
_images,
|
|
||||||
new uint256[](0),
|
|
||||||
msg.sender
|
|
||||||
);
|
|
||||||
eventCounter++;
|
eventCounter++;
|
||||||
|
emit EventCreated(eventCounter - 1, _name, _eventDate);
|
||||||
|
return eventCounter - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEventImages(
|
function getEventImages(uint256 _eventId) public view returns (string[] memory) {
|
||||||
uint256 _eventId
|
require(_eventId < eventCounter, "Invalid event ID");
|
||||||
) public view returns (string[] memory) {
|
|
||||||
require(_eventId < eventCounter, 'Invalid event ID');
|
|
||||||
return events[_eventId].images;
|
return events[_eventId].images;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEventTickets(
|
function getEventTickets(uint256 _eventId) public view returns (uint256[] memory) {
|
||||||
uint256 _eventId
|
require(_eventId < eventCounter, "Invalid event ID");
|
||||||
) public view returns (uint256[] memory) {
|
|
||||||
require(_eventId < eventCounter, 'Invalid event ID');
|
|
||||||
return events[_eventId].tickets;
|
return events[_eventId].tickets;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: ADD CURRENCY CONVERSION + CHECK
|
function buyTicket(uint256 _eventId) public payable returns (uint256 _ticketId) {
|
||||||
function buyTicket(uint256 _eventId) public payable {
|
require(_eventId < eventCounter, "Invalid event ID");
|
||||||
require(_eventId < eventCounter, 'Invalid event ID');
|
require(events[_eventId].eventDate > block.timestamp, "Event has already passed");
|
||||||
require(
|
require(events[_eventId].tickets.length < events[_eventId].capacity, "Event is full");
|
||||||
events[_eventId].eventDate > block.timestamp,
|
|
||||||
'Event has already passed'
|
uint256 ticketCost = getEventPriceFlare(_eventId); // Get ticket price in FLR
|
||||||
);
|
require(msg.value >= ticketCost, "Insufficient value provided"); // Ensure user has paid >= ticket price
|
||||||
require(
|
if (msg.value > ticketCost) {
|
||||||
events[_eventId].tickets.length < events[_eventId].capacity,
|
// Pay any excess the user paid
|
||||||
'Event is full'
|
(bool sentExcess, ) = msg.sender.call{value: msg.value - ticketCost}("");
|
||||||
);
|
require(sentExcess, "Failed to send FLR excess back to buyer");
|
||||||
require(msg.value == events[_eventId].ticketPrice, 'Invalid ticket price');
|
}
|
||||||
|
|
||||||
// Create new ticket
|
// Create new ticket
|
||||||
tickets[ticketCounter] = Ticket(msg.sender, block.timestamp, _eventId);
|
tickets[ticketCounter] = Ticket(msg.sender, block.timestamp, _eventId);
|
||||||
@@ -110,19 +117,20 @@ contract EventManager {
|
|||||||
ticketCounter++;
|
ticketCounter++;
|
||||||
|
|
||||||
// Update number of tickets sold
|
// Update number of tickets sold
|
||||||
|
events[_eventId].tickets.push(ticketCounter - 1);
|
||||||
events[_eventId].ticketsSold++;
|
events[_eventId].ticketsSold++;
|
||||||
|
|
||||||
// Transfer FLR to event host
|
// Transfer FLR to event host
|
||||||
(bool sent, ) = events[_eventId].eventHost.call{value: msg.value}('');
|
(bool sentToHost, ) = events[_eventId].eventHost.call{value: ticketCost}("");
|
||||||
require(sent, 'Failed to send FLR to event host');
|
require(sentToHost, "Failed to send FLR to event host");
|
||||||
|
|
||||||
|
emit TicketPurchased(ticketCounter - 1, _eventId, msg.sender, ticketCost);
|
||||||
|
return ticketCounter - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
function transferTicketForce(uint256 _ticketId, address _to) private {
|
function transferTicketForce(uint256 _ticketId, address _to) private {
|
||||||
require(_ticketId < ticketCounter, 'Invalid ticket ID');
|
require(_ticketId < ticketCounter, "Invalid ticket ID");
|
||||||
require(
|
require(events[tickets[_ticketId].eventId].eventDate > block.timestamp, "Event has already passed");
|
||||||
events[tickets[_ticketId].eventId].eventDate > block.timestamp,
|
|
||||||
'Event has already passed'
|
|
||||||
);
|
|
||||||
|
|
||||||
address prevHolder = tickets[_ticketId].holder;
|
address prevHolder = tickets[_ticketId].holder;
|
||||||
|
|
||||||
@@ -139,37 +147,37 @@ contract EventManager {
|
|||||||
require(found, "Ticket not found in sender's inventory");
|
require(found, "Ticket not found in sender's inventory");
|
||||||
|
|
||||||
// Remove ticket from holder's array
|
// Remove ticket from holder's array
|
||||||
for (; i < userTickets[prevHolder].length; i++) {
|
for (; i < userTickets[prevHolder].length-1; i++) {
|
||||||
userTickets[prevHolder][i] = userTickets[prevHolder][i + 1];
|
userTickets[prevHolder][i] = userTickets[prevHolder][i+1];
|
||||||
}
|
}
|
||||||
|
userTickets[prevHolder].pop();
|
||||||
|
|
||||||
// Add ticket to _to's array
|
// Add ticket to _to's array
|
||||||
userTickets[_to].push(_ticketId);
|
userTickets[_to].push(_ticketId);
|
||||||
|
|
||||||
tickets[_ticketId].holder = _to;
|
tickets[_ticketId].holder = _to;
|
||||||
|
|
||||||
|
emit TicketTransferred(_ticketId, prevHolder, _to);
|
||||||
}
|
}
|
||||||
|
|
||||||
function approveTicket(uint256 _ticketId, address _to, bool _allowed) public {
|
function approveTicket(uint256 _ticketId, address _to, bool _allowed) public {
|
||||||
require(_ticketId < ticketCounter, 'Invalid ticket ID');
|
require(_ticketId < ticketCounter, "Invalid ticket ID");
|
||||||
require(
|
require(tickets[_ticketId].holder == msg.sender, "You do not own this ticket");
|
||||||
tickets[_ticketId].holder == msg.sender,
|
|
||||||
'You do not own this ticket'
|
|
||||||
);
|
|
||||||
ticketAllowance[_ticketId][_to] = _allowed;
|
ticketAllowance[_ticketId][_to] = _allowed;
|
||||||
|
|
||||||
|
emit TicketTransferApproved(_ticketId, msg.sender, _to);
|
||||||
}
|
}
|
||||||
|
|
||||||
function transferTicket(uint256 _ticketId, address _to) public {
|
function transferTicketFrom(uint256 _ticketId, address _to) public {
|
||||||
require(_ticketId < ticketCounter, 'Invalid ticket ID');
|
require(ticketAllowance[_ticketId][msg.sender], "You are not allowed to transfer this ticket");
|
||||||
require(
|
|
||||||
tickets[_ticketId].holder == msg.sender ||
|
|
||||||
tickets[_ticketId].holder == msg.sender,
|
|
||||||
'You do not own this ticket'
|
|
||||||
);
|
|
||||||
require(
|
|
||||||
ticketAllowance[_ticketId][msg.sender],
|
|
||||||
'You are not allowed to transfer this ticket'
|
|
||||||
);
|
|
||||||
ticketAllowance[_ticketId][msg.sender] = false;
|
ticketAllowance[_ticketId][msg.sender] = false;
|
||||||
transferTicketForce(_ticketId, _to);
|
transferTicketForce(_ticketId, _to);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function transferTicket(uint256 _ticketId, address _to) public {
|
||||||
|
require(_ticketId < ticketCounter, "Invalid ticket ID");
|
||||||
|
require(tickets[_ticketId].holder == msg.sender, "You do not own this ticket");
|
||||||
|
transferTicketForce(_ticketId, _to);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
import { HardhatUserConfig } from "hardhat/config";
|
import { HardhatUserConfig } from 'hardhat/config';
|
||||||
import "@nomicfoundation/hardhat-toolbox";
|
import '@nomiclabs/hardhat-waffle';
|
||||||
import "@nomiclabs/hardhat-ethers";
|
import '@nomiclabs/hardhat-ethers';
|
||||||
|
|
||||||
const config: HardhatUserConfig = {
|
const config: HardhatUserConfig = {
|
||||||
solidity: "0.8.19",
|
solidity: '0.8.17',
|
||||||
paths: {
|
networks: {
|
||||||
sources: "./contracts",
|
hardhat: {
|
||||||
tests: "./test",
|
chainId: 1337,
|
||||||
cache: "./cache",
|
},
|
||||||
artifacts: "./artifacts"
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
import { expect } from "chai";
|
import { expect } from 'chai';
|
||||||
import { ethers } from "hardhat";
|
import { ethers } from 'hardhat';
|
||||||
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
|
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
|
||||||
import { EventManager } from "../typechain-types/EventManager";
|
import { EventManager } from '../typechain-types/EventManager';
|
||||||
|
|
||||||
describe("EventManager", function () {
|
describe('EventManager', function () {
|
||||||
let eventManager: EventManager;
|
let eventManager: EventManager;
|
||||||
let owner: SignerWithAddress;
|
let owner: SignerWithAddress;
|
||||||
let addr1: SignerWithAddress;
|
let addr1: SignerWithAddress;
|
||||||
let addr2: SignerWithAddress;
|
let addr2: SignerWithAddress;
|
||||||
|
|
||||||
const EVENT_NAME = "Test Event";
|
const EVENT_NAME = 'Test Event';
|
||||||
const EVENT_DESCRIPTION = "This is a test event";
|
const EVENT_DESCRIPTION = 'This is a test event';
|
||||||
const EVENT_CAPACITY = 100;
|
const EVENT_CAPACITY = 100;
|
||||||
const EVENT_TICKET_PRICE = 1000; // 10 USD in cents
|
const EVENT_TICKET_PRICE = 1000; // 10 USD in cents
|
||||||
const EVENT_DATE = Math.floor(Date.now() / 1000) + 86400; // 1 day from now
|
const EVENT_DATE = Math.floor(Date.now() / 1000) + 86400; // 1 day from now
|
||||||
const EVENT_IMAGES = ["image1.jpg", "image2.jpg"];
|
const EVENT_IMAGES = ['image1.jpg', 'image2.jpg'];
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
[owner, addr1, addr2] = await ethers.getSigners();
|
[owner, addr1, addr2] = await ethers.getSigners();
|
||||||
|
|
||||||
const EventManager = await ethers.getContractFactory("EventManager");
|
const EventManager = await ethers.getContractFactory('EventManager');
|
||||||
eventManager = await EventManager.deploy();
|
eventManager = await EventManager.deploy();
|
||||||
await eventManager.deployed();
|
await eventManager.deployed();
|
||||||
});
|
});
|
||||||
@@ -35,35 +35,37 @@ describe("EventManager", function () {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("Event Creation", function () {
|
// describe("Event Creation", function () {
|
||||||
it("Should create an event with correct details", async function () {
|
// it("Should create an event with correct details", async function () {
|
||||||
await createTestEvent();
|
// await createTestEvent();
|
||||||
|
|
||||||
const event = await eventManager.events(0);
|
// const event = await eventManager.events(0);
|
||||||
expect(event.name).to.equal(EVENT_NAME);
|
// expect(event.name).to.equal(EVENT_NAME);
|
||||||
expect(event.description).to.equal(EVENT_DESCRIPTION);
|
// expect(event.description).to.equal(EVENT_DESCRIPTION);
|
||||||
expect(event.capacity).to.equal(EVENT_CAPACITY);
|
// expect(event.capacity).to.equal(EVENT_CAPACITY);
|
||||||
expect(event.ticketPrice).to.equal(EVENT_TICKET_PRICE);
|
// expect(event.ticketPrice).to.equal(EVENT_TICKET_PRICE);
|
||||||
expect(event.eventDate).to.equal(EVENT_DATE);
|
// expect(event.eventDate).to.equal(EVENT_DATE);
|
||||||
expect(event.eventHost).to.equal(owner.address);
|
// expect(event.eventHost).to.equal(owner.address);
|
||||||
});
|
// });
|
||||||
|
|
||||||
it("Should emit EventCreated event", async function () {
|
// it("Should emit EventCreated event", async function () {
|
||||||
await expect(await createTestEvent())
|
// await expect(await createTestEvent())
|
||||||
.to.emit(eventManager, "EventCreated")
|
// .to.emit(eventManager, "EventCreated")
|
||||||
.withArgs(0, EVENT_NAME, EVENT_DATE);
|
// .withArgs(0, EVENT_NAME, EVENT_DATE);
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
|
|
||||||
describe("Ticket Purchase", function () {
|
describe('Ticket Purchase', function () {
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
await createTestEvent();
|
await createTestEvent();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should allow buying a ticket", async function () {
|
it('Should allow buying a ticket', async function () {
|
||||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||||
await expect(eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare }))
|
await expect(
|
||||||
.to.emit(eventManager, "TicketPurchased")
|
eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare })
|
||||||
|
)
|
||||||
|
.to.emit(eventManager, 'TicketPurchased')
|
||||||
.withArgs(0, 0, addr1.address, ticketPriceFlare);
|
.withArgs(0, 0, addr1.address, ticketPriceFlare);
|
||||||
|
|
||||||
const ticket = await eventManager.tickets(0);
|
const ticket = await eventManager.tickets(0);
|
||||||
@@ -71,61 +73,71 @@ describe("EventManager", function () {
|
|||||||
expect(ticket.eventId).to.equal(0);
|
expect(ticket.eventId).to.equal(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should fail if insufficient funds are provided", async function () {
|
it('Should fail if insufficient funds are provided', async function () {
|
||||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||||
await expect(
|
await expect(
|
||||||
eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare.sub(1) })
|
eventManager
|
||||||
).to.be.revertedWith("Insufficient value provided");
|
.connect(addr1)
|
||||||
|
.buyTicket(0, { value: ticketPriceFlare.sub(1) })
|
||||||
|
).to.be.revertedWith('Insufficient value provided');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Ticket Transfer", function () {
|
describe('Ticket Transfer', function () {
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
await createTestEvent();
|
await createTestEvent();
|
||||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||||
await eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare });
|
await eventManager
|
||||||
|
.connect(addr1)
|
||||||
|
.buyTicket(0, { value: ticketPriceFlare });
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should allow transferring a ticket", async function () {
|
it('Should allow transferring a ticket', async function () {
|
||||||
await expect(eventManager.connect(addr1).transferTicket(0, addr2.address))
|
await expect(eventManager.connect(addr1).transferTicket(0, addr2.address))
|
||||||
.to.emit(eventManager, "TicketTransferred")
|
.to.emit(eventManager, 'TicketTransferred')
|
||||||
.withArgs(0, addr1.address, addr2.address);
|
.withArgs(0, addr1.address, addr2.address);
|
||||||
|
|
||||||
const ticket = await eventManager.tickets(0);
|
const ticket = await eventManager.tickets(0);
|
||||||
expect(ticket.holder).to.equal(addr2.address);
|
expect(ticket.holder).to.equal(addr2.address);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should fail if non-owner tries to transfer", async function () {
|
it('Should fail if non-owner tries to transfer', async function () {
|
||||||
await expect(
|
await expect(
|
||||||
eventManager.connect(addr2).transferTicket(0, addr2.address)
|
eventManager.connect(addr2).transferTicket(0, addr2.address)
|
||||||
).to.be.revertedWith("You do not own this ticket");
|
).to.be.revertedWith('You do not own this ticket');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Ticket Approval and Transfer", function () {
|
describe('Ticket Approval and Transfer', function () {
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
await createTestEvent();
|
await createTestEvent();
|
||||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||||
await eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare });
|
await eventManager
|
||||||
|
.connect(addr1)
|
||||||
|
.buyTicket(0, { value: ticketPriceFlare });
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should allow approving and transferring a ticket", async function () {
|
it('Should allow approving and transferring a ticket', async function () {
|
||||||
await expect(eventManager.connect(addr1).approveTicket(0, addr2.address, true))
|
await expect(
|
||||||
.to.emit(eventManager, "TicketTransferApproved")
|
eventManager.connect(addr1).approveTicket(0, addr2.address, true)
|
||||||
|
)
|
||||||
|
.to.emit(eventManager, 'TicketTransferApproved')
|
||||||
.withArgs(0, addr1.address, addr2.address);
|
.withArgs(0, addr1.address, addr2.address);
|
||||||
|
|
||||||
await expect(eventManager.connect(addr2).transferTicketFrom(0, addr2.address))
|
await expect(
|
||||||
.to.emit(eventManager, "TicketTransferred")
|
eventManager.connect(addr2).transferTicketFrom(0, addr2.address)
|
||||||
|
)
|
||||||
|
.to.emit(eventManager, 'TicketTransferred')
|
||||||
.withArgs(0, addr1.address, addr2.address);
|
.withArgs(0, addr1.address, addr2.address);
|
||||||
|
|
||||||
const ticket = await eventManager.tickets(0);
|
const ticket = await eventManager.tickets(0);
|
||||||
expect(ticket.holder).to.equal(addr2.address);
|
expect(ticket.holder).to.equal(addr2.address);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should fail if transferring without approval", async function () {
|
it('Should fail if transferring without approval', async function () {
|
||||||
await expect(
|
await expect(
|
||||||
eventManager.connect(addr2).transferTicketFrom(0, addr2.address)
|
eventManager.connect(addr2).transferTicketFrom(0, addr2.address)
|
||||||
).to.be.revertedWith("You are not allowed to transfer this ticket");
|
).to.be.revertedWith('You are not allowed to transfer this ticket');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import type * as interface from "./interface";
|
import type * as contractInterface from './interface';
|
||||||
export type { interface };
|
export type { contractInterface };
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import type * as interface from "./interface";
|
import type * as interfaces from './interface';
|
||||||
export type { interface };
|
export type { interfaces };
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import type * as interface from "./interface";
|
import type * as interfaces from './interface';
|
||||||
export type { interface };
|
export type { interfaces };
|
||||||
|
|||||||
@@ -13,169 +13,237 @@ import type {
|
|||||||
PopulatedTransaction,
|
PopulatedTransaction,
|
||||||
Signer,
|
Signer,
|
||||||
utils,
|
utils,
|
||||||
} from "ethers";
|
} from 'ethers';
|
||||||
import type { FunctionFragment, Result } from "@ethersproject/abi";
|
import type {
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
FunctionFragment,
|
||||||
|
Result,
|
||||||
|
EventFragment,
|
||||||
|
} from '@ethersproject/abi';
|
||||||
|
import type { Listener, Provider } from '@ethersproject/providers';
|
||||||
import type {
|
import type {
|
||||||
TypedEventFilter,
|
TypedEventFilter,
|
||||||
TypedEvent,
|
TypedEvent,
|
||||||
TypedListener,
|
TypedListener,
|
||||||
OnEvent,
|
OnEvent,
|
||||||
PromiseOrValue,
|
PromiseOrValue,
|
||||||
} from "../common";
|
} from '../common';
|
||||||
|
|
||||||
export interface EventManagerInterface extends utils.Interface {
|
export interface EventManagerInterface extends utils.Interface {
|
||||||
functions: {
|
functions: {
|
||||||
"approveTicket(uint256,address,bool)": FunctionFragment;
|
'approveTicket(uint256,address,bool)': FunctionFragment;
|
||||||
"buyTicket(uint256)": FunctionFragment;
|
'buyTicket(uint256)': FunctionFragment;
|
||||||
"centsToFlare(uint256)": FunctionFragment;
|
'centsToFlare(uint256)': FunctionFragment;
|
||||||
"createEvent(string,string,uint256,uint256,uint256,string[])": FunctionFragment;
|
'createEvent(string,string,uint256,uint256,uint256,string[])': FunctionFragment;
|
||||||
"eventCounter()": FunctionFragment;
|
'eventCounter()': FunctionFragment;
|
||||||
"events(uint256)": FunctionFragment;
|
'events(uint256)': FunctionFragment;
|
||||||
"getEventImages(uint256)": FunctionFragment;
|
'getEventImages(uint256)': FunctionFragment;
|
||||||
"getEventPriceFlare(uint256)": FunctionFragment;
|
'getEventPriceFlare(uint256)': FunctionFragment;
|
||||||
"getEventTickets(uint256)": FunctionFragment;
|
'getEventTickets(uint256)': FunctionFragment;
|
||||||
"power(uint256,int8)": FunctionFragment;
|
'ticketCounter()': FunctionFragment;
|
||||||
"ticketCounter()": FunctionFragment;
|
'tickets(uint256)': FunctionFragment;
|
||||||
"tickets(uint256)": FunctionFragment;
|
'transferTicket(uint256,address)': FunctionFragment;
|
||||||
"transferTicket(uint256,address)": FunctionFragment;
|
'transferTicketFrom(uint256,address)': FunctionFragment;
|
||||||
"userTickets(address,uint256)": FunctionFragment;
|
'userTickets(address,uint256)': FunctionFragment;
|
||||||
};
|
};
|
||||||
|
|
||||||
getFunction(
|
getFunction(
|
||||||
nameOrSignatureOrTopic:
|
nameOrSignatureOrTopic:
|
||||||
| "approveTicket"
|
| 'approveTicket'
|
||||||
| "buyTicket"
|
| 'buyTicket'
|
||||||
| "centsToFlare"
|
| 'centsToFlare'
|
||||||
| "createEvent"
|
| 'createEvent'
|
||||||
| "eventCounter"
|
| 'eventCounter'
|
||||||
| "events"
|
| 'events'
|
||||||
| "getEventImages"
|
| 'getEventImages'
|
||||||
| "getEventPriceFlare"
|
| 'getEventPriceFlare'
|
||||||
| "getEventTickets"
|
| 'getEventTickets'
|
||||||
| "power"
|
| 'ticketCounter'
|
||||||
| "ticketCounter"
|
| 'tickets'
|
||||||
| "tickets"
|
| 'transferTicket'
|
||||||
| "transferTicket"
|
| 'transferTicketFrom'
|
||||||
| "userTickets"
|
| 'userTickets'
|
||||||
): FunctionFragment;
|
): FunctionFragment;
|
||||||
|
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "approveTicket",
|
functionFragment: 'approveTicket',
|
||||||
values: [
|
values: [
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<boolean>
|
PromiseOrValue<boolean>,
|
||||||
]
|
]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "buyTicket",
|
functionFragment: 'buyTicket',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "centsToFlare",
|
functionFragment: 'centsToFlare',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "createEvent",
|
functionFragment: 'createEvent',
|
||||||
values: [
|
values: [
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<string>[]
|
PromiseOrValue<string>[],
|
||||||
]
|
]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "eventCounter",
|
functionFragment: 'eventCounter',
|
||||||
values?: undefined
|
values?: undefined
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "events",
|
functionFragment: 'events',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "getEventImages",
|
functionFragment: 'getEventImages',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "getEventPriceFlare",
|
functionFragment: 'getEventPriceFlare',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "getEventTickets",
|
functionFragment: 'getEventTickets',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "power",
|
functionFragment: 'ticketCounter',
|
||||||
values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "ticketCounter",
|
|
||||||
values?: undefined
|
values?: undefined
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "tickets",
|
functionFragment: 'tickets',
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "transferTicket",
|
functionFragment: 'transferTicket',
|
||||||
values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]
|
values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "userTickets",
|
functionFragment: 'transferTicketFrom',
|
||||||
|
values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]
|
||||||
|
): string;
|
||||||
|
encodeFunctionData(
|
||||||
|
functionFragment: 'userTickets',
|
||||||
values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
|
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "approveTicket",
|
functionFragment: 'approveTicket',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(functionFragment: "buyTicket", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: 'buyTicket', data: BytesLike): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "centsToFlare",
|
functionFragment: 'centsToFlare',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "createEvent",
|
functionFragment: 'createEvent',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "eventCounter",
|
functionFragment: 'eventCounter',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(functionFragment: "events", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: 'events', data: BytesLike): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "getEventImages",
|
functionFragment: 'getEventImages',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "getEventPriceFlare",
|
functionFragment: 'getEventPriceFlare',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "getEventTickets",
|
functionFragment: 'getEventTickets',
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "power", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "ticketCounter",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "tickets", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "transferTicket",
|
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "userTickets",
|
functionFragment: 'ticketCounter',
|
||||||
|
data: BytesLike
|
||||||
|
): Result;
|
||||||
|
decodeFunctionResult(functionFragment: 'tickets', data: BytesLike): Result;
|
||||||
|
decodeFunctionResult(
|
||||||
|
functionFragment: 'transferTicket',
|
||||||
|
data: BytesLike
|
||||||
|
): Result;
|
||||||
|
decodeFunctionResult(
|
||||||
|
functionFragment: 'transferTicketFrom',
|
||||||
|
data: BytesLike
|
||||||
|
): Result;
|
||||||
|
decodeFunctionResult(
|
||||||
|
functionFragment: 'userTickets',
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
|
|
||||||
events: {};
|
events: {
|
||||||
|
'EventCreated(uint256,string,uint256)': EventFragment;
|
||||||
|
'TicketPurchased(uint256,uint256,address,uint256)': EventFragment;
|
||||||
|
'TicketTransferApproved(uint256,address,address)': EventFragment;
|
||||||
|
'TicketTransferred(uint256,address,address)': EventFragment;
|
||||||
|
};
|
||||||
|
|
||||||
|
getEvent(nameOrSignatureOrTopic: 'EventCreated'): EventFragment;
|
||||||
|
getEvent(nameOrSignatureOrTopic: 'TicketPurchased'): EventFragment;
|
||||||
|
getEvent(nameOrSignatureOrTopic: 'TicketTransferApproved'): EventFragment;
|
||||||
|
getEvent(nameOrSignatureOrTopic: 'TicketTransferred'): EventFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface EventCreatedEventObject {
|
||||||
|
eventId: BigNumber;
|
||||||
|
name: string;
|
||||||
|
eventDate: BigNumber;
|
||||||
|
}
|
||||||
|
export type EventCreatedEvent = TypedEvent<
|
||||||
|
[BigNumber, string, BigNumber],
|
||||||
|
EventCreatedEventObject
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type EventCreatedEventFilter = TypedEventFilter<EventCreatedEvent>;
|
||||||
|
|
||||||
|
export interface TicketPurchasedEventObject {
|
||||||
|
ticketId: BigNumber;
|
||||||
|
eventId: BigNumber;
|
||||||
|
buyer: string;
|
||||||
|
price: BigNumber;
|
||||||
|
}
|
||||||
|
export type TicketPurchasedEvent = TypedEvent<
|
||||||
|
[BigNumber, BigNumber, string, BigNumber],
|
||||||
|
TicketPurchasedEventObject
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type TicketPurchasedEventFilter = TypedEventFilter<TicketPurchasedEvent>;
|
||||||
|
|
||||||
|
export interface TicketTransferApprovedEventObject {
|
||||||
|
ticketId: BigNumber;
|
||||||
|
owner: string;
|
||||||
|
trustee: string;
|
||||||
|
}
|
||||||
|
export type TicketTransferApprovedEvent = TypedEvent<
|
||||||
|
[BigNumber, string, string],
|
||||||
|
TicketTransferApprovedEventObject
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type TicketTransferApprovedEventFilter =
|
||||||
|
TypedEventFilter<TicketTransferApprovedEvent>;
|
||||||
|
|
||||||
|
export interface TicketTransferredEventObject {
|
||||||
|
ticketId: BigNumber;
|
||||||
|
from: string;
|
||||||
|
to: string;
|
||||||
|
}
|
||||||
|
export type TicketTransferredEvent = TypedEvent<
|
||||||
|
[BigNumber, string, string],
|
||||||
|
TicketTransferredEventObject
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type TicketTransferredEventFilter =
|
||||||
|
TypedEventFilter<TicketTransferredEvent>;
|
||||||
|
|
||||||
export interface EventManager extends BaseContract {
|
export interface EventManager extends BaseContract {
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
connect(signerOrProvider: Signer | Provider | string): this;
|
||||||
attach(addressOrName: string): this;
|
attach(addressOrName: string): this;
|
||||||
@@ -262,12 +330,6 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[BigNumber[]]>;
|
): Promise<[BigNumber[]]>;
|
||||||
|
|
||||||
power(
|
|
||||||
base: PromiseOrValue<BigNumberish>,
|
|
||||||
exponent: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[BigNumber]>;
|
|
||||||
|
|
||||||
ticketCounter(overrides?: CallOverrides): Promise<[BigNumber]>;
|
ticketCounter(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||||
|
|
||||||
tickets(
|
tickets(
|
||||||
@@ -287,6 +349,12 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
|
transferTicketFrom(
|
||||||
|
_ticketId: PromiseOrValue<BigNumberish>,
|
||||||
|
_to: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
userTickets(
|
userTickets(
|
||||||
arg0: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
arg1: PromiseOrValue<BigNumberish>,
|
arg1: PromiseOrValue<BigNumberish>,
|
||||||
@@ -353,12 +421,6 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber[]>;
|
): Promise<BigNumber[]>;
|
||||||
|
|
||||||
power(
|
|
||||||
base: PromiseOrValue<BigNumberish>,
|
|
||||||
exponent: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
ticketCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
ticketCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
tickets(
|
tickets(
|
||||||
@@ -378,6 +440,12 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
|
transferTicketFrom(
|
||||||
|
_ticketId: PromiseOrValue<BigNumberish>,
|
||||||
|
_to: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
userTickets(
|
userTickets(
|
||||||
arg0: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
arg1: PromiseOrValue<BigNumberish>,
|
arg1: PromiseOrValue<BigNumberish>,
|
||||||
@@ -395,7 +463,7 @@ export interface EventManager extends BaseContract {
|
|||||||
buyTicket(
|
buyTicket(
|
||||||
_eventId: PromiseOrValue<BigNumberish>,
|
_eventId: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<void>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
centsToFlare(
|
centsToFlare(
|
||||||
_cents: PromiseOrValue<BigNumberish>,
|
_cents: PromiseOrValue<BigNumberish>,
|
||||||
@@ -410,7 +478,7 @@ export interface EventManager extends BaseContract {
|
|||||||
_eventDate: PromiseOrValue<BigNumberish>,
|
_eventDate: PromiseOrValue<BigNumberish>,
|
||||||
_images: PromiseOrValue<string>[],
|
_images: PromiseOrValue<string>[],
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<void>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
eventCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
eventCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
@@ -444,12 +512,6 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber[]>;
|
): Promise<BigNumber[]>;
|
||||||
|
|
||||||
power(
|
|
||||||
base: PromiseOrValue<BigNumberish>,
|
|
||||||
exponent: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
ticketCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
ticketCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
tickets(
|
tickets(
|
||||||
@@ -469,6 +531,12 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<void>;
|
): Promise<void>;
|
||||||
|
|
||||||
|
transferTicketFrom(
|
||||||
|
_ticketId: PromiseOrValue<BigNumberish>,
|
||||||
|
_to: PromiseOrValue<string>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<void>;
|
||||||
|
|
||||||
userTickets(
|
userTickets(
|
||||||
arg0: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
arg1: PromiseOrValue<BigNumberish>,
|
arg1: PromiseOrValue<BigNumberish>,
|
||||||
@@ -476,7 +544,53 @@ export interface EventManager extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
};
|
};
|
||||||
|
|
||||||
filters: {};
|
filters: {
|
||||||
|
'EventCreated(uint256,string,uint256)'(
|
||||||
|
eventId?: null,
|
||||||
|
name?: null,
|
||||||
|
eventDate?: null
|
||||||
|
): EventCreatedEventFilter;
|
||||||
|
EventCreated(
|
||||||
|
eventId?: null,
|
||||||
|
name?: null,
|
||||||
|
eventDate?: null
|
||||||
|
): EventCreatedEventFilter;
|
||||||
|
|
||||||
|
'TicketPurchased(uint256,uint256,address,uint256)'(
|
||||||
|
ticketId?: null,
|
||||||
|
eventId?: null,
|
||||||
|
buyer?: null,
|
||||||
|
price?: null
|
||||||
|
): TicketPurchasedEventFilter;
|
||||||
|
TicketPurchased(
|
||||||
|
ticketId?: null,
|
||||||
|
eventId?: null,
|
||||||
|
buyer?: null,
|
||||||
|
price?: null
|
||||||
|
): TicketPurchasedEventFilter;
|
||||||
|
|
||||||
|
'TicketTransferApproved(uint256,address,address)'(
|
||||||
|
ticketId?: null,
|
||||||
|
owner?: null,
|
||||||
|
trustee?: null
|
||||||
|
): TicketTransferApprovedEventFilter;
|
||||||
|
TicketTransferApproved(
|
||||||
|
ticketId?: null,
|
||||||
|
owner?: null,
|
||||||
|
trustee?: null
|
||||||
|
): TicketTransferApprovedEventFilter;
|
||||||
|
|
||||||
|
'TicketTransferred(uint256,address,address)'(
|
||||||
|
ticketId?: null,
|
||||||
|
from?: null,
|
||||||
|
to?: null
|
||||||
|
): TicketTransferredEventFilter;
|
||||||
|
TicketTransferred(
|
||||||
|
ticketId?: null,
|
||||||
|
from?: null,
|
||||||
|
to?: null
|
||||||
|
): TicketTransferredEventFilter;
|
||||||
|
};
|
||||||
|
|
||||||
estimateGas: {
|
estimateGas: {
|
||||||
approveTicket(
|
approveTicket(
|
||||||
@@ -528,12 +642,6 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
power(
|
|
||||||
base: PromiseOrValue<BigNumberish>,
|
|
||||||
exponent: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
ticketCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
ticketCounter(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
tickets(
|
tickets(
|
||||||
@@ -547,6 +655,12 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
|
transferTicketFrom(
|
||||||
|
_ticketId: PromiseOrValue<BigNumberish>,
|
||||||
|
_to: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
userTickets(
|
userTickets(
|
||||||
arg0: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
arg1: PromiseOrValue<BigNumberish>,
|
arg1: PromiseOrValue<BigNumberish>,
|
||||||
@@ -604,12 +718,6 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
power(
|
|
||||||
base: PromiseOrValue<BigNumberish>,
|
|
||||||
exponent: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
ticketCounter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
ticketCounter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
tickets(
|
tickets(
|
||||||
@@ -623,6 +731,12 @@ export interface EventManager extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
|
transferTicketFrom(
|
||||||
|
_ticketId: PromiseOrValue<BigNumberish>,
|
||||||
|
_to: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
userTickets(
|
userTickets(
|
||||||
arg0: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
arg1: PromiseOrValue<BigNumberish>,
|
arg1: PromiseOrValue<BigNumberish>,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export * as interface from "./interface";
|
export * as interfaces from './interface';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export * as interface from "./interface";
|
export * as interfaces from './interface';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export * as interface from "./interface";
|
export * as interfaces from './interface';
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user