En Solana-Web3-handelsbot skal forstå de programmer og konti, der indgår i en foreslået transaktion, før den kan vurdere, om handlingen svarer til brugerens hensigt. En tokenswap, et NFT-køb og et kollektionstilbud kan alle fremstå som handelshandlinger i en grænseflade, men deres aktividentiteter, finansieringsvirkninger og valideringskrav kan være forskellige.

Den vigtige forskel går mellem at bruge en netværksforbindelse og at forstå den transaktion, som sendes gennem den. Modtagelse af et tilbud fastslår ikke, at det tilsigtede aktiv understøttes. Modtagelse af en signatur fra en RPC-tjeneste fastslår ikke, at transaktionen blev gennemført. En saldoændring forklarer ikke hver instruktion, der skabte den.

Denne vejledning sammenligner token- og NFT-automatisering gennem en programspecifik gennemgangsproces. Alle pengeeksempler er hypotetiske. Målet er at bevare aktividentitet, kontobeføjelser, disponible ressourcer og bekræftede virkninger uden at hævde, at én generisk transaktionsbygger sikkert kan håndtere hvert Solana-aktiv.

En Solana-Web3-handelsbot kræver en aktivmodel

For almindelige aktiver under tokenprogrammet identificerer en mint tokenet, mens tokenkonti registrerer beholdninger knyttet til den mint. En wallet kan have mere end én tokenkonto til samme mint. En tokenkontoadresse og den wallet, der kontrollerer beholdningen, er derfor ikke udskiftelige identifikatorer.

Solanas tokendokumentation skelner mellem mintkonti, tokenkonti og tokenprogrammer. En bot bør bevare relationerne frem for at bruge et visningssymbol som primær nøgle. To aktiver kan dele navn og have forskellige mintadresser og beføjelser.

Decimaler hører til fortolkningen af minten. Et beløb på 25,000,000 basisenheder repræsenterer 25 tokens, når minten bruger seks decimaler. Samme heltal fortolket som lamports repræsenterer 0.025 SOL. Et tal uden enhed og aktividentitet er ikke et brugbart handelsbeløb.

NFT’er kræver yderligere kontekst. En konventionel tokenrepræsentation med udbud på én og nul decimaler er én mulig struktur, men egenskaberne alene fastslår ikke autentisk kollektionsmedlemskab, attraktive egenskaber eller markedspladsunderstøttelse. Komprimerede og andre NFT-standarder kræver egne repræsentations- og valideringsveje.

Programmet bør identificere aktivfamilien, før det vælger en rute. En ikke-understøttet repræsentation bør forblive ikke-understøttet, indtil dens regler er forstået. Hvis en ukendt NFT behandles som et almindeligt fungibelt token, fordi begge har en pris, kan det give forkerte konto- eller overførselsantagelser.

Skeln programejerskab fra tokenbeføjelser

Solana-konti har et ejerprogram, som styrer deres data. En tokenkontos data identificerer også en part med beføjelser over de tokens, den besidder. Disse anvendelser af ordet ejer henviser til forskellige relationer.

Netværkets kontodokumentation forklarer programejerskabets rolle. For tokenkonti leverer tokenprogrammets struktur et særskilt beføjelsesfelt. Hvis de to forveksles, kan en tilladelseskontrol sammenligne brugerens wallet med en programadresse og nå en forkert konklusion.

Et kontovalideringstrin i en Solana-Web3-handelsbot bør stille flere præcise spørgsmål. Hvilket program ejer datakontoen? Hvilken mint henviser tokenkontoen til? Hvem har beføjelse til at godkende den relevante tokenbevægelse? Er den tilsigtede modtager repræsenteret ved den korrekte destinationskonto?

At en konto eksisterer på kæden, beviser ikke, at den er den korrekte konto til handelen. Dens adresse, ejerprogram, lagrede mint og rolle i instruktionen skal stemme med forslaget. En plausibel adresse leveret i et eksternt svar er stadig et input, der skal valideres.

Forskellen hjælper også med at fortolke fejl. Et mismatch i kontoejerskab er forskelligt fra utilstrækkelig tokensaldo eller manglende signeringsbeføjelser. Adskilte årsager gør genopretning mere specifik og forhindrer gentagne forsøg mod en strukturelt inkompatibel rute.

Tokenswaps og NFT-køb besvarer forskellige spørgsmål

En fungibel swap spørger almindeligvis, hvor meget af ét token der kan udveksles til et andet gennem en understøttet rute under angivne grænser. Et NFT-køb spørger, om et bestemt aktiv eller en mængde kan anskaffes på en ordres vilkår. Outputidentiteten er ofte mere selektiv i NFT-tilfældet.

Ved en swap er mindste modtagne mængde og betalingsgrænser vigtige økonomiske grænser. Ved en NFT kræver grænserne også den præcise mint eller aktividentifikator, kollektions- eller egenskabsberettigelse efter relevans, mængde og modtager. Modtagelse af en anden NFT til samme nominelle pris er en anden handel.

Et tilbud indfører en anden tidsmodel. Kontoen kan forpligte ressourcer nu, mens en anden deltager beslutter, om tilbuddet skal accepteres senere. Et program bygget udelukkende til øjeblikkelige swaps vedligeholder måske ikke de udestående forpligtelser og forsinkede beholdningsændringer, tilbud kræver.

Vejledningen til at tjene penge på handel med Solana-NFT’er forbinder forskellene med videresalgsøkonomi. En teknisk korrekt anskaffelse kræver stadig uafhængig efterspørgsel og en opnåelig nettoexit for at understøtte et gunstigt økonomisk resultat.

Fælles infrastruktur kan håndtere logning, præcis regning og politikkontroller, men handlingsadapterne bør forblive specifikke. Én metode kaldet handel bør ikke skjule, om den swapper en mængde, køber én NFT eller opretter et tilbud, der kan accepteres senere.

Valider hver instruktion mod den godkendte handling

En Solana-transaktion kan indeholde flere instruktioner. Nogle kan oprette krævede konti, overføre midler eller kalde et andet program som en del af ruten. Hvis kun den første synlige betaling gennemgås, kan andre væsentlige virkninger blive overset.

Validatoren bør identificere de kaldte programmer, relevante skrivbare konti, krævede signere, betalingsaktiver og forventede modtagere. Den bør sammenligne virkningerne med et tidligere godkendt forslag frem for at lade transaktionssvaret definere sine egne beføjelser.

En understøttet rute kan legitimt indeholde flere komponenter. Pointen er ikke automatisk at afvise kompleksitet, men at forstå, hvorfor hver komponent hører til. En uforklaret overførsel eller beføjelsesændring bør ikke accepteres, blot fordi NFT-købsdelen ser korrekt ud.

Simulation kan hjælpe med at synliggøre forventede kontoændringer under en bestemt tilstand. Det er en yderligere kontrol og ikke bevis for fremtidig inklusion eller økonomisk værdi. De faktiske instruktioner og tilstanden ved eksekvering kan afvige fra tidligere anvendte antagelser.

En transaktionsgennemgang i en Solana-Web3-handelsbot bør derfor bevare både den godkendte hensigt og den undersøgte transaktion. Hvis en senere genopbygning ændrer målaktiv, beløb, modtager eller beføjelser, bør den kræve fornyet validering frem for at arve godkendelsen fra den ældre version.

Atomisk eksekvering har en bestemt grænse

Solanas transaktionsdokumentation angiver, at instruktioner inden for en transaktion behandles sammen, og at fejl tilbagefører transaktionens tilstandsændringer, mens gebyrer stadig kan opkræves. Det understøtter en nyttig, men afgrænset garanti.

Garantien udvides ikke automatisk til en række separate transaktioner. Kontooprettelse, placering af et tilbud og senere annullering kan være forskellige handlinger med forskellige udfald. Fejl i en senere handling sletter ikke enhver tidligere vellykket ændring.

Tilsvarende er anskaffelse af en NFT og senere videresalg separate økonomiske ben, medmindre en specifikt understøttet struktur koordinerer dem inden for den relevante atomiske grænse. Den første transaktions succes bevarer ikke det andet bens pris eller modpart.

Transaktionens programadfærd bestemmer også, hvilke virkninger der er tilsigtede. Botten bør afstemme de faktiske instruktioner og udfald frem for at udlede betydning af en etiket som batch eller komplet. En brugerarbejdsgang kan indeholde flere atomiske transaktioner og stadig være ikke-atomisk som helhed.

Omkostninger ved mislykket eksekvering hører til i hovedbogen. En transaktion, som ikke anskaffer noget aktiv, kan stadig reducere saldoen til netværksgebyrer. En resultatrapport, der kun registrerer vellykkede køb, overser en del af automatiseringsprocessens omkostning.

OpenSea-Solana-tilbud har deres egen finansieringsmodel

OpenSeas aktuelle vejledning til Solana-tilbud angiver, at tilbudsmidler holdes på kæden, indtil tilbuddet slutter. Annullering er en handling på kæden, og betalingsvalutaen bestemmes af kollektionen. Detaljerne bør ikke erstattes med antagelser fra Ethereum-WETH-tilbud.

Begynd i en hypotetisk hovedbog med 8 SOL. Kontoen opretter to tilbud på 1.5 SOL og ét på 2 SOL og forpligter dermed i alt 5 SOL. Antag, at transaktionerne til tilbudsoprettelse tilsammen koster 0.01 SOL i netværksudgifter. Den resterende walletsaldo er 2.99 SOL.

Hvis ejeren reserverer yderligere 0.20 SOL til drift efter eksemplets politik, er uallokerede walletmidler 2.79 SOL. De 5 SOL holdt med tilbud skal forblive synlige som forpligtede aktiver og hverken forsvinde fra porteføljen eller behandles som frit disponible.

Antag, at ét tilbud på 1.5 SOL accepteres. Det tilbageholdte beløb bruges til købet, og NFT’en ankommer. Walletsaldoen modtager ikke de 1.5 tilbage. Et andet tilbud på 1.5 og tilbuddet på 2 SOL er stadig udestående.

Antag nu, at tilbuddet på 2 SOL annulleres og returneres med en hypotetisk netværksomkostning for annulleringen på 0.003 SOL. Walletmidlerne bliver 4.987 SOL. Kontoen har også 1.5 SOL stadig forpligtet og en NFT anskaffet for 1.5, før driftsomkostningerne fordeles analytisk.

Hovedbogen summerer til 7.987 SOL, når NFT’en føres til sit købsvederlag. Forskellen på 0.013 fra de oprindelige 8 er den angivne netværksudgift. Det er en afstemning af anskaffelsesgrundlag og ikke en påstand om, at NFT’en kan sælges for 1.5 SOL.

Hold tilbudsvederlag og sælgerprovenu adskilt

OpenSeas Solana-hjælpeside beskriver, at sælgeren modtager tilbudsbeløbet fratrukket gældende markedsplads- og skaberbeløb. En bydende bør ikke automatisk lægge de samme beløb oven i tilbudsvederlaget igen, når ruten allerede inkluderer dem.

Forestil dig udelukkende som regneeksempel, at et accepteret tilbud på 1.5 SOL indeholder et samlet fradrag på 3% fra sælgerens bruttobeløb. Fradraget er 0.045, og sælgeren modtager 1.455. Køberens tilbudsvederlag forbliver 1.5 i det forenklede eksempel med netværksomkostninger registreret særskilt.

De 3% er opdigtede og ikke et aktuelt OpenSea-gebyrtilbud. Den faktiske transaktionsopdeling bestemmer krævede modtagere og beløb. En bot skal vide, om et tal er bruttovederlag, nettosælgerprovenu eller en yderligere netværksudgift.

Forskellen betyder noget ved sammenligning af anskaffelse og videresalg. Et vist videresalgstilbud er ikke automatisk de kontanter, ejeren beholder. Omvendt kan dobbelt tillæg af allerede inkluderet skaberindtjening undervurdere forventet provenu.

Bevar oprindelige beløb før omregning til en porteføljerapport. En visning i ETH- eller dollarækvivalenter kan hjælpe sammenligning, men erstatter ikke kollektionens krævede betalingsvaluta eller walletens faktiske SOL- og tokensaldi.

En Solana-Web3-handelsbots omkostninger inkluderer kontofinansiering

En reduktion i disponible SOL er ikke altid udelukkende et gebyr. Oprettelse af en krævet konto kan involvere finansiering af dens mindste lagersaldo, mens transaktionseksekvering har en særskilt netværksomkostning. Solanas konto- og tokendokumentation adskiller kontofinansieringen fra almindelige overførselsbeløb.

Antag i en rent hypotetisk regnskabsøvelse, at en handling placerer 0.002 SOL på en krævet konto og bruger 0.0001 SOL på eksekvering. Walletens disponible saldo falder med 0.0021. Hvis hele beløbet kaldes et forbrugt netværksgebyr, skjules de 0.002, som fortsat er knyttet til kontoen.

Mulig tilbagebetaling betyder ikke, at botten kan genvinde saldoen, når den vil. Lukningsbetingelser, beføjelser og destinationen for returnerede midler afhænger af kontoen og programmet. Kontoen kan stadig være nødvendig til beholdninger eller anden understøttet aktivitet. Budgettet skal behandle midlerne som utilgængelige, indtil en tilladt genvinding faktisk sker.

Betaleren og indehaveren af beføjelserne over kontoens tokens kan også være forskellige. En transaktion kan finansiere en konto, hvis tokens tilhører en anden modtager. Botten bør ikke udlede, at betaling for oprettelse giver ejerskab over modtagerens aktiver eller ubegrænset ret til at kræve kontosaldoen tilbage.

Hold tre felter adskilt i planlægningsregistreringen: købsvederlag, forbrugt eksekveringsudgift og kontofinansiering, der forbliver bundet under kendte betingelser. Afstem efter eksekvering hvert felt med faktiske virkninger frem for at tvinge hvert fald ind i en kategori for handelstab.

Forskellen hjælper med at forklare, hvorfor en tilsyneladende overkommelig NFT kan kræve flere disponible SOL end sin viste pris, og undgår samtidig den modsatte fejl med at overvurdere uigenkaldelige gebyrer. Den faktiske kontostørrelse og understøttede rute bestemmer de krævede beløb; tallene her er kun illustrative.

Markedspladssynlighed er ikke transaktionsunderstøttelse

En kollektion kan være synlig på en markedsplads uden at hver udbudt vare kan eksekveres gennem markedspladsens aktuelle rute. Botten bør verificere understøttelse på aktiv- og handlingsniveau frem for at udlede den af et søgeresultat.

OpenSeas vejledning til understøttelse af Solana-salgsopslag bemærker, at nogle tredjepartssalgsopslag vises til sammenligning, men ikke kan gennemføres gennem OpenSea. Den skelner også aktuel understøttelse af bestemte NFT-standarder.

Det betyder, at en scanner og en eksekveringskomponent legitimt kan have forskellig dækning. Scanneren kan bevare en synlig udbudspris som kontekstdata og mærke den som utilgængelig for den tilsigtede eksekveringsadapter. Hvis forskellen skjules, kan der opstå tilsyneladende arbitragemuligheder, systemet ikke kan udføre.

Aktuel tilbudsunderstøttelse har også grænser. Solana-tilbudsvejledningen angiver, at egenskabstilbud ikke aktuelt er aktiveret dér. Et egenskabsbaseret researchfilter beviser derfor ikke, at en tilsvarende eksekverbar tilbudstype eksisterer på det valgte netværk.

Ikke-understøttede tilfælde bør give klare afvisninger. Gentagne forsøg, højere gebyrer eller en anden konto løser ikke en manglende rute. Den passende reaktion er at indsnævre det understøttede omfang eller undersøge et dokumenteret alternativ inden for brugerens godkendte opgave.

Markedspladssynlighed er ikke transaktionsunderstøttelse8 SOL opening5 SOL committed1.5 SOL NFT acquired4.987 SOL wallet1.5 SOL still offeredTRADING FIELD NOTESEDUCATIONAL RESOURCE
En opdigtet tilbudssekvens adskiller disponible midler, tilbageholdt tilbudskapital, anskaffet beholdning og 0.013 SOL i netværksudgift.

Accept af indsendelse bekræfter ikke handelen

Solanas sendTransaction-reference angiver, at et vellykket RPC-svar ikke garanterer, at transaktionen blev behandlet eller bekræftet. Den returnerede signatur identificerer forsøget; den erstatter ikke kontrol af eksekveringsresultatet.

En Solana-Web3-handelsbots bekræftelsespolitik bør angive, hvilket belæg der kræves før opdatering af afviklet beholdning eller godkendelse af afhængige handlinger. Den bør bevare den relevante commitment-kontekst og undgå uforklaret sammenblanding af observationer fra inkonsekvente tilstande.

Den seneste blokhash påvirker også transaktionsgyldigheden. Programmet bør bruge de understøttede gyldighedsoplysninger og aktuelle netværksregler frem for at behandle et vilkårligt antal forløbne sekunder som bevis for, at et ukendt forsøg fejlede.

Hvis et svar mistes, skal den oprindelige signatur og tilstand undersøges, før en ny handling bygges. En genopbygning med andre gyldighedsoplysninger kan skabe et særskilt signeret forsøg. Botten skal sikre, at genopretning ikke utilsigtet godkender en anden økonomisk beslutning, mens den første forbliver uafklaret.

Bekræftelse bør føre til gennemgang af faktiske virkninger: modtaget aktiv, brugt betaling, kontooprettelse eller -lukning efter relevans og opkrævede gebyrer. En signaturstatus alene kan ikke forklare, om den tilsigtede modtager og mængderne var korrekte.

Udvidelser og aktivstandarder kræver udtrykkelig understøttelse

Forskellige tokenprogrammer og aktivstandarder kan pålægge yderligere adfærd. Integrationen bør identificere ejerprogrammet og de understøttede funktioner, før den antager, at en grundlæggende overførselsmodel gælder. Et kendt symbol eller decimalantal er ikke nok.

For fungible tokens kan udvidelser påvirke fortolkningen af overførselsbeløb eller tilladelser. For NFT’er kan overførselsregler og repræsentation kræve programspecifik håndtering. Den korrekte reaktion på ukendt adfærd er at verificere den gennem aktuel primær dokumentation og understøttede adaptere.

Fjern ikke ukendte felter tavst fra et svar og fortsæt, som om aktivet var almindeligt. Felterne kan beskrive netop den betingelse, som ændrer, om den tilsigtede overførsel er tilladt, eller hvor meget der modtages.

En kapabilitetsmatrix kan forblive enkel og læserrettet: understøttet aktivfamilie, understøttet handling, krævet validering og kendt begrænsning. Den bør ikke hævde universel Solana-understøttelse, fordi én almindelig overførselstest bestod.

Samme disciplin gælder på tværs af kæder. Vejledningen til at handle Polygon-NFT’er på OpenSea undersøger en anden netværkskontekst, mens ETH-NFT-handelsbot behandler Ethereum-orienterede antagelser. Fælles markedspladsbranding gør ikke program- og finansieringsmodellerne udskiftelige.

Test kontovirkninger med en kendt hovedbog

Brug kontrollerede tilfælde med en angivet korrekt slutning. Ét tilfælde kan oprette et tilbud og lade midler være forpligtet. Et andet kan acceptere tilbuddet og levere den tilsigtede NFT. Et tredje kan annullere et tilbud og returnere midler med den angivne netværksomkostning.

Eksemplet med 8 SOL giver en lille kendt hovedbog: Efter det accepterede tilbud på 1.5 og det annullerede tilbud på 2 er walleten på 4.987, et andet tilbud holder 1.5, og én NFT har et købsvederlag på 1.5. Gentagne meddelelser bør ikke ændre totalerne.

Tilføj en destinationskonto med forkert mint, et uventet program og en transaktion, der fejler ved eksekvering. Hvert tilfælde bør give et specifikt validerings- eller afstemningsresultat. Testen bør vise, hvilke beføjelser der blev brugt, og hvilke ressourcer der fortsat er disponible.

Test forsinket bekræftelse og en genstart, mens et forsøg er ukendt. Programmet bør bevare signaturen, reservationen og usikkerheden. Start af en ny proces nulstiller ikke blockchainen og sletter ikke muligheden for, at den tidligere transaktion blev gennemført.

En nyttig Solana-Web3-handelsbot kan forklare sin kontomodel og hver instruktion, den godkender. Hastighed og bred dækning betyder først noget, når betydningerne er korrekte. Programspecifik validering gør den resulterende økonomiske registrering til noget, operatøren kan undersøge og stole på inden for klart angivne grænser.

Lær mere

Udforsk alle ressourcer