[
  {
    "bytecode": "0xa11ceb0b060000000b01000c020c08031441055526077bd30208ce036006ae047c10aa05af010ad906060cdf06b0010d8f080200000101010201030104020500060800010f0600000700010000080001000009020000000a000300000b000100000c000400000d05000001100601000411020100031208090001130a04000514020300021505000000010501060c0101010c03060c0a020a0a020206050a020205080102060c0501080101060801077061636b616765076163636f756e7404636f6465107265736f757263655f6163636f756e74067369676e6572076d616e61676572075061636b616765106465706c6f7965725f6164647265737320646572697665645f7265736f757263655f6163636f756e745f616464726573730b696e69745f6d6f64756c650b696e697469616c697a65640f7061636b6167655f616464726573730e7061636b6167655f7369676e65720f7075626c6973685f7061636b6167650a7369676e65725f636170105369676e65724361706162696c697479176372656174655f7265736f757263655f616464726573730a616464726573735f6f661d72657472696576655f7265736f757263655f6163636f756e745f6361701d6372656174655f7369676e65725f776974685f6361706162696c6974790d69735f617574686f72697a6564137075626c6973685f7061636b6167655f74786e87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac000000000000000000000000000000000000000000000000000000000000000193aa044a65a27bd89b163f8b3be3777b160b09a25c336643dcc2878dfd8f2a8d05201bf23f0881f8fa149500ff6b7a047f608967c028a8ad7a2100caa84833ce851d03080300000000000000030801000000000000000308000000000000000003080200000000000000052087978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac0a020d0c726174655f6c696d69746572126170746f733a3a6d657461646174615f76319a01040000000000000000184552525f5041434b4147455f554e415554484f52495a45440b4572726f7220436f6465730100000000000000174552525f5041434b4147455f494e495449414c495a4544000200000000000000194552525f5041434b4147455f554e494e495449414c495a45440003000000000000001c4552525f5041434b4147455f414444524553535f4d49534d415443480000000002010e080100010000000207000201000000010607000c000e0007061107020200000007270a0011080c010a012900200408050c0b00010702270a01110121041105150b00010701270b01110421041a051e0b00010701270a00070011090c020b000b0212002d000203010000000311042900020401000000020705020503000100000a11030403050507042711042b001000110a020601040100040d0b00110b0404050607032711050c030e030b010b02110c02000000",
    "abi": {
      "address": "0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac",
      "name": "package",
      "friends": [],
      "exposed_functions": [
        {
          "name": "deployer_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["address"]
        },
        {
          "name": "initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["bool"]
        },
        {
          "name": "package_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["address"]
        },
        {
          "name": "package_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": ["signer"]
        },
        {
          "name": "publish_package",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&signer", "vector<u8>", "vector<vector<u8>>"],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Package",
          "is_native": false,
          "is_event": false,
          "abilities": ["key"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "signer_cap",
              "type": "0x1::account::SignerCapability"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b060000000b010004020408030c3c05482e0776b80108ae024006ee021e108c036e0afa03130c8d04b8040dc5080c000001010002070000030700000400010000050203000006040300000705060000080708000009040300000a090300000b090100000c040a00000d040300000e040a0001100a0a00030708000303000206080003010401060800020801030108000203040108010207080003010303040404030304040c726174655f6c696d69746572056572726f720b526174654c696d6974657211526174654c696d69746572436f6e666967076163717569726508616371756972656408637572725f717479036e65770a6e65775f636f6e66696708707265765f7174790972656d61696e696e67067570646174650f77696e646f775f6475726174696f6e0e77696e646f775f6d61785f7174790c77696e646f775f737461727406636f6e66696710696e76616c69645f617267756d656e7487978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac0000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000126170746f733a3a6d657461646174615f76315a030100000000000000124552525f494e56414c49445f434f4e464947000200000000000000104552525f494e56414c49445f54494d45000300000000000000174552525f524154455f4c494d49545f45584345454445440000000002040f08010e03090406040102020c030d04000100000a1c0a000a0111070a001000140b0235160a000f00150a000b010c032e0b0311010b001001100214250419051b07022702010000000b300a001003140a001004140a001001100514160b011706010000000000000017350a001001100514350c040c030c020a04320000000000000000000000000000000022041d05220b0001060400000000000000110b270b024d0b034d180b044d1a350b0010001416020201000001040b001000140203010000050a0b000c020b010c030b020b033200000000000000000000000000000000320000000000000000000000000000000012000204010000010b0a0006000000000000000024040505070700270b000b011201020501000001040b0010031402060100000c1f0a000a0111070a000b010c022e0b0211010c040a0010011002140a042404190b0010011002140b04170c03051d0b000132000000000000000000000000000000000c030b03020700000001490a010a00100414260407050b0b00010701270a010a001004140a001001100514162304190b0001020a010a001004140602000000000000000a001001100514181623043c0a001000140a000f03150a001004140a001001100514160a000f041532000000000000000000000000000000000b000f0015054832000000000000000000000000000000000a000f03150b010a000f041532000000000000000000000000000000000b000f0015020801000001050b001001100514020901000001050b001001100214020a01000001040b001004140200030000010100020001010000",
    "abi": {
      "address": "0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac",
      "name": "rate_limiter",
      "friends": [],
      "exposed_functions": [
        {
          "name": "acquire",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "curr_qty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter"],
          "return": ["u128"]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiterConfig",
            "u64"
          ],
          "return": ["0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter"]
        },
        {
          "name": "new_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["u64", "u128"],
          "return": [
            "0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiterConfig"
          ]
        },
        {
          "name": "prev_qty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter"],
          "return": ["u128"]
        },
        {
          "name": "remaining",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter",
            "u64"
          ],
          "return": ["u128"]
        },
        {
          "name": "window_duration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter"],
          "return": ["u64"]
        },
        {
          "name": "window_max_qty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter"],
          "return": ["u128"]
        },
        {
          "name": "window_start",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": ["&0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiter"],
          "return": ["u64"]
        }
      ],
      "structs": [
        {
          "name": "RateLimiter",
          "is_native": false,
          "is_event": false,
          "abilities": ["copy", "drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "config",
              "type": "0x87978b35bf1eb73ae6cf04cfedcaa1f48254a683ebd00a21e7516a991edae3ac::rate_limiter::RateLimiterConfig"
            },
            {
              "name": "window_start",
              "type": "u64"
            },
            {
              "name": "prev_qty",
              "type": "u128"
            },
            {
              "name": "curr_qty",
              "type": "u128"
            }
          ]
        },
        {
          "name": "RateLimiterConfig",
          "is_native": false,
          "is_event": false,
          "abilities": ["copy", "drop", "store"],
          "generic_type_params": [],
          "fields": [
            {
              "name": "window_duration",
              "type": "u64"
            },
            {
              "name": "window_max_qty",
              "type": "u128"
            }
          ]
        }
      ]
    }
  }
]
