@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 +83 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/package.json +29 -0
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.
|
package/dist/index.d.ts
ADDED
|
@@ -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("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"),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
|
+
}
|