[
  {
    "bytecode": "0xa11ceb0b060000000b01000a020a0603104f045f0c056b27079201f6010888036006e80319108104470cc804620faa050400020103010400050206010704010001000800010100000901020100000a01010100000b03000100030c010500010d06010100010905020100010e05080100030f0107000110090101000411090800021209050004130b0800011403000100020405040604070409040d04010b0001090000010302060c03010900010502050b00010900010c010101060c02010c02050a020b737461626c655f706f6f6c0d77656967687465645f706f6f6c046665657304636f696e067369676e6572077061636b616765076d616e6167657204436f696e0a6162736f72625f6665650762616c616e63650c7472795f72656769737465720c77697468647261775f666565187265736f757263655f6163636f756e745f61646472657373076465706f7369741569735f6163636f756e745f72656769737465726564177265736f757263655f6163636f756e745f7369676e65720872656769737465720d69735f617574686f72697a65640a616464726573735f6f660e69735f726f6c655f6d656d62657208776974686472617748271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af000000000000000000000000000000000000000000000000000000000000000193aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8d030800000000000000000a020c0b6665655f6d616e61676572126170746f733a3a6d657461646174615f763133010000000000000000104552525f554e415554484f52495a45440b4572726f7220436f64657300010762616c616e6365010100000300000105380011040b0038010201010000010311043802020200000007091104380320040811080c000e00380402030100000a180a00110a04080b0001080c02050d0b00110b0701110c0c020b020410051207002711080c030e030b013805020000000100",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "fees",
      "friends": [
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool",
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool"
      ],
      "exposed_functions": [
        {
          "name": "absorb_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T0>"],
          "return": []
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "withdraw_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64"],
          "return": ["0x1::coin::Coin<T0>"]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000801000e030e23053108073962089b016006fb014010bb02770cb2032d0000010100020003000400050206000700010001080002000309010300060901030002070101000407010100050701010001060c000105010104696e6974067369676e657209626173655f706f6f6c077061636b6167650b737461626c655f706f6f6c0d77656967687465645f706f6f6c076d616e616765720a696e697469616c697a650a616464726573735f6f660b696e697469616c697a656448271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af000000000000000000000000000000000000000000000000000000000000000193aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8d03080200000000000000030801000000000000000308000000000000000005201bf23f0881f8fa149500ff6b7a047f608967c028a8ad7a2100caa84833ce851d126170746f733a3a6d657461646174615f763163030000000000000000104552525f554e415554484f52495a4544000100000000000000194552525f5041434b4147455f554e494e495449414c495a4544000200000000000000194552525f4d414e414745525f554e494e495449414c495a45440000000001040001160b001101070321040605080702271102040b050d0701271103041005120700271104110511060200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "init",
      "friends": [],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer"],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000c01000c020c08031446055a26078001bf0308bf0460069f0579109806af010ac707060ccd07c5010d9209020f940908000401050106010701080209000a080001140600000b000100000c020000000d000300000e040000000f02050000100001000011000100001200050001150601000416020100031708090005180203000219040000011a0a050000010501060c010103060c0a020a0a02010c0206050a020205080102060c050108010106080109626173655f706f6f6c04666565730b737461626c655f706f6f6c0d77656967687465645f706f6f6c077061636b616765076163636f756e7404636f6465107265736f757263655f6163636f756e74067369676e6572076d616e61676572185265736f757263655369676e65724361706162696c69747920646572697665645f7265736f757263655f6163636f756e745f616464726573730b696e69745f6d6f64756c650b696e697469616c697a65640f7075626c6973685f7061636b6167650e726571756573745f7369676e6572187265736f757263655f6163636f756e745f61646472657373217265736f757263655f6163636f756e745f6465706c6f7965725f61646472657373177265736f757263655f6163636f756e745f7369676e65720a7369676e65725f636170105369676e65724361706162696c697479176372656174655f7265736f757263655f616464726573730a616464726573735f6f661d72657472696576655f7265736f757263655f6163636f756e745f6361700d69735f617574686f72697a6564137075626c6973685f7061636b6167655f74786e1d6372656174655f7369676e65725f776974685f6361706162696c69747948271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af000000000000000000000000000000000000000000000000000000000000000193aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8d05201bf23f0881f8fa149500ff6b7a047f608967c028a8ad7a2100caa84833ce851d03080300000000000000030801000000000000000308000000000000000003080200000000000000052048271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af0a020a097468616c6173776170126170746f733a3a6d657461646174615f76319a01040000000000000000184552525f5041434b4147455f554e415554484f52495a45440b4572726f7220436f6465730100000000000000174552525f5041434b4147455f494e495449414c495a4544000200000000000000194552525f5041434b4147455f554e494e495449414c495a45440003000000000000001c4552525f5041434b4147455f414444524553535f4d49534d4154434800000000020113080100000000010607000c000e0007061108020100000007270a0011090c010a012900200408050c0b00010702270a01110021041105150b00010701270b01110521041a051e0b00010701270a000700110a0c020b000b0212002d000202010000000311052900020301040100050d0b00110b0404050607032711070c030e030b010b02110c02040100010000080b00110b040405060703271107020501000000020705020601000000020700020703000100000a11020403050507042711052b001000110d020000000000010002000300",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "package",
      "friends": [
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::base_pool",
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::fees",
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool",
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool"
      ],
      "exposed_functions": [
        {
          "name": "initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "publish_package",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer", "vector<u8>", "vector<vector<u8>>"],
          "return": []
        },
        {
          "name": "request_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer"],
          "return": ["signer"]
        },
        {
          "name": "resource_account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["address"]
        },
        {
          "name": "resource_account_deployer_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["address"]
        },
        {
          "name": "resource_account_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["signer"]
        }
      ],
      "structs": [
        {
          "name": "ResourceSignerCapability",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "signer_cap",
              "type": "0x1::account::SignerCapability"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000d0100160216200336810104b7012205d9016807c102ee0408af07800106af086d109c09e0010afc0a1b0c970bad020dc40d040fc80d060003010401050106010701080109000a000b020c030d000e0600000f08000010000009170700051c070003200401060104270701000000110000000012000100001300010100001400020000150003010000160400000018000500001900010400000000001a030100082200060009230705000124090a01060825000b000626000d01000228000f01000429110e01000a2a090100092b130500092c050300052d140d00032e15000106022f00020100073000010200000b080d0c0d0e0e0e0f101408020e0217150e151716180219021a1519161b151a161c0001010102010302060c03010803010c02030301080001060c010b050109000105010802010804010900010b060104010401070b06010900020708010302080303010a0202070b05010900090002010101090102090009010109020109030209010902020902090304696e69740b737461626c655f706f6f6c0d77656967687465645f706f6f6c09626173655f706f6f6c076163636f756e7404636f696e056576656e74066f7074696f6e06737472696e6709747970655f696e666f0b636f696e5f68656c706572077061636b6167650d66697865645f706f696e743634076d616e616765721842617365506f6f6c506172616d4368616e67654576656e740e42617365506f6f6c506172616d73044e756c6c0a696e697469616c697a650b696e697469616c697a65640769735f6e756c6c166d61785f737570706f727465645f646563696d616c7311706f6f6c5f746f6b656e5f737570706c79247365745f737761705f6665655f70726f746f636f6c5f616c6c6f636174696f6e5f6270730c4669786564506f696e74363422737761705f6665655f70726f746f636f6c5f616c6c6f636174696f6e5f726174696f1476616c69646174655f706f6f6c5f6173736574731176616c69646174655f737761705f666565046e616d6506537472696e670a707265765f76616c7565096e65775f76616c756513706172616d5f6368616e67655f6576656e74730b4576656e7448616e646c650b64756d6d795f6669656c64177265736f757263655f6163636f756e745f7369676e6572086672616374696f6e106e65775f6576656e745f68616e646c65187265736f757263655f6163636f756e745f6164647265737309747970655f6e616d65064f7074696f6e06737570706c7907657874726163740d69735f617574686f72697a6564036d756c066465636f646504757466380a656d69745f6576656e7408646563696d616c731469735f756e697175655f616e645f736f7274656448271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af00000000000000000000000000000000000000000000000000000000000000014dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee993aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8d030810270000000000000308d007000000000000030803000000000000000308010000000000000003080000000000000000030802000000000000000201080308e8030000000000000a022120737761705f6665655f70726f746f636f6c5f616c6c6f636174696f6e5f627073126170746f733a3a6d657461646174615f7631cb01040000000000000000104552525f554e415554484f52495a45440b4572726f7220436f64657301000000000000000f4552525f494e495449414c495a4544000200000000000000114552525f554e494e495449414c495a4544000300000000000000104552525f4250535f47545f313030303000000311706f6f6c5f746f6b656e5f737570706c79010100166d61785f737570706f727465645f646563696d616c7301010022737761705f6665655f70726f746f636f6c5f616c6c6f636174696f6e5f726174696f0101000002031b08041d031e030102021808031f0b0501080002020121010003000006111101200404050607032711090c000e0007010700110a0e00380012012d0102010300000003110c290102020100000004380138022102030100000002070602040100000f0638030c000d00380434020501040101122b0b0011100404050607042711010409050b0703270a0107002504100512070227110c2a010c020a021000140700111111120c030a010700110a0a020f00150b020f01070811130b030b01120038050206010001010005110c2a011000140207030000163e38060405080c00050738070c000b00040b090238080706240412080c01051638090706240c010b01041a0902380a20041f0902380b0427380c042508020902380d070624042d0902380e2004320902380c04360802380f070624043c09023810020803000000040b00070725020100010100000001000200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "base_pool",
      "friends": [
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::init",
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool",
        "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "initialized",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "is_null",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "max_supported_decimals",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": ["u8"]
        },
        {
          "name": "pool_token_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "set_swap_fee_protocol_allocation_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "swap_fee_protocol_allocation_ratio",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": ["0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"]
        },
        {
          "name": "validate_pool_assets",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "validate_swap_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["u64"],
          "return": ["bool"]
        }
      ],
      "structs": [
        {
          "name": "BasePoolParamChangeEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "prev_value",
              "type": "u64"
            },
            {
              "name": "new_value",
              "type": "u64"
            }
          ]
        },
        {
          "name": "BasePoolParams",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "swap_fee_protocol_allocation_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "param_change_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::base_pool::BasePoolParamChangeEvent>"
            }
          ]
        },
        {
          "name": "Null",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0600000008010006020608030e3304410a054b3b0786019701089d02400cdd026c00000101010201030200020607000004000102000000050002020000020700050100020807080001040901010001090a0200020a070800020b070b00010c0a0200020402060408040b000c0001080001010a080008000508010a020a020508010a020a0201090001080101090101060801010a020206090006090001060800010502090009010b636f696e5f68656c7065720a636f6d70617261746f7209747970655f696e666f06526573756c7407636f6d706172651469735f756e697175655f616e645f736f727465640854797065496e666f07747970655f6f660b7374727563745f6e616d650869735f657175616c0b6d6f64756c655f6e616d650f6163636f756e745f616464726573730f69735f736d616c6c65725f7468616e48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af000000000000000000000000000000000000000000000000000000000000000100000000032e38000c0338010c070e0311030c050e0711030c090e050e0938020c010e0111052004140b01020e0311060c040e0711060c080e040e0838020c000e0011052004240b00020e0311070c020e0711070c060e020e0638030201010000010538040c000e0011080200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "coin_helper",
      "friends": [],
      "exposed_functions": [
        {
          "name": "is_unique_and_sorted",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["bool"]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000f01001e021ebb0103d9018d0404e605960105fc06d60907d210f70f08c920a00106e921bf0210a824d0070af82bce020bc62e1a0ce02efc220ddc51380e94522e0fc25202000101020103010401050106010701080109000a000b000c020d030e040f0010060400010001000100010011000400010001000100010012060400010001000100010013080400010001000100010014060400010001000100010015080400010001000100010016060400010001000100010017040400010001000100010018070000190800001a0600001b0800001c00040001000100010001001d06040001000100010001021e04010001062a07000c3b0700034504010601024f05010001025105010001075e0402030100010276050100010894010700001f0001040000000000200201040000000000210304050000000000002205060500000000000023070804000000000024040904000000000025040a04000000000026040b040000000000270c0b040000000000280404000029040a00002b090d00002c040d0400000000002d040900002e08040400000000002f040904000000000030040b040000000000310d0e000032040a040000000000330100040000000000340f04040000000000350f040000360f04040000000000370f0404000000000038040a04000000000039061006000000000000003a111206000000000000003c04130400000000003d140404000000000b6f0417000270190901000e711d1e0002721f0401000973040901000374220401060275232401000977040a04000000000978040a01000b79042600067a270d00022828290100027b2a0401000c7c0413000c7d2b13000c7e2b1300017f2d2e01060580012d17000c81013213000c82011309000283013a240100098401043d00028501043d01000486013e09000929040a0007870104400203040c88013e1300078901430a020300078a014344020300028b01040d0100068c01450400068d01460900068e01470d000a8f01240401000c90011309000291014b0401000d92012d0a00099301090a00089501045101000996010413000e97015309000e9801530900089901040d0100079a015804020302079b01580402030012161e181e1a1e1b1e1c08162018201a201b201c2120222123201c1624161816251b251c0c162820292007162d2c2d212d2f2d302d31222c2d3320351e3531353118311a311b311c06163318331a331b331c363f3641384139413a183a1a3a1b3a1c3e183e1a3e1b3e1c2233383f393f1e204020222f223143354352253525524318431a431b431c3e350254035522304720483f4941040b0e0109000b0e0109010b0e0109020b0e010903010b0e010b0c04090009010902090306060c0b0e0109000b0e0109010b0e0109020b0e010903030305030b0e0109040003050303010b0e0109040403030303050b0e0109000b0e0109010b0e0109020b0e0109030b0104090009010902090301030101010a0301060b0504090009010902090301080f030a03030302060c03010b0e010905020b0e01090403020b0e0109040b0e01090501081002060b05040900090109020903010c0a030a0303030303030f030b0e010b0c040900090109020903070b050409000901090209030f040900090109020903010501090001060b0e01090001090101090201090302060a0303010f02070b0e0109000b0e010900010b0c040900090109020903010b0004090009010902090302070b1101090009000203060b12010900010b0e0109002e01030a030b12010b0c0409000901090209030b13010b0c0409000901090209030b0e010b0c040900090109020903081008100b070409000901090209030a030301030303050303070b11010b060409000901090209030101010b0e0109000b0e0109010b0e0109020b0e010903030303030b13010b0c0409000901090209030b15010b0c0409000901090209030308100b0e010b0c0409000901090209030b12010b0c040900090109020903081006080b0b050409000901090209030b13010b0c0409000901090209030b12010b0c0409000901090209030a030b0e010b0c040900090109020903050c0810010c010a0205060c080f080f0201030b130109000b150109000b12010900010b150109000208100810010b0604090009010902090301060c010b11010900010b04040900090109020903010b0d04090009010902090301080a02081003010b02040900090109020903040904090109020903010904040900090409020903040900090109040903040900090109020904070b0e0109040b0e0109040b0e010904070b05040904090109020903070b05040900090409020903070b05040900090109040903070b0504090009010902090402070b0e010900030c0101010c070b030409000901090209030b0e0109000b0e0109010b0e0109020b0e010903070b0504090009010902090305060c02020a03010202030302080f0808010b1402090009010203080f0106080902060b1402090009010900010609010207080f080f0106080f0306080f03031403030303030303030303030303070b03040900090109020903070b050409000901090209030303030305050a0303060808060809030c030303030308100b0e0109000b0e0109010b0e0109020b0e010903070b0504090009010902090303020b0e010900060b130109000301070b05040900090109020903030207080b0303070b030409000901090209030305030810070b05040900090109020903032001010303030303030a03030303030b0e01090503030101010101010101070b05040900090109020903070b0504090009010902090303050308160816060a030108160109050503030303060a0305090009010902090309040509000901090209030905250103030a030103030303030303030303030b0e01090503030101010101010101070b05040900090109020903070b05040900090109020903030303050308160816060a03030a03070809080f03070b1402090009010900090104696e69740b737461626c655f706f6f6c076163636f756e7404636f696e056576656e74066d6174683634067369676e657206737472696e67057461626c6509747970655f696e666f09626173655f706f6f6c0466656573077061636b6167650d66697865645f706f696e743634076d616e616765720b737461626c655f6d617468114164644c69717569646974794576656e7409466c6173686c6f616e0e466c6173686c6f616e4576656e740f466c6173686c6f616e48656c7065721452656d6f76654c69717569646974794576656e740a537461626c65506f6f6c17537461626c65506f6f6c4372656174696f6e4576656e7410537461626c65506f6f6c4576656e74730e537461626c65506f6f6c496e666f10537461626c65506f6f6c4c6f6f6b75701a537461626c65506f6f6c506172616d4368616e67654576656e7410537461626c65506f6f6c506172616d730f537461626c65506f6f6c546f6b656e09537761704576656e7404436f696e0d6164645f6c6971756964697479126372656174655f737461626c655f706f6f6c0f6465706f7369745f746f5f706f6f6c11657874726163745f66726f6d5f706f6f6c09666c6173686c6f616e11666c6173686c6f616e5f6665655f6270731c666c6173686c6f616e5f68656c7065725f696e697469616c697a6564196765745f707265636973696f6e5f6d756c7469706c69657273066765745f78700a696e697469616c697a650b696e697469616c697a656406537472696e670d6c705f6e616d655f62795f69640d6c705f73686f72745f6e616d650c6e6578745f706f6f6c5f69640d7061795f666c6173686c6f616e0f706f6f6c5f616d705f666163746f720d706f6f6c5f62616c616e63657309706f6f6c5f696e666f0b706f6f6c5f6c6f636b65641072656d6f76655f6c69717569646974790e7365745f616d705f666163746f721d7365745f64656661756c745f706f6f6c5f737761705f6665655f627073157365745f666c6173686c6f616e5f6665655f627073157365745f706f6f6c5f737761705f6665655f62707312737461626c655f706f6f6c5f6578697374730d737761705f65786163745f696e0e737761705f65786163745f6f75740c4669786564506f696e7436340e737761705f6665655f726174696f127570646174655f706f6f6c5f6c6f6f6b757008616d6f756e745f3008616d6f756e745f3108616d6f756e745f3208616d6f756e745f33156d696e7465645f6c705f636f696e5f616d6f756e74066c6f636b656410666c6173686c6f616e5f6576656e74730b4576656e7448616e646c65156275726e65645f6c705f636f696e5f616d6f756e740761737365745f300761737365745f310761737365745f320761737365745f330a616d705f666163746f7215707265636973696f6e5f6d756c7469706c696572731e696e76657273655f6e6567617465645f737761705f6665655f726174696f13706f6f6c5f746f6b656e5f6d696e745f6361700e4d696e744361706162696c69747913706f6f6c5f746f6b656e5f6275726e5f6361700e4275726e4361706162696c6974791072657365727665645f6c705f636f696e066576656e74730763726561746f720c737761705f6665655f62707314706f6f6c5f6372656174696f6e5f6576656e7473146164645f6c69717569646974795f6576656e74731772656d6f76655f6c69717569646974795f6576656e74730b737761705f6576656e747313706172616d5f6368616e67655f6576656e74730862616c616e6365730e6c705f636f696e5f737570706c790c6e616d655f746f5f706f6f6c055461626c650a69645f746f5f6e616d65076e6578745f6964046e616d650a707265765f76616c7565096e65775f76616c75651664656661756c745f737761705f6665655f726174696f0b64756d6d795f6669656c64066964785f696e076964785f6f757409616d6f756e745f696e0a616d6f756e745f6f75740a6665655f616d6f756e740e706f6f6c5f62616c616e63655f300e706f6f6c5f62616c616e63655f310e706f6f6c5f62616c616e63655f320e706f6f6c5f62616c616e63655f33187265736f757263655f6163636f756e745f616464726573730576616c756511636f6d707574655f696e76617269616e74056d6572676511706f6f6c5f746f6b656e5f737570706c790a656d69745f6576656e74046d696e7410467265657a654361706162696c6974791476616c69646174655f706f6f6c5f6173736574730769735f6e756c6c177265736f757263655f6163636f756e745f7369676e657204757466381264657374726f795f667265657a655f636170036f6e65067375625f6670066469765f6670106e65775f6576656e745f68616e646c650a616464726573735f6f66036d756c066465636f64650765787472616374166d61785f737570706f727465645f646563696d616c7308646563696d616c7303706f77036e6577086672616374696f6e08636f6e7461696e7306626f72726f770673796d626f6c06617070656e64066c656e6774680a7375625f737472696e670a6162736f72625f666565116465636f64655f726f756e645f646f776e046275726e0d69735f617574686f72697a65641176616c69646174655f737761705f6665650854797065496e666f07747970655f6f6622737761705f6665655f70726f746f636f6c5f616c6c6f636174696f6e5f726174696f1163616c635f6f75745f676976656e5f696e1163616c635f696e5f676976656e5f6f757409747970655f6e616d65067570736572740361646448271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af00000000000000000000000000000000000000000000000000000000000000014dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee993aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8dfb6e709add23c710c40e4844d889938f703719f72d2d4439ee682d67f07a15c5030810270000000000000308010000000000000003080a000000000000000308f40100000000000003082c01000000000000030803000000000000000308920100000000000003089101000000000000030894010000000000000308930100000000000003089001000000000000030807000000000000000308080000000000000003080500000000000000030864000000000000000308c80000000000000003080600000000000000030809000000000000000308040000000000000003080000000000000000030802000000000000000201080a0209085448414c412d4c500a02040353503a0a0202012d0a0204032e2e2e0a020b0a616d705f666163746f720a02151464656661756c745f737761705f6665655f6270730a021211666c6173686c6f616e5f6665655f6270730a020d0c737761705f6665655f627073126170746f733a3a6d657461646174615f7631bb07130000000000000000104552525f554e415554484f52495a45440b4572726f7220636f64657301000000000000000f4552525f494e495449414c495a4544000200000000000000114552525f554e494e495449414c495a4544000300000000000000164552525f535441424c455f504f4f4c5f4558495354530004000000000000001a4552525f535441424c455f504f4f4c5f4e4f545f455849535453000500000000000000234552525f535441424c455f504f4f4c5f494e56414c49445f504f4f4c5f415353455453000600000000000000284552525f535441424c455f504f4f4c5f494e56415249414e545f4e4f545f494e4352454153494e47000700000000000000224552525f535441424c455f504f4f4c5f494e53554646494349454e545f494e505554000800000000000000264552525f535441424c455f504f4f4c5f494e53554646494349454e545f4c4951554944495459000900000000000000164552525f535441424c455f504f4f4c5f4c4f434b4544002c01000000000000274552525f535441424c455f504f4f4c5f414d505f464143544f525f4f55545f4f465f424f554e440064000000000000001c4552525f535441424c455f504f4f4c5f494e56414c49445f53574150009001000000000000274552525f535441424c455f504f4f4c5f464c4153484c4f414e5f554e494e495449414c495a4544009101000000000000284552525f535441424c455f504f4f4c5f464c4153484c4f414e5f494e56414c49445f414d4f554e540092010000000000002c4552525f535441424c455f504f4f4c5f464c4153484c4f414e5f494e53554646494349454e545f5245504159009301000000000000254552525f535441424c455f504f4f4c5f464c4153484c4f414e5f4e4f545f4f4e474f494e47009401000000000000254552525f535441424c455f504f4f4c5f464c4153484c4f414e5f494e56414c49445f46454500c800000000000000204552525f535441424c455f504f4f4c5f494e56414c49445f535741505f46454500f401000000000000124552525f4449564944455f42595f5a45524f00000909706f6f6c5f696e666f0101000c6e6578745f706f6f6c5f69640101000d6c705f6e616d655f62795f69640101000d706f6f6c5f62616c616e6365730101000e737761705f6665655f726174696f0101000f706f6f6c5f616d705f666163746f7201010011666c6173686c6f616e5f6665655f62707301010012737461626c655f706f6f6c5f657869737473010100196765745f707265636973696f6e5f6d756c7469706c696572730101000002053e033f034003410342030102043e033f03400341030202043e033f034003410303020343012403440b11010b020409000901090209030402053e033f0340034103460305020c470b0e010900480b0e010901490b0e0109024a0b0e0109034b034c0a033c08104d08104e0b12010b0c040900090109020903500b13010b0c040900090109020903520b0e010b0c040900090109020903530b0704090009010902090306020754053e033f034003410342035503070205560b11010b06040900090109020903570b11010b00040900090109020903580b11010b04040900090109020903590b11010b0d0409000901090209035a0b1101080a0802045b0a034c0a034b035c030902035d0b1402080f08085f0b140203080f60030a020361080f620363030b02026408105a0b1101080a0c020165010d020a66036703680369036a036b036c036d036e034b030516001607160616031605340536053705380116021604160d16000100030305091566110a040305050714273800200409050b071127111d3c000c0e0a0e3700140c0a0e0038010c060e0138020c070e0238030c080e0338040c090a0e2e38050c040e040a0a111f0c0f0a0e36010b0038060a0e36020b0138070a0e36030b0238080a0e36040b0338090a0e2e38050c050e050b0a111f0c0b0a0b0a0f24044305470b0e01071027380a4d0b0b0a0f17180b0f1a340c0c0a0e360536060b060b070b080b090a0c3901380b0b0c0a0e3707380c0c0d0b0e2e09380d0b0d0201010002090b25a602110a040305070b0001071427380e040a050e0b0001070d27380f20041205160b00010705270a0506000000000000000024041f0a050700250c060521090c060b06042405280b00010704270e0138010c200e0238020c210e0338030c220e0438040c230a2006000000000000000024043d0a21060000000000000000240c11053f090c110b11044205460b0001070d273810045b0a220600000000000000002104510a23060000000000000000210c190553090c190b190456055a0b0001070d27058201381104700a220600000000000000002404660a23060000000000000000210c1a0568090c1a0b1a046b056f0b0001070d270582010a220600000000000000002404790a23060000000000000000240c1b057b090c1b0b1b047e0582010b0001070d27111d0c3111260c320b312b0b0c2b0e3238120716112707150838130c290c250c240b2538140b240b290c2e0c2d0a2b1008140c33112a0c2a0a2a0b2a0a33112b112c0c2738150c2f070e0e2e380c0c300b010c1c0b020c1d0b030c1e0b040c1f0a050c070b2f0c080b2e0c090b2d0c0a0b300c0b0b330c0c0b270c0d0e3238160e3238170e3238180e3238190e32381a39020c0e0b1c0b1d0b1e0b1f0b070b080b0c0b0d0b090b0a0b0b0b0e39000c2c0e2c38050c0f0e0f0b05111f340c260a26070e2404e80105ee010b2b010b0001070c270d2c360536080c180b200c100b210c120b220c130b230c140b00112e0c150a260c160b2b1008140700112f11300c170b180b150b100b120b130b140b160b173903381b0b26070e170e2c3707380c0c280e2c08380d0e320b2c3f000e320907010e32381c39043f040b2802020000010504240a0106000000000000000021040a0b003c0536090b02381d05230a010601000000000000002104140b003c06360a0b02381d05230b0106020000000000000021041e0b003c07360b0b02381d05230b003c08360c0b02381d02030000010539610a010600000000000000002104180b003c050c060a020a063709381e23040e05120b0601070c270b0636090b02381f0c05055f0a010601000000000000002104300b003c060c070a020a07370a381e230426052a0b0701070c270b07360a0b02381f0c04055d0b010602000000000000002104480b003c070c080a020a08370b381e23043e05420b0801070c270b08360b0b02381f0c03055b0b003c080c090a020a09370c381e23045205560b0901070c270b09360c0b02381f0c030b030c040b040c050b05020401000203053b9101110a040305050714273800200409050b0711270a00060000000000000000240412080c0405160a01060000000000000000240c040b04041b080c05051f0a02060000000000000000240c050b050424080c0605280a03060000000000000000240c060b06042b052d070727111d0c0e0a0e3c000c0d0a000a0d37013801250439053d0b0d010707270a010a0d3702380225044405480b0d010707270a020a0d3703380325044f05530b0d010707270a030a0d3704380425045a055e0b0d010707270a0d36010a0038200c090a0d36020a0138210c0a0a0d36030a0238220c0b0b0d36040a0338230c0c3824047c0b0e3c040c08080b08360d1505870111260c070e070c0f0a0f0807010b0f381c39043f040b090b0a0b0b0b0c0b000b010b020b033909020501000103040a382404030505070a27111d3d04370e1402060000000403111d3b0402070100003c2c400900000000000000000c0111320c000d01060a000000000000000a0038251734113444090d01060a000000000000000a003826173411344409381020041f0d01060a000000000000000a003827173411344409381120042a0d01060a000000000000000b0038281734113444090b0102080000000b39400900000000000000000c010d010a00370138010a00370f0600000000000000004209141844090d010a00370238020a00370f06010000000000000042091418440938102004260d010a00370338030a00370f06020000000000000042091418440938112004350d010a00370438040b00370f06030000000000000042091418440905370b00010b010209030000261c110a200404050607012711350409050b07142711260c000e003829382a06000000000000000012092d090e000702070011370e00381a120b2d0b020a0100000403111d290b020b010001094213111d2b090c010a01100d0a00382b0409050d0b01010712270b01100d0b00382c14020c0000000d31071711270c000d00382d113b0d0007181127113b0d00382e113b38102004210d0007181127113b0d00382f113b38112004210d0007181127113b0d003830113b0e00113c06200000000000000024042f0e00060000000000000000061d00000000000000113d0c000d0007191127113b0b00020d010001090405111d2b09100e14020e010002030548c101110a0403050507142738000408050a070927111d0c180a183c040c120b043a090c080c070c060c050e0038010c140e0138020c150e0238030c160e0338040c170a12370e140c110a050600000000000000002404440a050a110c09350b0935180700351a340c0d0b140a050a0d1626043c05400b12010706270d000b0d382038310a060600000000000000002404630a060a110c0a350b0a35180700351a340c0e0b150a060a0e1626045b055f0b12010706270d010b0e382138320a07060000000000000000240482010a070a110c0b350b0b35180700351a340c0f0b160a070a0f1626047a057e0b12010706270d020b0f382238330a080600000000000000002404a1010a080b110c0c350b0c35180700351a340c100b170a080a101626049901059d010b12010706270d030b10382338340b183c000c130a1336010b0038060a1336020b0138070a1336030b0238080b1336040b033809090a12360d150b1236100b050b060b070b08390a3835020f010001050405111d3d003700140210010001050404111d3d0038050211010001094939111d2b090c040a0410100a0038360409050d0b04010712270b0410100b0038370c03400900000000000000000c010a03101141090c050600000000000000000c020a020a05230431051f0d010a0310110a024209140a0310120a024209141844090b02060100000000000000160c02051a0b010a031013140b03101414021200000103040a38242004050902111d3d04370d1402130100030305094a5e110a040305050714273800200409050b071127111d3c000c0b0e0038380c05380a0c0c0a050b0c11370c060a060a0b37013801112f113f0c010a060a0b37023802112f113f0c020a060a0b37033803112f113f0c030b060a0b37043804112f113f0c040a0b36010a0138200c070a0b36020a0238210c080a0b36030a0338220c090a0b36040a0438230c0a0b000a0b371138390a0b360536120b010b020b030b040b05390b383a0b0b2e09380d0b070b080b090b0a021401040205094c340b00114104040506071327110a0409050b0714270a010600000000000000002404140a010700250c020516090c020b020419051b070427111d3c000c030a033700140c040a010a033600150a0336053613071a11270b040b01120a383b0b032e09380d02150104010b4d2a0b00114104040506071327110a0409050b0701270a011142040f0511070f27111d2a0b0c020a021008140700112f11300c030a01070011370a020f08150b020f18071b11270b030b01120a383b0216010402030b4e290b0011410404050607132738240409050b070a270a0107002304100512070827111d0c040a043c040c020a02370e140c030a010b02360e150b042a0b0f18071c11270b030b01120a383b0217010401054f370b00114104040506071327110a0409050b0714270a011142040f0511070f27111d3c000c030a033714140700112f11300c040a01070011370a03361415112a0c020a020b020a03371414112b112c0a033615150b0336053613071d11270b040b01120a383b02180100000403111d3b00021901000303050950fb01110a040305050714273800200409050b0711270e00381e0c0a0a0a0600000000000000002404130515070b27111d0c1c0a1c3c000c19383c0c1e383d0c1f0a1e0a1f220426383e200c010528090c010b01042e383f200c020530090c020b02043305370b1901070e270a1e3840210a1e3841210a1e3842210b1e3843210c140c130c120c110a110a121e0a131e0b141e045005540b1901070e270a1f3840210a1f3841210a1f3842210b1f3843210c180c170c160c150a150a161e0a171e0b181e046d05710b1901070e270a193714140a0a112f11300c1d11440a1d112f11300c1b0a0a0a1d170c0b0d000b1b381f38440b11048a010600000000000000000c05059a010b12048f010601000000000000000c040598010b130494010602000000000000000c030596010603000000000000000c030b030c040b040c050b050c0f0b1504a1010600000000000000000c0805b1010b1604a6010601000000000000000c0705af010b1704ab010602000000000000000c0605ad010603000000000000000c060b060c070b070c080b080c100a192e38050c090e090c200b0b0a19370f0a0f420914180c0d0a193700140a0f0a100b0d0b2011450b19370f0a104209141a0c0c0a1c0a0f0b0038450a1c0a100a0c38460c0e0b1c3c000c1a0a1a360536160b0f0b100b0a0b0c0b1d0a1a370138010a1a370238020a1a370338030a1a370438040a1a370014390c38470b1a2e09380d0b0e021a01000303050956af02110a040305050714273800200409050b0711270e00381e0c210a010600000000000000002404130515070e270a2106000000000000000024041a051c070e27111d0c220a223c000c1d383c0c24383d0c250a240a2522042d383e200c02052f090c020b020435383f200c060537090c060b06043a053e0b1d01070e270a243840210a243841210a243842210b243843210c180c170c160c150a150a161e0a171e0b181e0457055b0b1d01070e270a253840210a253841210a253842210b253843210c1c0c1b0c1a0c190a190a1a1e0a1b1e0b1c1e047405780b1d01070e270b15047d0600000000000000000c09058d010b160482010601000000000000000c08058b010b170487010602000000000000000c070589010603000000000000000c070b070c080b080c090b090c130b190498010600000000000000000a1d370138010c040c0305b8010b1a04a1010601000000000000000a1d370238020c0d0c0c05b4010b1b04aa010602000000000000000a1d370338030c0b0c0a05b0010603000000000000000a1d370438040c0b0c0a0b0a0b0b0c0d0c0c0b0c0b0d0c040c030b030b040c1f0c140a010b1f2304c10105c5010b1d01070c270a1d2e38050c050e050c260a010a1d370f0a14420914180c110a1d3700140a130a140b110b2611460a1d370f0a134209141a0c0f0b1d3715140a0f112f11300c0e0a0e0b212504ee0105f001070b270a0e0b0f170c2311440a23112f11300c200a0e0a20170c100d000b20381f38440a220a130d000b10381f38450a220a140a0138460c120b223c000c1e0a1e360536160b130b140b0e0b010b230a1e370138010a1e370238020a1e370338030a1e370438040a1e370014390c38470b1e2e09380d0b000b12021b010001050405111d3d00371414021c000001095743400900000000000000000c020d020a003701380144090d020a0037023802440938102004140d020a00370338034409381120041c0d020a00370438044409111d2a090c0338480c040a030f100a040b020a00370f140b00370014380a120838490b0104400a030f0d0a03100e140b04384a0a03100e14060100000000000000160b030f0e1505420b03010205040500050105020503050b070105080b000700030003010505090109020302090008000801080208030509070207040b0105060507070300160116021603160416051606160716091601340236033704380a160b160c160f1615161616171619161a161b16000000",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "stable_pool",
      "friends": ["0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::init"],
      "exposed_functions": [
        {
          "name": "add_liquidity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T0>", "0x1::coin::Coin<T1>", "0x1::coin::Coin<T2>", "0x1::coin::Coin<T3>"],
          "return": [
            "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolToken<T0, T1, T2, T3>>"
          ]
        },
        {
          "name": "create_stable_pool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolToken<T0, T1, T2, T3>>"
          ]
        },
        {
          "name": "flashloan",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["u64", "u64", "u64", "u64"],
          "return": [
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>",
            "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::Flashloan<T0, T1, T2, T3>"
          ]
        },
        {
          "name": "flashloan_fee_bps",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "get_precision_multipliers",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["vector<u64>"]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "lp_name_by_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": ["u64"],
          "return": ["0x1::string::String"]
        },
        {
          "name": "next_pool_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "pay_flashloan",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>",
            "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::Flashloan<T0, T1, T2, T3>"
          ],
          "return": []
        },
        {
          "name": "pool_amp_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "pool_balances",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["vector<u64>"]
        },
        {
          "name": "pool_info",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": ["0x1::string::String"],
          "return": ["vector<u64>", "u64", "u64"]
        },
        {
          "name": "remove_liquidity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolToken<T0, T1, T2, T3>>"
          ],
          "return": ["0x1::coin::Coin<T0>", "0x1::coin::Coin<T1>", "0x1::coin::Coin<T2>", "0x1::coin::Coin<T3>"]
        },
        {
          "name": "set_amp_factor",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "set_default_pool_swap_fee_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "set_flashloan_fee_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "set_pool_swap_fee_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "stable_pool_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "swap_exact_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T4>"],
          "return": ["0x1::coin::Coin<T5>"]
        },
        {
          "name": "swap_exact_out",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T4>", "u64"],
          "return": ["0x1::coin::Coin<T4>", "0x1::coin::Coin<T5>"]
        },
        {
          "name": "swap_fee_ratio",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"]
        }
      ],
      "structs": [
        {
          "name": "AddLiquidityEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            },
            {
              "name": "minted_lp_coin_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Flashloan",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            }
          ]
        },
        {
          "name": "FlashloanEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            }
          ]
        },
        {
          "name": "FlashloanHelper",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "locked",
              "type": "bool"
            },
            {
              "name": "flashloan_fee_bps",
              "type": "u64"
            },
            {
              "name": "flashloan_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::FlashloanEvent<T0, T1, T2, T3>>"
            }
          ]
        },
        {
          "name": "RemoveLiquidityEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            },
            {
              "name": "burned_lp_coin_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StablePool",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "asset_0",
              "type": "0x1::coin::Coin<T0>"
            },
            {
              "name": "asset_1",
              "type": "0x1::coin::Coin<T1>"
            },
            {
              "name": "asset_2",
              "type": "0x1::coin::Coin<T2>"
            },
            {
              "name": "asset_3",
              "type": "0x1::coin::Coin<T3>"
            },
            {
              "name": "amp_factor",
              "type": "u64"
            },
            {
              "name": "precision_multipliers",
              "type": "vector<u64>"
            },
            {
              "name": "swap_fee_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "inverse_negated_swap_fee_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "pool_token_mint_cap",
              "type": "0x1::coin::MintCapability<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolToken<T0, T1, T2, T3>>"
            },
            {
              "name": "pool_token_burn_cap",
              "type": "0x1::coin::BurnCapability<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolToken<T0, T1, T2, T3>>"
            },
            {
              "name": "reserved_lp_coin",
              "type": "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolToken<T0, T1, T2, T3>>"
            },
            {
              "name": "events",
              "type": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolEvents<T0, T1, T2, T3>"
            }
          ]
        },
        {
          "name": "StablePoolCreationEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            },
            {
              "name": "minted_lp_coin_amount",
              "type": "u64"
            },
            {
              "name": "swap_fee_bps",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StablePoolEvents",
          "is_native": false,
          "abilities": ["store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "pool_creation_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolCreationEvent<T0, T1, T2, T3>>"
            },
            {
              "name": "add_liquidity_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::AddLiquidityEvent<T0, T1, T2, T3>>"
            },
            {
              "name": "remove_liquidity_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::RemoveLiquidityEvent<T0, T1, T2, T3>>"
            },
            {
              "name": "swap_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::SwapEvent<T0, T1, T2, T3>>"
            },
            {
              "name": "param_change_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolParamChangeEvent>"
            }
          ]
        },
        {
          "name": "StablePoolInfo",
          "is_native": false,
          "abilities": ["copy", "drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "balances",
              "type": "vector<u64>"
            },
            {
              "name": "precision_multipliers",
              "type": "vector<u64>"
            },
            {
              "name": "amp_factor",
              "type": "u64"
            },
            {
              "name": "lp_coin_supply",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StablePoolLookup",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name_to_pool",
              "type": "0x1::table::Table<0x1::string::String, 0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolInfo>"
            },
            {
              "name": "id_to_name",
              "type": "0x1::table::Table<u64, 0x1::string::String>"
            },
            {
              "name": "next_id",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StablePoolParamChangeEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "prev_value",
              "type": "u64"
            },
            {
              "name": "new_value",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StablePoolParams",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "default_swap_fee_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "param_change_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::stable_pool::StablePoolParamChangeEvent>"
            }
          ]
        },
        {
          "name": "StablePoolToken",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "SwapEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "idx_in",
              "type": "u64"
            },
            {
              "name": "idx_out",
              "type": "u64"
            },
            {
              "name": "amount_in",
              "type": "u64"
            },
            {
              "name": "amount_out",
              "type": "u64"
            },
            {
              "name": "fee_amount",
              "type": "u64"
            },
            {
              "name": "pool_balance_0",
              "type": "u64"
            },
            {
              "name": "pool_balance_1",
              "type": "u64"
            },
            {
              "name": "pool_balance_2",
              "type": "u64"
            },
            {
              "name": "pool_balance_3",
              "type": "u64"
            },
            {
              "name": "amp_factor",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0600000008010008020806030e23043108053924075d6f08cc01400c8c023200000101010200030108040100010004000101000205030400010604060100010703010100030907080100010a09010100020503050405050503060c05030002010501060c0105010900010102060c03010b0001090002050b000109000c666565735f7363726970747304636f696e067369676e657204666565730c7472616e736665725f6665650a616464726573735f6f661569735f6163636f756e745f7265676973746572656408726567697374657204436f696e0c77697468647261775f666565076465706f73697448271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af00000000000000000000000000000000000000000000000000000000000000010001040002180a0011010c040a040a0121040c0b043800200c03050e090c030b0304120a0038010b010b000b02380238030200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "fees_scripts",
      "friends": [],
      "exposed_functions": [
        {
          "name": "transfer_fee",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "address", "u64"],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000f01001e021edd0203fb02ea0404e507c80105ad09f20d079f17a61208c529a00106e52aac0210912db6070ac734f8030bbf381a0cd938e2280dbb61320eed612a0f976202000101020103010401050106010701080109000a000b000c020d030e040f00100608000100010001000100010001000100010011000800010001000100010001000100010001001206080001000100010001000100010001000100130808000100010001000100010001000100010014060800010001000100010001000100010001001506080001000100010001000100010001000100160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020000000210000002200000023000000240000002500000026000000270000002800000029080800010001000100010001000100010001002a060800010001000100010001000100010001002b040800010001000100010001000100010001002c0700002d0800002e0600002f08000030000800010001000100010001000100010001023104010001053c07000c4b0700035704010601026d05010001026f05010001067d040203010001028c0105010001079b010700099d010000003200010800000000000000000033020308000000000000000000340405090000000000000000000035060709000000000000000000003608090800000000000000000037050a0800000000000000000038050b0800000000000000000039050a0100003a050500003b050b00003d0a0c00003e050c080000000000000000003f050a000040090508000000000000000000410d0e0800000000000000000042050f08000000000000000000430c10000044050b0800000000000000000045030008000000000000000000461105000047110508000000000000000000481105080000000000000000004907120a00000000000000000000004a13140a00000000000000000000004c0515080000000000000000004d0a0c00004e0b05080000000000000000004f050b0800000000000000000b84010518000285011a0a0100098601050a01000e87011f20000288012122010002890123050100038a0125050106028b0126220100098d01050b0400000000098e01050b01000b8f01052d000c90010515000c91012e15000c92012e15000e93012f15000c9401150a00059501300c00023a3132010002960133050100019701353601060498013518000c99013a15000c9a01150a00079c0105440100093b050b00069e01055a0203040c9f015c150006a0015e0b02030006a1015e5f02030002a201050c010005a30160050005a401610a0005a501620c000aa601220501000ea701670a0002a8010522010002a901680501000daa01350b0009ab010a0b0009ac010515000ead016e0a000eae016e0a000caf01150a0008b0017305010007b101050c010006b201750502030206b301750502030011171d191d1b1d1c1d1d0e171e1e2019201b201c201d2119211b211c211d2224231e1a1724281b170729072a072b072c251c251d0b172d1e2e1e2f342f242f372f382f3922342f3b213d1d3d203d0617331933453346334733483349334a334b334c334d334e334f3350335133523353335433553356335733583559355b375b385b3919391b391c391d3d193d1b3d1c3d1d223b252b252c375938591d1e3f1c3f1d401e223722390f17333d336d253d256d331b331c331d3d3d026f037022384772481e49594a5b040b210109000b210109010b210109020b21010903050b21010b2008090009010902090309040905090609070b210109000b210109010b210109020b2101090305060c0b210109000b210109010b210109020b21010903010b21010b2008090009010902090309040905090609070305030b210109080003050303010b210109080403030303050b210109000b210109010b210109020b210109030b0108090009010902090309040905090609070103010101082201060b190809000901090209030904090509060907010a03020a030a03030a030a030302060c03010b21010909020b2101090803020b210109080b21010909010823140103070b2101090203070b21010903030303030a030a03030b21010b20080900090109020903090409050906090703070b1908090009010902090309040905090609070b210109000b210109010b210109020b210109030a030809000901090209030904090509060907010501090001060b21010900010901010902010903010b20080900090109020903090409050906090703060a03060a030302030a0302070b2101090003010b2101090002070b210109000b21010900010b00080900090109020903090409050906090702070b2401090009000203060b250109002d010b210109010b210109020b21010903030303030b21010b20080900090109020903090409050906090708230823010b25010b2008090009010902090309040905090609070b26010b2008090009010902090309040905090609070b1b08090009010902090309040905090609070101010101010b21010900030303030a030b26010b2008090009010902090309040905090609070b28010b2008090009010902090309040905090609070308230b21010b2008090009010902090309040905090609070b25010b20080900090109020903090409050906090708230b1908090009010902090309040905090609070b26010b2008090009010902090309040905090609070b25010b2008090009010902090309040905090609070b21010b2008090009010902090309040905090609070c0823030303030a03040900090109020903010904010905010906010907010c020823082302060a03060a03010a0205060c082208220201030b260109000b280109000b25010900010b28010900010b1a080900090109020903090409050906090701060c010b24010900010b040809000901090209030904090509060907010b05080900090109020903090409050906090701081e02082303010b0208090009010902090309040905090609070809080901090209030904090509060907010908080900090809020903090409050906090708090009010908090309040905090609070809000901090209080904090509060907070b210109080b210109080b21010908070b190809080901090209030904090509060907070b190809000908090209030904090509060907070b190809000901090809030904090509060907070b1908090009010902090809040905090609070c0101010c070b0308090009010902090309040905090609070b210109000b210109010b210109020b21010903070b19080900090109020903090409050906090705060c1403030303030303030303030303030303030303082901082901082a01080e01080601080701080801080901080a01080b01080c01080d01080f010810010811010812010813010814010815010816010817010818020822081c010b270209000901020308220203030106081d02060b270209000901090001060901020708220822010608220306082203031403030303030303030303030303070b030809000901090209030904090509060907070b190809000901090209030904090509060907030303030502060b1908090009010902090309040905090609070a0302081c06081d0f03030b210109020b21010903030303030b210109000b210109010b210109020b210109030303070b19080900090109020903090409050906090703030303020b21010900060b260109000207081f0303070b0308090009010902090309040905090609070305030823070b190809000901090209030904090509060907031f01010303030303030303030b2101090903030101010101010101060b190809000901090209030904090509060907070b1908090009010902090309040905090609070a03030503082908290a0301090905030303060a03060a0309090009010902090309040905090609070908090900090109020903090409050906090709092001010303030303030303030b2101090903030101010101010101060b190809000901090209030904090509060907070b1908090009010902090309040905090609070a0303030503082908290a03010201070a0900040a0307081d08220a0303070b2702090009010900090104696e69740d77656967687465645f706f6f6c076163636f756e7404636f696e056576656e74067369676e657206737472696e67057461626c6509747970655f696e666f06766563746f7209626173655f706f6f6c0466656573077061636b6167650d66697865645f706f696e743634076d616e616765720d77656967687465645f6d617468114164644c69717569646974794576656e7409466c6173686c6f616e0e466c6173686c6f616e4576656e740f466c6173686c6f616e48656c7065721452656d6f76654c69717569646974794576656e7409537761704576656e74095765696768745f3130095765696768745f3135095765696768745f3230095765696768745f3235095765696768745f3330095765696768745f3335095765696768745f3430095765696768745f3435085765696768745f35095765696768745f3530095765696768745f3535095765696768745f3630095765696768745f3635095765696768745f3730095765696768745f3735095765696768745f3830095765696768745f3835095765696768745f3930095765696768745f39350c5765696768746564506f6f6c195765696768746564506f6f6c4372656174696f6e4576656e74125765696768746564506f6f6c4576656e7473105765696768746564506f6f6c496e666f125765696768746564506f6f6c4c6f6f6b75701c5765696768746564506f6f6c506172616d4368616e67654576656e74125765696768746564506f6f6c506172616d73115765696768746564506f6f6c546f6b656e04436f696e0d6164645f6c6971756964697479146372656174655f77656967687465645f706f6f6c0f6465706f7369745f746f5f706f6f6c11657874726163745f66726f6d5f706f6f6c09666c6173686c6f616e11666c6173686c6f616e5f6665655f6270731c666c6173686c6f616e5f68656c7065725f696e697469616c697a65640a6765745f7765696768740a696e697469616c697a650b696e697469616c697a656406537472696e670d6c705f6e616d655f62795f69640d6c705f73686f72745f6e616d650c6e6578745f706f6f6c5f69640d7061795f666c6173686c6f616e0d706f6f6c5f62616c616e63657319706f6f6c5f62616c616e6365735f616e645f7765696768747309706f6f6c5f696e666f0b706f6f6c5f6c6f636b65641072656d6f76655f6c69717569646974791d7365745f64656661756c745f706f6f6c5f737761705f6665655f627073157365745f666c6173686c6f616e5f6665655f627073157365745f706f6f6c5f737761705f6665655f6270730d737761705f65786163745f696e0e737761705f65786163745f6f75740c4669786564506f696e7436340e737761705f6665655f726174696f0d7536345f746f5f737472696e67127570646174655f706f6f6c5f6c6f6f6b75701477656967687465645f706f6f6c5f65786973747308616d6f756e745f3008616d6f756e745f3108616d6f756e745f3208616d6f756e745f33156d696e7465645f6c705f636f696e5f616d6f756e74066c6f636b656410666c6173686c6f616e5f6576656e74730b4576656e7448616e646c65156275726e65645f6c705f636f696e5f616d6f756e74066964785f696e076964785f6f757409616d6f756e745f696e0a616d6f756e745f6f75740a6665655f616d6f756e740e706f6f6c5f62616c616e63655f300e706f6f6c5f62616c616e63655f310e706f6f6c5f62616c616e63655f320e706f6f6c5f62616c616e63655f330b64756d6d795f6669656c640761737365745f300761737365745f310761737365745f320761737365745f33087765696768745f30087765696768745f31087765696768745f32087765696768745f331e696e76657273655f6e6567617465645f737761705f6665655f726174696f13706f6f6c5f746f6b656e5f6d696e745f6361700e4d696e744361706162696c69747913706f6f6c5f746f6b656e5f6275726e5f6361700e4275726e4361706162696c6974791072657365727665645f6c705f636f696e066576656e74730763726561746f720c737761705f6665655f62707314706f6f6c5f6372656174696f6e5f6576656e7473146164645f6c69717569646974795f6576656e74731772656d6f76655f6c69717569646974795f6576656e74730b737761705f6576656e747313706172616d5f6368616e67655f6576656e74730862616c616e63657307776569676874730e6c705f636f696e5f737570706c790c6e616d655f746f5f706f6f6c055461626c650a69645f746f5f6e616d65076e6578745f6964046e616d650a707265765f76616c7565096e65775f76616c75651664656661756c745f737761705f6665655f726174696f187265736f757263655f6163636f756e745f616464726573730576616c756511706f6f6c5f746f6b656e5f737570706c791a636f6d707574655f706f6f6c5f746f6b656e735f6973737565640765787472616374056d657267650a656d69745f6576656e74046d696e7410467265657a654361706162696c6974791476616c69646174655f706f6f6c5f6173736574730769735f6e756c6c177265736f757263655f6163636f756e745f7369676e6572036f6e65067375625f6670066469765f66701d636f6d707574655f696e76617269616e745f776569676874735f753634116465636f64655f726f756e645f646f776e04757466381264657374726f795f667265657a655f636170106e65775f6576656e745f68616e646c650a616464726573735f6f66036d756c066465636f64650854797065496e666f07747970655f6f66044e756c6c036e6577086672616374696f6e08636f6e7461696e7306626f72726f770673796d626f6c06617070656e64066c656e6774680a7375625f737472696e670a6162736f72625f6665651e636f6d707574655f61737365745f616d6f756e745f746f5f72657475726e047a65726f046275726e0d69735f617574686f72697a65641176616c69646174655f737761705f66656522737761705f6665655f70726f746f636f6c5f616c6c6f636174696f6e5f726174696f1d63616c635f6f75745f676976656e5f696e5f776569676874735f7536341d63616c635f696e5f676976656e5f6f75745f776569676874735f7536340f6465636f64655f726f756e645f7570077265766572736509747970655f6e616d65067570736572740361646448271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af00000000000000000000000000000000000000000000000000000000000000014dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee993aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8dfb6e709add23c710c40e4844d889938f703719f72d2d4439ee682d67f07a15c5030810270000000000000308010000000000000003081e0000000000000003080000000000000000030802000000000000000308030000000000000003082e0100000000000003082d010000000000000308300100000000000003082f0100000000000003082c010000000000000308650000000000000003080800000000000000030805000000000000000308070000000000000003080600000000000000030864000000000000000308c80000000000000003080900000000000000030804000000000000000201080a0209085448414c412d4c500a02040357503a0a0202012d0a0204032e2e2e0a02151464656661756c745f737761705f6665655f6270730a021211666c6173686c6f616e5f6665655f6270730a020d0c737761705f6665655f6270730a02020130126170746f733a3a6d657461646174615f7631a107120000000000000000104552525f554e415554484f52495a45440b4572726f7220636f64657301000000000000000f4552525f494e495449414c495a4544000200000000000000114552525f554e494e495449414c495a4544000300000000000000184552525f57454947485445445f504f4f4c5f4558495354530004000000000000001c4552525f57454947485445445f504f4f4c5f4e4f545f455849535453000500000000000000254552525f57454947485445445f504f4f4c5f494e56414c49445f504f4f4c5f415353455453000600000000000000264552525f57454947485445445f504f4f4c5f494e56414c49445f504f4f4c5f57454947485453000700000000000000254552525f57454947485445445f504f4f4c5f494e56414c49445f504f4f4c5f574549474854000800000000000000284552525f57454947485445445f504f4f4c5f494e53554646494349454e545f4c4951554944495459000900000000000000184552525f57454947485445445f504f4f4c5f4c4f434b4544002c01000000000000294552525f57454947485445445f504f4f4c5f464c4153484c4f414e5f554e494e495449414c495a4544002d010000000000002a4552525f57454947485445445f504f4f4c5f464c4153484c4f414e5f494e56414c49445f414d4f554e54002e010000000000002e4552525f57454947485445445f504f4f4c5f464c4153484c4f414e5f494e53554646494349454e545f5245504159002f01000000000000274552525f57454947485445445f504f4f4c5f464c4153484c4f414e5f4e4f545f4f4e474f494e47003001000000000000274552525f57454947485445445f504f4f4c5f464c4153484c4f414e5f494e56414c49445f4645450064000000000000001e4552525f57454947485445445f504f4f4c5f494e56414c49445f53574150006500000000000000244552525f57454947485445445f504f4f4c5f494e53554646494349454e545f494e50555400c800000000000000224552525f57454947485445445f504f4f4c5f494e56414c49445f535741505f46454500000809706f6f6c5f696e666f0101000a6765745f7765696768740101000c6e6578745f706f6f6c5f69640101000d6c705f6e616d655f62795f69640101000e737761705f6665655f726174696f01010011666c6173686c6f616e5f6665655f6270730101001477656967687465645f706f6f6c5f65786973747301010019706f6f6c5f62616c616e6365735f616e645f77656967687473010100000205500351035203530354030102045003510352035303020204500351035203530303020355013703560b24010b0208090009010902090309040905090609070402055003510352035303580305020959035a035b035c035d035e035f036003610306020162010702016201080201620109020162010a020162010b020162010c020162010d020162010e020162010f0201620110020162011102016201120201620113020162011402016201150201620116020162011702016201180201620119020e630b21010900640b21010901650b21010902660b210109036703680369036a034c08236b08236c0b25010b2008090009010902090309040905090609076e0b26010b200809000901090209030904090509060907700b21010b200809000901090209030904090509060907710b1b08090009010902090309040905090609071a020772055003510352035303540373031b0205740b24010b1a0809000901090209030904090509060907750b24010b000809000901090209030904090509060907760b24010b040809000901090209030904090509060907770b24010b050809000901090209030904090509060907780b2401081e1c0203790a037a0a037b031d02037c0b27020822081c7e0b27020308227f031e0203800108228101038201031f020283010823780b2401081e2002016201191700171b171a170317193c193e193f194001170217041705170001000303191d16b7011109040305050704273800200409050b071227111c3c000c120e0038010c090e0138020c0a0a0906000000000000000024041d0a0a060000000000000000240c04051f090c040b04042205260b1201070c270e0238030c0b0e0338040c0c0a090a0a400a02000000000000000c0e0a0b0600000000000000002404370d0e0a0b440a0a0c06000000000000000024043e0d0e0a0c440a0a122e38050c0d0e0d410a0e0e410a210449054d0b1201070c2738060c110e0e0e0d0b11111f0c170c0f0a0f06000000000000000024045a055e0b1201070c270d000e17060000000000000000420a1438070c130d010e17060100000000000000420a1438080c140d020c060a0b0600000000000000002404780e17060200000000000000420a140c05057a0600000000000000000c050b060b0538090c150d030c080a0c06000000000000000024048a010e17060300000000000000420a140c07058c010600000000000000000c070b080b07380a0c160a1236000b00380b0a1236010b01380c0a1236020b02380d0a1236030b03380e0a12360436050b090b0a0b0b0b0c0a0f3901380f0b0f0b12370638100c100938110b100b130b140b150b160201010003191d1f27f5021109040305070b00010704273812040a050e0b0001070d27381320041205160b000107052738140c2d38150c2e38160c2f38170c300a2d0a2e160a2f160a3016066400000000000000210429052d0b0001070f270e0138010c1b0e0238020c1c0e0338030c1d0e0438040c1e0a2d0a2e400a02000000000000000c310a1b0a1c400a02000000000000000c1f0a1b06000000000000000024044a0a1c060000000000000000240c05054c090c050b05044f05530b0001070d270a2d06000000000000000024045c0a2e060000000000000000240c10055e090c100b10046105650b0001070f273818048c010a1d0600000000000000002104700a1e060000000000000000210c140572090c140b14047505790b0001070d270a2f060000000000000000210482010a30060000000000000000210c15058401090c150b15048701058b010b0001070f2705e901381904b9010a1d060000000000000000240497010a1e060000000000000000210c16059901090c160b16049c0105a0010b0001070d270a2f0600000000000000002404a9010a30060000000000000000210c1705ab01090c170b1704ae0105b2010b0001070f270d310a2f440a0d1f0a1d440a05e9010a1d0600000000000000002404c2010a1e060000000000000000240c1805c401090c180b1804c70105cb010b0001070d270a2f0600000000000000002404d4010a30060000000000000000240c1905d601090c190b1904d90105dd010b0001070f270d310a2f440a0d1f0a1d440a0d310a30440a0d1f0a1e440a11260c2b111c2b1f1007140c2c11270c260a260b260a2c112811290c230e1f0e31112a112b0c220a220710240482020586020b0001070c270e2b381a0715112c071408381b0c250c210c200b21381c0b200b250c290c2807100e2938100c2a0b010c1a0b020c060b030c070b040c080b2d0c090b2e0c0a0b2f0c0b0b300c0c0b2a0c0d0a2c0c0e0b230c0f0b290c110b280c120e2b381d0e2b381e0e2b381f0e2b38200e2b382139020c130b1a0b060b070b080b090b0a0b0b0b0c0b0e0b0f0b110b120b0d0b1339000c270d27360436070b0011300b1b0b1c0b1d0b1e0a220b2c070011311132390338220b220710170e27370638100c240e2b0b273f000e2b0907010e2b382339043f040838110b2402020000011905240a0106000000000000000021040a0b003c0536080b02382405230a010601000000000000002104140b003c0636090b02382405230b0106020000000000000021041e0b003c07360a0b02382405230b003c08360b0b02382402030000011941610a010600000000000000002104180b003c050c060a020a063708382523040e05120b0601070c270b0636080b0238260c05055f0a010601000000000000002104300b003c060c070a020a0737093825230426052a0b0701070c270b0736090b0238260c04055d0b010602000000000000002104480b003c070c080a020a08370a382523043e05420b0801070c270b08360a0b0238260c03055b0b003c080c090a020a09370b382523045205560b0901070c270b09360b0b0238260c030b030c040b040c050b05020401000203194291011109040305050704273800200409050b0712270a00060000000000000000240412080c0405160a01060000000000000000240c040b04041b080c05051f0a02060000000000000000240c050b050424080c0605280a03060000000000000000240c060b06042b052d070727111c0c0e0a0e3c000c0d0a000a0d37003801250439053d0b0d010707270a010a0d3701380225044405480b0d010707270a020a0d3702380325044f05530b0d010707270a030a0d3703380425045a055e0b0d010707270a0d36000a0038070c090a0d36010a0138080c0a0a0d36020a0238090c0b0b0d36030a03380a0c0c3827047c0b0e3c040c08080b08360c1505870111260c070e070c0f0a0f0807010b0f382339043f040b090b0a0b0b0b0c0b000b010b020b033909020501000103050a382704030505070a27111c3d04370d1402060000000503111c3b04020701000043b60138280c130a1338292104090600000000000000000c0b05b4010a13382a2104100605000000000000000c0905b2010a13382b210417060a000000000000000c0805b0010a13382c21041e060f000000000000000c0705ae010a13382d2104250614000000000000000c0605ac010a13382e21042c0619000000000000000c0505aa010a13382f210433061e000000000000000c0405a8010a13383021043a0623000000000000000c0305a6010a1338312104410628000000000000000c0205a4010a133832210448062d000000000000000c0105a2010a13383321044f0632000000000000000c0005a0010a1338342104560637000000000000000c12059e010a13383521045d063c000000000000000c11059c010a1338362104640641000000000000000c10059a010a13383721046b0646000000000000000c0f0598010a133838210472064b000000000000000c0e0596010a1338392104790650000000000000000c0d0594010a13383a210480010655000000000000000c0c0592010a13383b21048701065a000000000000000c0a0590010b13383c21048c01058e01070e27065f000000000000000c0a0b0a0c0c0b0c0c0d0b0d0c0e0b0e0c0f0b0f0c100b100c110b110c120b120c000b000c010b010c020b020c030b030c040b040c050b050c060b060c070b070c080b080c090b090c0b0b0b02080300002d1c1109200404050607012711340409050b07042711260c000e00383d383e060000000000000000121d2d1d0e000702070011360e003821121f2d1f02090100000503111c291f020a0100011d5d13111c2b1d0c010a01100b0a00383f0409050d0b01010713270b01100b0b00384014020b0000000c510716112c0c000d003841113a0d000717112c113a0d0038141119113a0d000717112c113a0d003842113a0d000717112c113a0d0038151119113a38182004410d000717112c113a0d003843113a0d000717112c113a0d0038161119113a38192004410d000717112c113a0d003844113a0d000717112c113a0d0038171119113a0e00113b06200000000000000024044f0e00060000000000000000061d00000000000000113c0c000d000718112c113a0b00020c0100011d0505111c2b1d100c14020d010002031963c10111090403050507042738000408050a070927111c0c180a183c040c120b043a090c080c070c060c050e0038010c140e0138020c150e0238030c160e0338040c170a12370d140c110a050600000000000000002404440a050a110c0a350b0a35180700351a340c0d0b140a050a0d1626043c05400b12010706270d000b0d380738450a060600000000000000002404630a060a110c0b350b0b35180700351a340c0e0b150a060a0e1626045b055f0b12010706270d010b0e380838460a07060000000000000000240482010a070a110c0c350b0c35180700351a340c0f0b160a070a0f1626047a057e0b12010706270d020b0f380938470a080600000000000000002404a1010a080b110c09350b0935180700351a340c100b170a080a101626049901059d010b12010706270d030b10380a38480b183c000c130a1336000b00380b0a1336010b01380c0a1336020b02380d0b1336030b03380e090a12360c150b12360e0b050b060b070b08390a3849020e0000000e1d0a00370038010a0037013802400a02000000000000000c01384a2004100d010a0037023803440a384b2004190d010b0037033804440a051b0b00010b01020f010001196417111c3d000c0038143815400a02000000000000000c01384a20040d0d013816440a384b2004130d013817440a0b0038050b0102100100011d651d111c2b1d0c020a02100e0a00384c0409050d0b02010713270b02100e0b00384d140c010e01100f140e011010140e01101114021100000103050a38272004050902111c3d04370c14021201000303191d667a1109040305050704273800200409050b071227111c3c000c0f0e00384e0c0d38060c0e0a0f370038010a0d0a0e113e0c050a0f370138020a0d0a0e113e0c06381820042c0a0f370238030a0d0a0e113e0c01052e0600000000000000000c010b010c07381920043b0a0f370338040a0d0b0e113e0c02053d0600000000000000000c020b020c080a0f36000a0538070c090a0f36010a0638080c0a0a070600000000000000002404530a0f36020a0738090c030555384f0c030b030c0b0a080600000000000000002404610a0f36030a08380a0c04056338500c040b040c0c0b000a0f370f38510b0f360436100b050b060b070b080b0d390b38520938110b090b0a0b0b0b0c02130104011f692a0b0011410404050607032711090409050b0701270a011142040f0511071127111c2a1f0c020a021007140700113111320c030a01070011360a020f07150b020f140719112c0b030b01121e38530214010402031f6a290b0011410404050607032738270409050b070a270a0107002304100512070827111c0c040a043c040c020a02370d140c030a010b02360d150b042a1f0f14071a112c0b030b01121e38530215010401196b370b0011410404050607032711090409050b0704270a011142040f051107112711270c02111c3c000c030a033711140700113111320c040a01070011360a033611150a020b020a03371114112811290a033612150b0336043613071b112c0b040b01121e3853021601000303191d6ced011109040305050704273800200409050b0712270e0038250c090a090600000000000000002404130515070b2738540c1f0c19111c0c1b0a1b3d000c1738550c1d38560c1e0a1d0a1e2204293857200c01052b090c010b0104313858200c020533090c020b020436053a0b17010710270a1d3828210a1d3859210a1d385a210b1d385b210c120c110c100c0f0a0f0a101e0a111e0b121e045305570b17010710270a1e3828210a1e3859210a1e385a210b1e385b210c160c150c140c130a130a141e0a151e0b161e047005740b17010710270b0f04790600000000000000000c050589010b10047e0601000000000000000c040587010b110483010602000000000000000c030585010603000000000000000c030b030c040b040c050b050c0d0b130490010600000000000000000c0805a0010b140495010601000000000000000c07059e010b15049a010602000000000000000c06059c010603000000000000000c060b060c070b070c080b080c0e0b173711140a09113111320c1c11430a1c113111320c1a0a090a1c170c0a0a0d0a0e0b0a0e190e1f11440c0b0a0b0e190a0e420a142304c10105c301070c270d000b1a3826385c0a1b0a0d0b00385d0a1b0a0e0a0b385e0c0c0b1b3c000c180a18360436140b0d0b0e0b090b0b0b1c0a18370038010a18370138020a18370238030b1837033804390c385f0938110b0c021701000303191d7186021109040305050704273800200409050b0712270a01060000000000000000240410051207102738540c210c1a111c0c1d0a1d3d000c1838550c1f38560c200a1f0a202204263857200c020528090c020b02042e3858200c030530090c030b03043305370b18010710270a1f3828210a1f3859210a1f385a210b1f385b210c130c120c110c100a100a111e0a121e0b131e045005540b18010710270a203828210a203859210a20385a210b20385b210c170c160c150c140a140a151e0a161e0b171e046d05710b18010710270b1004760600000000000000000c060586010b11047b0601000000000000000c050584010b120480010602000000000000000c040582010603000000000000000c040b040c050b050c060b060c0e0b14048d010600000000000000000c09059d010b150492010601000000000000000c08059b010b160497010602000000000000000c070599010603000000000000000c070b070c080b080c090b090c0f0a010e1a0a0f420a142304a70105ab010b1801070c270e0038250c1c0a1c0600000000000000002404b30105b7010b1801070b270a0e0a0f0a010e1a0e2111450c0b0b183712140a0b113111460c0a0a0a0b1c2504ca0105cc01070b270a0a0b0b170c1e11430a1e113111320c1b0a0a0a1b170c0c0d000b1b3826385c0a1d0a0e0d000b0c3826385d0a1d0a0f0a01385e0c0d0b1d3c000c190a19360436140b0e0b0f0b0a0b010b1e0a19370038010a19370138020a19370238030b1937033804390c385f0938110b000b0d0218010001190505111c3d00371114021900000030200a00060000000000000000210407071c112c02407200000000000000000c010a0006000000000000000022041b050e0d010630000000000000000a00060a0000000000000019163344720b00060a000000000000001a0c0005090d0138600b01112c021a000002191d742538540c040c01111c2a1d0c0238610c030a020f0e0a030b010b043806121c38620b0004220a020f0b0a02100c140b0338630a02100c14060100000000000000160b020f0c1505240b0201021b0100000503111c3b00021900190119021903190d1b01190a1f001b00030003011d011d0203021d001c001c011c02190b1b021f01190819091b041b0300170117021703170417051706170817003c013e023f034009170a170d17121713171517161717171817000000",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "weighted_pool",
      "friends": ["0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::init"],
      "exposed_functions": [
        {
          "name": "add_liquidity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T0>", "0x1::coin::Coin<T1>", "0x1::coin::Coin<T2>", "0x1::coin::Coin<T3>"],
          "return": [
            "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolToken<T0, T1, T2, T3, T4, T5, T6, T7>>",
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>"
          ]
        },
        {
          "name": "create_weighted_pool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>"
          ],
          "return": [
            "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolToken<T0, T1, T2, T3, T4, T5, T6, T7>>"
          ]
        },
        {
          "name": "flashloan",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["u64", "u64", "u64", "u64"],
          "return": [
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>",
            "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::Flashloan<T0, T1, T2, T3, T4, T5, T6, T7>"
          ]
        },
        {
          "name": "flashloan_fee_bps",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "get_weight",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "lp_name_by_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": ["u64"],
          "return": ["0x1::string::String"]
        },
        {
          "name": "next_pool_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": ["u64"]
        },
        {
          "name": "pay_flashloan",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T1>",
            "0x1::coin::Coin<T2>",
            "0x1::coin::Coin<T3>",
            "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::Flashloan<T0, T1, T2, T3, T4, T5, T6, T7>"
          ],
          "return": []
        },
        {
          "name": "pool_balances_and_weights",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["vector<u64>", "vector<u64>"]
        },
        {
          "name": "pool_info",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": ["0x1::string::String"],
          "return": ["vector<u64>", "vector<u64>", "u64"]
        },
        {
          "name": "remove_liquidity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolToken<T0, T1, T2, T3, T4, T5, T6, T7>>"
          ],
          "return": ["0x1::coin::Coin<T0>", "0x1::coin::Coin<T1>", "0x1::coin::Coin<T2>", "0x1::coin::Coin<T3>"]
        },
        {
          "name": "set_default_pool_swap_fee_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "set_flashloan_fee_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "set_pool_swap_fee_bps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64"],
          "return": []
        },
        {
          "name": "swap_exact_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T8>"],
          "return": ["0x1::coin::Coin<T9>"]
        },
        {
          "name": "swap_exact_out",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["0x1::coin::Coin<T8>", "u64"],
          "return": ["0x1::coin::Coin<T8>", "0x1::coin::Coin<T9>"]
        },
        {
          "name": "swap_fee_ratio",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"]
        },
        {
          "name": "weighted_pool_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": ["bool"]
        }
      ],
      "structs": [
        {
          "name": "AddLiquidityEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            },
            {
              "name": "minted_lp_coin_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Flashloan",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            }
          ]
        },
        {
          "name": "FlashloanEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            }
          ]
        },
        {
          "name": "FlashloanHelper",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "locked",
              "type": "bool"
            },
            {
              "name": "flashloan_fee_bps",
              "type": "u64"
            },
            {
              "name": "flashloan_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::FlashloanEvent<T0, T1, T2, T3, T4, T5, T6, T7>>"
            }
          ]
        },
        {
          "name": "RemoveLiquidityEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            },
            {
              "name": "burned_lp_coin_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "SwapEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "idx_in",
              "type": "u64"
            },
            {
              "name": "idx_out",
              "type": "u64"
            },
            {
              "name": "amount_in",
              "type": "u64"
            },
            {
              "name": "amount_out",
              "type": "u64"
            },
            {
              "name": "fee_amount",
              "type": "u64"
            },
            {
              "name": "pool_balance_0",
              "type": "u64"
            },
            {
              "name": "pool_balance_1",
              "type": "u64"
            },
            {
              "name": "pool_balance_2",
              "type": "u64"
            },
            {
              "name": "pool_balance_3",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Weight_10",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_15",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_20",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_25",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_30",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_35",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_40",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_45",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_5",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_50",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_55",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_60",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_65",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_70",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_75",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_80",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_85",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_90",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Weight_95",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "WeightedPool",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "asset_0",
              "type": "0x1::coin::Coin<T0>"
            },
            {
              "name": "asset_1",
              "type": "0x1::coin::Coin<T1>"
            },
            {
              "name": "asset_2",
              "type": "0x1::coin::Coin<T2>"
            },
            {
              "name": "asset_3",
              "type": "0x1::coin::Coin<T3>"
            },
            {
              "name": "weight_0",
              "type": "u64"
            },
            {
              "name": "weight_1",
              "type": "u64"
            },
            {
              "name": "weight_2",
              "type": "u64"
            },
            {
              "name": "weight_3",
              "type": "u64"
            },
            {
              "name": "swap_fee_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "inverse_negated_swap_fee_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "pool_token_mint_cap",
              "type": "0x1::coin::MintCapability<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolToken<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "pool_token_burn_cap",
              "type": "0x1::coin::BurnCapability<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolToken<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "reserved_lp_coin",
              "type": "0x1::coin::Coin<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolToken<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "events",
              "type": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolEvents<T0, T1, T2, T3, T4, T5, T6, T7>"
            }
          ]
        },
        {
          "name": "WeightedPoolCreationEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "amount_0",
              "type": "u64"
            },
            {
              "name": "amount_1",
              "type": "u64"
            },
            {
              "name": "amount_2",
              "type": "u64"
            },
            {
              "name": "amount_3",
              "type": "u64"
            },
            {
              "name": "minted_lp_coin_amount",
              "type": "u64"
            },
            {
              "name": "swap_fee_bps",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WeightedPoolEvents",
          "is_native": false,
          "abilities": ["store"],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "pool_creation_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolCreationEvent<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "add_liquidity_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::AddLiquidityEvent<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "remove_liquidity_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::RemoveLiquidityEvent<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "swap_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::SwapEvent<T0, T1, T2, T3, T4, T5, T6, T7>>"
            },
            {
              "name": "param_change_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolParamChangeEvent>"
            }
          ]
        },
        {
          "name": "WeightedPoolInfo",
          "is_native": false,
          "abilities": ["copy", "drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "balances",
              "type": "vector<u64>"
            },
            {
              "name": "weights",
              "type": "vector<u64>"
            },
            {
              "name": "lp_coin_supply",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WeightedPoolLookup",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name_to_pool",
              "type": "0x1::table::Table<0x1::string::String, 0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolInfo>"
            },
            {
              "name": "id_to_name",
              "type": "0x1::table::Table<u64, 0x1::string::String>"
            },
            {
              "name": "next_id",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WeightedPoolParamChangeEvent",
          "is_native": false,
          "abilities": ["drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "prev_value",
              "type": "u64"
            },
            {
              "name": "new_value",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WeightedPoolParams",
          "is_native": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "default_swap_fee_ratio",
              "type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
            },
            {
              "name": "param_change_events",
              "type": "0x1::event::EventHandle<0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af::weighted_pool::WeightedPoolParamChangeEvent>"
            }
          ]
        },
        {
          "name": "WeightedPoolToken",
          "is_native": false,
          "abilities": [],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000a01000c020c060312aa0104bc012a05e6018a0207f003860208f6054006b6061410ca06660cb007b901000001010102000300040005010604010001000700010a00000000000000000000000802030400000000000904021300000000000000000000000000000000000000000a04021c00000000000000000000000000000000000000000000000000000000050b0203080000000000000000050c00010a00000000000000000000040d02030400000000040c0a0b06000000000000030e02030100020f0e0f0001101112010001111617010001120f03010001130e02010001141802010001050406050706080709080c0a10001300140b150c150d150e150a1a001b001c001d0b1e0c1e0d1e0e1e010b00010908010b0001090900010103060c030304090409050906090708090009010902090309040905090609070a090009010902090309040905090609070908090904090009010902090306090009010902090309080909010b00010904010b0001090501090002050b0001091201060c010501091002060c03010b000109000a09000901090209030904090509060907091009110a09080909090a090b090c090d090e090f0911091201091201060b00010900010302050b0001090002050b0001091b0109180a09000901090209030904090509060907091809190a09080909090a090b090c090d090e090f0919091a0a09100911091209130914091509160917091a091b01091b116d756c74695f686f705f7363726970747304636f696e067369676e657209626173655f706f6f6c0b737461626c655f706f6f6c0d77656967687465645f706f6f6c04436f696e0e636865636b5f616e645f737761701069735f77656967687465645f706f6f6c0f737761705f65786163745f696e5f320f737761705f65786163745f696e5f331477656967687465645f706f6f6c5f6578697374730d737761705f65786163745f696e12737461626c655f706f6f6c5f6578697374730769735f6e756c6c0a616464726573735f6f660877697468647261770576616c75651569735f6163636f756e745f72656769737465726564087265676973746572076465706f73697448271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af00000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000126170746f733a3a6d657461646174615f7631520201000000000000001b4552525f4d554c5449484f505f504f4f4c5f4e4f545f4558495354000200000000000000204552525f4d554c5449484f505f494e53554646494349454e545f4f55545055540000000000000001153800040b3801040505070701270b0038020c0105133803040e05100701270b0038040c010b010201000000020338052002020104000d200a0011090c030a000b013806380738080c040e0438090b0226040f05130b00010700270a03380a20041a0b00380b051c0b00010b030b04380c020301040019210a0011090c030a000b01380d380e380f38100c040e0438110b0226041005140b00010700270a03381220041b0b003813051d0b00010b030b0438140200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "multi_hop_scripts",
      "friends": [],
      "exposed_functions": [
        {
          "name": "swap_exact_in_2",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64"],
          "return": []
        },
        {
          "name": "swap_exact_in_3",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64"],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000a01000a020a12031c970104b3014205f5019b02079004f5010885064006c5060a10cf06380c8707d60300000101010200030004010a04010001040b0004000100010001000100050001040000000000060201040000000000070201040000000000080301060000000000000009030106000000000000020c050600010d08090100030e010c0100010f0109010004050f1004000000000110060c01000111050101000112120101000406131004000000000407100f040000000001131516010001140901010004081a1b0600000000000004091e1f060000000000000607060a070b060b080b070d060d080d090e0a110b110c110d0e06110e0e0f070f0a0c070c0a0f0b0c0b100b0f0d0c0d100d061811190f1c0a1c0b1c0c1c12190c1805060c030303030006060c030303030303060c0303080b000109020b00010903050b000109000b000109010b000109020b000109030b00010b0104090009010902090301060c010501090002060c03010b000109000109010109020101010903040900090109020903040b000109000b000109010b000109020b00010903010b00010b01040900090109020903010b0104090009010902090302050b0001090006060c0b000109000b000109010b000109020b000109030305050b000109000b000109010b000109020b0001090301060b00010900010302050b0001090501090406090009010902090309040905010b00010904010b0001090501090503050b000109050b00010904020b0001090403020b000109040b0001090513737461626c655f706f6f6c5f7363726970747304636f696e067369676e657209626173655f706f6f6c0b737461626c655f706f6f6c0d6164645f6c6971756964697479126372656174655f737461626c655f706f6f6c1072656d6f76655f6c69717569646974790d737761705f65786163745f696e0e737761705f65786163745f6f757404436f696e0f537461626c65506f6f6c546f6b656e0a616464726573735f6f660877697468647261770769735f6e756c6c047a65726f1569735f6163636f756e745f72656769737465726564087265676973746572076465706f7369740576616c75650c64657374726f795f7a65726f48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f763124010100000000000000174552525f494e53554646494349454e545f4f55545055540000000001040004360a0011050c070a000b0138000c080a000b0238010c0938022004130a000b0338030c05051538040c050b050c0a380520041f0a000b0438060c06052138070c060b060c0b0b080b090b0a0b0b38080c0c0a0738092004300b00380a05320b00010b070b0c380b020101040004380a0011050c080a000b0138000c090a000b0238010c0a38022004130a000b0338030c06051538040c060b060c0b380520041f0a000b0438060c07052138070c070b070c0c0a000b090b0a0b0b0b0c0b05380c0c0d0a0838092004320b00380a05340b00010b080b0d380b020201040014440a0011050c060b000b01380d380e0c0a0c090c080c070e07380f0b0226041105130700270e0838100b03260419051b0700270a060b0738110a060b08381238022004300e0938130b0426042a052c0700270a060b09381405320b09381538052004410e0a38160b0526043b053d0700270b060b0a381705430b0a38180203010400171f0a0011050c030a000b013819381a0c040e04381b0b0226040e05120b00010700270a03381c2004190b00381d051b0b00010b030b04381e02040104001d1a0a0011050c030a000b0138190b02381f0c040c050a030b0538200a03381c2004140b00381d05160b00010b030b04381e0200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "stable_pool_scripts",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add_liquidity",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64", "u64", "u64"],
          "return": []
        },
        {
          "name": "create_stable_pool",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64", "u64", "u64", "u64"],
          "return": []
        },
        {
          "name": "remove_liquidity",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64", "u64", "u64", "u64"],
          "return": []
        },
        {
          "name": "swap_exact_in",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64"],
          "return": []
        },
        {
          "name": "swap_exact_out",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64"],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000a01000a020a1a0324bf0104e3014205a502c20307e705fd0108e4074006a4081410b808510c8909db0400000101010200030004010a04010001040b000800010001000100010001000100010001000500010800000000000000000006020108000000000000000000070301080000000000000000000804010a00000000000000000000000904010a00000000000000000000020c060700010d090a0100030e010d0100010f010a01000405101108000000000000000001101213010001111401010001120a0101000113070d0100011406010100040617180800000000000000000407181008000000000000000004081d1e0a00000000000000000000040921220a000000000000000000000608060b070c060c080c070e060e080e090f0a080a0b0b080b0b0a0c0b0c0c0c0a0e0b0e0c0e0d150e150b150f0f0615100f061b111c0a1f0d1f0e1f0b1f121c0b1b09060c03030303030303030005060c0303030306060c030303030303060c03030c0b000109020b00010903050b000109000b000109010b000109020b000109030b00010b0108090009010902090309040905090609070b000109000b000109010b000109020b0001090301060c010501090002060c03010b0001090001090101090201010109030809000901090209030904090509060907040b000109000b000109010b000109020b00010903050b00010b0108090009010902090309040905090609070b000109000b000109010b000109020b0001090301060b00010900010302050b00010900010b010809000901090209030904090509060907080b000109020b00010903050b000109000b000109010b000109020b000109030b00010b01080900090109020903090409050906090705060c0b000109000b000109010b000109020b00010903010b00010b01080900090109020903090409050906090705050b000109000b000109010b000109020b0001090302050b000109090109080a0900090109020903090409050906090709080909010b00010908010b0001090901090903050b000109090b00010908020b0001090803020b000109080b000109091577656967687465645f706f6f6c5f7363726970747304636f696e067369676e657209626173655f706f6f6c0d77656967687465645f706f6f6c0d6164645f6c6971756964697479146372656174655f77656967687465645f706f6f6c1072656d6f76655f6c69717569646974790d737761705f65786163745f696e0e737761705f65786163745f6f757404436f696e115765696768746564506f6f6c546f6b656e0a616464726573735f6f660877697468647261770769735f6e756c6c047a65726f0576616c7565076465706f7369740c64657374726f795f7a65726f1569735f6163636f756e745f7265676973746572656408726567697374657248271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af00000000000000000000000000000000000000000000000000000000000000010308010000000000000003080000000000000000126170746f733a3a6d657461646174615f76313d0200000000000000000f4552525f4c505f534c495050414745000100000000000000174552525f494e53554646494349454e545f4f5554505554000000000104000582010a0011050c0b0a000a0138000c0c0a000a0238010c0d38022004130a000a0338030c09051538040c090b090c0e380520041f0a000a0438060c0a052138070c0a0b0a0c0f0b0c0b0d0b0e0b0f38080c140c130c120c110c100b010e113809170b0526043505390b00010701270b020e12380a170b0626044105450b00010701270a0b0b11380b0a0b0b12380c380220045e0b030e13380d170b07260456055a0b00010701270a0b0b13380e05600b13380f38052004730b040e143810170b0826046b056f0b00010701270a0b0b14381105750b1438120a0b381320047c0b003814057e0b00010b0b0b103815020101040016370a0011050c070a000b0138000c080a000b0238010c0938022004130a000b0338030c05051538040c050b050c0a380520041f0a000b0438060c06052138070c060b060c0b0a000b080b090b0a0b0b38160c0c0a0738132004310b00381405330b00010b070b0c3815020201040019440a0011050c060b000b01381738180c0a0c090c080c070e0738090b0226041105130700270e08380a0b03260419051b0700270a060b07380b0a060b08380c38022004300e09380d0b0426042a052c0700270a060b09380e05320b09380f38052004410e0a38100b0526043b053d0700270b060b0a381105430b0a381202030104001a1f0a0011050c030a000b013819381a0c040e04381b0b0226040e05120b00010700270a03381c2004190b00381d051b0b00010b030b04381e0204010400201a0a0011050c030a000b0138190b02381f0c040c050a030b0538200a03381c2004140b00381d05160b00010b030b04381e0200",
    "abi": {
      "address": "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af",
      "name": "weighted_pool_scripts",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add_liquidity",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64", "u64", "u64", "u64", "u64", "u64", "u64"],
          "return": []
        },
        {
          "name": "create_weighted_pool",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64", "u64", "u64"],
          "return": []
        },
        {
          "name": "remove_liquidity",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64", "u64", "u64", "u64"],
          "return": []
        },
        {
          "name": "swap_exact_in",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64"],
          "return": []
        },
        {
          "name": "swap_exact_out",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": ["&signer", "u64", "u64"],
          "return": []
        }
      ],
      "structs": []
    }
  }
]
