@ciclonecash/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # ciclone-cash/sdk
2
+
3
+ SDK to build **Groth16 proofs** for the Ciclone `deposit` / `withdraw` / `transfer`
4
+ circuits, plus the curve/commitment/encrypted-note helpers needed to construct
5
+ inputs and manage wallet state off-chain.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install ciclone-cash/sdk-v1
11
+ # peer runtime dep used for proving:
12
+ npm install snarkjs
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ The SDK needs each circuit's compiled artifacts: the witness-calculator `*.wasm`
18
+ and the proving key `*_final.zkey` (produced by `npm run build` / `npm run setup`
19
+ in the circuits repo).
20
+
21
+ ```ts
22
+ import { CicloneSDK, deriveViewKey, randomScalar } from "ciclone-cash/sdk-v1";
23
+
24
+ // Point at a build directory laid out as <dir>/<c>/<c>_js/<c>.wasm + <dir>/<c>/<c>_final.zkey
25
+ const sdk = CicloneSDK.fromBuildDir("./build");
26
+
27
+ // …or pass artifacts explicitly (paths or Uint8Array buffers):
28
+ // const sdk = new CicloneSDK({
29
+ // deposit: { wasm, zkey },
30
+ // withdraw: { wasm, zkey },
31
+ // transfer: { wasm, zkey },
32
+ // });
33
+
34
+ // DEPOSIT — commit a public amount
35
+ const dep = await sdk.deposit({ amount: 1000n, accountId: 7n, seqNo: 1n });
36
+ // → { proof, publicSignals, commitment: [x,y], blinding } (persist `blinding`)
37
+
38
+ // WITHDRAW — prove balance ≥ amount
39
+ const w = await sdk.withdraw({
40
+ amount: 400n, balance: 1000n, oldBlind, accountId: 7n, seqNo: 2n,
41
+ });
42
+ // → { proof, publicSignals, newCommitment, remainder, newBlind }
43
+
44
+ // TRANSFER — hidden amount, encrypted to the receiver's VIEWING key
45
+ const recv = deriveViewKey(receiverSpendSecret); // recipient side
46
+ const t = await sdk.transfer({
47
+ amount: 300n, senderBalance: 1000n, senderOldBlind,
48
+ receiverViewPk: recv.pkView, accountId: 7n, seqNo: 3n,
49
+ });
50
+ // → { proof, publicSignals, newSenderCommitment, amountCommitment, note,
51
+ // remainder, senderNewBlind, amountBlind, ephScalar }
52
+ ```
53
+
54
+ `proof` + `publicSignals` are the snarkjs Groth16 outputs (feed them to the TON
55
+ verifier). Every result also returns the **secrets you must persist** (blindings,
56
+ note) to keep your local opening of the commitment spendable.
57
+
58
+ ## Receiving / auditing
59
+
60
+ ```ts
61
+ import { viewNote } from "ciclone-cash/sdk-v1";
62
+
63
+ // recipient (or a granted auditor) holding sk_view:
64
+ const seen = viewNote(recv.skView, note, amountCommitment[0], amountCommitment[1]);
65
+ // → { amount, amountBlind, valid } (valid: the note opens the on-chain amount_commit)
66
+ ```
67
+
68
+ ## What's exported
69
+
70
+ - **Prover:** `CicloneSDK` (`deposit`, `withdraw`, `transfer`, `fromBuildDir`).
71
+ - **Keys / notes:** `deriveViewKey`, `derivePub`, `encryptNote`, `decryptNote`, `viewNote`.
72
+ - **Curve / commitments:** `commit`, `add`, `mul`, `mod`, `randomScalar`, `Point`, `Gx/Gy/Hx/Hy`, `r`, `d`, `L`.
73
+ - **Hash:** `mimc5perm`. **Constants:** `CONSTANTS`.
74
+
75
+ ## Notes
76
+
77
+ - **Defaults:** `blinding`, `newBlind`, `senderNewBlind`, `ephScalar` default to fresh
78
+ randomness; `amountBlind` defaults to `oldBlind − newBlind (mod L)` (the homomorphic
79
+ relation the contract checks). The **ephemeral scalar must be fresh per transfer** —
80
+ reuse leaks amounts.
81
+ - **`CONSTANTS` must match the deployed circuits.** They're embedded from the trusted
82
+ setup; regenerate the SDK constants if the ceremony/curve params change.
83
+ - Proving is CPU-heavy (transfer ≈ 30k constraints); run it off the UI thread / in a worker.
@@ -0,0 +1 @@
1
+ import*as c from'@ton/core';import{ContractProvider,Sender,SendMode}from'@ton/core';declare const CONSTANTS:{readonly FIELD_ORDER:"52435875175126190479447740508185965837690552500527637822603658699938581184513";readonly JUBJUB_A:"52435875175126190479447740508185965837690552500527637822603658699938581184512";readonly JUBJUB_D:"19257038036680949359750312669786877991949435402254120286184196891950884077233";readonly JUBJUB_L:"6554484396890773809930967563523245729705921265872317281365359162392183254199";readonly JUBJUB_L_BITS:252;readonly GEN_Gx:"9439892453063030735323187312294193215315721624155265256041446064139063758940";readonly GEN_Gy:"33311521361620349823095975547796540660038567460292096943848549448618019639384";readonly GEN_Hx:"35892885103900252256502772632661230248615355824950858846864365092352335789911";readonly GEN_Hy:"20132911724793458364359774542513101355861258122048155387360391004020604936777";readonly MIMC_ROUNDS:110;readonly MIMC_C:readonly["0","15103003296285311994991196829843315048980816585203444166327140765904234277201","2855631646552958279280991863814817954891779073578526071864725683544619127111","49489489075176512800957043613012367845070793325498813954549418021382007360871","21695716502627885718936520179725298504379959493657917308721803328600734180084","18717093422378434477321030634685440693306407008976223947614833421561777370427","22459991854624568966819787279675260364992211753120823911188569238770219939980","39164374081735537272706243400380975468256665533029373415368294748656328007254","12289391154696391659986548759807111501071814715153972870862273756693400414590","21510296661205804269562709901785592831113025280057624218287347030221799730024","50893149158188039258954454914318955816677712214262455214075746444556434838445","40699247447444440027914818222867956844600434836477587518820296127338106753976","11583067579552384575172450057027685404430791813881050320075066566538403398154","2057558726145770834583134981301969911425061301627366194194791625203977494782","7134826793167471890141523578110323408233244998295210802536550134618180550936","6078497090535693158508851888200819737837060025607475272078978442802327777665","46629356917498168291829499465913517568392034518560507978220293544002048865230","37339278381857298929422023240804987004990720482473234504723505757708018867854","20461447768576640462902022034485328903427712962755857850263355830386368874019","9871504150256809292713749732352828477981187854996621958635879963877381645114","28055066328867453574974732375229334478343783501591253352469230822602091552804","966550438045935925663750495126774076152070700345227309734025057889078862118","30108629800022052202694021196377859929460725580798740253782443039198257351053","19529959410058237048730710466480003844884698707796771414193666215878736942278","49364673196825677250277202883987952462860277401977544221767930421498000704759","45611853135051404975182322318899269323882353001600337585430739185836875873699","21695938211759500029645648204433888363878338005658594110030745916219625352743","20784523902461333737760444089657468370716815976778322846390668153969120148265","47443461786173446066495163318608193980798044507383632065917221739767056847337","1811673096931711424919840007883305445474393947486927445835717108768262631760","20910367868035624656200319853664843201132604748514626878881846376369931253601","14518094248143522220129687216759189085885085988191815659475100636328075227430","35772133101832743972749438944910980802003803497276262365436978347821197246242","29144714823364790404370831939588856432419271105531171748828805322243765615940","38120255522917326268194672002454012179246074993407161133381466571047207031184","8920736496368386008293614446132181963785331702097125369515048492072690837650","4998686559923175998463010259350328243565464544732604302011900369105832798840","38646995170074744329684557576394548546403693586350630652528996743357441960661","21552248206093522811668558529771725887378013011261800801529832048264862141279","1736495064090167513146863052895191247546260473031257661816373122577239045075","21549313751781360730111590162402479116744221009735951538979498882739852526987","35192581118433497596946937272238257524062240456855744289068170205698831237264","42700211058061387359962528922639021108345312764901104244497664488612657454893","1237996939329167946521789095693327484833125021293137515793521135166604980034","33888995756958921997502233174914549708725280173031309122933477079378661568411","20665301924148669722101144869512250021122751491897382833425810961966525906756","8480660062650336997603030445935845231761124576157879436644039442927760916335","51445117922348373955960635594253753938952226848767922228713933889849361020270","35152271871220746083809060077007956182705153578422435159358814119530345198586","43076262533466253945834405191003651476975547273130924394597818073234635332135","51750613985668540898245261109932212780422124976008465667979846604142921316014","18449344230518992460868741097873874060471761038701168523820004865052188868818","34275545371587817924263108274910812738337259625930864470898125928332781261305","45506148857456226004250288532236082755299614969251631597619162716586957523000","10503687391642287964720230326997198249490467652775610353740924828559759207469","2072248748886572633465351433443511038698665657035001550921183301139451261497","7179997902220845648485640783393895696737311255579881944801371520959925429372","3515536418533380189351686234250154199849788185920597767247227967858298589048","46171734237001595080439007100152390921605507458802700995342490849846812152618","28703892301204954204735945084069004860653441443656947166842360600554829266764","42147024806380502465610355274058690830447129747150082641990093593480554434127","40969066563396384933163286365456787881003692917761396150421275783965451827185","2744184139986277399555633102014591849271705991245877211301381531668124314776","6809105985639821027464769167089559517692994766973538969832039179623118788764","42526916332339197136992204966101342323778902557693814581808201368329643107881","47367898477555649513344888015703258784704824112116267851465977817926917985508","52149217493698967124732030411965849850126131727727481355724563768072342363979","10282046293669536848128047949045457449159152560562078595626918314423212111206","38104282831626587375305070572230594581806040745573609484654403622286215425329","2132381857125014536575466985206664278130186791405077806185490245642750995607","9715756165256441413576003899214584764515826488796161806759850776281040672749","17469505807959020307566492191232309021466645546502046470681853600170213294451","51578910025890004601529967515127074541305563815419626190094013782382952516099","25376806578384700898934736167819867041133310721731132775231781759148469264235","26816608123840087721893712112335501165997460414064027285602433391071458647766","49799935161212651494105304745421258811379717093934768761004538974548304005964","27066098403968724257009469844946989728234265822542014037139909567447752575297","33630373266856175932515565774900309672340389315920771616580933630045454565293","622561109667259256229501547269068094793001686117816948029034545504150136609","49535581664372050311792989648063707098625314450433227424869506982167792310528","44624734382114259220747114506697619844726346482795888641575010921927839274055","49207313909359724933543648441749939048147039595180602955364854800415157800816","14124552281615012425057601405149339398028033237800277601031191666523400254891","11631878793419444670981925248447762731084863721698828872225502194285745163222","17006249311626259080510517712251897778396895251931479339407489243517593666855","47836849519511439764105980409378164603184853801256920812046059845514364657907","36580304968616308290658381216179885951353751818634240577619257344996861758955","27560245966222005779654222440510146514977351787199335898772264609616232737662","11237673836174136311999165320815092787813619858983672486984069711908219969786","45517624383779775342484214680588875322585867528512416326118323181527316201846","2591546198780320137912321646652470812622040974497108755569795921642637941506","47629122369327308238145608886516616246561408388961245378679951305591439162500","42232102896456887780896149238649354840416167687514636500293107566970554693617","17432279959211252257512837586735471807035784040109684142769509430817434372637","11603725323370456475476575450202487872959388003978314104278009068201124695803","39120404993454495759668681908172856380067537309932392744884241297639679309079","45463903982878444583684624947239501680582530190776445309590037812800906573019","30440678292548392883126133148846576744552906926837046696680177029789651340907","30253955304657561353204813941967483238886294842150600978897530209199473810824","6850304667631937366897932842990279755794575548210676981054011011877306353280","28861515121661092508466187938889913296091951806901947680919100570655962562040","7614622124426428478095247553232337218314768230302383829670201078933047037858","13178383305004371315847473750618929917379891360343665979087864348870926953073","51294155054276581852444719080505788611887062809942409945741835972861838436718","47945473905691864101353255404071767438110838202935093980651540814109520489291","14198375548107963048985881156136226728256423264586177722936137880114417516151","26585443846251610956247171469071754191747910659268686188185916288135421458120","24825676508294663747431688932361545585862145174250510068648420970113666514283","46335422699488226035249305414978584175742053372246294612182875733270932034996","38994544838690504598167256072038162414238197511530093899914653771167602235352"];};type Point$2=[bigint,bigint];declare const r:bigint;declare const d:bigint;declare const L:bigint;declare const Gx:bigint;declare const Gy:bigint;declare const Hx:bigint;declare const Hy:bigint;declare const mod:(a:bigint,m?:bigint)=>bigint;declare function modpow(base:bigint,exp:bigint,m?:bigint):bigint;declare const modinv:(a:bigint,m?:bigint)=>bigint;declare function add(x1:bigint,y1:bigint,x2:bigint,y2:bigint):Point$2;declare function mul(x:bigint,y:bigint,s:bigint):Point$2;declare function commit(value:bigint,blinding:bigint):Point$2;declare function derivePub(sk:bigint):Point$2;declare function randomScalar(maxBits?:number):bigint;declare function mimc5perm(input:bigint,key:bigint):bigint;interface Note{Rx:bigint;Ry:bigint;enc_amount:bigint;enc_blind:bigint;eph_scalar:bigint;shared_x:bigint;}declare function deriveViewKey(spendSk:bigint):{skView:bigint;pkView:Point$2;};declare function encryptNote(amount:bigint,amountBlind:bigint,receiverViewPkX:bigint,receiverViewPkY:bigint,ephScalar:bigint):Note;declare function decryptNote(skView:bigint,Rx:bigint,Ry:bigint,encAmount:bigint,encBlind:bigint):{amount:bigint;amountBlind:bigint;};declare function viewNote(skView:bigint,note:{Rx:bigint;Ry:bigint;enc_amount:bigint;enc_blind:bigint;},amountCommitX:bigint,amountCommitY:bigint):{amount:bigint;amountBlind:bigint;valid:boolean;};interface CircuitArtifacts{wasm:string|Uint8Array;zkey:string|Uint8Array;}interface CicloneConfig{deposit:CircuitArtifacts;withdraw:CircuitArtifacts;transfer:CircuitArtifacts;}interface Proof$1{proof:unknown;publicSignals:string[];}interface DepositArgs{amount:bigint;accountId:bigint;seqNo:bigint;blinding?:bigint;}interface WithdrawArgs{amount:bigint;balance:bigint;oldBlind:bigint;accountId:bigint;seqNo:bigint;newBlind?:bigint;}interface TransferArgs{amount:bigint;senderBalance:bigint;senderOldBlind:bigint;receiverViewPk:Point$2;accountId:bigint;seqNo:bigint;senderNewBlind?:bigint;amountBlind?:bigint;ephScalar?:bigint;}interface DepositResult extends Proof$1{commitment:Point$2;blinding:bigint;}interface WithdrawResult extends Proof$1{newCommitment:Point$2;remainder:bigint;newBlind:bigint;}interface TransferResult extends Proof$1{newSenderCommitment:Point$2;amountCommitment:Point$2;note:Note;remainder:bigint;senderNewBlind:bigint;amountBlind:bigint;ephScalar:bigint;}declare class CicloneSDK{private readonly cfg;constructor(cfg:CicloneConfig);static fromBuildDir(dir:string):CicloneSDK;private prove;deposit(args:DepositArgs):Promise<DepositResult>;withdraw(args:WithdrawArgs):Promise<WithdrawResult>;transfer(args:TransferArgs):Promise<TransferResult>;}interface WalletKeys{spendSk:bigint;spendPk:Point$2;viewSk:bigint;viewPk:Point$2;}declare function generateWalletKeys():WalletKeys;declare function walletKeysFromSpend(spendSk:bigint):WalletKeys;declare function viewKeyFromSpend(spendSk:bigint):{viewSk:bigint;viewPk:Point$2;};type SealedNote=Pick<Note,"Rx"|"Ry"|"enc_amount"|"enc_blind">;interface SealNoteArgs{amount:bigint;amountBlind:bigint;receiverViewPk:Point$2;ephScalar?:bigint;}declare function sealNote(args:SealNoteArgs):Note;declare function openNote(viewSk:bigint,note:SealedNote):{amount:bigint;amountBlind:bigint;};type CellRef$1<T>={ref:T;};type coins$2=bigint;type uint32$2=bigint;type uint64$2=bigint;type uint256$1=bigint;interface WalletRuntimeStorage{readonly $:'WalletRuntimeStorage';locked:boolean;minter:c.Address;owner:c.Address;seqNo:uint32$2;publicViewKey:Point$1;commitment:Point$1;}declare const WalletRuntimeStorage:{create(args:{locked:boolean;minter:c.Address;owner:c.Address;seqNo:uint32$2;publicViewKey:Point$1;commitment:Point$1;}):WalletRuntimeStorage;fromSlice(s:c.Slice):WalletRuntimeStorage;store(self:WalletRuntimeStorage,b:c.Builder):void;toCell(self:WalletRuntimeStorage):c.Cell;};interface TransferAdditionalData{readonly $:'TransferAdditionalData';ephemeral:Point$1;encAmount:uint256$1;encBlind:CellRef$1<uint256$1>;}declare const TransferAdditionalData:{create(args:{ephemeral:Point$1;encAmount:uint256$1;encBlind:CellRef$1<uint256$1>;}):TransferAdditionalData;fromSlice(s:c.Slice):TransferAdditionalData;store(self:TransferAdditionalData,b:c.Builder):void;toCell(self:TransferAdditionalData):c.Cell;};interface InternalTransferAdditionalData{readonly $:'InternalTransferAdditionalData';ephemeral:Point$1;encBlind:uint256$1;}declare const InternalTransferAdditionalData:{create(args:{ephemeral:Point$1;encBlind:uint256$1;}):InternalTransferAdditionalData;fromSlice(s:c.Slice):InternalTransferAdditionalData;store(self:InternalTransferAdditionalData,b:c.Builder):void;toCell(self:InternalTransferAdditionalData):c.Cell;};interface Point$1{readonly $:'Point';x:uint256$1;y:uint256$1;}declare const Point$1:{create(args:{x:uint256$1;y:uint256$1;}):Point$1;fromSlice(s:c.Slice):Point$1;store(self:Point$1,b:c.Builder):void;toCell(self:Point$1):c.Cell;};interface Proof{readonly $:'Proof';piA:c.Cell;piB:c.Cell;piC:c.Cell;}declare const Proof:{create(args:{piA:c.Cell;piB:c.Cell;piC:c.Cell;}):Proof;fromSlice(s:c.Slice):Proof;store(self:Proof,b:c.Builder):void;toCell(self:Proof):c.Cell;};interface ExtraSendOptions$2{bounce?:boolean;sendMode?:SendMode;extraCurrencies?:c.ExtraCurrency;}interface DeployedAddrOptions$2{workchain?:number;toShard?:{fixedPrefixLength:number;closeTo:c.Address;};overrideContractCode?:c.Cell;}declare class Wallet implements c.Contract{static CodeCell:c.Cell;static Errors:{'DepositErrors.InvalidInputs':number;'TransferErrors.InvalidInputs':number;'WithdrawErrors.InvalidInputs':number;'TransferErrors.IndexOutOfRange':number;'Errors.InvalidProof':number;'Errors.InvalidAmount':number;'Errors.AlreadyInitialized':number;'Errors.NotAlreadyInitialized':number;'Errors.NotEnoughGas':number;'Errors.InvalidPoint':number;'Errors.InvalidWorkchain':number;'Errors.WrongSender':number;'Errors.PositionLocked':number;'Errors.WrongOP':number;};readonly address:c.Address;readonly init:{code:c.Cell;data:c.Cell;}|undefined;protected constructor(address:c.Address,init?:{code:c.Cell;data:c.Cell;});static fromAddress(address:c.Address):Wallet;static fromStorage(emptyStorage:{locked?:boolean;minter:c.Address;owner:c.Address;seqNo?:uint32$2;publicViewKey:CellRef$1<Point$1>;commitment:CellRef$1<Point$1>;},deployedOptions?:DeployedAddrOptions$2):Wallet;static createCellOfInternalDeposit(body:{queryId:uint64$2;amount:coins$2;commitment:Point$1;proof:CellRef$1<Proof>;}):c.Cell;static createCellOfInitTransfer(body:{queryId:uint64$2;to:c.Address;receiverViewKey:Point$1;newCommitment:CellRef$1<Point$1>;amountCommit:CellRef$1<Point$1>;proof:CellRef$1<Proof>;ad:CellRef$1<TransferAdditionalData>;}):c.Cell;static createCellOfInternalTransfer(body:{queryId:uint64$2;from:c.Address;receiverViewKey:Point$1;encAmount:CellRef$1<uint256$1>;amountCommit:CellRef$1<Point$1>;oldStorageCommitment:CellRef$1<Point$1>;ad:CellRef$1<InternalTransferAdditionalData>;}):c.Cell;static createCellOfTransferCallback(body:{queryId:uint64$2;from:c.Address;}):c.Cell;static createCellOfInitWithdraw(body:{queryId:uint64$2;amount:coins$2;newCommitment:CellRef$1<Point$1>;proof:CellRef$1<Proof>;}):c.Cell;static createCellOfInternalRegister(body:{queryId:uint64$2;publicViewKey:Point$1;}):c.Cell;static createCellOfInternalFlipWalletStatus(body:{queryId:uint64$2;excess:c.Address;}):c.Cell;sendDeploy(provider:ContractProvider,via:Sender,msgValue:coins$2,extraOptions?:ExtraSendOptions$2):Promise<void>;sendInternalDeposit(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;amount:coins$2;commitment:Point$1;proof:CellRef$1<Proof>;},extraOptions?:ExtraSendOptions$2):Promise<void>;sendInitTransfer(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;to:c.Address;receiverViewKey:Point$1;newCommitment:CellRef$1<Point$1>;amountCommit:CellRef$1<Point$1>;proof:CellRef$1<Proof>;ad:CellRef$1<TransferAdditionalData>;},extraOptions?:ExtraSendOptions$2):Promise<void>;sendInternalTransfer(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;from:c.Address;receiverViewKey:Point$1;encAmount:CellRef$1<uint256$1>;amountCommit:CellRef$1<Point$1>;oldStorageCommitment:CellRef$1<Point$1>;ad:CellRef$1<InternalTransferAdditionalData>;},extraOptions?:ExtraSendOptions$2):Promise<void>;sendTransferCallback(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;from:c.Address;},extraOptions?:ExtraSendOptions$2):Promise<void>;sendInitWithdraw(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;amount:coins$2;newCommitment:CellRef$1<Point$1>;proof:CellRef$1<Proof>;},extraOptions?:ExtraSendOptions$2):Promise<void>;sendInternalRegister(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;publicViewKey:Point$1;},extraOptions?:ExtraSendOptions$2):Promise<void>;sendInternalFlipWalletStatus(provider:ContractProvider,via:Sender,msgValue:coins$2,body:{queryId:uint64$2;excess:c.Address;},extraOptions?:ExtraSendOptions$2):Promise<void>;getWalletData(provider:ContractProvider):Promise<WalletRuntimeStorage>;}type RemainingBitsAndRefs=c.Slice;type CellRef<T>={ref:T;};type coins$1=bigint;type uint32$1=bigint;type uint64$1=bigint;type uint256=bigint;interface MinterRuntimeStorage{readonly $:'MinterRuntimeStorage';id:uint32$1;factory:c.Address;manager:c.Address;jettonMinter:c.Address;jettonWallet:c.Address|null;walletCode:c.Cell;}declare const MinterRuntimeStorage:{create(args:{id:uint32$1;factory:c.Address;manager:c.Address;jettonMinter:c.Address;jettonWallet:c.Address|null;walletCode:c.Cell;}):MinterRuntimeStorage;fromSlice(s:c.Slice):MinterRuntimeStorage;store(self:MinterRuntimeStorage,b:c.Builder):void;toCell(self:MinterRuntimeStorage):c.Cell;};interface MinterStorageAdditionalData{readonly $:'MinterStorageAdditionalData';jettonWallet:c.Address|null;}declare const MinterStorageAdditionalData:{create(args:{jettonWallet?:c.Address|null;}):MinterStorageAdditionalData;fromSlice(s:c.Slice):MinterStorageAdditionalData;store(self:MinterStorageAdditionalData,b:c.Builder):void;toCell(self:MinterStorageAdditionalData):c.Cell;};interface Point{readonly $:'Point';x:uint256;y:uint256;}declare const Point:{create(args:{x:uint256;y:uint256;}):Point;fromSlice(s:c.Slice):Point;store(self:Point,b:c.Builder):void;toCell(self:Point):c.Cell;};interface ExtraSendOptions$1{bounce?:boolean;sendMode?:SendMode;extraCurrencies?:c.ExtraCurrency;}interface DeployedAddrOptions$1{workchain?:number;toShard?:{fixedPrefixLength:number;closeTo:c.Address;};overrideContractCode?:c.Cell;}declare class Minter implements c.Contract{static CodeCell:c.Cell;static Errors:{'Errors.InvalidEitherBit':number;'Errors.InvalidAmount':number;'Errors.NotAlreadyInitialized':number;'Errors.NotEnoughGas':number;'Errors.InvalidPoint':number;'Errors.InvalidWorkchain':number;'Errors.WrongSender':number;'Errors.WrongOP':number;};readonly address:c.Address;readonly init:{code:c.Cell;data:c.Cell;}|undefined;protected constructor(address:c.Address,init?:{code:c.Cell;data:c.Cell;});static fromAddress(address:c.Address):Minter;static fromStorage(emptyStorage:{id:uint32$1;factory:c.Address;manager:c.Address;jettonMinter:c.Address;additionalData:CellRef<MinterStorageAdditionalData>;walletCode:c.Cell;},deployedOptions?:DeployedAddrOptions$1):Minter;static createCellOfInternalInitMinter(body:{queryId:uint64$1;jettonWallet:c.Address;excesses:c.Address;}):c.Cell;static createCellOfJettonTransferNotification(body:{queryId:uint64$1;jettonAmount:coins$1;from:c.Address;forwardPayload:RemainingBitsAndRefs;}):c.Cell;static createCellOfRegister(body:{queryId:uint64$1;publicViewKey:Point;}):c.Cell;static createCellOfInternalWithdraw(body:{queryId:uint64$1;from:c.Address;amount:coins$1;}):c.Cell;static createCellOfFlipWalletStatus(body:{queryId:uint64$1;owner:c.Address;}):c.Cell;static createCellOfTransferSuccessfulLog(body:{queryId:uint64$1;from:c.Address;data:c.Cell;}):c.Cell;static createCellOfInternalResetGas(body:{queryId:uint64$1;excess:c.Address;}):c.Cell;sendDeploy(provider:ContractProvider,via:Sender,msgValue:coins$1,extraOptions?:ExtraSendOptions$1):Promise<void>;sendInternalInitMinter(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;jettonWallet:c.Address;excesses:c.Address;},extraOptions?:ExtraSendOptions$1):Promise<void>;sendJettonTransferNotification(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;jettonAmount:coins$1;from:c.Address;forwardPayload:RemainingBitsAndRefs;},extraOptions?:ExtraSendOptions$1):Promise<void>;sendRegister(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;publicViewKey:Point;},extraOptions?:ExtraSendOptions$1):Promise<void>;sendInternalWithdraw(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;from:c.Address;amount:coins$1;},extraOptions?:ExtraSendOptions$1):Promise<void>;sendFlipWalletStatus(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;owner:c.Address;},extraOptions?:ExtraSendOptions$1):Promise<void>;sendTransferSuccessfulLog(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;from:c.Address;data:c.Cell;},extraOptions?:ExtraSendOptions$1):Promise<void>;sendInternalResetGas(provider:ContractProvider,via:Sender,msgValue:coins$1,body:{queryId:uint64$1;excess:c.Address;},extraOptions?:ExtraSendOptions$1):Promise<void>;getMinterData(provider:ContractProvider):Promise<MinterRuntimeStorage>;getWalletAddress(provider:ContractProvider,owner:c.Address):Promise<c.Address>;}type coins=bigint;type uint32=bigint;type uint64=bigint;interface FactoryRuntimeStorage{readonly $:'FactoryRuntimeStorage';id:uint32;owner:c.Address;minterCode:c.Cell;walletCode:c.Cell;}declare const FactoryRuntimeStorage:{create(args:{id:uint32;owner:c.Address;minterCode:c.Cell;walletCode:c.Cell;}):FactoryRuntimeStorage;fromSlice(s:c.Slice):FactoryRuntimeStorage;store(self:FactoryRuntimeStorage,b:c.Builder):void;toCell(self:FactoryRuntimeStorage):c.Cell;};interface ExtraSendOptions{bounce?:boolean;sendMode?:SendMode;extraCurrencies?:c.ExtraCurrency;}interface DeployedAddrOptions{workchain?:number;toShard?:{fixedPrefixLength:number;closeTo:c.Address;};overrideContractCode?:c.Cell;}declare class Factory implements c.Contract{static CodeCell:c.Cell;static Errors:{'Errors.NotEnoughGas':number;'Errors.InvalidWorkchain':number;'Errors.WrongSender':number;'Errors.WrongOP':number;};readonly address:c.Address;readonly init:{code:c.Cell;data:c.Cell;}|undefined;protected constructor(address:c.Address,init?:{code:c.Cell;data:c.Cell;});static fromAddress(address:c.Address):Factory;static fromStorage(emptyStorage:{id:uint32;owner:c.Address;minterCode:c.Cell;walletCode:c.Cell;},deployedOptions?:DeployedAddrOptions):Factory;static createCellOfInitMinter(body:{queryId:uint64;minterId:uint32;jettonMinter:c.Address;jettonWallet:c.Address;}):c.Cell;static createCellOfResetGas(body:{queryId:uint64;excess:c.Address;}):c.Cell;static createCellOfResetMinterGas(body:{queryId:uint64;minterId:uint32;jettonMinter:c.Address;manager:c.Address;}):c.Cell;sendDeploy(provider:ContractProvider,via:Sender,msgValue:coins,extraOptions?:ExtraSendOptions):Promise<void>;sendInitMinter(provider:ContractProvider,via:Sender,msgValue:coins,body:{queryId:uint64;minterId:uint32;jettonMinter:c.Address;jettonWallet:c.Address;},extraOptions?:ExtraSendOptions):Promise<void>;sendResetGas(provider:ContractProvider,via:Sender,msgValue:coins,body:{queryId:uint64;excess:c.Address;},extraOptions?:ExtraSendOptions):Promise<void>;sendResetMinterGas(provider:ContractProvider,via:Sender,msgValue:coins,body:{queryId:uint64;minterId:uint32;jettonMinter:c.Address;manager:c.Address;},extraOptions?:ExtraSendOptions):Promise<void>;getFactoryData(provider:ContractProvider):Promise<FactoryRuntimeStorage>;getMinterAddress(provider:ContractProvider,id:bigint,jettonMinter:c.Address,manager:c.Address):Promise<c.Address>;}export{CONSTANTS,type CicloneConfig,CicloneSDK,type CircuitArtifacts,type DepositArgs,type DepositResult,Factory,Gx,Gy,Hx,Hy,L,Minter,type Note,type Point$2 as Point,type Proof$1 as Proof,type SealNoteArgs,type SealedNote,type TransferArgs,type TransferResult,Wallet,type WalletKeys,type WithdrawArgs,type WithdrawResult,add,commit,d,decryptNote,derivePub,deriveViewKey,encryptNote,generateWalletKeys,mimc5perm,mod,modinv,modpow,mul,openNote,r,randomScalar,sealNote,viewKeyFromSpend,viewNote,walletKeysFromSpend};
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ 'use strict';var Ee=require('crypto'),fe=require('path'),ke=require('snarkjs'),f=require('@ton/core');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Ee__namespace=/*#__PURE__*/_interopNamespace(Ee);var fe__namespace=/*#__PURE__*/_interopNamespace(fe);var ke__namespace=/*#__PURE__*/_interopNamespace(ke);var f__namespace=/*#__PURE__*/_interopNamespace(f);var A={FIELD_ORDER:"52435875175126190479447740508185965837690552500527637822603658699938581184513",JUBJUB_A:"52435875175126190479447740508185965837690552500527637822603658699938581184512",JUBJUB_D:"19257038036680949359750312669786877991949435402254120286184196891950884077233",JUBJUB_L:"6554484396890773809930967563523245729705921265872317281365359162392183254199",JUBJUB_L_BITS:252,GEN_Gx:"9439892453063030735323187312294193215315721624155265256041446064139063758940",GEN_Gy:"33311521361620349823095975547796540660038567460292096943848549448618019639384",GEN_Hx:"35892885103900252256502772632661230248615355824950858846864365092352335789911",GEN_Hy:"20132911724793458364359774542513101355861258122048155387360391004020604936777",MIMC_ROUNDS:110,MIMC_C:["0","15103003296285311994991196829843315048980816585203444166327140765904234277201","2855631646552958279280991863814817954891779073578526071864725683544619127111","49489489075176512800957043613012367845070793325498813954549418021382007360871","21695716502627885718936520179725298504379959493657917308721803328600734180084","18717093422378434477321030634685440693306407008976223947614833421561777370427","22459991854624568966819787279675260364992211753120823911188569238770219939980","39164374081735537272706243400380975468256665533029373415368294748656328007254","12289391154696391659986548759807111501071814715153972870862273756693400414590","21510296661205804269562709901785592831113025280057624218287347030221799730024","50893149158188039258954454914318955816677712214262455214075746444556434838445","40699247447444440027914818222867956844600434836477587518820296127338106753976","11583067579552384575172450057027685404430791813881050320075066566538403398154","2057558726145770834583134981301969911425061301627366194194791625203977494782","7134826793167471890141523578110323408233244998295210802536550134618180550936","6078497090535693158508851888200819737837060025607475272078978442802327777665","46629356917498168291829499465913517568392034518560507978220293544002048865230","37339278381857298929422023240804987004990720482473234504723505757708018867854","20461447768576640462902022034485328903427712962755857850263355830386368874019","9871504150256809292713749732352828477981187854996621958635879963877381645114","28055066328867453574974732375229334478343783501591253352469230822602091552804","966550438045935925663750495126774076152070700345227309734025057889078862118","30108629800022052202694021196377859929460725580798740253782443039198257351053","19529959410058237048730710466480003844884698707796771414193666215878736942278","49364673196825677250277202883987952462860277401977544221767930421498000704759","45611853135051404975182322318899269323882353001600337585430739185836875873699","21695938211759500029645648204433888363878338005658594110030745916219625352743","20784523902461333737760444089657468370716815976778322846390668153969120148265","47443461786173446066495163318608193980798044507383632065917221739767056847337","1811673096931711424919840007883305445474393947486927445835717108768262631760","20910367868035624656200319853664843201132604748514626878881846376369931253601","14518094248143522220129687216759189085885085988191815659475100636328075227430","35772133101832743972749438944910980802003803497276262365436978347821197246242","29144714823364790404370831939588856432419271105531171748828805322243765615940","38120255522917326268194672002454012179246074993407161133381466571047207031184","8920736496368386008293614446132181963785331702097125369515048492072690837650","4998686559923175998463010259350328243565464544732604302011900369105832798840","38646995170074744329684557576394548546403693586350630652528996743357441960661","21552248206093522811668558529771725887378013011261800801529832048264862141279","1736495064090167513146863052895191247546260473031257661816373122577239045075","21549313751781360730111590162402479116744221009735951538979498882739852526987","35192581118433497596946937272238257524062240456855744289068170205698831237264","42700211058061387359962528922639021108345312764901104244497664488612657454893","1237996939329167946521789095693327484833125021293137515793521135166604980034","33888995756958921997502233174914549708725280173031309122933477079378661568411","20665301924148669722101144869512250021122751491897382833425810961966525906756","8480660062650336997603030445935845231761124576157879436644039442927760916335","51445117922348373955960635594253753938952226848767922228713933889849361020270","35152271871220746083809060077007956182705153578422435159358814119530345198586","43076262533466253945834405191003651476975547273130924394597818073234635332135","51750613985668540898245261109932212780422124976008465667979846604142921316014","18449344230518992460868741097873874060471761038701168523820004865052188868818","34275545371587817924263108274910812738337259625930864470898125928332781261305","45506148857456226004250288532236082755299614969251631597619162716586957523000","10503687391642287964720230326997198249490467652775610353740924828559759207469","2072248748886572633465351433443511038698665657035001550921183301139451261497","7179997902220845648485640783393895696737311255579881944801371520959925429372","3515536418533380189351686234250154199849788185920597767247227967858298589048","46171734237001595080439007100152390921605507458802700995342490849846812152618","28703892301204954204735945084069004860653441443656947166842360600554829266764","42147024806380502465610355274058690830447129747150082641990093593480554434127","40969066563396384933163286365456787881003692917761396150421275783965451827185","2744184139986277399555633102014591849271705991245877211301381531668124314776","6809105985639821027464769167089559517692994766973538969832039179623118788764","42526916332339197136992204966101342323778902557693814581808201368329643107881","47367898477555649513344888015703258784704824112116267851465977817926917985508","52149217493698967124732030411965849850126131727727481355724563768072342363979","10282046293669536848128047949045457449159152560562078595626918314423212111206","38104282831626587375305070572230594581806040745573609484654403622286215425329","2132381857125014536575466985206664278130186791405077806185490245642750995607","9715756165256441413576003899214584764515826488796161806759850776281040672749","17469505807959020307566492191232309021466645546502046470681853600170213294451","51578910025890004601529967515127074541305563815419626190094013782382952516099","25376806578384700898934736167819867041133310721731132775231781759148469264235","26816608123840087721893712112335501165997460414064027285602433391071458647766","49799935161212651494105304745421258811379717093934768761004538974548304005964","27066098403968724257009469844946989728234265822542014037139909567447752575297","33630373266856175932515565774900309672340389315920771616580933630045454565293","622561109667259256229501547269068094793001686117816948029034545504150136609","49535581664372050311792989648063707098625314450433227424869506982167792310528","44624734382114259220747114506697619844726346482795888641575010921927839274055","49207313909359724933543648441749939048147039595180602955364854800415157800816","14124552281615012425057601405149339398028033237800277601031191666523400254891","11631878793419444670981925248447762731084863721698828872225502194285745163222","17006249311626259080510517712251897778396895251931479339407489243517593666855","47836849519511439764105980409378164603184853801256920812046059845514364657907","36580304968616308290658381216179885951353751818634240577619257344996861758955","27560245966222005779654222440510146514977351787199335898772264609616232737662","11237673836174136311999165320815092787813619858983672486984069711908219969786","45517624383779775342484214680588875322585867528512416326118323181527316201846","2591546198780320137912321646652470812622040974497108755569795921642637941506","47629122369327308238145608886516616246561408388961245378679951305591439162500","42232102896456887780896149238649354840416167687514636500293107566970554693617","17432279959211252257512837586735471807035784040109684142769509430817434372637","11603725323370456475476575450202487872959388003978314104278009068201124695803","39120404993454495759668681908172856380067537309932392744884241297639679309079","45463903982878444583684624947239501680582530190776445309590037812800906573019","30440678292548392883126133148846576744552906926837046696680177029789651340907","30253955304657561353204813941967483238886294842150600978897530209199473810824","6850304667631937366897932842990279755794575548210676981054011011877306353280","28861515121661092508466187938889913296091951806901947680919100570655962562040","7614622124426428478095247553232337218314768230302383829670201078933047037858","13178383305004371315847473750618929917379891360343665979087864348870926953073","51294155054276581852444719080505788611887062809942409945741835972861838436718","47945473905691864101353255404071767438110838202935093980651540814109520489291","14198375548107963048985881156136226728256423264586177722936137880114417516151","26585443846251610956247171469071754191747910659268686188185916288135421458120","24825676508294663747431688932361545585862145174250510068648420970113666514283","46335422699488226035249305414978584175742053372246294612182875733270932034996","38994544838690504598167256072038162414238197511530093899914653771167602235352"]};var w=BigInt(A.FIELD_ORDER),Ue=BigInt(A.JUBJUB_D),M=BigInt(A.JUBJUB_L),D=BigInt(A.GEN_Gx),V=BigInt(A.GEN_Gy),he=BigInt(A.GEN_Hx),De=BigInt(A.GEN_Hy),a=(e,t=w)=>(e%t+t)%t;function Ve(e,t,r=w){e=a(e,r);let n=1n;for(;t>0n;)t&1n&&(n=a(n*e,r)),e=a(e*e,r),t>>=1n;return n}var ue=(e,t=w)=>Ve(a(e,t),t-2n,t);function ne(e,t,r,n){let o=a(e*r),i=a(t*n),s=a(e*n),d=a(t*r),y=a(Ue*a(o*i)),P=a(s+d),ee=a(i+o),te=a(1n+y),re=a(1n+w-y);return [a(P*ue(te)),a(ee*ue(re))]}function x(e,t,r){r=a(r,M);let n=0n,o=1n,i=e,s=t;for(;r>0n;)r&1n&&([n,o]=ne(n,o,i,s)),[i,s]=ne(i,s,i,s),r>>=1n;return [n,o]}function p(e,t){let[r,n]=x(D,V,e),[o,i]=x(he,De,t);return ne(r,n,o,i)}function Ae(e){return x(D,V,e)}function S(e=252){let t=Ee__namespace.randomBytes(32),r=0n;for(let o=0;o<32;o++)r=r<<8n|BigInt(t[o]);r=a(r,M);let n=(1n<<BigInt(e))-1n;return r=r&n,r===0n&&(r=1n),r}var Ge=A.MIMC_ROUNDS,ze=A.MIMC_C.map(e=>BigInt(e));function B(e,t){let r=a(e);t=a(t);for(let n=0;n<Ge;n++){let o=a(r+t+ze[n]),i=a(o*o),s=a(i*i);r=a(s*o);}return a(r+t)}var be=1n,Ye=2n,Qe=7n;function oe(e){let t=a(B(Qe,a(e)),M);return t===0n&&(t=1n),{skView:t,pkView:x(D,V,t)}}function k(e,t,r,n,o){let[i,s]=x(D,V,o),[d]=x(r,n,o),y=B(be,d),P=B(Ye,d);return {Rx:i,Ry:s,enc_amount:a(e+y),enc_blind:a(t+P),eph_scalar:o,shared_x:d}}function ie(e,t,r,n,o){let[i]=x(t,r,e),s=B(be,i),d=B(Ye,i);return {amount:a(n+w-s),amountBlind:a(o+w-d)}}function je(e,t,r,n){let{amount:o,amountBlind:i}=ie(e,t.Rx,t.Ry,t.enc_amount,t.enc_blind),[s,d]=p(o,i);return {amount:o,amountBlind:i,valid:s===r&&d===n}}var ge=class e{constructor(t){this.cfg=t;}static fromBuildDir(t){let r=n=>({wasm:fe__namespace.join(t,n,`${n}_js`,`${n}.wasm`),zkey:fe__namespace.join(t,n,`${n}_final.zkey`)});return new e({deposit:r("deposit"),withdraw:r("withdraw"),transfer:r("transfer")})}prove(t,r){return ke__namespace.groth16.fullProve(r,t.wasm,t.zkey)}async deposit(t){let r=t.blinding??S(252),[n,o]=p(t.amount,r),{proof:i,publicSignals:s}=await this.prove(this.cfg.deposit,{amount:t.amount.toString(),commitment_x:n.toString(),commitment_y:o.toString(),seqNo:t.seqNo.toString(),account_id:t.accountId.toString(),blinding:r.toString()});return {proof:i,publicSignals:s,commitment:[n,o],blinding:r}}async withdraw(t){let r=t.newBlind??S(252),n=t.balance-t.amount,[o,i]=p(t.balance,t.oldBlind),[s,d]=p(n,r),{proof:y,publicSignals:P}=await this.prove(this.cfg.withdraw,{amount:t.amount.toString(),old_commitment_x:o.toString(),old_commitment_y:i.toString(),new_commitment_x:s.toString(),new_commitment_y:d.toString(),seqNo:t.seqNo.toString(),account_id:t.accountId.toString(),balance:t.balance.toString(),old_blind:t.oldBlind.toString(),new_blind:r.toString()});return {proof:y,publicSignals:P,newCommitment:[s,d],remainder:n,newBlind:r}}async transfer(t){let r=t.senderNewBlind??S(252),n=t.senderBalance-t.amount,o=t.amountBlind??a(t.senderOldBlind-r+M,M),i=t.ephScalar??S(252),[s,d]=p(t.senderBalance,t.senderOldBlind),[y,P]=p(n,r),[ee,te]=p(t.amount,o),[re,ve]=t.receiverViewPk,Y=k(t.amount,o,re,ve,i),{proof:Je,publicSignals:Ne}=await this.prove(this.cfg.transfer,{old_sender_cx:s.toString(),old_sender_cy:d.toString(),new_sender_cx:y.toString(),new_sender_cy:P.toString(),amount_commit_x:ee.toString(),amount_commit_y:te.toString(),receiver_view_pk_x:re.toString(),receiver_view_pk_y:ve.toString(),ephemeral_x:Y.Rx.toString(),ephemeral_y:Y.Ry.toString(),enc_amount:Y.enc_amount.toString(),enc_blind:Y.enc_blind.toString(),seqNo:t.seqNo.toString(),account_id:t.accountId.toString(),sender_balance:t.senderBalance.toString(),sender_old_blind:t.senderOldBlind.toString(),sender_new_blind:r.toString(),amount:t.amount.toString(),amount_blind:o.toString(),eph_scalar:i.toString()});return {proof:Je,publicSignals:Ne,newSenderCommitment:[y,P],amountCommitment:[ee,te],note:Y,remainder:n,senderNewBlind:r,amountBlind:o,ephScalar:i}}};function We(){return me(S(252))}function me(e){let{skView:t,pkView:r}=oe(e);return {spendSk:e,spendPk:Ae(e),viewSk:t,viewPk:r}}function Le(e){let{skView:t,pkView:r}=oe(e);return {viewSk:t,viewPk:r}}function qe(e){let t=e.ephScalar??S(252);return k(e.amount,e.amountBlind,e.receiverViewPk[0],e.receiverViewPk[1],t)}function Fe(e,t){return ie(e,t.Rx,t.Ry,t.enc_amount,t.enc_blind)}function g(e,t){let r=f.beginCell();return t(e,r),r.endCell()}function v(e,t,r){let n=e.loadUint(32);if(n!==t)throw new Error(`Incorrect prefix for '${r}': expected 0x${t.toString(16).padStart(8,"0")}, got 0x${n.toString(16).padStart(8,"0")}`)}function c(e,t,r){let n=f__namespace.beginCell();r(e.ref,n),t.storeRef(n.endCell());}function u(e,t){let r=e.loadRef().beginParse();return {ref:t(r)}}var Ie=class e{constructor(t){this.tuple=t;}static fromGetMethod(t,r){let n=[];for(;r.stack.remaining;)n.push(r.stack.pop());if(n.length!==t)throw new Error(`expected ${t} stack width, got ${n.length}`);return new e(n)}popExpecting(t){let r=this.tuple.shift();if(r?.type===t)return r;throw new Error(`not '${t}' on a stack`)}popCellLike(){let t=this.tuple.shift();if(t&&(t.type==="cell"||t.type==="slice"||t.type==="builder"))return t.cell;throw new Error("not cell/slice on a stack")}readBigInt(){return this.popExpecting("int").value}readBoolean(){return this.popExpecting("int").value!==0n}readCell(){return this.popCellLike()}readSlice(){return this.popCellLike().beginParse()}};var pe={create(e){return {$:"WalletStorage",locked:false,seqNo:0n,...e}},fromSlice(e){return {$:"WalletStorage",locked:e.loadBoolean(),minter:e.loadAddress(),owner:e.loadAddress(),seqNo:e.loadUintBig(32),publicViewKey:u(e,l.fromSlice),commitment:u(e,l.fromSlice)}},store(e,t){t.storeBit(e.locked),t.storeAddress(e.minter),t.storeAddress(e.owner),t.storeUint(e.seqNo,32),c(e.publicViewKey,t,l.store),c(e.commitment,t,l.store);},toCell(e){return g(e,pe.store)}},Se={fromSlice(e){return {$:"TransferAdditionalData",ephemeral:l.fromSlice(e),encAmount:e.loadUintBig(256),encBlind:u(e,t=>t.loadUintBig(256))}},store(e,t){l.store(e.ephemeral,t),t.storeUint(e.encAmount,256),c(e.encBlind,t,(r,n)=>n.storeUint(r,256));}},W={PREFIX:2288014764,create(e){return {$:"InitTransfer",...e}},fromSlice(e){return v(e,2288014764,"InitTransfer"),{$:"InitTransfer",queryId:e.loadUintBig(64),to:e.loadAddress(),receiverViewKey:l.fromSlice(e),newCommitment:u(e,l.fromSlice),amountCommit:u(e,l.fromSlice),proof:u(e,T.fromSlice),ad:u(e,Se.fromSlice)}},store(e,t){t.storeUint(2288014764,32),t.storeUint(e.queryId,64),t.storeAddress(e.to),l.store(e.receiverViewKey,t),c(e.newCommitment,t,l.store),c(e.amountCommit,t,l.store),c(e.proof,t,T.store),c(e.ad,t,Se.store);},toCell(e){return g(e,W.store)}},ye={fromSlice(e){return {$:"InternalTransferAdditionalData",ephemeral:l.fromSlice(e),encBlind:e.loadUintBig(256)}},store(e,t){l.store(e.ephemeral,t),t.storeUint(e.encBlind,256);}},L={PREFIX:3257735840,create(e){return {$:"InternalTransfer",...e}},fromSlice(e){return v(e,3257735840,"InternalTransfer"),{$:"InternalTransfer",queryId:e.loadUintBig(64),from:e.loadAddress(),receiverViewKey:l.fromSlice(e),encAmount:u(e,t=>t.loadUintBig(256)),amountCommit:u(e,l.fromSlice),oldStorageCommitment:u(e,l.fromSlice),ad:u(e,ye.fromSlice)}},store(e,t){t.storeUint(3257735840,32),t.storeUint(e.queryId,64),t.storeAddress(e.from),l.store(e.receiverViewKey,t),c(e.encAmount,t,(r,n)=>n.storeUint(r,256)),c(e.amountCommit,t,l.store),c(e.oldStorageCommitment,t,l.store),c(e.ad,t,ye.store);},toCell(e){return g(e,L.store)}},q={PREFIX:1548615227,create(e){return {$:"TransferCallback",...e}},fromSlice(e){return v(e,1548615227,"TransferCallback"),{$:"TransferCallback",queryId:e.loadUintBig(64),from:e.loadAddress()}},store(e,t){t.storeUint(1548615227,32),t.storeUint(e.queryId,64),t.storeAddress(e.from);},toCell(e){return g(e,q.store)}},F={PREFIX:3734057505,create(e){return {$:"InternalDeposit",...e}},fromSlice(e){return v(e,3734057505,"InternalDeposit"),{$:"InternalDeposit",queryId:e.loadUintBig(64),amount:e.loadCoins(),commitment:l.fromSlice(e),proof:u(e,T.fromSlice)}},store(e,t){t.storeUint(3734057505,32),t.storeUint(e.queryId,64),t.storeCoins(e.amount),l.store(e.commitment,t),c(e.proof,t,T.store);},toCell(e){return g(e,F.store)}},J={PREFIX:2803831470,create(e){return {$:"InitWithdraw",...e}},fromSlice(e){return v(e,2803831470,"InitWithdraw"),{$:"InitWithdraw",queryId:e.loadUintBig(64),amount:e.loadCoins(),newCommitment:u(e,l.fromSlice),proof:u(e,T.fromSlice)}},store(e,t){t.storeUint(2803831470,32),t.storeUint(e.queryId,64),t.storeCoins(e.amount),c(e.newCommitment,t,l.store),c(e.proof,t,T.store);},toCell(e){return g(e,J.store)}},N={PREFIX:3722508660,create(e){return {$:"InternalRegister",...e}},fromSlice(e){return v(e,3722508660,"InternalRegister"),{$:"InternalRegister",queryId:e.loadUintBig(64),publicViewKey:l.fromSlice(e)}},store(e,t){t.storeUint(3722508660,32),t.storeUint(e.queryId,64),l.store(e.publicViewKey,t);},toCell(e){return g(e,N.store)}},G={PREFIX:361485931,create(e){return {$:"InternalFlipWalletStatus",...e}},fromSlice(e){return v(e,361485931,"InternalFlipWalletStatus"),{$:"InternalFlipWalletStatus",queryId:e.loadUintBig(64),excess:e.loadAddress()}},store(e,t){t.storeUint(361485931,32),t.storeUint(e.queryId,64),t.storeAddress(e.excess);},toCell(e){return g(e,G.store)}},l={create(e){return {$:"Point",...e}},fromSlice(e){return {$:"Point",x:e.loadUintBig(256),y:e.loadUintBig(256)}},store(e,t){t.storeUint(e.x,256),t.storeUint(e.y,256);},toCell(e){return g(e,l.store)}},T={fromSlice(e){return {$:"Proof",piA:e.loadRef(),piB:e.loadRef(),piC:e.loadRef()}},store(e,t){t.storeRef(e.piA),t.storeRef(e.piB),t.storeRef(e.piC);}};function Oe(e,t,r){let n=f.beginCell().store(f__namespace.storeStateInit({code:e,data:t,splitDepth:r.toShard?.fixedPrefixLength,special:null,libraries:null})).endCell(),o=n.hash();if(r.toShard){let i=r.toShard.fixedPrefixLength;o=f.beginCell().storeBits(new f__namespace.BitString(r.toShard.closeTo.hash,0,i)).storeBits(new f__namespace.BitString(n.hash(),i,256-i)).endCell().beginParse().loadBuffer(32);}return new f__namespace.Address(r.workchain??0,o)}var R=class R{constructor(t,r){this.address=t,this.init=r;}static fromAddress(t){return new R(t)}static fromStorage(t,r){let n={code:r?.overrideContractCode??R.CodeCell,data:pe.toCell(pe.create(t))},o=Oe(n.code,n.data,r??{});return new R(o,n)}static createCellOfInternalDeposit(t){return F.toCell(F.create(t))}static createCellOfInitTransfer(t){return W.toCell(W.create(t))}static createCellOfInternalTransfer(t){return L.toCell(L.create(t))}static createCellOfTransferCallback(t){return q.toCell(q.create(t))}static createCellOfInitWithdraw(t){return J.toCell(J.create(t))}static createCellOfInternalRegister(t){return N.toCell(N.create(t))}static createCellOfInternalFlipWalletStatus(t){return G.toCell(G.create(t))}async sendDeploy(t,r,n,o){return t.internal(r,{value:n,body:f__namespace.Cell.EMPTY,...o})}async sendInternalDeposit(t,r,n,o,i){return t.internal(r,{value:n,body:F.toCell(F.create(o)),...i})}async sendInitTransfer(t,r,n,o,i){return t.internal(r,{value:n,body:W.toCell(W.create(o)),...i})}async sendInternalTransfer(t,r,n,o,i){return t.internal(r,{value:n,body:L.toCell(L.create(o)),...i})}async sendTransferCallback(t,r,n,o,i){return t.internal(r,{value:n,body:q.toCell(q.create(o)),...i})}async sendInitWithdraw(t,r,n,o,i){return t.internal(r,{value:n,body:J.toCell(J.create(o)),...i})}async sendInternalRegister(t,r,n,o,i){return t.internal(r,{value:n,body:N.toCell(N.create(o)),...i})}async sendInternalFlipWalletStatus(t,r,n,o,i){return t.internal(r,{value:n,body:G.toCell(G.create(o)),...i})}async getWalletData(t){let r=Ie.fromGetMethod(8,await t.get("getWalletData",[]));return {$:"WalletRuntimeStorage",locked:r.readBoolean(),minter:r.readSlice().loadAddress(),owner:r.readSlice().loadAddress(),seqNo:r.readBigInt(),publicViewKey:{$:"Point",x:r.readBigInt(),y:r.readBigInt()},commitment:{$:"Point",x:r.readBigInt(),y:r.readBigInt()}}}};R.CodeCell=f__namespace.Cell.fromBase64("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"),R.Errors={"DepositErrors.InvalidInputs":258,"TransferErrors.InvalidInputs":258,"WithdrawErrors.InvalidInputs":258,"TransferErrors.IndexOutOfRange":259,"Errors.InvalidProof":519,"Errors.InvalidAmount":3775,"Errors.AlreadyInitialized":16689,"Errors.NotAlreadyInitialized":22161,"Errors.NotEnoughGas":29432,"Errors.InvalidPoint":37828,"Errors.InvalidWorkchain":38296,"Errors.WrongSender":45881,"Errors.PositionLocked":48515,"Errors.WrongOP":65535};var ae=R;function C(e,t){let r=f.beginCell();return t(e,r),r.endCell()}function U(e,t,r){let n=e.loadUint(32);if(n!==t)throw new Error(`Incorrect prefix for '${r}': expected 0x${t.toString(16).padStart(8,"0")}, got 0x${n.toString(16).padStart(8,"0")}`)}function Ke(e,t,r){let n=f__namespace.beginCell();r(e.ref,n),t.storeRef(n.endCell());}function He(e,t){let r=e.loadRef().beginParse();return {ref:t(r)}}function $e(e,t){t.storeSlice(e);}function Xe(e){let t=e.clone();for(e.loadBits(e.remainingBits);e.remainingRefs;)e.loadRef();return t}var le=class e{constructor(t){this.tuple=t;}static fromGetMethod(t,r){let n=[];for(;r.stack.remaining;)n.push(r.stack.pop());if(n.length!==t)throw new Error(`expected ${t} stack width, got ${n.length}`);return new e(n)}popExpecting(t){let r=this.tuple.shift();if(r?.type===t)return r;throw new Error(`not '${t}' on a stack`)}popCellLike(){let t=this.tuple.shift();if(t&&(t.type==="cell"||t.type==="slice"||t.type==="builder"))return t.cell;throw new Error("not cell/slice on a stack")}readBigInt(){return this.popExpecting("int").value}readBoolean(){return this.popExpecting("int").value!==0n}readCell(){return this.popCellLike()}readSlice(){return this.popCellLike().beginParse()}readNullable(t){return this.tuple[0].type==="null"?(this.tuple.shift(),null):t(this)}};var z={PREFIX:1935855772,create(e){return {$:"JettonTransferNotification",...e}},fromSlice(e){return U(e,1935855772,"JettonTransferNotification"),{$:"JettonTransferNotification",queryId:e.loadUintBig(64),jettonAmount:e.loadCoins(),from:e.loadAddress(),forwardPayload:Xe(e)}},store(e,t){t.storeUint(1935855772,32),t.storeUint(e.queryId,64),t.storeCoins(e.jettonAmount),t.storeAddress(e.from),$e(e.forwardPayload,t);},toCell(e){return C(e,z.store)}};var Pe={fromSlice(e){return {$:"MinterStorageAdditionalData",jettonWallet:e.loadMaybeAddress()}},store(e,t){t.storeAddress(e.jettonWallet);}},we={create(e){return {$:"MinterStorage",...e}},fromSlice(e){return {$:"MinterStorage",id:e.loadUintBig(32),factory:e.loadAddress(),manager:e.loadAddress(),jettonMinter:e.loadAddress(),additionalData:He(e,Pe.fromSlice),walletCode:e.loadRef()}},store(e,t){t.storeUint(e.id,32),t.storeAddress(e.factory),t.storeAddress(e.manager),t.storeAddress(e.jettonMinter),Ke(e.additionalData,t,Pe.store),t.storeRef(e.walletCode);},toCell(e){return C(e,we.store)}},Q={PREFIX:1400795908,create(e){return {$:"InternalInitMinter",...e}},fromSlice(e){return U(e,1400795908,"InternalInitMinter"),{$:"InternalInitMinter",queryId:e.loadUintBig(64),jettonWallet:e.loadAddress(),excesses:e.loadAddress()}},store(e,t){t.storeUint(1400795908,32),t.storeUint(e.queryId,64),t.storeAddress(e.jettonWallet),t.storeAddress(e.excesses);},toCell(e){return C(e,Q.store)}},j={PREFIX:2794398274,create(e){return {$:"Register",...e}},fromSlice(e){return U(e,2794398274,"Register"),{$:"Register",queryId:e.loadUintBig(64),publicViewKey:Me.fromSlice(e)}},store(e,t){t.storeUint(2794398274,32),t.storeUint(e.queryId,64),Me.store(e.publicViewKey,t);},toCell(e){return C(e,j.store)}},O={PREFIX:935847678,create(e){return {$:"InternalWithdraw",...e}},fromSlice(e){return U(e,935847678,"InternalWithdraw"),{$:"InternalWithdraw",queryId:e.loadUintBig(64),from:e.loadAddress(),amount:e.loadCoins()}},store(e,t){t.storeUint(935847678,32),t.storeUint(e.queryId,64),t.storeAddress(e.from),t.storeCoins(e.amount);},toCell(e){return C(e,O.store)}},K={PREFIX:265077879,create(e){return {$:"FlipWalletStatus",...e}},fromSlice(e){return U(e,265077879,"FlipWalletStatus"),{$:"FlipWalletStatus",queryId:e.loadUintBig(64),owner:e.loadAddress()}},store(e,t){t.storeUint(265077879,32),t.storeUint(e.queryId,64),t.storeAddress(e.owner);},toCell(e){return C(e,K.store)}},H={PREFIX:1216530555,create(e){return {$:"TransferSuccessfulLog",...e}},fromSlice(e){return U(e,1216530555,"TransferSuccessfulLog"),{$:"TransferSuccessfulLog",queryId:e.loadUintBig(64),from:e.loadAddress(),data:e.loadRef()}},store(e,t){t.storeUint(1216530555,32),t.storeUint(e.queryId,64),t.storeAddress(e.from),t.storeRef(e.data);},toCell(e){return C(e,H.store)}},$={PREFIX:684114458,create(e){return {$:"InternalResetGas",...e}},fromSlice(e){return U(e,684114458,"InternalResetGas"),{$:"InternalResetGas",queryId:e.loadUintBig(64),excess:e.loadAddress()}},store(e,t){t.storeUint(684114458,32),t.storeUint(e.queryId,64),t.storeAddress(e.excess);},toCell(e){return C(e,$.store)}},Me={create(e){return {$:"Point",...e}},fromSlice(e){return {$:"Point",x:e.loadUintBig(256),y:e.loadUintBig(256)}},store(e,t){t.storeUint(e.x,256),t.storeUint(e.y,256);},toCell(e){return C(e,Me.store)}};function Ze(e,t,r){let n=f.beginCell().store(f__namespace.storeStateInit({code:e,data:t,splitDepth:r.toShard?.fixedPrefixLength,special:null,libraries:null})).endCell(),o=n.hash();if(r.toShard){let i=r.toShard.fixedPrefixLength;o=f.beginCell().storeBits(new f__namespace.BitString(r.toShard.closeTo.hash,0,i)).storeBits(new f__namespace.BitString(n.hash(),i,256-i)).endCell().beginParse().loadBuffer(32);}return new f__namespace.Address(r.workchain??0,o)}var E=class E{constructor(t,r){this.address=t,this.init=r;}static fromAddress(t){return new E(t)}static fromStorage(t,r){let n={code:r?.overrideContractCode??E.CodeCell,data:we.toCell(we.create(t))},o=Ze(n.code,n.data,r??{});return new E(o,n)}static createCellOfInternalInitMinter(t){return Q.toCell(Q.create(t))}static createCellOfJettonTransferNotification(t){return z.toCell(z.create(t))}static createCellOfRegister(t){return j.toCell(j.create(t))}static createCellOfInternalWithdraw(t){return O.toCell(O.create(t))}static createCellOfFlipWalletStatus(t){return K.toCell(K.create(t))}static createCellOfTransferSuccessfulLog(t){return H.toCell(H.create(t))}static createCellOfInternalResetGas(t){return $.toCell($.create(t))}async sendDeploy(t,r,n,o){return t.internal(r,{value:n,body:f__namespace.Cell.EMPTY,...o})}async sendInternalInitMinter(t,r,n,o,i){return t.internal(r,{value:n,body:Q.toCell(Q.create(o)),...i})}async sendJettonTransferNotification(t,r,n,o,i){return t.internal(r,{value:n,body:z.toCell(z.create(o)),...i})}async sendRegister(t,r,n,o,i){return t.internal(r,{value:n,body:j.toCell(j.create(o)),...i})}async sendInternalWithdraw(t,r,n,o,i){return t.internal(r,{value:n,body:O.toCell(O.create(o)),...i})}async sendFlipWalletStatus(t,r,n,o,i){return t.internal(r,{value:n,body:K.toCell(K.create(o)),...i})}async sendTransferSuccessfulLog(t,r,n,o,i){return t.internal(r,{value:n,body:H.toCell(H.create(o)),...i})}async sendInternalResetGas(t,r,n,o,i){return t.internal(r,{value:n,body:$.toCell($.create(o)),...i})}async getMinterData(t){let r=le.fromGetMethod(6,await t.get("getMinterData",[]));return {$:"MinterRuntimeStorage",id:r.readBigInt(),factory:r.readSlice().loadAddress(),manager:r.readSlice().loadAddress(),jettonMinter:r.readSlice().loadAddress(),jettonWallet:r.readNullable(n=>n.readSlice().loadAddress()),walletCode:r.readCell()}}async getWalletAddress(t,r){return le.fromGetMethod(1,await t.get("getWalletAddress",[{type:"slice",cell:C(r,(o,i)=>i.storeAddress(o))}])).readSlice().loadAddress()}};E.CodeCell=f__namespace.Cell.fromBase64("te6ccgECFwEABl8AART/APSkE/S88sgLAQIBYgIDAgLOBAUCASAVFgIBIAYHAfVO2i7fvTANdM0IEOvyTCAPL0VHQyjlUx+JJtyM+EQCPPCx/PUCTIz5A+KfqWGMs/UAb6Ahb6UhP6VBT0AM+EIBLOycjPhYgS+lJxzwtuzMmCCJiWgPgnbxD4LKD4lqG2CXD7AoMG+wD4D/Lw7eO6c3/tEYrtQe3xAfL/gSBJE+JHyQPiSggCVmAH6RDDy8iDXLCB+ZiO84wLXLCKb85gk4wLXLCObFoTknDHTP/oA+kjxgALaUODXLCFGNhDU4wLXLCG+Pzf0gCAkKCwBVFy+kaHgAYLwc+2nUymdfUgzOdgICaHYBVO9pAL//lv+/////wAAAAGgooAH+MdM/+kgw7UTQ0x8x+kgx+kj6SDHU1NEB0PpQ0YIAszn4klAExwUT8vSBVpECbrMS8vSCAJWYIvpEMPLyggkxLQCCCAYagIFy+PiX+JOnA1AEoAJw+DsSoBK88vT4KHDIy/9wzwv/yXDIy/9xzwv/ycjPgRP6UhT6Us+QAAAAAgwAzjHTP/pI+kgw7UTQ0x/6SPpI+kjU1NEB0PpQMdGCALM5+JIlxwXy9AbI+lTJBMjLHxP6UvpS+lLMEszJ7VTIz4WI+lKCENUydtvPC47LP8mCCJiWgPgnbxD4LKD4lqG2CXD7AoMG+wAAjDHTP/pIMO1E0NMfMfpI+kgx+kgx1NQx0dD6UDHRggCzOfiSWMcF8vTIz4WI+lKCENUydtvPC47LP8mCCJiWgHD7AoMG+wAC/OMC1ywiRBZD3I5rMdM/MfpIMO1E0NMfMfpIMfpIMfpIMdTU0QHQ+lDR+ChwyMv/cM8L/8lwyMv/cc8L/8nIz4ET+lIV+lLPkAAAAAIUzBPMyQHIz4TQzMz5FsjPigBAy//PUIIAszn4kljHBfL0gVaRAW6z8vTg1ywlNHkSFA0OAIwTzBLMyfiSyM+JiAFTI8jPhNDMzPkWzwv/gQCMzwt0E8zMz5BWL1muEss/+lLJggiYloD4J28Q+Cyg+Jahtglw+wKDBvsAAfwx0z/6SPoAMO1E0NMfMfpIMfpIMfpIMdTU0QHQ+lDR+ChwyMv/cM8L/8lwyMv/cc8L/8kmyM+BFPpSE/pSz5AAAAACzMzJWMjPhNDMzPkWyM+KAEDL/89QggCzOfiSWMcF8vSBVpEhbrPy9G2LSAAAAAHIz5A+KfqWFss/UAMPAfyO8zHTP9P/1wv/7UTQ0x8x+kgx+kgx+kgx1NTRAdD6UNGBVpEBbrPy9IIAk8QjkXCVIsAAwwDis/L0ggCTxILwc+2nUymdfUgzOdgICaHYBVO9pAL//lv+/////wAAAAFUdECpjDFUdEGpjDFUcQKpjDEC8AHgMIQPAccA8vQQAGz6AlIw+lIT+lT0AM+EIBLOycjPhYgS+lJxzwtuzMmCCJiWgPgnbxD4LKD4lqG2CXD7AoMG+wAB/oLwKpMY50v6K0j1/ZIH5r1/1Cktf203V50mAQZf1tY0PrFAA6mMMfABwAHy9IIJMS0AgggGGoCBcvj4l/iTpwNQBKACcPg7EqASvPL0+Cj4knDIy/9wzwv/yXDIy/9xzwv/ycjPgRT6UhL6Us+QAAAAAszMycjPk3eD5dIVyz8RAHYTy//L/8nIz4mIAV3Iz4TQzMz5Fs8L/4EAjc8LdBLMEszMyYIImJaA+CdvEPgsoPiWobYJcPsCgwb7AAL8AcAB8uY+ggCVmCL6RDDy8tP/0//XTO1E0NMfMfpIMfpIMfpIMdTU0QHQ+lDRgVaRIW6z8vSCALM5+JJYxwXy9IIJMS0AgggGGoCBcvj4l/iTpwNQBKACcPg7EqASvPL0+ChwyMv/cM8L/8lwyMv/cc8L/8nIz4ET+lIX+lKJExQACAAAAAAAqM8WFswVzMnIz5N6RMiGF8s/UAX6AhLL/8v/EszJyM+JiAFdyM+E0MzM+RbPC/+BAI3PC3QSzBLMzMmCCJiWgPgnbxD4LKD4lqG2CXD7AoMG+wDbMQCpv9HXaiaGmPmP0kGP0kGP0kGOpqaIDofSgY6PwUOGRl/7hnhf/kuGRl/7jnhf/k5GfAif0pCn0pZ8gAAAABCeYJZmSA5GfCaGZmfItkZ8UAIGX/56hAAtvE4XaiaGmP/SR9JH0kampogOh9KGiAw="),E.Errors={"Errors.InvalidEitherBit":1598,"Errors.InvalidAmount":3775,"Errors.NotAlreadyInitialized":22161,"Errors.NotEnoughGas":29432,"Errors.InvalidPoint":37828,"Errors.InvalidWorkchain":38296,"Errors.WrongSender":45881,"Errors.WrongOP":65535};var se=E;function b(e,t){let r=f.beginCell();return t(e,r),r.endCell()}function Te(e,t,r){let n=e.loadUint(32);if(n!==t)throw new Error(`Incorrect prefix for '${r}': expected 0x${t.toString(16).padStart(8,"0")}, got 0x${n.toString(16).padStart(8,"0")}`)}var de=class e{constructor(t){this.tuple=t;}static fromGetMethod(t,r){let n=[];for(;r.stack.remaining;)n.push(r.stack.pop());if(n.length!==t)throw new Error(`expected ${t} stack width, got ${n.length}`);return new e(n)}popExpecting(t){let r=this.tuple.shift();if(r?.type===t)return r;throw new Error(`not '${t}' on a stack`)}popCellLike(){let t=this.tuple.shift();if(t&&(t.type==="cell"||t.type==="slice"||t.type==="builder"))return t.cell;throw new Error("not cell/slice on a stack")}readBigInt(){return this.popExpecting("int").value}readBoolean(){return this.popExpecting("int").value!==0n}readCell(){return this.popCellLike()}readSlice(){return this.popCellLike().beginParse()}};var Re={create(e){return {$:"FactoryStorage",...e}},fromSlice(e){return {$:"FactoryStorage",id:e.loadUintBig(32),owner:e.loadAddress(),minterCode:e.loadRef(),walletCode:e.loadRef()}},store(e,t){t.storeUint(e.id,32),t.storeAddress(e.owner),t.storeRef(e.minterCode),t.storeRef(e.walletCode);},toCell(e){return b(e,Re.store)}},X={PREFIX:3412300354,create(e){return {$:"InitMinter",...e}},fromSlice(e){return Te(e,3412300354,"InitMinter"),{$:"InitMinter",queryId:e.loadUintBig(64),minterId:e.loadUintBig(32),jettonMinter:e.loadAddress(),jettonWallet:e.loadAddress()}},store(e,t){t.storeUint(3412300354,32),t.storeUint(e.queryId,64),t.storeUint(e.minterId,32),t.storeAddress(e.jettonMinter),t.storeAddress(e.jettonWallet);},toCell(e){return b(e,X.store)}},Z={PREFIX:1403590956,create(e){return {$:"ResetGas",...e}},fromSlice(e){return Te(e,1403590956,"ResetGas"),{$:"ResetGas",queryId:e.loadUintBig(64),excess:e.loadAddress()}},store(e,t){t.storeUint(1403590956,32),t.storeUint(e.queryId,64),t.storeAddress(e.excess);},toCell(e){return b(e,Z.store)}},_={PREFIX:1919878534,create(e){return {$:"ResetMinterGas",...e}},fromSlice(e){return Te(e,1919878534,"ResetMinterGas"),{$:"ResetMinterGas",queryId:e.loadUintBig(64),minterId:e.loadUintBig(32),jettonMinter:e.loadAddress(),manager:e.loadAddress()}},store(e,t){t.storeUint(1919878534,32),t.storeUint(e.queryId,64),t.storeUint(e.minterId,32),t.storeAddress(e.jettonMinter),t.storeAddress(e.manager);},toCell(e){return b(e,_.store)}};function _e(e,t,r){let n=f.beginCell().store(f__namespace.storeStateInit({code:e,data:t,splitDepth:r.toShard?.fixedPrefixLength,special:null,libraries:null})).endCell(),o=n.hash();if(r.toShard){let i=r.toShard.fixedPrefixLength;o=f.beginCell().storeBits(new f__namespace.BitString(r.toShard.closeTo.hash,0,i)).storeBits(new f__namespace.BitString(n.hash(),i,256-i)).endCell().beginParse().loadBuffer(32);}return new f__namespace.Address(r.workchain??0,o)}var h=class h{constructor(t,r){this.address=t,this.init=r;}static fromAddress(t){return new h(t)}static fromStorage(t,r){let n={code:r?.overrideContractCode??h.CodeCell,data:Re.toCell(Re.create(t))},o=_e(n.code,n.data,r??{});return new h(o,n)}static createCellOfInitMinter(t){return X.toCell(X.create(t))}static createCellOfResetGas(t){return Z.toCell(Z.create(t))}static createCellOfResetMinterGas(t){return _.toCell(_.create(t))}async sendDeploy(t,r,n,o){return t.internal(r,{value:n,body:f__namespace.Cell.EMPTY,...o})}async sendInitMinter(t,r,n,o,i){return t.internal(r,{value:n,body:X.toCell(X.create(o)),...i})}async sendResetGas(t,r,n,o,i){return t.internal(r,{value:n,body:Z.toCell(Z.create(o)),...i})}async sendResetMinterGas(t,r,n,o,i){return t.internal(r,{value:n,body:_.toCell(_.create(o)),...i})}async getFactoryData(t){let r=de.fromGetMethod(4,await t.get("getFactoryData",[]));return {$:"FactoryRuntimeStorage",id:r.readBigInt(),owner:r.readSlice().loadAddress(),minterCode:r.readCell(),walletCode:r.readCell()}}async getMinterAddress(t,r,n,o){return de.fromGetMethod(1,await t.get("getMinterAddress",[{type:"int",value:r},{type:"slice",cell:b(n,(s,d)=>d.storeAddress(s))},{type:"slice",cell:b(o,(s,d)=>d.storeAddress(s))}])).readSlice().loadAddress()}};h.CodeCell=f__namespace.Cell.fromBase64("te6ccgECCgEAAiEAART/APSkE/S88sgLAQIBYgIDAuDQ+JHyQPiSggCVmAH6RDDy8iDXLCKdSMlkjjox1ws/7UTQ0x8x+kjUMdQx0YIAszn4kiLHBfL0yM+FCPpSghDVMnbbzwuOyz/JggiYloBw+wKDBvsA4NcsI5N4LDTjAtcsJlsckhTjAjCEDwHHAPL0BAUCAUgICQH8MdM/0x/6SPpIMO1E0NMfMfpI1NTRggCzOfiSJMcF8vSCAJWYJfpEMPLyggCVmCT6RDDy8vgobcj6VMkHyMsf+lIU+lIU+lIUzMzJyM+JiAFTEsjPhNDMzPkWzwv/gQCMzwt0EszMz5CjGwhqEss/+lLJggiYloD4J28Q+CygBgH+MdM/0x/6SPpIMO1E0NMfMfpI1NTRggCzOfiSUATHBRPy9IIJMS0AgggGGoCBcvj4l/iTpwNQBKACcPg7EqASvPL0ggCVmCT6RDDy8oIAlZgj+kQw8vL4KPiSbcj6VMkHyMsfEvpS+lIU+lIUzBPMyfiSyM+RTfnMEhXLPxP6UgcAGPiWobYJcPsCgwb7AAByE/pSycjPiYgBUyPIz4TQzMz5Fs8L/4EAjc8LdBPMzMzJggiYloD4J28Q+Cyg+Jahtglw+wKDBvsAAHG4gf7UTQ0x8x+kgx1NTR+ChtyPpUyQbIyx/6UhP6UhP6UhPMEszJAcjPhNDMzPkWyM+KAEDL/89QgAGbse7tRNDTH/pI1NTRg="),h.Errors={"Errors.NotEnoughGas":29432,"Errors.InvalidWorkchain":38296,"Errors.WrongSender":45881,"Errors.WrongOP":65535};var ce=h;
2
+ exports.CONSTANTS=A;exports.CicloneSDK=ge;exports.Factory=ce;exports.Gx=D;exports.Gy=V;exports.Hx=he;exports.Hy=De;exports.L=M;exports.Minter=se;exports.Wallet=ae;exports.add=ne;exports.commit=p;exports.d=Ue;exports.decryptNote=ie;exports.derivePub=Ae;exports.deriveViewKey=oe;exports.encryptNote=k;exports.generateWalletKeys=We;exports.mimc5perm=B;exports.mod=a;exports.modinv=ue;exports.modpow=Ve;exports.mul=x;exports.openNote=Fe;exports.r=w;exports.randomScalar=S;exports.sealNote=qe;exports.viewKeyFromSpend=Le;exports.viewNote=je;exports.walletKeysFromSpend=me;
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@ciclonecash/sdk",
3
+ "version": "0.1.0",
4
+ "description": "Ciclone.cash V1 SDK",
5
+ "license": "MIT",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsup && node scripts/minify-dts.cjs",
13
+ "test": "jest",
14
+ "prepublishOnly": "npm run build"
15
+ },
16
+ "dependencies": {
17
+ "@ton/core": "^0.63.1",
18
+ "snarkjs": "^0.7.6"
19
+ },
20
+ "devDependencies": {
21
+ "@types/jest": "^30.0.0",
22
+ "@types/node": "^22.10.0",
23
+ "dts-minify": "^0.3.3",
24
+ "jest": "^30.4.2",
25
+ "ts-jest": "^29.4.11",
26
+ "tsup": "^8.5.0",
27
+ "typescript": "^5.7.2"
28
+ }
29
+ }