11import { Address , Contract , contract , Operation , scValToNative , xdr } from '@stellar/stellar-sdk' ;
22import { PoolInitMeta } from './index.js' ;
3+ import { i128 } from '../index.js' ;
34
45// @dev ENCODING REQUIRES PROPERTY NAMES TO MATCH RUST NAMES
56
6- export interface DeployArgs {
7+ export interface DeployV1Args {
78 admin : Address | string ;
89 name : string ;
910 salt : Buffer ;
@@ -12,13 +13,26 @@ export interface DeployArgs {
1213 max_positions : number ;
1314}
1415
16+ export interface DeployV2Args {
17+ admin : Address | string ;
18+ name : string ;
19+ salt : Buffer ;
20+ oracle : Address | string ;
21+ min_collateral : i128 ;
22+ backstop_take_rate : number ;
23+ max_positions : number ;
24+ }
25+
1526export abstract class PoolFactoryContract extends Contract {
1627 // @dev : Generated from soroban-cli Typescript bindings
1728 static spec : contract . Spec = new contract . Spec ( [
29+ // Enum PoolFactoryError
1830 'AAAABAAAAKlFcnJvciBjb2RlcyBmb3IgdGhlIHBvb2wgZmFjdG9yeSBjb250cmFjdC4gQ29tbW9uIGVycm9ycyBhcmUgY29kZXMgdGhhdCBtYXRjaCB1cCB3aXRoIHRoZSBidWlsdC1pbgpjb250cmFjdHMgZXJyb3IgcmVwb3J0aW5nLiBQb29sIGZhY3Rvcnkgc3BlY2lmaWMgZXJyb3JzIHN0YXJ0IGF0IDEzMDAuAAAAAAAAAAAAABBQb29sRmFjdG9yeUVycm9yAAAAAwAAAAAAAAANSW50ZXJuYWxFcnJvcgAAAAAAAAEAAAAAAAAAF0FscmVhZHlJbml0aWFsaXplZEVycm9yAAAAAAMAAAAAAAAAE0ludmFsaWRQb29sSW5pdEFyZ3MAAAAFFA==' ,
19- 'AAAAAAAAAAAAAAAGZGVwbG95AAAAAAAGAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABG5hbWUAAAAQAAAAAAAAAARzYWx0AAAD7gAAACAAAAAAAAAABm9yYWNsZQAAAAAAEwAAAAAAAAASYmFja3N0b3BfdGFrZV9yYXRlAAAAAAAEAAAAAAAAAA1tYXhfcG9zaXRpb25zAAAAAAAABAAAAAEAAAAT' ,
31+ // Function is_pool
2032 'AAAAAAAAAAAAAAAHaXNfcG9vbAAAAAABAAAAAAAAAAxwb29sX2FkZHJlc3MAAAATAAAAAQAAAAE=' ,
33+ // Union PoolFactoryDataKey
2134 'AAAAAgAAAAAAAAAAAAAAElBvb2xGYWN0b3J5RGF0YUtleQAAAAAAAQAAAAEAAAAAAAAACUNvbnRyYWN0cwAAAAAAAAEAAAAT' ,
35+ // Struct PoolInitMeta
2236 'AAAAAQAAAAAAAAAAAAAADFBvb2xJbml0TWV0YQAAAAMAAAAAAAAACGJhY2tzdG9wAAAAEwAAAAAAAAAHYmxuZF9pZAAAAAATAAAAAAAAAAlwb29sX2hhc2gAAAAAAAPuAAAAIA==' ,
2337 ] ) ;
2438
@@ -29,13 +43,6 @@ export abstract class PoolFactoryContract extends Contract {
2943 PoolFactoryContract . spec . funcResToNative ( 'is_pool' , result ) ,
3044 } ;
3145
32- deployPool ( contractArgs : DeployArgs ) : string {
33- return this . call (
34- 'deploy' ,
35- ...PoolFactoryContract . spec . funcArgsToScVals ( 'deploy' , contractArgs )
36- ) . toXDR ( 'base64' ) ;
37- }
38-
3946 isPool ( pool_address : string ) : string {
4047 return this . call (
4148 'deploy' ,
@@ -52,7 +59,10 @@ export class PoolFactoryContractV1 extends PoolFactoryContract {
5259 static readonly spec : contract . Spec = new contract . Spec ( [
5360 ...PoolFactoryContract . spec . entries ,
5461 ...new contract . Spec ( [
62+ // Function initialize
5563 'AAAAAAAAAAAAAAAKaW5pdGlhbGl6ZQAAAAAAAQAAAAAAAAAOcG9vbF9pbml0X21ldGEAAAAAB9AAAAAMUG9vbEluaXRNZXRhAAAAAA==' ,
64+ // Function Deploy
65+ 'AAAAAAAAAAAAAAAGZGVwbG95AAAAAAAGAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABG5hbWUAAAAQAAAAAAAAAARzYWx0AAAD7gAAACAAAAAAAAAABm9yYWNsZQAAAAAAEwAAAAAAAAASYmFja3N0b3BfdGFrZV9yYXRlAAAAAAAEAAAAAAAAAA1tYXhfcG9zaXRpb25zAAAAAAAABAAAAAEAAAAT' ,
5666 ] ) . entries ,
5767 ] ) ;
5868
@@ -67,6 +77,12 @@ export class PoolFactoryContractV1 extends PoolFactoryContract {
6777 ...PoolFactoryContractV1 . spec . funcArgsToScVals ( 'initialize' , { pool_init_meta } )
6878 ) . toXDR ( 'base64' ) ;
6979 }
80+ deployPool ( contractArgs : DeployV1Args ) : string {
81+ return this . call (
82+ 'deploy' ,
83+ ...PoolFactoryContract . spec . funcArgsToScVals ( 'deploy' , contractArgs )
84+ ) . toXDR ( 'base64' ) ;
85+ }
7086}
7187
7288export class PoolFactoryContractV2 extends PoolFactoryContract {
@@ -77,7 +93,10 @@ export class PoolFactoryContractV2 extends PoolFactoryContract {
7793 static readonly spec : contract . Spec = new contract . Spec ( [
7894 ...PoolFactoryContract . spec . entries ,
7995 ...new contract . Spec ( [
96+ // Function constructor
8097 'AAAAAAAAAGhDb25zdHJ1Y3QgdGhlIHBvb2wgZmFjdG9yeSBjb250cmFjdAoKIyMjIEFyZ3VtZW50cwoqIGBwb29sX2luaXRfbWV0YWAgLSBUaGUgcG9vbCBpbml0aWFsaXphdGlvbiBtZXRhZGF0YQAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAQAAAAAAAAAOcG9vbF9pbml0X21ldGEAAAAAB9AAAAAMUG9vbEluaXRNZXRhAAAAAA==' ,
98+ // Function deploy
99+ 'AAAAAAAAAAAAAAAGZGVwbG95AAAAAAAHAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABG5hbWUAAAAQAAAAAAAAAARzYWx0AAAD7gAAACAAAAAAAAAABm9yYWNsZQAAAAAAEwAAAAAAAAASYmFja3N0b3BfdGFrZV9yYXRlAAAAAAAEAAAAAAAAAA1tYXhfcG9zaXRpb25zAAAAAAAABAAAAAAAAAAObWluX2NvbGxhdGVyYWwAAAAAAAsAAAABAAAAEw==' ,
81100 ] ) . entries ,
82101 ] ) ;
83102
@@ -103,4 +122,11 @@ export class PoolFactoryContractV2 extends PoolFactoryContract {
103122 constructorArgs : this . spec . funcArgsToScVals ( '__constructor' , { pool_init_meta } ) ,
104123 } ) . toXDR ( 'base64' ) ;
105124 }
125+
126+ deployPool ( contractArgs : DeployV2Args ) : string {
127+ return this . call (
128+ 'deploy' ,
129+ ...PoolFactoryContract . spec . funcArgsToScVals ( 'deploy' , contractArgs )
130+ ) . toXDR ( 'base64' ) ;
131+ }
106132}
0 commit comments