En automatisk NFT-handler samordner en rekke beslutninger og kontoendringer: finne et objekt, reservere midler, sende en handling, bekrefte eierskap, håndtere et salg og registrere resultatet. Vanskeligheten er å holde forløpet sammenhengende når meldinger kommer sent, en ordre uventet utføres eller programmet starter på nytt midt i en transaksjon.
En nyttig utforming behandler hver forpliktelse som noe med en kjent tilstand og støttende dokumentasjon. Den antar ikke at et vellykket API-svar betyr en fullført handel, at en frakoblet skjerm betyr feil eller at en ordre som ser kansellert ut, ikke lenger kan påvirke kontoen.
Veiledningen forklarer tilstandsstyringsproblemet med en oppdiktet konto og begrepsmessige arbeidsflyter. Den verken gir et handelssystem klart til kjøring eller lover selvstendig lønnsomhet. Formålet er å vise hva programvare må huske og bekrefte før den trygt kan gå fra én handelshandling til neste.
Begynn med en fullstendig livssyklus
En handelslivssyklus begynner før kjøpet og fortsetter etter en salgsforespørsel. Kandidatobservasjon, regelgodkjenning, budsjettreservasjon, innsending, utførelse, beholdningsavstemming og økonomisk oppgjør er separate trinn. Hvert besvarer et forskjellig spørsmål.
Programmet bør gjøre trinnene uttrykkelige internt selv om grensesnittet viser en enklere oppsummering. Én aktiv-status kan skjule om boten undersøker et objekt, venter på en transaksjon eller holder en eiendel uten nåværende kjøper.
Definer dokumentasjonen som kreves for å forlate hvert trinn. Et forslag kan trenge en gyldig oppføring og et kostnadsanslag. Et kjøpsresultat kan trenge transaksjons- og eierskapsdokumentasjon. En fullført økonomisk registrering trenger faktiske overføringer og utgifter fremfor opprinnelig fremskriving.
Strukturen hjelper operatøren med å forstå forsinkelser. Systemet kan forklare hva som fortsatt er uavklart fremfor å virke fastlåst eller starte en annen handling i det stille.
Tilstandsstyring i en automatisk NFT-handler begynner med identitet
Tilstandsstyring i en automatisk NFT-handler trenger stabile identifikatorer for konto, eiendel, ordre, transaksjonsforsøk og strategiintensjon. Identitetene er beslektede, men ikke utbyttbare. Et token kan ha flere ordrer over tid, mens ett tiltenkt kjøp kan innebære flere observasjoner av samme transaksjon.
Bevar nettverket og relevante eiendelsidentifikatorer sammen med markedsplassreferansen. Et samlingsnavn eller bilde kan ikke pålitelig knytte utførelsesdokumentasjon til objektet strategien ønsket å handle.
En strategiintensjon identifiserer beslutningen systemet forsøker å gjennomføre. Transaksjonsidentifikatoren identifiserer en bestemt innsendt handling. Bevaring av begge lar gjenoppretting spørre om originalintensjonen ble fullført uten å anta at hvert nytt svar representerer en ny handel.
Programmet bør også registrere hvilken konto og konfigurasjon som godkjente handlingen. En omstart eller innstillingsendring må ikke få en gammel forpliktelse til å virke autorisert under nyere grenser.
Skill forslag fra autorisasjoner
En kandidatdetektor kan gi et objekt verdt å vurdere uten å få tillatelse til pengebruk. Forslaget bør inneholde relevant dokumentasjon, forventet betaling, maksimal kostnad og grunner til at muligheten kanskje ikke lenger er gyldig.
En uavhengig kontokontroll avgjør så om forslaget passer tilgjengelige midler, eksisterende eksponering, samlingsgrenser og støttet utførelsesrute. Skillet hindrer at en uvanlig høy strategiskår overstyrer grunnleggende begrensninger.
Veiledningen til NFT-handelsprogramvare drøfter hvordan et program bør vise dokumentasjon og fullmakt til brukeren. For en automatisk handler er den interne grensen like viktig: oppdagelse og autorisering har forskjellige roller.
Hvis forslaget endres, bør autorisasjonen revurderes. Et erstatningstoken, en annen mottaker eller høyere kostnad er en ny økonomisk handling selv når grensesnittet viser den som en praktisk fortsettelse.
Reserver kapasitet før en handling sendes
To strategier som deler én lommebok, kan begge se nok midler til et kjøp mens deres samlede planer overstiger kontogrensen. Reservasjon av kapasitet før innsending hindrer begge i å behandle samme ressurser som tilgjengelige.
Anta at en oppdiktet konto har en anskaffelseseksponeringsgrense på 1 ETH. Eksisterende beholdninger teller for 0,40 ETH og åpne forpliktelser for 0,25. Et foreslått kjøp på 0,20 ETH ville bringe totalen til 0,85 og etterlate 0,15 innen regelen.
Reservasjonen bør inkludere kostnadskomponentene regelen krever, ikke bare oppføringsbeløpet. En separat likviditetskontroll må bekrefte at riktig betalingseiendel og nettverksmidler faktisk kan brukes.
En reservasjon er ingen utgift og bør ikke registreres som et fullført kjøp. Den er en midlertidig forpliktelse som varer til dokumentasjon fastslår handlingens utfall eller bekrefter at den ikke lenger kan utføres.
Gjør innsendingsforsøket varig
Før eller idet en handling sendes, bevar nok informasjon til å gjenopprette den: godkjent intensjon, eiendelsidentitet, forventede virkninger, transaksjons- eller ordrereferanse og relevant tidspunkt. En registrering bare i minnet kan forsvinne akkurat når den trengs mest.
En omstart bør ikke tvinge programmet til å gjette om en handling fantes. Det bør laste uavklarte forsøk og avstemme dem før erstatninger opprettes. Dette er særlig viktig når en nettverksforespørsel fikk tidsavbrudd etter å ha nådd mottakertjenesten.
Den varige registreringen må unngå eksponering av hemmelig signeringsmateriale. Gjenoppretting trenger offentlige identifikatorer, autoriserte parametere og statusdokumentasjon, ikke private nøkler kopiert til logger eller skjermbilder.
En nyttig implementering registrerer også grunnen til et nytt forsøk. Gjentakelse av en statusspørring er forskjellig fra innsending av et nytt kjøp. Å behandle begge som generelle nye forsøk kan gjøre et midlertidig kommunikasjonsproblem om til duplisert beholdning.
Skill API-aksept fra utførelse
Et vellykket HTTP-svar kan bety at en forespørsel ble tolket, en ordre registrert eller transaksjonsdata konstruert. Betydningen avhenger av endepunktet. Det fastslår ikke universelt at NFT-en skiftet eier.
OpenSeas referanse for oppfyllelse av salgsoppføringer beskriver informasjon som trengs for å oppfylle en oppføring på kjeden. Mottak av informasjonen er et forberedelsestrinn, forskjellig fra autorisering og bekreftelse av den resulterende transaksjonen.
Den automatiske handleren bør tolke hvert svar etter handlingen som ble utført. En ordreidentifikator hører hjemme i en ordreregistrering. En innsendt transaksjonsreferanse hører hjemme i et utførelsesforsøk. Ingen bør automatisk skape realisert fortjeneste.
Samme skille hjelper feilhåndtering. En avvist forberedelsesforespørsel kan etterlate ingen transaksjon å avstemme, mens et usikkert svar etter innsending kan kreve grundig undersøkelse av en handling som allerede kan ha blitt utført.
Gjenoppretting i en automatisk NFT-handler må bevare usikkerhet
Gjenoppretting i en automatisk NFT-handler begynner med å identifisere uavklarte forpliktelser. Den bør ikke anta at hver ventende handling mislyktes under nedetid eller at lommebokens nåværende skjerm forteller hele historien.
For hvert forsøk, undersøk originaltransaksjonen eller ordren og sammenlign resulterende eiendels- og betalingsdokumentasjon. Hvis utfallet forblir ukjent, behold relevant reservasjon og blokker motstridende handlinger etter kontoregelen.
En ukjent tilstand er upraktisk, men oppdiktet sikkerhet er verre. For tidlig frigjøring av reservasjonen kan tillate dobbelt bruk av planlagt kapasitet. For tidlig registrering av et fullført kjøp kan skape en lokal beholdningsoppføring for en eiendel kontoen faktisk ikke eier.
Gjenoppretting bør gi en begrunnet overgang: fullført, kjent mislykket, fortsatt aktiv eller uavklart. Operatøren trenger en tydelig forklaring av manglende dokumentasjon og hvilke handlinger som fortsatt er begrenset mens spørsmålet undersøkes.
Avstem eierskap før et salg styres
Etter at et kjøp virker vellykket, bekreft at tiltenkt konto kontrollerer riktig eiendel og mengde. Metoden avhenger av nettverk og NFT-standard. En markedsplassindeksert visning kan være nyttig, men kan henge etter annen dokumentasjon.
Ikke tving hver eiendel gjennom én eierskapsmodell. Vanlige Solana-tokenkontoer, komprimerte representasjoner og EVM-tokenstandarder har forskjellige krav. Støtte for visning av en samlings bilder fastslår ikke en fullstendig handelsrute.
Når eierskap er bekreftet, knytt beholdningen til anskaffelsesregistreringen. Kostnadsgrunnlaget og transaksjonshistorikken bør følge den identifiserte eiendelen fremfor å knyttes bare til et visningsnavn.
En duplisert kjøpsmelding må ikke skape en andre beholdning. Gjentatte observasjoner bør oppdatere dokumentasjon for samme økonomiske hendelse, mens en virkelig separat anskaffelse trenger egen identitet og regnskapsføring.
Beholdningskontroller i en automatisk NFT-handler
Beholdningskontroller i en automatisk NFT-handler styrer hva kontoen allerede eier og hva den fortsatt kan anskaffe gjennom åpne forpliktelser. De bør ta hensyn til samlingskonsentrasjon, beholdningsalder, mengde og evne til å absorbere flere utførelser.
Anta at den oppdiktede kontoen eier fire objekter fra én samling og har tre forenlige utestående kjøpstilbud. Potensiell beholdning er ikke bare fire. Hvis alle tilbud fortsatt kan utføres, kan kontoen bli eksponert mot sju objekter.
Artikkelen om kryptohandelsboter for NFT-er forklarer hvorfor NFT-spesifikk beholdning ikke kan behandles som en fullt utbyttbar tokensaldo. Hvert objekts kvalifikasjon og utgangsdokumentasjon kan være forskjellig, selv innen én samling.
Beholdningsgrenser bør begrense både nye ordrer og erstatningsordrer. Kansellering av ett tilbud og opprettelse av et annet frigjør ikke kapasitet trygt før tidligere forpliktelse er avklart under faktiske regler.
Følg oppføringer og tilbud som vedvarende forpliktelser
En signert oppføring eller et tilbud kan fortsatt være relevant etter at grensesnittet går til en annen skjerm. Programmet trenger registrering av gyldighetsperiode, mengde, kvalifikasjonsbetingelser og gjeldende status. Tapt lokal synlighet fjerner ikke nødvendigvis autorisasjonen.
OpenSeas gjeldende veiledning til samlingstilbud forklarer at et ufinansiert Ethereum-tilbud kan bli brukbart igjen når midler kommer tilbake. Midlertidig manglende saldo er derfor ingen universell kanselleringsmetode.
Boten bør skille aktive, utløpte, utførte, ugyldiggjorte og uavklarte ordrer. Hver status bør støttes av relevant dokumentasjon fremfor å utledes bare fra om ordren vises på én side av et API-svar.
Modellen for vedvarende forpliktelser hindrer at foreldede ordrer overrasker kontoen senere. Den lar også operatøren se hva lommeboken allerede har autorisert før mer strategiaktivitet godkjennes.
Behandle kansellering som en arbeidsflyt
En kanselleringsforespørsel er en handling med eget resultat og egne begrensninger. Programmet bør bevare forespørselen, undersøke utfallet og avgjøre om originalordren fortsatt kan utføres. Et knappetrykk er ikke tilstrekkelig dokumentasjon.
OpenSeas referanse for ordrekansellering tar forbehold om kansellering utenfor kjeden når oppfyllelsesautorisasjon allerede er utstedt. En utforming bør ikke gjøre et svar utenfor kjeden om til et ubetinget løfte om at senere utførelse er umulig.
Under kansellering beholdes passende kapasitetsreservasjon. Hvis originalordren utføres mens kanselleringen avklares, må kontoen behandle utførelsen fremfor å forkaste den som umulig.
Erstatningsregelen bør gjøre tidskonkurransen uttrykkelig. Den kan vente på sterkere dokumentasjon, redusere erstatningsmengden eller kreve gjennomgang. Riktig atferd avhenger av ruten og kontoens toleranse for samtidige forpliktelser.
Håndter delvise utfall på objektnivå
En gruppe foreslåtte handlinger kan fullføres bare delvis. Noen objekter kan kjøpes, noen bli utilgjengelige og andre forbli uavklarte. Kontoen trenger faktiske mengder og objektidentiteter, ikke ett bredt merke for vellykket kurv.
Hvis en plan for tre objekter anskaffer to NFT-er, registrer to beholdninger og faktiske kostnader. Uutført del bør ikke skape beholdning, mens ethvert uavklart forsøk beholder egen reservasjon til resultatet er kjent.
Samme prinsipp gjelder salg. Ett vellykket salg gjør ikke opp hvert objekt i en gruppe. Gjenværende beholdninger trenger fortsatt verdsettelse, eksponeringsstyring og kanskje gjennomgang av aktive ordrer.
En gruppe er en praktisk organisering av handlinger, ikke en universell garanti for atomisk utførelse. Underliggende rute bestemmer hvilke handlinger som kan lykkes, mislykkes eller reverseres sammen, og registreringene bør gjenspeile atferden.
Fullfør økonomiske registreringer fra faktisk dokumentasjon
En fullført handelsregistrering bør bruke faktiske betalingsoverføringer og utgifter. Forventet margin fra forslaget er nyttig for sammenligning, men må ikke erstatte det som skjedde under utførelse.
Se på en oppdiktet anskaffelse til 0,20 ETH med inngangsutgift 0,006 ETH. Et senere salg til 0,24 har et illustrerende fradrag på 3 % og utgangsutgift 0,003. Nettoinntektene er 0,2298 og fullført gevinst 0,0238 ETH mot anskaffelseskostnaden 0,206.
Hvis programmet bare registrerer forskjellen på 0,04 mellom bruttopriser, overdriver det resultatet. Hvis det bokfører forventet salg før betaling er bekreftet, kan det rapportere fortjeneste som aldri oppsto.
Oppgjør bør knytte sammen avhending av eiendelen, mottak av inntekter og faktiske utgifter. Manglende dokumentasjon forblir et avstemmingsproblem fremfor å fylles med originalanslaget.
Hold kontanter, reservasjoner og kostnader atskilt
En lommeboksaldo, en regelreservasjon og en utgift beskriver forskjellige ting. Forveksling kan dobbelttelle forpliktelser eller få kontoen til å virke som den har flere brukbare midler enn den har.
Anta at en rute flytter tilbudsmidler til en oppbevaringsordning på kjeden. Brukbar saldo kan allerede utelate midlene. Å trekke samme beløp fra saldoen igjen ville undervurdere likviditet, mens ignorering av forpliktelsen i eksponeringsberegninger ville undervurdere potensiell beholdning.
En reservasjon innen programmets regel er ikke nødvendigvis en ekstra overføring på kjeden. Den kan begrense ny aktivitet uten å endre lommebokens faktiske saldo. Grensesnittet bør forklare hvilket mål som vises.
Kostnader bør innregnes fra faktisk handling. Et potensielt tilbakebetalbart kontoinnskudd er ikke automatisk det samme som et irreversibelt nettverksgebyr. Presise kategorier gjør både gjenoppretting og resultatrapporter lettere å stole på.
Gjenopprett etter datahull før nye handler gjenopptas
En kjørende prosess kan miste markedsdataforbindelsen mens tidligere autoriserte ordrer forblir aktive. Systemet bør ikke anta at inaktivitet i strømmen betyr inaktivitet på kontoen.
OpenSeas Stream API-dokumentasjon beskriver hendelseslevering etter beste evne og begrensninger ved tapte meldinger. Ny tilkobling trenger en avstemmingsplan for relevant nåtilstand, ikke bare en grønn tilkoblingsindikator.
Før nye forpliktelser gjenopptas, sammenlign åpne ordrer, beholdninger og ventende forsøk med støttet dokumentasjon. Et gjeldende øyeblikksbilde kan gjenopprette driftstilstand og etterlate hull i historisk hendelsesrekkefølge. Hullene bør fortsatt merkes.
Veiledningen til en OpenSea-bot drøfter den bredere automatiseringsgrensen. En robust automatisk handler bruker grensen til å stoppe nye beslutninger når kontobildet er upålitelig, og fortsetter arbeidet som trengs for å avklare eksisterende forpliktelser.
La operatørkontroller samsvare med faktiske virkninger
Pause, stopp og kansellering er ikke synonymer. Pause av en strategi kan hindre nye forslag og la eksisterende ordrer forbli aktive. Ordrekansellering krever egne arbeidsflyter. En nødkontroll bør oppgi hvilke handlinger den forsøker og hva som fortsatt er uavklart.
Operatøren trenger en kortfattet visning av aktive forpliktelser, eid beholdning og usikre forsøk. Tekniske detaljer kan være tilgjengelige for undersøkelse uten å overvelde normalbildet, men den økonomiske tilstanden bør være forståelig.
Unngå optimistiske etiketter som skjuler arbeid underveis. «Stopper nye ordrer; to kanselleringer venter» gir mer informasjon enn et stoppet-merke mens ordrene fortsatt kan påvirke kontoen.
Kontroller bør også forbli brukbare etter delvis feil. Programmet bør ikke kreve en velfungerende strategisløyfe bare for å undersøke forpliktelser eller begynne gjenoppretting av en avbrutt handling.
Test overganger med bevisste feiltilfeller
En nyttig testplan inkluderer tidsavbrudd etter innsending, en duplisert hendelse, omstart før bekreftelse, utførelse under kansellering og et salg med manglende betalingsdokumentasjon. Hvert scenario bør ha forventet tilstand og et resultat for ressursregnskapet.
Kontroller at systemet ikke skaper et andre kjøp når det første er uavklart. Bekreft at en gjentatt utførelsesmelding ikke dupliserer beholdning eller fortjeneste. Bekreft at budsjettreservasjoner består til relevant forpliktelse er avklart.
Tester bør også dekke konfigurasjonsendringer mens ordrer er aktive. Reduksjon av en grense sletter ikke automatisk tidligere autorisasjoner. Systemet trenger en regel for gjennomgang eller avvikling av forpliktelser som ikke lenger passer ønskede innstillinger.
Øvelsene bekrefter atferden som betyr noe i drift. En vellykket demonstrasjon av normalforløpet er nyttig, men fastslår ikke pålitelig gjenoppretting når dokumentasjon kommer sent eller i uventet rekkefølge.
Bygg automatisering rundt forklarbar tilstand
En automatisk NFT-handler er pålitelig bare i den grad den kan forklare hva den ønsker, hva den har autorisert, hva som skjedde og hva som fortsatt er usikkert. Tydelige tilstandsoverganger knytter strategibeslutninger til faktiske kontofølger.
Strukturen garanterer ikke lønnsomt utvalg. Den hindrer en separat feilklasse der dupliserte handlinger, foreldede forpliktelser eller ufullstendig regnskap forvrenger resultatet uavhengig av strategikvalitet.
Bruk stabile identiteter, varige forsøk, uavhengige grenser og dokumentert oppgjør. La så operatørens kontroller og rapporter gjenspeile de samme realitetene. Resultatet er en automatiseringsarbeidsflyt der atferden kan undersøkes og gjenopprettes fremfor å gjettes fra en bevegelig saldo eller generell suksessmelding.