Ejemplo n.º 1
0
    def test_init(self):
        with self.subTest(msg="With code"):
            code = "some code"
            s = Script(code=code)

            self.assertEqual(0, len(s.arguments))
            self.assertEqual(code, s.code)

        with self.subTest(msg="With arguments"):
            s = Script(code="some code", arguments=[cadence.Bool(True)])

            self.assertEqual(1, len(s.arguments))
            self.assertEqual(cadence.Bool(True), s.arguments[0])
            self.assertEqual(code, s.code)
Ejemplo n.º 2
0
    async def run(self, ctx: Config):
        async with flow_client(host=ctx.access_node_host,
                               port=ctx.access_node_port) as client:
            script = Script(code=f"""
                    pub fun main() {{
                        let a = 1
                        let b = 1
                        log(a + b)
                    }}
                """)

            await client.execute_script(script)
Ejemplo n.º 3
0
    async def run(self, ctx: Config):
        async with flow_client(host=ctx.access_node_host,
                               port=ctx.access_node_port) as client:
            account_to_get_balance_from = ctx.service_account_address
            script = Script(code=f"""
                    import FlowServiceAccount from {ctx.service_account_address}

                    pub fun main() {{
                        let acct = getAccount({account_to_get_balance_from})
                        let balance = FlowServiceAccount.defaultTokenBalance(acct)
                        log(balance)
                    }}
                """)

            await client.execute_script(script)
Ejemplo n.º 4
0
    async def run(self, ctx: Config):
        async with flow_client(host=ctx.access_node_host,
                               port=ctx.access_node_port) as client:
            block = await client.get_latest_block(is_sealed=True)
            account_to_get_balance_from = ctx.service_account_address
            script = Script(code=f"""
                    import FlowServiceAccount from {ctx.service_account_address}

                    pub fun main(): UFix64 {{
                        let acct = getAccount({account_to_get_balance_from})
                        let balance = FlowServiceAccount.defaultTokenBalance(acct)
                        return balance
                    }}
                """)

            result = await client.execute_script(script, at_block_id=block.id)
            log.info(f"Script returned result {result}")
Ejemplo n.º 5
0
    def test_add_arguments(self):
        with self.subTest(msg="No arguments"):
            s = Script(code="")
            s.add_arguments()

            self.assertEqual(0, len(s.arguments))

        with self.subTest(msg="One argument"):
            s = Script(code="")
            s.add_arguments(cadence.Bool(True))

            self.assertEqual(1, len(s.arguments))
            self.assertEqual(cadence.Bool(True), s.arguments[0])

        with self.subTest(msg="One argument + one argument"):
            s = Script(code="")
            s.add_arguments(cadence.Bool(True))
            s.add_arguments(cadence.String("42"))

            self.assertEqual(2, len(s.arguments))
            self.assertEqual(cadence.Bool(True), s.arguments[0])
            self.assertEqual(cadence.String("42"), s.arguments[1])

        with self.subTest(msg="Multiple arguments"):
            s = Script(code="")
            s.add_arguments(cadence.Bool(True), cadence.String("42"))

            self.assertEqual(2, len(s.arguments))
            self.assertEqual(cadence.Bool(True), s.arguments[0])
            self.assertEqual(cadence.String("42"), s.arguments[1])

        with self.subTest(msg="None Argument; should fail"):
            s = Script(code="")

            with self.assertRaises(exceptions.NotCadenceValueError):
                # noinspection PyTypeChecker
                s.add_arguments(None)

        with self.subTest(msg="Non-cadence Argument; should fail"):
            s = Script(code="")

            with self.assertRaises(exceptions.NotCadenceValueError):
                # noinspection PyTypeChecker
                s.add_arguments("42")