Metaplex - Canceling an (English) Auction made by Auctioneer - solana

I have a question about canceling auctions in the Metaplex’s Auction House.
I’m currently creating an Auction with the following instruction:
const accounts = {
auctionHouseProgram,
listingConfig,
wallet,
tokenAccount,
metadata,
authority,
auctionHouse,
auctionHouseFeeAccount,
sellerTradeState,
freeSellerTradeState,
auctioneerAuthority,
ahAuctioneerPda,
programAsSigner
};
const args {
tradeStateBump,
freeTradeStateBump,
programAsSignerBump,
auctioneerAuthorityBump,
tokenSize,
startTime,
endTime,
reservePrice,
minBidIncrement,
timeExtPeriod,
timeExtDelta,
allowHighBidCancel,
}
Auctioneer.createSellInstruction(acounts, args);
Is there any way to cancel a listed auction of this type?
I know that other types of listings such as AuctionHouse.createSellInstruction (https://github.com/metaplex-foundation/metaplex-program-library/blob/master/auction-house/js/src/generated/instructions/sell.ts) do have a Cancel Instruction, and I’ve used them before.
But how can I cancel the English Auction type? Is it even possible? Like, what if I accidently made an Auction last for years, or put a wrong Listing Configuration value?
All Cancel instructions take as an argument the buyerPrice. But in this case there is no buyerPrice, it rather uses reservePrice.
I've tried to pass the buyerPrice as 18446744073709551615 to try to execute the Auctioneer.createCancelInstruction, which is the same buyerPrice value I used to create the TradeState for listing it. But I get the following error:
2: "Program log: AnchorError caused by account: token_account. Error Code: AccountOwnedByWrongProgram. Error Number: 3007. Error Message: The given account is owned by a different program than expected."
3: "Program log: Left:"
4: "Program log: 11111111111111111111111111111111"
5: "Program log: Right:"
6: "Program log: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Also...
Is it possible to create a ListingReceipt for this type of
listing? I want to keep track of creation date, canceled date, etc.
When an Auction for an item has ended and failed to bid cause no bidders or any other reason, if I try to list it again for another auction I get: Address { address: GkX7ZE4sz6mtvueoWT6KGpjZLUd3wkohy3ha3VZNh2Fz, base: None } already in use So I believe cancelation is needed. Cause now it’s on a weird unknown status where Auction has ended due to time constraints and Token cannot be listed again.

You can cancel your listing Using THIS.
You can you normal listing receipts of AH for this as well.
The previous account should be closed in order to create a new listing. In order to close that account you need to cancel listing or the Nft should be sold.

Related

Google.apis returns error code 400 after creating maximum amount of service account keys

We are using Google.apis Version 1.36.1 SDK in order to create service account keys for GCP Service accounts.
When we reach maximum amount of keys (10) instead of getting a valid error message / error code we recieve a general 400 error code with a "Precondition check failed." message.
We used to get error code 429 indicating we have reached maximum amount of keys.
Current GoogleApiException object :
Google.GoogleApiException: Google.Apis.Requests.RequestError
Precondition check failed. [400]
Errors [
Message[Precondition check failed.] Location[ - ] Reason[failedPrecondition] Domain[global]
]
The current return code does not provide us with enough information, Is there any other way for us to know the reason of the failure ?
This error message is also related to limits. You can take the official documentation for the Classroom API as an example.
I have found myself in a similar situation where we were deleting service account keys to immediately create new ones. We were getting the same error because there is a delay on the system where it can take from 60-90 seconds to delete the key for you to be able to create it again.

Outlook REST API 410 Error: SyncStateNotFound

I get a 410 when syncing messages:
{\"code\":\"SyncStateNotFound\",\"message\":\"The sync state
generation is not found; generation=1;[highest=4][4][2][3].\"}
This only occurs when syncing messages for select mailfolders on select accounts. It occurs when making a post-initial sync using the relevant delta token. I can recreate this via making
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
In Microsoft's Outlook Sandbox.
Here are the literal steps it takes to reproduce deterministically:
1) Initial Message Sync:
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages
2) Sync with initial delta token:
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
3) Sync with skip token until delta token:
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$skipToken={skip_token}
4) ERROR OCCURS HERE: Mailfolder receives update, so I re-sync messages with delta token from (3). The call below throws a 410 and I can't sync messages.
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
To reiterate: I've isolated this to just testing in the Outlook sandbox, and it still occurs. Testing as in making the GET call to sync (i.e., make perform (2)) using the deltaToken from (3) and its corresponding folderId as query parameters.
Dumb Mistake: Passed in initial delta token as opposed to current.

unlock user is not working in Webmatrix WebSecurity.IsAccountLockedOut Method

I am new to web matrix and web security concept. I used the IsAccountLockedOut(String, Int32, Int32) method to check whether the specified membership account is temporarily locked because of too many failed password attempts in the specified number of seconds. Here the thing is after unlocking (updating unlock date time in Db) the membership account I am locked out again after one bad password, but my database is configured to allow 3 attempts. can you please tell me how to resolve the problem or give unlock code sample.
I don't know if it could be useful for you, but the WebMatrix Starter Site template implements in the Account/Login.cshtml page an account lock system that uses the WebSecurity.GetPasswordFailuresSinceLastSuccess() method:
if (WebSecurity.UserExists(email) &&
WebSecurity.GetPasswordFailuresSinceLastSuccess(email) > 4 &&
WebSecurity.GetLastPasswordFailureDate(email).AddSeconds(60) > DateTime.UtcNow)
{
Response.Redirect("~/Account/AccountLockedOut");
return;
}
Edited
This snippet takes into consideration the LastPasswordFailureDate and PasswordFailuresSinceLastSuccess fields of the webpages_Membership table and locks an account if the number of failures exceed a given value (4 in the example) for a given number of seconds (60 in the example).
There is no need to manage an "UnlockDateTime" in another table.

Google Calendar v3 Error "The requested minimum modification time lies too far in the past. [410]"

We are using the Google Calendar v3 API to return a list of events for a user that have been updated since a point in time.
In the v2 API there was no limitation on setting this date in the past.
If we set the UpdatedMin to a date too far back (like 2 months) then the error is thrown
"The requested minimum modification time lies too far in the past. [410]"
If we set ShowDeleted to false then we do not get the error.
I cannot find any reference to a limitation here. Does anybody know the details of this limit. Unfortunately when synchronising calendars this is a show stopper when synchronisation has not run for a period of time for a calendar (other than running a full list which we would prefer to avoid)
EventsResource.ListRequest lr = new EventsResource.ListRequest(service, c.uc.calendar);
lr.UpdatedMin = c.primaryModTime.ToLocalTime();
lr.ShowDeleted = true;
Events el = lr.Execute();
if (el.Items.Count > 0)
{
the following also discusses this issue but without any resoluton.
https://groups.google.com/forum/#!msg/google-calendar-api/_rk9o45sXT0/3APXqxi8jvkJ
There is some explanation at:
https://developers.google.com/google-apps/calendar/v3/sync
It says that on 410 you should wipe your storage and perform a full sync instead.
Also consider switching to sync tokens as recommended in the last paragraph.

magento order id increment jumps

For some reason order ID's (increment_id on sales_flat_order table) are not incrementing subsequently on my Magento 1.6.1. This is how it looks after a number of live orders placed:
increment_id created_at updated_at
100000001 2011-12-14 12:35:24 2011-12-14 12:35:25
100000002 2011-12-14 13:02:39 2011-12-14 13:02:39
100000003 2011-12-14 13:04:18 2011-12-14 13:04:18
100000004 2012-02-01 16:54:58 2012-02-01 16:54:58
100000005 2012-03-14 12:22:35 2012-03-14 12:22:35
100000006 2012-03-20 13:10:48 2012-03-20 13:10:48
100000011 2012-03-29 20:58:48 2012-03-29 20:58:48
100000012 2012-03-29 21:06:43 2012-03-29 21:06:43
100000013 2012-03-30 10:48:20 2012-03-30 10:48:21
100000014 2012-03-30 13:05:40 2012-03-30 13:05:41
100000015 2012-04-03 15:51:01 2012-04-03 15:51:02
100000016 2012-04-19 15:00:49 2012-04-19 15:00:50
100000017 2012-05-09 12:09:21 2012-05-09 12:09:22
100000019 2012-05-24 05:35:35 2012-05-24 05:35:36
100000020 2012-05-24 05:41:11 2012-05-24 05:41:12
100000008 2012-05-24 05:48:52 2012-05-24 05:48:53
My question is why is Magento jumping increments sometimes? And worse yet, in my example order with increment 100000008 goes after 100000020. Does someone know why this is happening and if there's a way to fix it?
This is normal, albeit understandably disconcerting.
When Magento enters the checkout process it 'reserves' an increment_id and places it on the quote (cart) object. You can see the code that gets an increment id at:
Mage_Eav_Model_Entity_Type::fetchNewIncrementId()
The last used ID for each store is stored in eav_entity_store. If a customer abandons their cart (ie the quote object) before completing the checkout process, the reserved increment_id will never show up on an order. You can see this effect sometimes in the order numbers as they come in on a busy store - occassionally a really old order id comes through in the day's orders from a customer that is checking out an old cart.
This behaviour exists to allow Magento to send payment gateways the final order id (increment_id), before the order is completed allowing the gateway to associate the order id with the order. If the customer abandons the payment process in the gateway, the order id is dead (or more correctly still attached to the quote).
You can see this happening in the PayPal express module at:
Mage_Paypal_Model_Express_Checkout::start()
which calls
Mage_Sales_Model_Quote::reserveOrderId()
If you want to find your 'missing' increment_ids, take a look in sales_flat_quote under the field reserved_order_id. You should see them attached to unconverted quote objects (carts).
This behaviour can create issues with some payment gateways; Moneris comes to mind. When you send Moneris' hosted paypage the same order id twice, it chokes and creates a cryptic error state for the customer. This condition occurs when the customer visits the hosted pay page, backs out and re-visits the page. Hence in some cases, it is necessary to re-generate the order id associated with the quote object programmatically.
I was facing the same issue but it was only when the server was hit with a huge amount of load. This issue occurs because the db goes into the lock state while converting quote into order. On further inspection, I found out that the issue was that it tried to write into sales_flat_order_grid table within transaction right after insert into sales_flat_order table. With concurrent queries it caused locking collisions. The real solution is to move stuff of sales_flat_order_grid out of the transaction.
The link helped me understand the issue
The patch resolved the issue for me.
You have to remove function _afterSave from the Mage_Sales_Model_Abstract and add
public function afterCommitCallback(){
if (!$this->getForceUpdateGridRecords()) {
$this->_getResource()->updateGridRecords($this->getId());
}
parent::afterCommitCallback();
}
Let me know if it solves the problem for you.
We have had this same issue multiple times over the past couple of months. Upon checking our payment service provider transaction list we see 1000's of low value (micro) transactions being declined due to potential fraud issues. My opinion is that a fraudster is trying to use our checkout process to probe the list of cards they have to find out what cards are valid and what cards are dead. I have reported it to action fraud, our web host and our payment provider.
In summary, my advise would be for you to check your PSP list of transactions for the same time period.
Good luck with it,
Brisc.

Resources